aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiles Bader2007-06-11 00:58:11 +0000
committerMiles Bader2007-06-11 00:58:11 +0000
commitfb9a13e3dca1685b81fcf4d345133fb34911594d (patch)
tree181797239f450c33ca8fd0d4d18686bbfc68859d
parent4d3e23e3e8273e820d69e0ecca0f409c4b9a179e (diff)
parent2d715b39ea1c89066f469405d065dd1a6631d28e (diff)
downloademacs-fb9a13e3dca1685b81fcf4d345133fb34911594d.tar.gz
emacs-fb9a13e3dca1685b81fcf4d345133fb34911594d.zip
Merge from emacs--devo--0
Patches applied: * emacs--devo--0 (patch 781-792) - Update from CVS - Merge from gnus--rel--5.10 - Merge from emacs--rel--22 * emacs--rel--22 (patch 33-41) * gnus--rel--5.10 (patch 226-228) - Update from CVS Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-219
-rw-r--r--AUTHORS34
-rw-r--r--ChangeLog16
-rw-r--r--Makefile.in17
-rw-r--r--admin/ChangeLog8
-rw-r--r--admin/FOR-RELEASE2
-rw-r--r--admin/admin.el47
-rw-r--r--admin/notes/copyright2
-rw-r--r--admin/nt/README-ftp-server90
-rwxr-xr-xadmin/nt/makedist.bat2
-rwxr-xr-xconfigure141
-rw-r--r--configure.in74
-rw-r--r--etc/ChangeLog33
-rw-r--r--etc/MORE.STUFF18
-rw-r--r--etc/NEWS8
-rw-r--r--etc/NEWS.2228
-rw-r--r--etc/TODO17
-rw-r--r--etc/orgcard.tex227
-rw-r--r--leim/ChangeLog4
-rw-r--r--lib-src/ChangeLog9
-rw-r--r--lib-src/etags.c5
-rw-r--r--lisp/ChangeLog293
-rw-r--r--lisp/ChangeLog.1282
-rw-r--r--lisp/calc/calc-help.el2
-rw-r--r--lisp/calendar/icalendar.el2
-rw-r--r--lisp/desktop.el2
-rw-r--r--lisp/dframe.el20
-rw-r--r--lisp/dired.el15
-rw-r--r--lisp/emacs-lisp/bytecomp.el18
-rw-r--r--lisp/emacs-lisp/checkdoc.el2
-rw-r--r--lisp/erc/ChangeLog5
-rw-r--r--lisp/erc/erc.el4
-rw-r--r--lisp/faces.el5
-rw-r--r--lisp/files.el32
-rw-r--r--lisp/gnus/ChangeLog57
-rw-r--r--lisp/gnus/gnus-art.el14
-rw-r--r--lisp/gnus/gnus-diary.el4
-rw-r--r--lisp/gnus/gnus-ems.el123
-rw-r--r--lisp/gnus/gnus-start.el3
-rw-r--r--lisp/gnus/gnus-sum.el4
-rw-r--r--lisp/gnus/mail-source.el2
-rw-r--r--lisp/gnus/mm-decode.el25
-rw-r--r--lisp/gnus/nndiary.el16
-rw-r--r--lisp/help-mode.el60
-rw-r--r--lisp/ldefs-boot.el1343
-rw-r--r--lisp/longlines.el8
-rw-r--r--lisp/mail/rmail.el2
-rw-r--r--lisp/mail/rmailsum.el10
-rw-r--r--lisp/mh-e/ChangeLog134
-rw-r--r--lisp/mh-e/mh-mime.el2
-rw-r--r--lisp/mh-e/mh-search.el2
-rw-r--r--lisp/net/socks.el650
-rw-r--r--lisp/pgg.el8
-rw-r--r--lisp/progmodes/compile.el43
-rw-r--r--lisp/progmodes/ebrowse.el4
-rw-r--r--lisp/progmodes/idlwave.el2
-rw-r--r--lisp/progmodes/mixal-mode.el2
-rw-r--r--lisp/ses.el6
-rw-r--r--lisp/startup.el2
-rw-r--r--lisp/tar-mode.el18
-rw-r--r--lisp/textmodes/css-mode.el469
-rw-r--r--lisp/textmodes/org-publish.el603
-rw-r--r--lisp/textmodes/org.el4490
-rw-r--r--lisp/tutorial.el26
-rw-r--r--lisp/version.el3
-rw-r--r--lispintro/ChangeLog4
-rw-r--r--lispref/ChangeLog22
-rw-r--r--lispref/commands.texi7
-rw-r--r--lispref/display.texi5
-rw-r--r--lispref/elisp.texi2
-rw-r--r--lispref/frames.texi1
-rw-r--r--lispref/text.texi32
-rw-r--r--lwlib/ChangeLog4
-rw-r--r--mac/ChangeLog4
-rw-r--r--man/ChangeLog95
-rw-r--r--man/cc-mode.texi254
-rw-r--r--man/display.texi21
-rw-r--r--man/gnus.texi28
-rw-r--r--man/maintaining.texi4
-rw-r--r--man/message.texi2
-rw-r--r--man/mh-e.texi200
-rw-r--r--man/org.texi1433
-rw-r--r--msdos/ChangeLog4
-rw-r--r--nt/ChangeLog4
-rw-r--r--oldXMenu/ChangeLog9
-rw-r--r--oldXMenu/ChgPane.c1
-rw-r--r--oldXMenu/ChgSel.c1
-rw-r--r--src/ChangeLog291
-rw-r--r--src/Makefile.in4
-rw-r--r--src/alloc.c7
-rw-r--r--src/buffer.c2
-rw-r--r--src/callint.c2
-rw-r--r--src/editfns.c17
-rw-r--r--src/emacs.c17
-rw-r--r--src/fileio.c2
-rw-r--r--src/fns.c2
-rw-r--r--src/frame.c11
-rw-r--r--src/image.c58
-rw-r--r--src/keyboard.c5
-rw-r--r--src/keymap.c2
-rw-r--r--src/lisp.h8
-rw-r--r--src/lread.c5
-rw-r--r--src/mac.c4
-rw-r--r--src/macfns.c17
-rw-r--r--src/macgui.h4
-rw-r--r--src/macmenu.c161
-rw-r--r--src/macselect.c11
-rw-r--r--src/macterm.c2100
-rw-r--r--src/macterm.h33
-rw-r--r--src/minibuf.c2
-rw-r--r--src/s/ms-w32.h1
-rw-r--r--src/search.c2
-rw-r--r--src/sunfns.c2
-rw-r--r--src/term.c47
-rw-r--r--src/w32fns.c4
-rw-r--r--src/window.c4
-rw-r--r--src/xdisp.c6
-rw-r--r--src/xfaces.c2
-rw-r--r--src/xfns.c18
-rw-r--r--src/xmenu.c4
-rw-r--r--src/xselect.c2
-rw-r--r--src/xterm.c6
121 files changed, 9964 insertions, 4435 deletions
diff --git a/AUTHORS b/AUTHORS
index 733b76b8a94..b88c0b69bda 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -333,10 +333,10 @@ 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
335Chong Yidong: changed cus-edit.el simple.el files.el custom.el 335Chong Yidong: changed cus-edit.el simple.el files.el custom.el
336 display.texi longlines.el xdisp.c files.texi info.el keyboard.c 336 display.texi xdisp.c longlines.el files.texi info.el keyboard.c
337 compile.el custom.texi text.texi xterm.c frames.texi image-mode.el 337 compile.el custom.texi text.texi xterm.c frames.texi image-mode.el
338 mouse.el misc.texi startup.el wid-edit.el cus-theme.el 338 mouse.el misc.texi startup.el wid-edit.el cus-theme.el
339 and 296 other files 339 and 297 other files
340 340
341Chris Hanson: changed xscheme.el scheme.el xterm.c hpux.h x11term.c 341Chris 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
@@ -652,8 +652,8 @@ Eli Tziperman: wrote rmail-spam-filter.el
652Eli Zaretskii: wrote codepage.el rxvt.el tty-colors.el 652Eli Zaretskii: wrote codepage.el rxvt.el tty-colors.el
653and changed msdos.c Makefile.in makefile.w32-in files.el info.el fileio.c 653and changed msdos.c Makefile.in makefile.w32-in files.el info.el fileio.c
654 startup.el mainmake.v2 config.bat rmail.el menu-bar.el pc-win.el 654 startup.el mainmake.v2 config.bat rmail.el menu-bar.el pc-win.el
655 simple.el msdos.h internal.el xfaces.c emacs.c frame.c dosfns.c 655 simple.el msdos.h internal.el xfaces.c emacs.c frame.c INSTALL dosfns.c
656 faces.el frame.el and 532 other files 656 faces.el and 532 other files
657 657
658Emanuele Giaquinta: changed rxvt.el configure.in etags.c frame.el 658Emanuele Giaquinta: changed rxvt.el configure.in etags.c frame.el
659 sh-script.el text.texi 659 sh-script.el text.texi
@@ -1699,8 +1699,8 @@ Martin Neitzel: changed sc.el
1699 1699
1700Martin Rudalics: changed cus-edit.el wid-edit.el cus-start.el files.el 1700Martin Rudalics: changed cus-edit.el wid-edit.el cus-start.el files.el
1701 flyspell.el font-lock.el complete.el insdel.c ispell.el macmenu.c 1701 flyspell.el font-lock.el complete.el insdel.c ispell.el macmenu.c
1702 syntax.c w32menu.c wdired.el whitespace.el window.el xdisp.c xmenu.c 1702 syntax.c table.el w32menu.c wdired.el whitespace.el window.el xdisp.c
1703 backups.texi buffer.c buffer.h casefiddle.c and 36 other files 1703 xmenu.c backups.texi buffer.c buffer.h and 36 other files
1704 1704
1705Martin Stjernholm: wrote cc-bytecomp.el 1705Martin Stjernholm: wrote cc-bytecomp.el
1706and changed cc-engine.el cc-cmds.el cc-langs.el cc-defs.el cc-mode.el 1706and changed cc-engine.el cc-cmds.el cc-langs.el cc-defs.el cc-mode.el
@@ -1877,7 +1877,7 @@ Miles Bader: wrote button.el image-file.el macroexp.el minibuf-eldef.el
1877and changed comint.el faces.el simple.el editfns.c xfaces.c info.el 1877and changed comint.el faces.el simple.el editfns.c xfaces.c info.el
1878 xdisp.c minibuf.c wid-edit.el xterm.c subr.el window.el cus-edit.el 1878 xdisp.c minibuf.c wid-edit.el xterm.c subr.el window.el cus-edit.el
1879 diff-mode.el dispextern.h quick-install-emacs xfns.c help.el lisp.h 1879 diff-mode.el dispextern.h quick-install-emacs xfns.c help.el lisp.h
1880 textprop.c bytecomp.el and 241 other files 1880 textprop.c bytecomp.el and 242 other files
1881 1881
1882Miyashita Hisashi: changed ccl.c coding.c coding.h mule-cmds.el 1882Miyashita Hisashi: changed ccl.c coding.c coding.h mule-cmds.el
1883 mule-conf.el mule.el pop3.el 1883 mule-conf.el mule.el pop3.el
@@ -1942,7 +1942,7 @@ Niimi Satoshi: changed pp.el search.c
1942 1942
1943Niklas Morberg: changed nnweb.el gnus-art.el nnimap.el spam.el 1943Niklas Morberg: changed nnweb.el gnus-art.el nnimap.el spam.el
1944 1944
1945Nikolaj Schumacher: changed compile.el 1945Nikolaj Schumacher: changed compile.el rx.el
1946 1946
1947Noah Friedman: wrote eldoc.el rlogin.el rsz-mini.el type-break.el 1947Noah Friedman: wrote eldoc.el rlogin.el rsz-mini.el type-break.el
1948and changed comint.el emacs-buffer.gdb files.el mailabbrev.el sendmail.el 1948and changed comint.el emacs-buffer.gdb files.el mailabbrev.el sendmail.el
@@ -2291,7 +2291,7 @@ Rune Kleveland: changed xfns.c
2291Russ Allbery: changed message.el 2291Russ Allbery: changed message.el
2292 2292
2293Ryan Yeske: wrote rcirc.el 2293Ryan Yeske: wrote rcirc.el
2294and changed ffap.el rmailsum.el simple.el testcover.el 2294and changed ffap.el ispell.el rmailsum.el simple.el testcover.el
2295 2295
2296Ryszard Kubiak: changed ogonek.el 2296Ryszard Kubiak: changed ogonek.el
2297 2297
@@ -2416,9 +2416,9 @@ Stefan Monnier: wrote bibtex.el cvs-status.el diff-mode.el log-edit.el
2416 log-view.el pcvs-defs.el pcvs-info.el pcvs-parse.el pcvs-util.el 2416 log-view.el pcvs-defs.el pcvs-info.el pcvs-parse.el pcvs-util.el
2417 reveal.el smerge-mode.el 2417 reveal.el smerge-mode.el
2418and changed vc.el font-lock.el pcvs.el newcomment.el subr.el lisp.h 2418and changed vc.el font-lock.el pcvs.el newcomment.el subr.el lisp.h
2419 keyboard.c keymap.c tex-mode.el fill.el alloc.c compile.el files.el 2419 keyboard.c fill.el keymap.c tex-mode.el alloc.c compile.el files.el
2420 regex.c simple.el easy-mmode.el vc-hooks.el info.el syntax.c xdisp.c 2420 regex.c simple.el easy-mmode.el syntax.c vc-hooks.el info.el xdisp.c
2421 sh-script.el and 518 other files 2421 sh-script.el and 519 other files
2422 2422
2423Steinar Bang: changed imap.el 2423Steinar Bang: changed imap.el
2424 2424
@@ -2533,7 +2533,7 @@ Terrence Brannon: wrote landmark.el
2533 2533
2534Terry Jones: wrote shadow.el 2534Terry Jones: wrote shadow.el
2535 2535
2536Tetsurou Okazaki: changed xterm.c 2536Tetsurou Okazaki: changed log-edit.el xterm.c
2537 2537
2538Theodore Jump: changed w32-win.el w32faces.c 2538Theodore Jump: changed w32-win.el w32faces.c
2539 2539
@@ -2614,6 +2614,8 @@ Toru Tomabechi: wrote tibet-util.el tibetan.el
2614 2614
2615Toshiaki Nomura: changed uxpds.h 2615Toshiaki Nomura: changed uxpds.h
2616 2616
2617Trent Buck: changed rcirc.el
2618
2617Trey Jackson: changed spam-stat.el 2619Trey Jackson: changed spam-stat.el
2618 2620
2619Triet Hoai Lai: changed vntelex.el viet-util.el vietnamese.el 2621Triet Hoai Lai: changed vntelex.el viet-util.el vietnamese.el
@@ -2636,8 +2638,8 @@ and changed calendar.texi newsticker.texi Makefile.in
2636 2638
2637Ulrich Leodolter: changed w32proc.c 2639Ulrich Leodolter: changed w32proc.c
2638 2640
2639Ulrich Mueller: changed gud.el Makefile.in case-table.el fortran.el 2641Ulrich Mueller: changed gud.el Makefile.in XMakeAssoc.c case-table.el
2640 iso-acc.el sysdep.c 2642 fortran.el iso-acc.el sysdep.c
2641 2643
2642Ulrik Vieth: wrote meta-mode.el 2644Ulrik Vieth: wrote meta-mode.el
2643and changed files.el 2645and changed files.el
@@ -2734,7 +2736,7 @@ Yagi Tatsuya: changed gnus-art.el gnus-start.el
2734 2736
2735Yamamoto Mitsuharu: changed macterm.c macfns.c mac-win.el mac.c macterm.h 2737Yamamoto Mitsuharu: changed macterm.c macfns.c mac-win.el mac.c macterm.h
2736 macmenu.c macgui.h image.c macselect.c keyboard.c xdisp.c makefile.MPW 2738 macmenu.c macgui.h image.c macselect.c keyboard.c xdisp.c makefile.MPW
2737 config.h emacs.c Makefile.in macos.texi INSTALL darwin.h xfaces.c 2739 config.h emacs.c INSTALL Makefile.in macos.texi darwin.h xfaces.c
2738 dispnew.c alloc.c and 77 other files 2740 dispnew.c alloc.c and 77 other files
2739 2741
2740Yann Dirson: changed imenu.el 2742Yann Dirson: changed imenu.el
diff --git a/ChangeLog b/ChangeLog
index 4cb809efc12..73ff53b8a78 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
12007-06-08 Glenn Morris <rgm@gnu.org>
2
3 * configure.in: Make gtk the default toolkit.
4
52007-06-07 Glenn Morris <rgm@gnu.org>
6
7 * configure.in (NON_GNU_CPP): On Solaris, set using a proper check
8 for a Sun C compiler.
9
10 * Makefile.in (install-arch-indep): Install only the DOC- file
11 specific to the build, if possible, rather than DOC-*.
12
132007-06-02 Chong Yidong <cyd@stupidchicken.com>
14
15 * Version 22.1 released.
16
12007-05-25 Chong Yidong <cyd@stupidchicken.com> 172007-05-25 Chong Yidong <cyd@stupidchicken.com>
2 18
3 * mkinstalldirs: Sync to version in automake CVS. 19 * mkinstalldirs: Sync to version in automake CVS.
diff --git a/Makefile.in b/Makefile.in
index 10fedcce82e..5e8a26c85ce 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -409,10 +409,8 @@ install-arch-dep: mkdir
409## Note that we copy DOC* and then delete DOC 409## Note that we copy DOC* and then delete DOC
410## as a workaround for a bug in tar on Ultrix 4.2. 410## as a workaround for a bug in tar on Ultrix 4.2.
411 411
412## FIXME 412## We install only the relevant DOC file if possible
413## Should only install the DOC- file appropriate to this build, not DOC-*. 413## (ie DOC-${version}.buildnumber), otherwise DOC-${version}*.
414## http://lists.gnu.org/archive/html/emacs-pretest-bug/2007-01/msg00417.html
415## (fix available for consideration post-release).
416 414
417## If people complain about the h flag in tar command, take that out. 415## If people complain about the h flag in tar command, take that out.
418## That flag is also used in leim/Makefile.in 416## That flag is also used in leim/Makefile.in
@@ -474,8 +472,15 @@ install-arch-indep: mkdir info
474 -unset CDPATH; \ 472 -unset CDPATH; \
475 if [ `(cd ./etc; /bin/pwd)` != `(cd $(DESTDIR)${docdir}; /bin/pwd)` ]; \ 473 if [ `(cd ./etc; /bin/pwd)` != `(cd $(DESTDIR)${docdir}; /bin/pwd)` ]; \
476 then \ 474 then \
477 echo "Copying etc/DOC-* to $(DESTDIR)${docdir} ..." ; \ 475 fullversion=`./src/emacs --version | sed -n '1 s/GNU Emacs *//p'`; \
478 (cd ./etc; tar -chf - DOC*) \ 476 if [ -f "./etc/DOC-$${fullversion}" ]; \
477 then \
478 docfile="DOC-$${fullversion}"; \
479 else \
480 docfile="DOC-${version}*"; \
481 fi; \
482 echo "Copying etc/$${docfile} to $(DESTDIR)${docdir} ..." ; \
483 (cd ./etc; tar -chf - $${docfile}) \
479 |(cd $(DESTDIR)${docdir}; umask 022; tar -xvf - && cat > /dev/null) || exit 1; \ 484 |(cd $(DESTDIR)${docdir}; umask 022; tar -xvf - && cat > /dev/null) || exit 1; \
480 (cd $(DESTDIR)$(docdir); chown $${LOGNAME:-$$USERNAME} DOC*; chmod a+r DOC*; \ 485 (cd $(DESTDIR)$(docdir); chown $${LOGNAME:-$$USERNAME} DOC*; chmod a+r DOC*; \
481 if test "`echo DOC-*`" != "DOC-*"; then rm DOC; fi); \ 486 if test "`echo DOC-*`" != "DOC-*"; then rm DOC; fi); \
diff --git a/admin/ChangeLog b/admin/ChangeLog
index b036ea11c33..7349efb1720 100644
--- a/admin/ChangeLog
+++ b/admin/ChangeLog
@@ -1,7 +1,15 @@
12007-06-07 Glenn Morris <rgm@gnu.org>
2
3 * admin.el (set-copyright): New function.
4
12007-04-25 Nick Roberts <nickrob@snap.net.nz> 52007-04-25 Nick Roberts <nickrob@snap.net.nz>
2 6
3 * make-tarball.txt: Add note about cutting the branch. 7 * make-tarball.txt: Add note about cutting the branch.
4 8
92007-06-02 Chong Yidong <cyd@stupidchicken.com>
10
11 * Version 22.1 released.
12
52007-02-03 Eli Zaretskii <eliz@gnu.org> 132007-02-03 Eli Zaretskii <eliz@gnu.org>
6 14
7 * nt/makedist.bat: Change EOL format to DOS. Don't use 15 * nt/makedist.bat: Change EOL format to DOS. Don't use
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE
index e64da81cc01..d8e273c0343 100644
--- a/admin/FOR-RELEASE
+++ b/admin/FOR-RELEASE
@@ -55,7 +55,7 @@ that should be installed on the release branch after 22.1 is released.
55** Changes to six pbm icons in etc/images. 55** Changes to six pbm icons in etc/images.
56Sync change from trunk 2007-05-19. 56Sync change from trunk 2007-05-19.
57 57
58** viper and tramp should not load cl at run time. 58** viper should not load cl at run time.
59 59
60** yamaoka@jpl.org's patch for mail-extract-address-components problem. 60** yamaoka@jpl.org's patch for mail-extract-address-components problem.
61 61
diff --git a/admin/admin.el b/admin/admin.el
index 342b40f9bde..175eb6ded1b 100644
--- a/admin/admin.el
+++ b/admin/admin.el
@@ -24,6 +24,8 @@
24 24
25;; add-release-logs Add ``Version X released'' change log entries. 25;; add-release-logs Add ``Version X released'' change log entries.
26;; set-version Change Emacs version number in source tree. 26;; set-version Change Emacs version number in source tree.
27;; set-copyright Change emacs short copyright string (eg as
28;; printed by --version) in source tree.
27 29
28;;; Code: 30;;; Code:
29 31
@@ -158,5 +160,50 @@ Root must be the root of an Emacs source tree."
158 (rx (and (submatch (1+ (in "a-z"))) (0+ space) ?\, (0+ space) 160 (rx (and (submatch (1+ (in "a-z"))) (0+ space) ?\, (0+ space)
159 "/* development, alpha, beta, or final (release) */")))))) 161 "/* development, alpha, beta, or final (release) */"))))))
160 162
163;; Note this makes some assumptions about form of short copyright.
164(defun set-copyright (root copyright)
165 "Set Emacs short copyright to COPYRIGHT in relevant files under ROOT.
166Root must be the root of an Emacs source tree."
167 (interactive (list
168 (read-directory-name "Emacs root directory: " nil nil t)
169 (read-string
170 "Short copyright string: "
171 (format "Copyright (C) %s Free Software Foundation, Inc."
172 (format-time-string "%Y")))))
173 (unless (file-exists-p (expand-file-name "src/emacs.c" root))
174 (error "%s doesn't seem to be the root of an Emacs source tree" root))
175 (set-version-in-file root "lisp/version.el" copyright
176 (rx (and "emacs-copyright" (0+ space)
177 ?\" (submatch (1+ (not (in ?\")))) ?\")))
178 (set-version-in-file root "lib-src/etags.c" copyright
179 (rx (and "emacs_copyright" (0+ (not (in ?\")))
180 ?\" (submatch (1+ (not (in ?\")))) ?\")))
181 (set-version-in-file root "lib-src/rcs2log" copyright
182 (rx (and "Copyright" (0+ space) ?= (0+ space)
183 ?\' (submatch (1+ nonl)))))
184 (set-version-in-file
185 root "mac/Emacs.app/Contents/Resources/English.lproj/InfoPlist.strings"
186 copyright (rx (and "CFBundleGetInfoString" (0+ space) ?= (0+ space) ?\"
187 (1+ anything)
188 (submatch "Copyright" (1+ (not (in ?\")))))))
189 ;; This one is a nuisance, as it needs to be split over two lines.
190 (string-match "\\(.*[0-9]\\{4\\} *\\)\\(.*\\)" copyright)
191 (let ((csign "\\0xa9")
192 (cyear (match-string 1 copyright)) ; "Copyright (C) 2007 "
193 (owner (match-string 2 copyright))) ; "Free Software Foundation, Inc."
194 (set-version-in-file root "mac/src/Emacs.r"
195 (regexp-quote
196 (replace-regexp-in-string "(C)"
197 (regexp-quote csign) cyear))
198 (rx (and
199 (submatch "Copyright" (0+ space) (eval csign)
200 (0+ space) (= 4 num)
201 (0+ (not (in ?\")))) ?\")))
202 (set-version-in-file root "mac/src/Emacs.r" owner
203 (rx (and ?\"
204 (submatch (1+ (not (in ?\"))))
205 ?\" (0+ space)
206 "/* Long version number */")))))
207
161;;; arch-tag: 4ea83636-2293-408b-884e-ad64f22a3bf5 208;;; arch-tag: 4ea83636-2293-408b-884e-ad64f22a3bf5
162;; admin.el ends here. 209;; admin.el ends here.
diff --git a/admin/notes/copyright b/admin/notes/copyright
index 6c9a7382c33..91bf87f3b08 100644
--- a/admin/notes/copyright
+++ b/admin/notes/copyright
@@ -131,7 +131,7 @@ mac/Emacs.app/Contents/Resources/English.lproj/InfoPlist.strings
131mac/src/Emacs.r # resource 'vers' 131mac/src/Emacs.r # resource 'vers'
132src/emacs.c 132src/emacs.c
133 - remember to change the latest copyright year in the --version output. 133 - remember to change the latest copyright year in the --version output.
134 [Post-release, will automate this like set-version does for version.] 134 `set-copyright' in admin.el will do all the above.
135 135
136<top-level>/install-sh 136<top-level>/install-sh
137lispintro/install-sh 137lispintro/install-sh
diff --git a/admin/nt/README-ftp-server b/admin/nt/README-ftp-server
index 15cc7db9d90..92f2920ba6c 100644
--- a/admin/nt/README-ftp-server
+++ b/admin/nt/README-ftp-server
@@ -35,6 +35,72 @@
35 old binaries. 35 old binaries.
36 36
37 37
38* Files in this directory
39
40 + emacs-22.1-bin-i386.zip
41 Windows binaries of Emacs-22.1, with all lisp code and documentation
42 included.
43
44 Download this file if you want a single installation package, and
45 are not interested in the C source code for Emacs. After
46 unpacking, you can optionally run the file bin/addpm.exe to have
47 Emacs add icons to the Start Menu.
48
49 If you need the C source code at a later date, it will be safe to
50 unpack the source distribution on top of this installation.
51
52 + emacs-22.1-barebin-i386.zip
53 Windows binaries of Emacs-22.1, without lisp code or documentation.
54
55 Download this file if you already have the source distribution, or
56 if you need to redump the emacs.exe executable.
57
58 Unpack this over the top of either the source distribution or the
59 bin distribution above. It contains the bin subdirectory and etc/DOC
60 file, plus temacs.exe and dump.bat, which are required if you want to
61 redump emacs without recompiling it.
62
63 + emacs-21.3-bin-i386.tar.gz
64 Windows binaries of Emacs 21.3, with compiled lisp code and some
65 documentation included.
66
67 This is provided for users who require the older version.
68
69 + emacs-21.3-leim.tar.gz
70 Compiled lisp input methods. This optional addition to Emacs-21.3
71 is required if you want to enter languages that are not directly
72 supported by your keyboard.
73
74* Image support
75
76 Emacs 22.1 contains support for images, however for most image formats
77 supporting libraries are required. This distribution has been tested
78 with the libraries that are distributed with GTK for Windows, and the
79 libraries found at http://gnuwin32.sourceforge.net/. The following image
80 formats are supported:
81
82 PBM/PGM/PPM: Supported natively by Emacs. This format is used for
83 the black and white versions of the toolbar icons.
84
85 XPM: requires a Windows port of the XPM library 3.4 or later,
86 which will be named xpm4.dll, libxpm-nox4.dll or
87 libxpm.dll. This format is used for the color versions of the
88 toolbar icons, and other images in Emacs.
89
90 PNG: requires the PNG reference library 1.2 or later, which will
91 be named libpng13d.dll, libpng13.dll, libpng12d.dll, libpng12.dll
92 or libpng.dll. LibPNG requires zlib, which should come from the same
93 source as you got libpng.
94
95 JPEG: requires the Independant JPEG Group's libjpeg 6b or later,
96 which will be called jpeg62.dll, libjpeg.dll, jpeg-62.dll or jpeg.dll.
97
98 TIFF: requires libTIFF 3.0 or later, which will be called libtiff3.dll
99 or libtiff.dll.
100
101 GIF: requires libungif or giflib 4.1 or later, which will be
102 called giflib4.dll, libungif4.dll or libungif.dll.
103
38* Distributions in .tar.gz and .zip format 104* Distributions in .tar.gz and .zip format
39 105
40 Emacs is distributed primarily as source code in a large gzipped tar file 106 Emacs is distributed primarily as source code in a large gzipped tar file
@@ -46,23 +112,6 @@
46 but since there are no longer legal problems with .zip files, and the 112 but since there are no longer legal problems with .zip files, and the
47 latest versions of Windows support these natively, the Windows binaries 113 latest versions of Windows support these natively, the Windows binaries
48 of Emacs are now distributed as .zip files. 114 of Emacs are now distributed as .zip files.
49 Here are the combinations (i386 in the name indicates a zipfile contains
50 executables compiled for Intel-compatible x86 systems):
51
52 + Primary precompiled distribution, including lisp source:
53
54 emacs-22.1-bin-i386.zip
55
56 NB: If you just want to run Emacs, get the distribution above.
57
58 + Bare executables, useful if you want to get the complete source
59 release, but can't compile Emacs yourself:
60
61 emacs-22.1-barebin-i386.zip (requires ../emacs-22.1.tar.gz)
62
63 + The complete official source for Emacs:
64
65 ../emacs-22.1.tar.gz
66 115
67* Distributions for non-x86 platforms 116* Distributions for non-x86 platforms
68 117
@@ -108,7 +157,7 @@
108 You may be prompted to rename or overwrite directories when using 157 You may be prompted to rename or overwrite directories when using
109 djtarnt: simply type return to continue (this is harmless). 158 djtarnt: simply type return to continue (this is harmless).
110 159
111 The precompiled binaries can be unpacked using unzip.exe from info-zip.org 160 Zip files can be unpacked using unzip.exe from info-zip.org
112 if you do not already have other tools to do this. 161 if you do not already have other tools to do this.
113 162
114 % unzip some.zip 163 % unzip some.zip
@@ -170,7 +219,10 @@
170 http://www.gnu.org/software/emacs/windows/ntemacs.html 219 http://www.gnu.org/software/emacs/windows/ntemacs.html
171 220
172 This document serves as an FAQ and a source for further information 221 This document serves as an FAQ and a source for further information
173 about the Windows port and related software packages. 222 about the Windows port and related software packages. Note that as
223 of writing, most of the information in that FAQ was for Emacs-21.3
224 and earlier versions, so some information may not be relevant to
225 Emacs-22.1.
174 226
175 In addition to the FAQ, there is a mailing list for discussing issues 227 In addition to the FAQ, there is a mailing list for discussing issues
176 related to the Windows port of Emacs. For information about the 228 related to the Windows port of Emacs. For information about the
diff --git a/admin/nt/makedist.bat b/admin/nt/makedist.bat
index 56fca7949fa..484ab88004c 100755
--- a/admin/nt/makedist.bat
+++ b/admin/nt/makedist.bat
@@ -36,7 +36,7 @@ rem Info-ZIP zip seems to be broken on Windows.
36rem It always writes to zip.zip and treats the zipfile argument as one 36rem It always writes to zip.zip and treats the zipfile argument as one
37rem of the files to go in it. 37rem of the files to go in it.
38rem zip -9 -r %2-bin-i386 emacs-%1/BUGS emacs-%1/README emacs-%1/README.W32 emacs-%1/bin emacs-%1/etc emacs-%1/info emacs-%1/lisp emacs-%1/leim -x emacs.mdp *.pdb *.opt *~ CVS 38rem zip -9 -r %2-bin-i386 emacs-%1/BUGS emacs-%1/README emacs-%1/README.W32 emacs-%1/bin emacs-%1/etc emacs-%1/info emacs-%1/lisp emacs-%1/leim -x emacs.mdp *.pdb *.opt *~ CVS
397z a -tZIP -mx=9 -xr!emacs.mdp -xr!*.pdb -xr!*.opt -xr!*~ -xr!CVS -xr!.arch-inventory %2-bin-i386.zip emacs-%1/BUGS emacs-%1/README emacs-%1/README.W32 emacs-%1/bin emacs-%1/etc emacs-%1/info emacs-%1/lisp emacs-%1/leim 397z a -tZIP -mx=9 -xr!emacs.mdp -xr!*.pdb -xr!*.opt -xr!*~ -xr!CVS -xr!.arch-inventory %2-bin-i386.zip emacs-%1/BUGS emacs-%1/README emacs-%1/README.W32 emacs-%1/bin emacs-%1/etc emacs-%1/info emacs-%1/lisp emacs-%1/leim emacs-%1/site-lisp
40del emacs-%1\README.W32 40del emacs-%1\README.W32
41if not (%4) == () goto end 41if not (%4) == () goto end
42 42
diff --git a/configure b/configure
index bbc3a5a18b6..e6b13b98bff 100755
--- a/configure
+++ b/configure
@@ -412,10 +412,10 @@ else
412fi 412fi
413 413
414test \$exitcode = 0") || { 414test \$exitcode = 0") || {
415 echo No shell found that supports shell functions. 415 echo Please tell bug-autoconf@gnu.org about your system,
416 echo Please tell autoconf@gnu.org about your system, 416 echo including any error possibly output before this message.
417 echo including any error possibly output before this 417 echo This can help us improve future autoconf versions.
418 echo message 418 echo Configuration will now proceed without shell functions.
419} 419}
420 420
421 421
@@ -1901,7 +1901,7 @@ fi
1901# Check whether --with-x-toolkit was given. 1901# Check whether --with-x-toolkit was given.
1902if test "${with_x_toolkit+set}" = set; then 1902if test "${with_x_toolkit+set}" = set; then
1903 withval=$with_x_toolkit; case "${withval}" in 1903 withval=$with_x_toolkit; case "${withval}" in
1904 y | ye | yes ) val=athena ;; 1904 y | ye | yes ) val=gtk ;;
1905 n | no ) val=no ;; 1905 n | no ) val=no ;;
1906 l | lu | luc | luci | lucid ) val=lucid ;; 1906 l | lu | luc | luci | lucid ) val=lucid ;;
1907 a | at | ath | athe | athen | athena ) val=athena ;; 1907 a | at | ath | athe | athen | athena ) val=athena ;;
@@ -1910,10 +1910,10 @@ if test "${with_x_toolkit+set}" = set; then
1910 * ) 1910 * )
1911{ { echo "$as_me:$LINENO: error: \`--with-x-toolkit=$withval' is invalid\; 1911{ { echo "$as_me:$LINENO: error: \`--with-x-toolkit=$withval' is invalid\;
1912this option's value should be \`yes', \`no', \`lucid', \`athena', \`motif' or \`gtk'. 1912this option's value should be \`yes', \`no', \`lucid', \`athena', \`motif' or \`gtk'.
1913Currently, \`yes', \`athena' and \`lucid' are synonyms." >&5 1913Currently, \`yes' and \`gtk', and \`athena' and \`lucid' are synonyms." >&5
1914echo "$as_me: error: \`--with-x-toolkit=$withval' is invalid\; 1914echo "$as_me: error: \`--with-x-toolkit=$withval' is invalid\;
1915this option's value should be \`yes', \`no', \`lucid', \`athena', \`motif' or \`gtk'. 1915this option's value should be \`yes', \`no', \`lucid', \`athena', \`motif' or \`gtk'.
1916Currently, \`yes', \`athena' and \`lucid' are synonyms." >&2;} 1916Currently, \`yes' and \`gtk', and \`athena' and \`lucid' are synonyms." >&2;}
1917 { (exit 1); exit 1; }; } 1917 { (exit 1); exit 1; }; }
1918 ;; 1918 ;;
1919 esac 1919 esac
@@ -3032,14 +3032,8 @@ _ACEOF
3032 ;; 3032 ;;
3033 *-sunos5* | *-solaris* ) 3033 *-sunos5* | *-solaris* )
3034 opsys=sol2-6 3034 opsys=sol2-6
3035## FIXME: make this into a proper fix that checks the compiler type, 3035 emacs_check_sunpro_c=yes
3036## rather than relying on path. Or is /usr/ccs/lib/cpp a bad default now? 3036 NON_GNU_CPP=/usr/ccs/lib/cpp
3037 if [ "x$CC" = x/opt/SUNWspro/bin/cc ]; then
3038 ## -Xs prevents spurious whitespace.
3039 NON_GNU_CPP="/opt/SUNWspro/bin/cc -E -Xs"
3040 else
3041 NON_GNU_CPP=/usr/ccs/lib/cpp
3042 fi
3043 ;; 3037 ;;
3044 * ) opsys=bsd4-2 ;; 3038 * ) opsys=bsd4-2 ;;
3045 esac 3039 esac
@@ -4195,6 +4189,72 @@ if test -n "$CPP" && test -d "$CPP"; then
4195 CPP= 4189 CPP=
4196fi 4190fi
4197 4191
4192## If not using gcc, and on Solaris, and no CPP specified, see if
4193## using a Sun compiler, which needs -Xs to prevent whitespace.
4194if test x"$GCC" != xyes && test x"$emacs_check_sunpro_c" = xyes && \
4195 test x"$CPP" = x; then
4196 { echo "$as_me:$LINENO: checking whether we are using a Sun C compiler" >&5
4197echo $ECHO_N "checking whether we are using a Sun C compiler... $ECHO_C" >&6; }
4198
4199if test "${emacs_cv_sunpro_c+set}" = set; then
4200 echo $ECHO_N "(cached) $ECHO_C" >&6
4201else
4202 cat >conftest.$ac_ext <<_ACEOF
4203/* confdefs.h. */
4204_ACEOF
4205cat confdefs.h >>conftest.$ac_ext
4206cat >>conftest.$ac_ext <<_ACEOF
4207/* end confdefs.h. */
4208
4209int
4210main ()
4211{
4212#ifndef __SUNPRO_C
4213fail;
4214#endif
4215
4216 ;
4217 return 0;
4218}
4219_ACEOF
4220rm -f conftest.$ac_objext conftest$ac_exeext
4221if { (ac_try="$ac_link"
4222case "(($ac_try" in
4223 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
4224 *) ac_try_echo=$ac_try;;
4225esac
4226eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
4227 (eval "$ac_link") 2>conftest.er1
4228 ac_status=$?
4229 grep -v '^ *+' conftest.er1 >conftest.err
4230 rm -f conftest.er1
4231 cat conftest.err >&5
4232 echo "$as_me:$LINENO: \$? = $ac_status" >&5
4233 (exit $ac_status); } && {
4234 test -z "$ac_c_werror_flag" ||
4235 test ! -s conftest.err
4236 } && test -s conftest$ac_exeext &&
4237 $as_test_x conftest$ac_exeext; then
4238 emacs_cv_sunpro_c=yes
4239else
4240 echo "$as_me: failed program was:" >&5
4241sed 's/^/| /' conftest.$ac_ext >&5
4242
4243 emacs_cv_sunpro_c=no
4244fi
4245
4246rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
4247 conftest$ac_exeext conftest.$ac_ext
4248fi
4249
4250 { echo "$as_me:$LINENO: result: $emacs_cv_sunpro_c" >&5
4251echo "${ECHO_T}$emacs_cv_sunpro_c" >&6; }
4252
4253 if test x"$emacs_cv_sunpro_c" = xyes; then
4254 NON_GNU_CPP="$CC -E -Xs"
4255 fi
4256fi
4257
4198#### Some systems specify a CPP to use unless we are using GCC. 4258#### Some systems specify a CPP to use unless we are using GCC.
4199#### Now that we know whether we are using GCC, we can decide whether 4259#### Now that we know whether we are using GCC, we can decide whether
4200#### to use that one. 4260#### to use that one.
@@ -4222,7 +4282,6 @@ then
4222 CC="$CC $NON_GCC_TEST_OPTIONS" 4282 CC="$CC $NON_GCC_TEST_OPTIONS"
4223fi 4283fi
4224 4284
4225
4226ac_ext=c 4285ac_ext=c
4227ac_cpp='$CPP $CPPFLAGS' 4286ac_cpp='$CPP $CPPFLAGS'
4228ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' 4287ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -9539,7 +9598,13 @@ case "${window_system}" in
9539 gtk ) with_gtk=yes 9598 gtk ) with_gtk=yes
9540 USE_X_TOOLKIT=none ;; 9599 USE_X_TOOLKIT=none ;;
9541 no ) USE_X_TOOLKIT=none ;; 9600 no ) USE_X_TOOLKIT=none ;;
9542 * ) USE_X_TOOLKIT=maybe ;; 9601 * )
9602 if test x"$with_gtk" = xyes; then
9603 USE_X_TOOLKIT=none
9604 else
9605 USE_X_TOOLKIT=maybe
9606 fi
9607 ;;
9543 esac 9608 esac
9544 ;; 9609 ;;
9545 mac | none ) 9610 mac | none )
@@ -10974,7 +11039,8 @@ HAVE_GTK=no
10974if test "${with_gtk}" = "yes" && test "$USE_X_TOOLKIT" = "gtk"; then 11039if test "${with_gtk}" = "yes" && test "$USE_X_TOOLKIT" = "gtk"; then
10975 USE_X_TOOLKIT=none 11040 USE_X_TOOLKIT=none
10976fi 11041fi
10977if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "gtk"; then 11042if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "gtk" || \
11043 test "$USE_X_TOOLKIT" = "maybe"; then
10978 if test "$USE_X_TOOLKIT" != "none" && test "$USE_X_TOOLKIT" != "maybe"; then 11044 if test "$USE_X_TOOLKIT" != "none" && test "$USE_X_TOOLKIT" != "maybe"; then
10979 { { echo "$as_me:$LINENO: error: Conflicting options, --with-gtk is incompatible with --with-x-toolkit=${with_x_toolkit}" >&5 11045 { { echo "$as_me:$LINENO: error: Conflicting options, --with-gtk is incompatible with --with-x-toolkit=${with_x_toolkit}" >&5
10980echo "$as_me: error: Conflicting options, --with-gtk is incompatible with --with-x-toolkit=${with_x_toolkit}" >&2;} 11046echo "$as_me: error: Conflicting options, --with-gtk is incompatible with --with-x-toolkit=${with_x_toolkit}" >&2;}
@@ -11035,11 +11101,7 @@ fi
11035 fi 11101 fi
11036 11102
11037 if test "$PKG_CONFIG" = "no" ; then 11103 if test "$PKG_CONFIG" = "no" ; then
11038 { { echo "$as_me:$LINENO: error: 11104 pkg_check_gtk=no
11039 *** The pkg-config script could not be found. Make sure it is in your path, or give the full path to pkg-config with the PKG_CONFIG environment variable or --with-pkg-config-prog. Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." >&5
11040echo "$as_me: error:
11041 *** The pkg-config script could not be found. Make sure it is in your path, or give the full path to pkg-config with the PKG_CONFIG environment variable or --with-pkg-config-prog. Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." >&2;}
11042 { (exit 1); exit 1; }; }
11043 else 11105 else
11044 PKG_CONFIG_MIN_VERSION=0.9.0 11106 PKG_CONFIG_MIN_VERSION=0.9.0
11045 if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then 11107 if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
@@ -11070,7 +11132,7 @@ echo "${ECHO_T}no" >&6; }
11070 ## If we have a custom action on failure, don't print errors, but 11132 ## If we have a custom action on failure, don't print errors, but
11071 ## do set a variable so people can do so. 11133 ## do set a variable so people can do so.
11072 GTK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$GTK_MODULES"` 11134 GTK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$GTK_MODULES"`
11073 echo $GTK_PKG_ERRORS 11135
11074 fi 11136 fi
11075 11137
11076 11138
@@ -11082,12 +11144,20 @@ echo "${ECHO_T}no" >&6; }
11082 fi 11144 fi
11083 11145
11084 if test $succeeded = yes; then 11146 if test $succeeded = yes; then
11085 : 11147 pkg_check_gtk=yes
11086 else 11148 else
11087 { { echo "$as_me:$LINENO: error: Library requirements ($GTK_MODULES) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&5 11149 pkg_check_gtk=no
11088echo "$as_me: error: Library requirements ($GTK_MODULES) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&2;} 11150 fi
11151
11152 if test "$pkg_check_gtk" = "no" && test "$USE_X_TOOLKIT" != "maybe"; then
11153 { { echo "$as_me:$LINENO: error: $GTK_PKG_ERRORS" >&5
11154echo "$as_me: error: $GTK_PKG_ERRORS" >&2;}
11089 { (exit 1); exit 1; }; } 11155 { (exit 1); exit 1; }; }
11090 fi 11156 fi
11157fi
11158
11159
11160if test x"$pkg_check_gtk" = xyes; then
11091 11161
11092 11162
11093 11163
@@ -11190,18 +11260,25 @@ fi
11190done 11260done
11191 11261
11192 if test "${GTK_COMPILES}" != "yes"; then 11262 if test "${GTK_COMPILES}" != "yes"; then
11193 { { echo "$as_me:$LINENO: error: Gtk+ wanted, but it does not compile, see config.log. Maybe some x11-devel files missing?" >&5 11263 if test "$USE_X_TOOLKIT" != "maybe"; then
11264 { { echo "$as_me:$LINENO: error: Gtk+ wanted, but it does not compile, see config.log. Maybe some x11-devel files missing?" >&5
11194echo "$as_me: error: Gtk+ wanted, but it does not compile, see config.log. Maybe some x11-devel files missing?" >&2;} 11265echo "$as_me: error: Gtk+ wanted, but it does not compile, see config.log. Maybe some x11-devel files missing?" >&2;}
11195 { (exit 1); exit 1; }; }; 11266 { (exit 1); exit 1; }; };
11196 fi 11267 fi
11197 11268 else
11198 HAVE_GTK=yes 11269 HAVE_GTK=yes
11199 11270
11200cat >>confdefs.h <<\_ACEOF 11271cat >>confdefs.h <<\_ACEOF
11201#define HAVE_GTK 1 11272#define HAVE_GTK 1
11202_ACEOF 11273_ACEOF
11203 11274
11204 USE_X_TOOLKIT=none 11275 USE_X_TOOLKIT=none
11276 fi
11277
11278fi
11279
11280
11281if test "${HAVE_GTK}" = "yes"; then
11205 11282
11206 if test "$with_toolkit_scroll_bars" != no; then 11283 if test "$with_toolkit_scroll_bars" != no; then
11207 with_toolkit_scroll_bars=yes 11284 with_toolkit_scroll_bars=yes
diff --git a/configure.in b/configure.in
index fa4d3277bf7..db1a7904b21 100644
--- a/configure.in
+++ b/configure.in
@@ -84,7 +84,7 @@ AC_ARG_WITH(x-toolkit,
84[ --with-x-toolkit=KIT use an X toolkit 84[ --with-x-toolkit=KIT use an X toolkit
85 (KIT = yes/lucid/athena/motif/gtk/no)], 85 (KIT = yes/lucid/athena/motif/gtk/no)],
86[ case "${withval}" in 86[ case "${withval}" in
87 y | ye | yes ) val=athena ;; 87 y | ye | yes ) val=gtk ;;
88 n | no ) val=no ;; 88 n | no ) val=no ;;
89 l | lu | luc | luci | lucid ) val=lucid ;; 89 l | lu | luc | luci | lucid ) val=lucid ;;
90 a | at | ath | athe | athen | athena ) val=athena ;; 90 a | at | ath | athe | athen | athena ) val=athena ;;
@@ -98,7 +98,7 @@ dnl AC_MSG_ERROR([the `--with-x-toolkit' option is supposed to have a value
98dnl which is `yes', `no', `lucid', `athena', `motif' or `open-look'.]) 98dnl which is `yes', `no', `lucid', `athena', `motif' or `open-look'.])
99AC_MSG_ERROR([`--with-x-toolkit=$withval' is invalid\; 99AC_MSG_ERROR([`--with-x-toolkit=$withval' is invalid\;
100this option's value should be `yes', `no', `lucid', `athena', `motif' or `gtk'. 100this option's value should be `yes', `no', `lucid', `athena', `motif' or `gtk'.
101Currently, `yes', `athena' and `lucid' are synonyms.]) 101Currently, `yes' and `gtk', and `athena' and `lucid' are synonyms.])
102 ;; 102 ;;
103 esac 103 esac
104 with_x_toolkit=$val 104 with_x_toolkit=$val
@@ -1041,14 +1041,8 @@ dnl see the `changequote' comment above.
1041 ;; 1041 ;;
1042 *-sunos5* | *-solaris* ) 1042 *-sunos5* | *-solaris* )
1043 opsys=sol2-6 1043 opsys=sol2-6
1044## FIXME: make this into a proper fix that checks the compiler type, 1044 emacs_check_sunpro_c=yes
1045## rather than relying on path. Or is /usr/ccs/lib/cpp a bad default now? 1045 NON_GNU_CPP=/usr/ccs/lib/cpp
1046 if [ "x$CC" = x/opt/SUNWspro/bin/cc ]; then
1047 ## -Xs prevents spurious whitespace.
1048 NON_GNU_CPP="/opt/SUNWspro/bin/cc -E -Xs"
1049 else
1050 NON_GNU_CPP=/usr/ccs/lib/cpp
1051 fi
1052 ;; 1046 ;;
1053 * ) opsys=bsd4-2 ;; 1047 * ) opsys=bsd4-2 ;;
1054 esac 1048 esac
@@ -1284,6 +1278,24 @@ if test -n "$CPP" && test -d "$CPP"; then
1284 CPP= 1278 CPP=
1285fi 1279fi
1286 1280
1281## If not using gcc, and on Solaris, and no CPP specified, see if
1282## using a Sun compiler, which needs -Xs to prevent whitespace.
1283if test x"$GCC" != xyes && test x"$emacs_check_sunpro_c" = xyes && \
1284 test x"$CPP" = x; then
1285 AC_MSG_CHECKING([whether we are using a Sun C compiler])
1286 AC_CACHE_VAL(emacs_cv_sunpro_c,
1287 [AC_TRY_LINK([],
1288[#ifndef __SUNPRO_C
1289fail;
1290#endif
1291], emacs_cv_sunpro_c=yes, emacs_cv_sunpro_c=no)])
1292 AC_MSG_RESULT($emacs_cv_sunpro_c)
1293
1294 if test x"$emacs_cv_sunpro_c" = xyes; then
1295 NON_GNU_CPP="$CC -E -Xs"
1296 fi
1297fi
1298
1287#### Some systems specify a CPP to use unless we are using GCC. 1299#### Some systems specify a CPP to use unless we are using GCC.
1288#### Now that we know whether we are using GCC, we can decide whether 1300#### Now that we know whether we are using GCC, we can decide whether
1289#### to use that one. 1301#### to use that one.
@@ -1877,9 +1889,15 @@ dnl Dont set this for GTK. A lot of tests below assumes Xt when
1877dnl USE_X_TOOLKIT is set. 1889dnl USE_X_TOOLKIT is set.
1878 USE_X_TOOLKIT=none ;; 1890 USE_X_TOOLKIT=none ;;
1879 no ) USE_X_TOOLKIT=none ;; 1891 no ) USE_X_TOOLKIT=none ;;
1880dnl If user did not say whether to use a toolkit, 1892dnl If user did not say whether to use a toolkit, make this decision later:
1881dnl make this decision later: use the toolkit if we have X11R5 or newer. 1893dnl use the toolkit if we have gtk, or X11R5 or newer.
1882 * ) USE_X_TOOLKIT=maybe ;; 1894 * )
1895 if test x"$with_gtk" = xyes; then
1896 USE_X_TOOLKIT=none
1897 else
1898 USE_X_TOOLKIT=maybe
1899 fi
1900 ;;
1883 esac 1901 esac
1884 ;; 1902 ;;
1885 mac | none ) 1903 mac | none )
@@ -2107,7 +2125,8 @@ HAVE_GTK=no
2107if test "${with_gtk}" = "yes" && test "$USE_X_TOOLKIT" = "gtk"; then 2125if test "${with_gtk}" = "yes" && test "$USE_X_TOOLKIT" = "gtk"; then
2108 USE_X_TOOLKIT=none 2126 USE_X_TOOLKIT=none
2109fi 2127fi
2110if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "gtk"; then 2128if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "gtk" || \
2129 test "$USE_X_TOOLKIT" = "maybe"; then
2111 if test "$USE_X_TOOLKIT" != "none" && test "$USE_X_TOOLKIT" != "maybe"; then 2130 if test "$USE_X_TOOLKIT" != "none" && test "$USE_X_TOOLKIT" != "maybe"; then
2112 AC_MSG_ERROR([Conflicting options, --with-gtk is incompatible with --with-x-toolkit=${with_x_toolkit}]); 2131 AC_MSG_ERROR([Conflicting options, --with-gtk is incompatible with --with-x-toolkit=${with_x_toolkit}]);
2113 fi 2132 fi
@@ -2120,7 +2139,15 @@ if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "gtk"; then
2120 PKG_CONFIG="${with_pkg_config_prog}" 2139 PKG_CONFIG="${with_pkg_config_prog}"
2121 fi 2140 fi
2122 dnl Checks for libraries. 2141 dnl Checks for libraries.
2123 PKG_CHECK_MODULES(GTK, $GTK_MODULES) 2142 PKG_CHECK_MODULES(GTK, $GTK_MODULES, pkg_check_gtk=yes, pkg_check_gtk=no)
2143 if test "$pkg_check_gtk" = "no" && test "$USE_X_TOOLKIT" != "maybe"; then
2144 AC_MSG_ERROR($GTK_PKG_ERRORS)
2145 fi
2146fi
2147
2148
2149if test x"$pkg_check_gtk" = xyes; then
2150
2124 AC_SUBST(GTK_CFLAGS) 2151 AC_SUBST(GTK_CFLAGS)
2125 AC_SUBST(GTK_LIBS) 2152 AC_SUBST(GTK_LIBS)
2126 C_SWITCH_X_SITE="$C_SWITCH_X_SITE $GTK_CFLAGS" 2153 C_SWITCH_X_SITE="$C_SWITCH_X_SITE $GTK_CFLAGS"
@@ -2130,12 +2157,19 @@ if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "gtk"; then
2130 GTK_COMPILES=no 2157 GTK_COMPILES=no
2131 AC_CHECK_FUNCS(gtk_main, GTK_COMPILES=yes) 2158 AC_CHECK_FUNCS(gtk_main, GTK_COMPILES=yes)
2132 if test "${GTK_COMPILES}" != "yes"; then 2159 if test "${GTK_COMPILES}" != "yes"; then
2133 AC_MSG_ERROR([Gtk+ wanted, but it does not compile, see config.log. Maybe some x11-devel files missing?]); 2160 if test "$USE_X_TOOLKIT" != "maybe"; then
2161 AC_MSG_ERROR([Gtk+ wanted, but it does not compile, see config.log. Maybe some x11-devel files missing?]);
2162 fi
2163 else
2164 HAVE_GTK=yes
2165 AC_DEFINE(HAVE_GTK, 1, [Define to 1 if using GTK.])
2166 USE_X_TOOLKIT=none
2134 fi 2167 fi
2135 2168
2136 HAVE_GTK=yes 2169fi
2137 AC_DEFINE(HAVE_GTK, 1, [Define to 1 if using GTK.]) 2170
2138 USE_X_TOOLKIT=none 2171
2172if test "${HAVE_GTK}" = "yes"; then
2139 2173
2140 dnl GTK scrollbars resemble toolkit scrollbars a lot, so to avoid 2174 dnl GTK scrollbars resemble toolkit scrollbars a lot, so to avoid
2141 dnl a lot if #ifdef:s, say we have toolkit scrollbars. 2175 dnl a lot if #ifdef:s, say we have toolkit scrollbars.
diff --git a/etc/ChangeLog b/etc/ChangeLog
index 425b0dc353a..5c9dfb6a197 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,34 @@
12007-06-07 Mark H. Weaver <mhw@netris.org> (tiny change)
2
3 * NEWS (set-mark-command-repeat-pop): Fix duplicate entry.
4
52007-06-07 Michael Olson <mwolson@gnu.org>
6
7 * MORE.STUFF: Update eshell URL.
8
92007-06-06 Carsten Dominik <dominik@science.uva.nl>
10
11 * orgcard.tex: Version 4.77.
12
132007-06-05 Michael Albinus <michael.albinus@gmx.de>
14
15 * NEWS: Add socks.el as new package.
16
172007-06-02 Thien-Thi Nguyen <ttn@gnuvola.org>
18
19 * MORE.STUFF (Hideshow): Delete.
20 (EDB, Go in a buffer): Update urls.
21 Suggested by CHENG Gao <chenggao@gmail.com>.
22
232007-06-02 Chong Yidong <cyd@stupidchicken.com>
24
25 * Version 22.1 released.
26
272007-06-02 CHENG Gao <chenggao@gmail.com>
28
29 * MORE.STUFF: Remove dead URL for Fortune, and update URLs for
30 Hideshow, Org, EDB, and Remember.
31
12007-05-29 Robert J. Chassell <bob@rattlesnake.com> 322007-05-29 Robert J. Chassell <bob@rattlesnake.com>
2 33
3 * NEWS: Fix instances of `allow' without object. 34 * NEWS: Fix instances of `allow' without object.
@@ -254,7 +285,7 @@
254 285
2552007-02-19 Kenichi Handa <handa@m17n.org> 2862007-02-19 Kenichi Handa <handa@m17n.org>
256 287
257 * NEWS (New language environmets): Add "Esperanto". 288 * NEWS (New language environments): Add "Esperanto".
258 289
2592007-02-16 Dale Gulledge <dsplat@rochester.rr.com> 2902007-02-16 Dale Gulledge <dsplat@rochester.rr.com>
260 291
diff --git a/etc/MORE.STUFF b/etc/MORE.STUFF
index 20ef2b60284..3d9dbe6e63f 100644
--- a/etc/MORE.STUFF
+++ b/etc/MORE.STUFF
@@ -63,25 +63,25 @@ You might find bug-fixes or enhancements in these places.
63 * ERC: IRC client: 63 * ERC: IRC client:
64 <URL:http://www.emacswiki.org/cgi-bin/wiki?EmacsIRCClient> 64 <URL:http://www.emacswiki.org/cgi-bin/wiki?EmacsIRCClient>
65 65
66 * EShell: <URL:http://www.newartisans.com/johnw/emacs.html> 66 * EShell: <URL:http://johnwiegley.com/eshell.html>
67 67
68 * Etags: <URL:ftp://pot.potorti.it/pub/software/unix/etags.tar.gz> 68 * Etags: <URL:ftp://pot.potorti.it/pub/software/unix/etags.tar.gz>
69 69
70 * Expand: <URL:http://w3.teaser.fr/%7Eflepied/expand.el.gz> 70 * Expand: <URL:http://w3.teaser.fr/%7Eflepied/expand.el.gz>
71 71
72 * Fortune: <URL:http://www.coling.uni-freiburg.de/%7Eschauer/emacs.html>
73
74 * Gnus: <URL:http://www.gnus.org/> 72 * Gnus: <URL:http://www.gnus.org/>
75 73
76 * Ffap: <URL:http://www.mathcs.emory.edu/%7Emic/ftp/emacs/> 74 * Ffap: <URL:http://www.mathcs.emory.edu/%7Emic/ftp/emacs/>
77 (And some addons for it.) 75 (And some addons for it.)
78 76
79 * Hideshow: <URL:http://www.glug.org/people/ttn/software/hideshow/> 77 * Hideshow: <URL:http://staff.science.uva.nl/~dominik/Tools/org/>
80 78
81 * Ispell: <URL:http://www.eng.utah.edu/~kstevens/ispell-page.html> 79 * Ispell: <URL:http://www.eng.utah.edu/~kstevens/ispell-page.html>
82 80
83 * MH-E: <URL:http://mh-e.sourceforge.net/> 81 * MH-E: <URL:http://mh-e.sourceforge.net/>
84 82
83 * Org mode: <URL:http://staff.science.uva.nl/~dominik/Tools/org/>
84
85 * PS mode: <URL:http://odur.let.rug.nl/%7Ekleiweg/postscript/> 85 * PS mode: <URL:http://odur.let.rug.nl/%7Ekleiweg/postscript/>
86 86
87 * PS-print: <URL:http://www.emacswiki.org/cgi-bin/wiki/PsPrintPackage> 87 * PS-print: <URL:http://www.emacswiki.org/cgi-bin/wiki/PsPrintPackage>
@@ -148,7 +148,7 @@ Several are for Debian GNU/Linux in particular.
148 148
149 * ECB: Emacs Code Browser: <URL:http://ecb.sourceforge.net/> 149 * ECB: Emacs Code Browser: <URL:http://ecb.sourceforge.net/>
150 150
151 * EDB: database: <URL:http://www.glug.org/people/ttn/software/edb/> 151 * EDB: database: <URL:http://www.gnuvola.org/software/edb/>
152 152
153 * Ee: categorizing information manager: 153 * Ee: categorizing information manager:
154 <URL:http://www.jurta.org/emacs/ee/> 154 <URL:http://www.jurta.org/emacs/ee/>
@@ -185,7 +185,7 @@ Several are for Debian GNU/Linux in particular.
185 page: eiffel-mode.el. 185 page: eiffel-mode.el.
186 186
187 * Go in a buffer: Go Text Protocol client: 187 * Go in a buffer: Go Text Protocol client:
188 <URL:http://www.glug.org/people/ttn/software/personal-elisp/standalone/> 188 <URL:http://www.gnuvola.org/software/personal-elisp/standalone/>
189 A modified version is also bundled with GNU Go: 189 A modified version is also bundled with GNU Go:
190 <URL:http://www.gnu.org/software/gnugo/gnugo.html> 190 <URL:http://www.gnu.org/software/gnugo/gnugo.html>
191 191
@@ -228,10 +228,10 @@ Several are for Debian GNU/Linux in particular.
228 DTD-aware serious SGML/XML editing. 228 DTD-aware serious SGML/XML editing.
229 229
230 * Quack: <URL:http://www.neilvandyke.org/quack/> 230 * Quack: <URL:http://www.neilvandyke.org/quack/>
231 Quack enhances Emacs support for Scheme 231 Quack enhances Emacs support for Scheme.
232 232
233 * Remember: 233 * Remember: <URL:https://gna.org/p/remember-el>
234 <URL:http://sacha.free.net.ph/notebook/wiki/RememberEl.php> 234 A Personal Information Manager (PIM) for Emacs.
235 235
236 * Session: <URL:http://emacs-session.sourceforge.net/> 236 * Session: <URL:http://emacs-session.sourceforge.net/>
237 Session Management for Emacs. 237 Session Management for Emacs.
diff --git a/etc/NEWS b/etc/NEWS
index 780dea787f9..a7d750b694f 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -19,6 +19,8 @@ with a prefix argument or by typing C-u C-h C-n.
19 19
20* Installation Changes in Emacs 23.1 20* Installation Changes in Emacs 23.1
21 21
22** The default X toolkit has changed from Lucid to Gtk+.
23
22 24
23* Startup Changes in Emacs 23.1 25* Startup Changes in Emacs 23.1
24 26
@@ -28,9 +30,15 @@ with a prefix argument or by typing C-u C-h C-n.
28 30
29* Editing Changes in Emacs 23.1 31* Editing Changes in Emacs 23.1
30 32
33** New command kill-matching-buffers kills buffers whose name matches a regexp.
34
31 35
32* New Modes and Packages in Emacs 23.1 36* New Modes and Packages in Emacs 23.1
33 37
38** css-mode to edit Cascading Style Sheets.
39
40** socks.el (which had been part of W3) is now part of Emacs.
41
34 42
35* Changes in Specialized Modes and Packages in Emacs 23.1 43* Changes in Specialized Modes and Packages in Emacs 23.1
36 44
diff --git a/etc/NEWS.22 b/etc/NEWS.22
index 41c446ccae8..ed9babda50c 100644
--- a/etc/NEWS.22
+++ b/etc/NEWS.22
@@ -33,6 +33,24 @@ Some specific packages that are known to cause problems are:
33** Semantic (used by CEDET, ECB, JDEE): upgrade to latest version. 33** Semantic (used by CEDET, ECB, JDEE): upgrade to latest version.
34 34
35** cua.el, cua-mode.el: remove old versions. 35** cua.el, cua-mode.el: remove old versions.
36
37* Installation Changes in Emacs 22.2
38
39* Changes in Emacs 22.2
40
41** The values of `dired-recursive-deletes' and `dired-recursive-copies'
42have been changed to `top'. This means that the user is asked once,
43before deleting/copying the indicated directory recursively.
44
45** In Image mode, whenever the displayed image is wider and/or higher
46than the window, the usual keys for moving the cursor cause the image
47to be scrolled horizontally or vertically instead.
48
49* New Modes and Packages in Emacs 22.2
50
51** The new package css-mode.el provides a major mode for editing CSS files.
52
53** The new package socks.el implements the SOCKS v5 protocol.
36 54
37 55
38* Installation Changes in Emacs 22.1 56* Installation Changes in Emacs 22.1
@@ -280,11 +298,6 @@ too. If you want to use just plain `*' as a wildcard, type `*""'; the
280doublequotes make no difference in the shell, but they prevent 298doublequotes make no difference in the shell, but they prevent
281special treatment in `dired-do-shell-command'. 299special treatment in `dired-do-shell-command'.
282 300
283** A prefix argument is no longer required to repeat a jump to a
284previous mark if you set `set-mark-command-repeat-pop' to t. I.e. C-u
285C-SPC C-SPC C-SPC ... cycles through the mark ring. Use C-u C-u C-SPC
286to set the mark immediately after a jump.
287
288** The info-search bindings on C-h C-f, C-h C-k and C-h C-i 301** The info-search bindings on C-h C-f, C-h C-k and C-h C-i
289have been moved to C-h F, C-h K and C-h S. 302have been moved to C-h F, C-h K and C-h S.
290 303
@@ -451,8 +464,9 @@ to one second. This feature is turned off by default.
451** Mark command changes: 464** Mark command changes:
452 465
453*** A prefix argument is no longer required to repeat a jump to a 466*** A prefix argument is no longer required to repeat a jump to a
454previous mark, i.e. C-u C-SPC C-SPC C-SPC ... cycles through the 467previous mark if you set `set-mark-command-repeat-pop' to t. I.e. C-u
455mark ring. Use C-u C-u C-SPC to set the mark immediately after a jump. 468C-SPC C-SPC C-SPC ... cycles through the mark ring. Use C-u C-u C-SPC
469to set the mark immediately after a jump.
456 470
457*** Marking commands extend the region when invoked multiple times. 471*** Marking commands extend the region when invoked multiple times.
458 472
diff --git a/etc/TODO b/etc/TODO
index bb51e5cd2d5..cb7133c7312 100644
--- a/etc/TODO
+++ b/etc/TODO
@@ -19,6 +19,8 @@ In new X11 versions, xaw3dg-dev does not depend on libxaw-dev, so the
19latter need not be installed. As a result, all the source files that 19latter need not be installed. As a result, all the source files that
20look for include files in X11/Xaw should look in X11/Xaw3d if we are 20look for include files in X11/Xaw should look in X11/Xaw3d if we are
21using Xaw3d. 21using Xaw3d.
22http://lists.gnu.org/archive/html/emacs-pretest-bug/2007-04/msg00396.html
23http://lists.gnu.org/archive/html/emacs-devel/2006-03/msg01150.html ?
22 24
23** Compute the list of active keymaps *after* reading the first event. 25** Compute the list of active keymaps *after* reading the first event.
24 26
@@ -32,8 +34,6 @@ a window doesn't select it.
32but if you type M-n you should get the visited file name of the 34but if you type M-n you should get the visited file name of the
33current buffer. 35current buffer.
34 36
35** describe-face should show an example of text in the face.
36
37** Distribute a bar cursor of width > 1 evenly between the two glyphs 37** Distribute a bar cursor of width > 1 evenly between the two glyphs
38 on each side of the bar (what to do at the edges?). 38 on each side of the bar (what to do at the edges?).
39 39
@@ -100,9 +100,6 @@ current buffer.
100 100
101** make back_comment use syntax-ppss or equivalent. 101** make back_comment use syntax-ppss or equivalent.
102 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. 103** Consider improving src/sysdep.c's search for a fqdn.
107http://lists.gnu.org/archive/html/emacs-devel/2007-04/msg00782.html 104http://lists.gnu.org/archive/html/emacs-devel/2007-04/msg00782.html
108 105
@@ -179,6 +176,7 @@ specified filters, specified timers, and specified hooks.
179 176
180** Remove the default toggling behavior of minor modes when called from elisp 177** Remove the default toggling behavior of minor modes when called from elisp
181rather than interactively. This a trivial one-liner in easy-mode.el. 178rather than interactively. This a trivial one-liner in easy-mode.el.
179
182** Create a category of errors called `user-error' for errors which are 180** Create a category of errors called `user-error' for errors which are
183typically due to pilot errors and should thus be in debug-ignored-errors. 181typically due to pilot errors and should thus be in debug-ignored-errors.
184 182
@@ -381,15 +379,6 @@ typically due to pilot errors and should thus be in debug-ignored-errors.
381** Allow unknown image types to be rendered via an external program 379** Allow unknown image types to be rendered via an external program
382 converting them to, say, PBM (in the same way as PostScript?). 380 converting them to, say, PBM (in the same way as PostScript?).
383 381
384** Display images with alpha channels, such as png, with the current
385background color of whatever frame it is displayed in. Currently, we
386use the default background color if specified in the png file, or, if
387that is unspecified, the background color of the frame in which the
388image was first created. Ideally, the image should display the
389background color of whichever frame it is being displayed in. The
390main complication is that this will require the loading of a new image
391object for each different background color.
392
393** Allow displaying an X window from an external program in a buffer, 382** Allow displaying an X window from an external program in a buffer,
394 e.g. to render graphics from Java applets. [gerd and/or wmperry 383 e.g. to render graphics from Java applets. [gerd and/or wmperry
395 thought this was feasible.] 384 thought this was feasible.]
diff --git a/etc/orgcard.tex b/etc/orgcard.tex
index 55a797000c6..ab891a0be13 100644
--- a/etc/orgcard.tex
+++ b/etc/orgcard.tex
@@ -1,27 +1,27 @@
1% Reference Card for Org Mode 1% Reference Card for Org Mode
2\def\orgversionnumber{4.67} 2\def\orgversionnumber{4.77}
3\def\versionyear{2007} % latest update 3\def\versionyear{2007} % latest update
4\def\year{2007} % latest copyright year 4\def\year{2007} % latest copyright year
5% 5
6%**start of header 6%**start of header
7\newcount\columnsperpage 7\newcount\columnsperpage
8\newcount\letterpaper
8 9
9% This file can be printed with 1, 2, or 3 columns per page (see below). 10% This file can be printed with 1, 2, or 3 columns per page (see below).
10% At the moment this card works quite nicely in 3 column format and 11% Specify how many you want here.
11% currently takes 2 full pages. It is thus suited to producing one
12% double-side page when printed.
13 12
14% There are a couple of tweaks in the format of this card which make it work 13\columnsperpage=3
15% slightly better on A4 paper. The changes due, I think, to Stephen Eglen,
16% are commented below. Revert the changes if you want letter sized paper.
17 14
18% Try running something like 15% Set letterpapaer to 0 for A4 paper, 1 for letter (US) paper. Useful
19% tex org-mode-ref.tex; dvips -t landscape org-mode-ref.dvi 16% only when columnsperpage is 2 or 3.
20% to print the card
21 17
22\columnsperpage=3 18\letterpaper=0
23 19
24% Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc 20% Nothing else needs to be changed below this line.
21% Copyright (C) 1987, 1993, 1996, 1997, 2001, 2002, 2003, 2004,
22% 2005, 2006, 2007 Free Software Foundation, Inc.
23
24% This file is part of GNU Emacs.
25 25
26% GNU Emacs is free software; you can redistribute it and/or modify 26% GNU Emacs is free software; you can redistribute it and/or modify
27% it under the terms of the GNU General Public License as published by 27% it under the terms of the GNU General Public License as published by
@@ -35,8 +35,8 @@
35 35
36% You should have received a copy of the GNU General Public License 36% You should have received a copy of the GNU General Public License
37% along with GNU Emacs; see the file COPYING. If not, write to 37% along with GNU Emacs; see the file COPYING. If not, write to
38% the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 38% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
39% Boston, MA 02111-1307, USA. 39% Boston, MA 02110-1301, USA.
40 40
41% This file is intended to be processed by plain TeX (TeX82). 41% This file is intended to be processed by plain TeX (TeX82).
42% 42%
@@ -54,6 +54,10 @@
54% For this you need a dvi device driver that can print sideways. 54% For this you need a dvi device driver that can print sideways.
55% Which mode to use is controlled by setting \columnsperpage above. 55% Which mode to use is controlled by setting \columnsperpage above.
56% 56%
57% To compile and print this document:
58% tex refcard.tex
59% dvips -t landscape refcard.dvi
60%
57% Author: 61% Author:
58% Stephen Gildea 62% Stephen Gildea
59% Internet: gildea@stop.mail-abuse.org 63% Internet: gildea@stop.mail-abuse.org
@@ -82,20 +86,20 @@ are preserved on all copies.
82% can be scanned without complaint. 86% can be scanned without complaint.
83\def\bye{\par\vfill\supereject\end} 87\def\bye{\par\vfill\supereject\end}
84 88
85\newdimen\intercolumnskip %horizontal space between columns 89\newdimen\intercolumnskip %horizontal space between columns
86\newbox\columna %boxes to hold columns already built 90\newbox\columna %boxes to hold columns already built
87\newbox\columnb 91\newbox\columnb
88 92
89\def\ncolumns{\the\columnsperpage} 93\def\ncolumns{\the\columnsperpage}
90 94
91\message{[\ncolumns\space 95\message{[\ncolumns\space
92 column\if 1\ncolumns\else s\fi\space per page]} 96 column\if 1\ncolumns\else s\fi\space per page]}
93 97
94\def\scaledmag#1{ scaled \magstep #1} 98\def\scaledmag#1{ scaled \magstep #1}
95 99
96% This multi-way format was designed by Stephen Gildea October 1986. 100% This multi-way format was designed by Stephen Gildea October 1986.
97% Note that the 1-column format is fontfamily-independent. 101% Note that the 1-column format is fontfamily-independent.
98\if 1\ncolumns %one-column format uses normal size 102\if 1\ncolumns %one-column format uses normal size
99 \hsize 4in 103 \hsize 4in
100 \vsize 10in 104 \vsize 10in
101 \voffset -.7in 105 \voffset -.7in
@@ -106,14 +110,14 @@ are preserved on all copies.
106 110
107 \footline{\hss\folio} 111 \footline{\hss\folio}
108 \def\makefootline{\baselineskip10pt\hsize6.5in\line{\the\footline}} 112 \def\makefootline{\baselineskip10pt\hsize6.5in\line{\the\footline}}
109\else %2 or 3 columns uses prereduced size 113\else %2 or 3 columns uses prereduced size
110 \hsize 3.2in 114 \hsize 3.2in
111 115 \if 1\the\letterpaper
112% FIXME - Try to make things more A4 friendly 116 \vsize 7.95in
113% \vsize 7.95in 117 \else
114 \vsize 7.65in 118 \vsize 7.65in
115% \hoffset -.75in 119 \fi
116 \hoffset -.25in 120 \hoffset -.75in
117 \voffset -.745in 121 \voffset -.745in
118 \font\titlefont=cmbx10 \scaledmag2 122 \font\titlefont=cmbx10 \scaledmag2
119 \font\headingfont=cmbx10 \scaledmag1 123 \font\headingfont=cmbx10 \scaledmag1
@@ -132,13 +136,14 @@ are preserved on all copies.
132 \def\bf{\eightbf} 136 \def\bf{\eightbf}
133 \def\it{\eightit} 137 \def\it{\eightit}
134 \def\tt{\eighttt} 138 \def\tt{\eighttt}
135 139 \if 1\the\letterpaper
136% FIXME - Try to make things more A4 friendly 140 \normalbaselineskip=.8\normalbaselineskip
137% \normalbaselineskip=.8\normalbaselineskip 141 \else
138 \normalbaselineskip=.7\normalbaselineskip 142 \normalbaselineskip=.7\normalbaselineskip
143 \fi
139 \normallineskip=.8\normallineskip 144 \normallineskip=.8\normallineskip
140 \normallineskiplimit=.8\normallineskiplimit 145 \normallineskiplimit=.8\normallineskiplimit
141 \normalbaselines\rm %make definitions take effect 146 \normalbaselines\rm %make definitions take effect
142 147
143 \if 2\ncolumns 148 \if 2\ncolumns
144 \let\maxcolumn=b 149 \let\maxcolumn=b
@@ -154,16 +159,16 @@ are preserved on all copies.
154 159
155 \intercolumnskip=.46in 160 \intercolumnskip=.46in
156 \def\abc{a} 161 \def\abc{a}
157 \output={% %see The TeXbook page 257 162 \output={% %see The TeXbook page 257
158 % This next line is useful when designing the layout. 163 % This next line is useful when designing the layout.
159 %\immediate\write16{Column \folio\abc\space starts with \firstmark} 164 %\immediate\write16{Column \folio\abc\space starts with \firstmark}
160 \if \maxcolumn\abc \multicolumnformat \global\def\abc{a} 165 \if \maxcolumn\abc \multicolumnformat \global\def\abc{a}
161 \else\if a\abc 166 \else\if a\abc
162 \global\setbox\columna\columnbox \global\def\abc{b} 167 \global\setbox\columna\columnbox \global\def\abc{b}
163 %% in case we never use \columnb (two-column mode) 168 %% in case we never use \columnb (two-column mode)
164 \global\setbox\columnb\hbox to -\intercolumnskip{} 169 \global\setbox\columnb\hbox to -\intercolumnskip{}
165 \else 170 \else
166 \global\setbox\columnb\columnbox \global\def\abc{c}\fi\fi} 171 \global\setbox\columnb\columnbox \global\def\abc{c}\fi\fi}
167 \def\multicolumnformat{\shipout\vbox{\makeheadline 172 \def\multicolumnformat{\shipout\vbox{\makeheadline
168 \hbox{\box\columna\hskip\intercolumnskip 173 \hbox{\box\columna\hskip\intercolumnskip
169 \box\columnb\hskip\intercolumnskip\columnbox} 174 \box\columnb\hskip\intercolumnskip\columnbox}
@@ -173,7 +178,7 @@ are preserved on all copies.
173 \def\bye{\par\vfill\supereject 178 \def\bye{\par\vfill\supereject
174 \if a\abc \else\null\vfill\eject\fi 179 \if a\abc \else\null\vfill\eject\fi
175 \if a\abc \else\null\vfill\eject\fi 180 \if a\abc \else\null\vfill\eject\fi
176 \end} 181 \end}
177\fi 182\fi
178 183
179% we won't be using math mode much, so redefine some of the characters 184% we won't be using math mode much, so redefine some of the characters
@@ -225,7 +230,7 @@ are preserved on all copies.
225\def\<#1>{{\it #1\/}} 230\def\<#1>{{\it #1\/}}
226 231
227% kbd - argument is characters typed literally. Like the Texinfo command. 232% kbd - argument is characters typed literally. Like the Texinfo command.
228\def\kbd#1{{\tt#1}\null} %\null so not an abbrev even if period follows 233\def\kbd#1{{\tt#1}\null} %\null so not an abbrev even if period follows
229 234
230% beginexample...endexample - surrounds literal text, such a code example. 235% beginexample...endexample - surrounds literal text, such a code example.
231% typeset in a typewriter font with line breaks preserved 236% typeset in a typewriter font with line breaks preserved
@@ -316,15 +321,15 @@ are preserved on all copies.
316\section{Archiving} 321\section{Archiving}
317 322
318\key{toggle ARCHIVE tag}{C-c C-x C-a} 323\key{toggle ARCHIVE tag}{C-c C-x C-a}
319\metax{mark fully done children}{C-u C-c C-x C-a} 324%\metax{mark fully done children}{C-u C-c C-x C-a}
320\key{force cycling of an ARCHIVEd tree}{C-TAB} 325\key{force cycling of an ARCHIVEd tree}{C-TAB}
321\key{move subtree to archive file}{C-c C-x C-s} 326\key{move subtree to archive file}{C-c C-x C-s}
322\metax{move all fully done children}{C-u C-c C-x C-s} 327%\metax{move all fully done children}{C-u C-c C-x C-s}
323To set archive location for current file, add a line like$^2$: 328%To set archive location for current file, add a line like$^2$:
324\vskip -1mm 329%\vskip -1mm
325\beginexample% 330%\beginexample%
326\#+ARCHIVE: archfile::* Archived Tasks 331%\#+ARCHIVE: archfile::* Archived Tasks
327\endexample 332%\endexample
328 333
329\section{Filtering and Sparse Trees} 334\section{Filtering and Sparse Trees}
330 335
@@ -359,13 +364,11 @@ Outside of tables, the same keys may have other functionality.
359 364
360{\bf Row and column editing} 365{\bf Row and column editing}
361 366
362\key{move the current column left}{M-LEFT} 367\key{move the current column left}{M-LEFT/RIGHT}
363\key{move the current column right}{M-RIGHT}
364\key{kill the current column}{M-S-LEFT} 368\key{kill the current column}{M-S-LEFT}
365\key{insert new column to left of cursor position}{M-S-RIGHT} 369\key{insert new column to left of cursor position}{M-S-RIGHT}
366 370
367\key{move the current row up}{M-UP} 371\key{move the current row up/down}{M-UP/DOWN}
368\key{move the current row down}{M-DOWN}
369\key{kill the current row or horizontal line}{M-S-UP} 372\key{kill the current row or horizontal line}{M-S-UP}
370\key{insert new row above the current row}{M-S-DOWN} 373\key{insert new row above the current row}{M-S-DOWN}
371\key{insert hline below (\kbd{C-u} : above) current row}{C-c -} 374\key{insert hline below (\kbd{C-u} : above) current row}{C-c -}
@@ -378,34 +381,6 @@ Outside of tables, the same keys may have other functionality.
378\key{paste rectangular region}{C-c C-x C-y} 381\key{paste rectangular region}{C-c C-x C-y}
379\key{fill paragraph across selected cells}{C-c C-q} 382\key{fill paragraph across selected cells}{C-c C-q}
380 383
381{\bf Calculations} (in combination with Emacs \kbd{calc} package)
382
383\key{set and eval column formula}{C-c =}
384\key{set and eval field formula}{C-u C-c =}
385\key{edit formulas in separate buffer}{C-c '}
386\key{re-apply all stored equations to current line}{C-c *}
387\key{re-apply all stored equations to entire table}{C-u C-c *}
388\key{iterate table to stability}{C-u C-u C-c *}
389
390%\kbd{TAB}, \kbd{RET} and \kbd{C-c C-c} trigger automatic recalculation
391%in lines starting with: {\tt | \# |}.
392
393\key{rotate calculation mark through \# * ! \^ \_ \$}{C-\#}
394
395\key{show line, column, formula reference}{C-c ?}
396\key{sum numbers in current column/rectangle}{C-c +}
397\key{copy down with increment}{S-RET$^3$}
398
399Formulas typed in field are executed by \kbd{TAB},
400\kbd{RET} and \kbd{C-c C-c}. \kbd{=} introduces a column
401formula, \kbd{:=} a named-field formula.
402
403\key{Example: Add Col1 and Col2}{=\$1+\$2}
404\key{... with printf format specification}{=\$1+\$2;\%.2f}
405\key{... with constants from constants.el}{=\$1/\$c/\$cm}
406\metax{sum from 2nd to 3rd hline}{:=vsum(@II..@III)}
407\key{apply current column formula}{=}
408
409{\bf Miscellaneous} 384{\bf Miscellaneous}
410 385
411\key{to limit column width to \kbd{N} characters, use}{...| <N> |...} 386\key{to limit column width to \kbd{N} characters, use}{...| <N> |...}
@@ -413,6 +388,7 @@ formula, \kbd{:=} a named-field formula.
413\key{make current field fully visible}{C-u TAB} 388\key{make current field fully visible}{C-u TAB}
414\metax{export as tab-separated file}{M-x org-table-export} 389\metax{export as tab-separated file}{M-x org-table-export}
415\metax{import tab-separated file}{M-x org-table-import} 390\metax{import tab-separated file}{M-x org-table-import}
391\key{sum numbers in current column/rectangle}{C-c +}
416 392
417{\bf Tables created with the \kbd{table.el} package} 393{\bf Tables created with the \kbd{table.el} package}
418 394
@@ -420,6 +396,42 @@ formula, \kbd{:=} a named-field formula.
420\key{recognize existing table.el table}{C-c C-c} 396\key{recognize existing table.el table}{C-c C-c}
421\key{convert table (Org-mode $\leftrightarrow$ table.el)}{C-c ~} 397\key{convert table (Org-mode $\leftrightarrow$ table.el)}{C-c ~}
422 398
399{\bf Spreadsheet}
400
401Formulas typed in field are executed by \kbd{TAB},
402\kbd{RET} and \kbd{C-c C-c}. \kbd{=} introduces a column
403formula, \kbd{:=} a field formula.
404
405\key{Example: Add Col1 and Col2}{|=\$1+\$2 |}
406\key{... with printf format specification}{|=\$1+\$2;\%.2f|}
407\key{... with constants from constants.el}{|=\$1/\$c/\$cm |}
408\metax{sum from 2nd to 3rd hline}{|:=vsum(@II..@III)|}
409\key{apply current column formula}{| = |}
410
411\key{set and eval column formula}{C-c =}
412\key{set and eval field formula}{C-u C-c =}
413\key{re-apply all stored equations to current line}{C-c *}
414\key{re-apply all stored equations to entire table}{C-u C-c *}
415\key{iterate table to stability}{C-u C-u C-c *}
416\key{rotate calculation mark through \# * ! \^ \_ \$}{C-\#}
417\key{show line, column, formula reference}{C-c ?}
418\key{toggle coordinate grid}{C-c \}}
419\key{toggle formula debugger}{C-c \{}
420
421{\it Formula Editor}
422
423\key{edit formulas in separate buffer}{C-c '}
424\key{exit and install new formulas}{C-c C-c}
425\key{exit, install, and apply new formulas}{C-u C-c C-c}
426\key{abort}{C-c C-q}
427\key{toggle reference style}{C-c C-r}
428\key{pretty-print Lisp formula}{TAB}
429\key{complete Lisp symbol}{M-TAB}
430\key{shift reference point}{S-cursor}
431\key{shift test line for column references}{M-up/down}
432\key{scroll the window showing the table}{M-S-up/down}
433\key{toggle table coordinate grid}{C-c \}}
434
423\section{Links} 435\section{Links}
424 436
425\key{globally store link to the current location}{C-c l$^1$} 437\key{globally store link to the current location}{C-c l$^1$}
@@ -466,24 +478,24 @@ formula, \kbd{:=} a named-field formula.
466%\key{\kbd{vm://myself@some.where.org/folder\#id}}{\rm VM remote} 478%\key{\kbd{vm://myself@some.where.org/folder\#id}}{\rm VM remote}
467 479
468 480
469\section{Remember-mode Integration} 481% \section{Remember-mode Integration}
470 482
471See the manual for how to make remember.el use Org-mode links and 483% See the manual for how to make remember.el use Org-mode links and
472files. The note-finishing command \kbd{C-c C-c} will first prompt for 484% files. The note-finishing command \kbd{C-c C-c} will first prompt for
473an org file. In the file, find a location with: 485% an org file. In the file, find a location with:
474 486
475\key{rotate subtree visibility}{TAB} 487% \key{rotate subtree visibility}{TAB}
476\key{next heading}{DOWN} 488% \key{next heading}{DOWN}
477\key{previous heading}{UP} 489% \key{previous heading}{UP}
478 490
479Insert the note with one of the following: 491% Insert the note with one of the following:
480 492
481\key{as sublevel of heading at cursor}{RET} 493% \key{as sublevel of heading at cursor}{RET}
482\key{right here (cursor not on heading)}{RET} 494% \key{right here (cursor not on heading)}{RET}
483\key{before current heading}{LEFT} 495% \key{before current heading}{LEFT}
484\key{after current heading}{RIGHT} 496% \key{after current heading}{RIGHT}
485\key{shortcut to end of buffer (cursor at buf-start)}{RET} 497% \key{shortcut to end of buffer (cursor at buf-start)}{RET}
486\key{Abort}{q} 498% \key{Abort}{q}
487 499
488\section{Completion} 500\section{Completion}
489 501
@@ -502,16 +514,18 @@ after ``{\tt :}'', and dictionary words elsewhere.
502\section{TODO Items and Checkboxes} 514\section{TODO Items and Checkboxes}
503 515
504\key{rotate the state of the current item}{C-c C-t} 516\key{rotate the state of the current item}{C-c C-t}
517\metax{select next/previous state}{S-LEFT/RIGHT}
518\metax{select next/previous set}{C-S-LEFT/RIGHT}
505\key{view TODO items in a sparse tree}{C-c C-v} 519\key{view TODO items in a sparse tree}{C-c C-v}
506\key{view 3rd TODO keyword's sparse tree}{C-3 C-c C-v} 520\key{view 3rd TODO keyword's sparse tree}{C-3 C-c C-v}
507 521
508\key{set the priority of the current item}{C-c , [ABC]} 522\key{set the priority of the current item}{C-c , [ABC]}
509\key{remove priority cookie from current item}{C-c , SPC} 523\key{remove priority cookie from current item}{C-c , SPC}
510\key{raise priority of current item}{S-UP$^3$} 524\key{raise/lower priority of current item}{S-UP/DOWN$^3$}
511\key{lower priority of current item}{S-DOWN$^3$} 525%\key{lower priority of current item}{S-DOWN$^3$}
512 526
513\key{\kbd{\#+SEQ_TODO: TODO TRY BLUFF DONE}}{\rm todo workflow} 527%\key{\kbd{\#+SEQ_TODO: TODO TRY BLUFF DONE}}{\rm todo workflow}
514\key{\kbd{\#+TYP_TODO: Phil home work DONE}}{\rm todo types} 528%\key{\kbd{\#+TYP_TODO: Phil home work DONE}}{\rm todo types}
515 529
516\key{insert new checkbox item in plain list}{M-S-RET} 530\key{insert new checkbox item in plain list}{M-S-RET}
517\key{toggle checkbox(es) in region/entry/at point}{C-c C-x C-b} 531\key{toggle checkbox(es) in region/entry/at point}{C-c C-x C-b}
@@ -548,13 +562,11 @@ after ``{\tt :}'', and dictionary words elsewhere.
548%\key{... forward/backward one month}{M-S-LEFT/RIGT} 562%\key{... forward/backward one month}{M-S-LEFT/RIGT}
549\key{Toggle custom format display for dates/times}{C-c C-x C-t} 563\key{Toggle custom format display for dates/times}{C-c C-x C-t}
550 564
551 565{\bf Clocking time}
552\section{Clocking Time}
553 566
554\key{start clock on current item}{C-c C-x C-i} 567\key{start clock on current item}{C-c C-x C-i}
555\key{stop clock on current item}{C-c C-x C-o} 568\key{stop clock on current item}{C-c C-x C-o}
556\key{cancel current clock}{C-c C-x C-x} 569\key{cancel current clock}{C-c C-x C-x}
557
558\key{display total subtree times}{C-c C-x C-d} 570\key{display total subtree times}{C-c C-x C-d}
559\key{remove displayed times}{C-c C-c} 571\key{remove displayed times}{C-c C-c}
560\key{insert/update table with clock report}{C-c C-x C-r} 572\key{insert/update table with clock report}{C-c C-x C-r}
@@ -720,21 +732,6 @@ Subtrees whose header starts with COMMENT are never exported.
720 732
721\key{toggle COMMENT keyword on entry}{C-c ;} 733\key{toggle COMMENT keyword on entry}{C-c ;}
722 734
723
724%\section{CUA and pc-select compatibility}%
725
726%Configure the variable {\tt org-CUA-compatibility} to make Org-mode
727%avoid the \kbd{S-<cursor>} bindings used by these modes. When set,
728%Org-mode will change the following keybindings (also in the agenda
729%buffer, but not during date selection). See note mark four$^3$
730%throughout the reference card.
731%%\vskip-mm
732%\beginexample
733%S-UP $\to$ M-p S-DOWN $\to$ M-n
734%S-LEFT $\to$ M-- S-RIGHT $\to$ M-+
735%S-RET $\to$ C-S-RET
736%\endexample
737
738\section{Dynamic Blocks} 735\section{Dynamic Blocks}
739 736
740\key{update dynamic block at point}{C-c C-x C-u} 737\key{update dynamic block at point}{C-c C-x C-u}
@@ -753,10 +750,8 @@ $^3$ Keybinding affected by {\tt org-CUA-compatibility}.
753 750
754\bye 751\bye
755 752
753% Local variables:
754% compile-command: "tex refcard"
755% End:
756 756
757% arch-tag: 139f6750-5cfc-49ca-92b5-237fe5795290 757% arch-tag: 139f6750-5cfc-49ca-92b5-237fe5795290
758
759%%% Local Variables:
760%%% mode: latex
761%%% TeX-master: t
762%%% End:
diff --git a/leim/ChangeLog b/leim/ChangeLog
index 9bf18f4e6da..f4bfce06bb3 100644
--- a/leim/ChangeLog
+++ b/leim/ChangeLog
@@ -1,3 +1,7 @@
12007-06-02 Chong Yidong <cyd@stupidchicken.com>
2
3 * Version 22.1 released.
4
12007-01-30 Kenichi Handa <handa@m17n.org> 52007-01-30 Kenichi Handa <handa@m17n.org>
2 6
3 * CXTERM-DIC/CCDOSPY.tit, CXTERM-DIC/PY-b5.tit, CXTERM-DIC/SW.tit, 7 * CXTERM-DIC/CCDOSPY.tit, CXTERM-DIC/PY-b5.tit, CXTERM-DIC/SW.tit,
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog
index e14679ad820..597d203ba41 100644
--- a/lib-src/ChangeLog
+++ b/lib-src/ChangeLog
@@ -1,3 +1,8 @@
12007-06-07 Glenn Morris <rgm@gnu.org>
2
3 * etags.c (print_version): Add `emacs_copyright' string, for
4 easier automatic updating.
5
12007-05-18 Francesco Potort,Al(B <pot@gnu.org> 62007-05-18 Francesco Potort,Al(B <pot@gnu.org>
2 7
3 * etags.c: Extern definitions of some more pointer functions for 8 * etags.c: Extern definitions of some more pointer functions for
@@ -10,6 +15,10 @@
10 15
11 * makefile.w32-in (VERSION): Increase to 22.1.50. 16 * makefile.w32-in (VERSION): Increase to 22.1.50.
12 17
182007-06-02 Chong Yidong <cyd@stupidchicken.com>
19
20 * Version 22.1 released.
21
132007-02-26 Francesco Potort,Al(B <pot@gnu.org> 222007-02-26 Francesco Potort,Al(B <pot@gnu.org>
14 23
15 * Makefile.in (etags, ctags): Define EMACS_NAME as "GNU Emacs". 24 * Makefile.in (etags, ctags): Define EMACS_NAME as "GNU Emacs".
diff --git a/lib-src/etags.c b/lib-src/etags.c
index b85ec8d57a9..f3534e02d7c 100644
--- a/lib-src/etags.c
+++ b/lib-src/etags.c
@@ -887,8 +887,11 @@ etags --help --lang=ada.");
887static void 887static void
888print_version () 888print_version ()
889{ 889{
890 /* Makes it easier to update automatically. */
891 char emacs_copyright[] = "Copyright (C) 2007 Free Software Foundation, Inc.";
892
890 printf ("%s (%s %s)\n", (CTAGS) ? "ctags" : "etags", EMACS_NAME, VERSION); 893 printf ("%s (%s %s)\n", (CTAGS) ? "ctags" : "etags", EMACS_NAME, VERSION);
891 puts ("Copyright (C) 2007 Free Software Foundation, Inc."); 894 puts (emacs_copyright);
892 puts ("This program is distributed under the terms in ETAGS.README"); 895 puts ("This program is distributed under the terms in ETAGS.README");
893 896
894 exit (EXIT_SUCCESS); 897 exit (EXIT_SUCCESS);
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 9a79d4a0b55..c0b00b8fbb1 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,267 @@
12007-06-10 Martin Rudalics <rudalics@gmx.at>
2
3 * emacs-lisp/bytecomp.el (byte-compile-find-cl-functions): Match
4 against file-name-nondirectory.
5 Fix text on user customization variables.
6 Reported by Johan Bockg,Ae(Brd <bojohan@dd.chalmers.se>.
7
82007-06-09 Alfred M. Szmidt <ams@gnu.org> (tiny change)
9
10 * mail/rmail.el (rmail-movemail-variant-in-use): Fix doc typo.
11
122007-06-09 Davis Herring <herring@lanl.gov>
13
14 * desktop.el (desktop-minor-mode-table): Doc fix.
15
162007-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
17
18 * textmodes/css-mode.el (css-navigation-syntax-table):
19 Use set-char-table-range so it also works in the unicode branch.
20
212007-06-08 Nick Roberts <nickrob@snap.net.nz>
22
23 * help-mode.el (help-xref-forward-stack)
24 (help-xref-stack-forward-item, help-forward-label): New variables.
25 (help-forward): New button type.
26 (help-setup-xref): Initialise help-xref-forward-stack.
27 (help-make-xrefs): Add forward button, if appropriate.
28 (help-xref-go-back): Push item on forward stack.
29 (help-xref-go-forward, help-go-forward): New functions.
30
312007-06-07 Chong Yidong <cyd@stupidchicken.com>
32
33 * dired.el (dired-mode-map): Remove spurious separator.
34
352007-06-07 Juanma Barranquero <lekktu@gmail.com>
36
37 * progmodes/ebrowse.el (ebrowse-draw-file-member-info): Doc fix.
38
39 * progmodes/mixal-mode.el (mixal-operation-codes-alist):
40 * progmodes/idlwave.el (idlwave-one-key-select): Fix typo in docstring.
41
422007-06-07 Carsten Dominik <dominik@science.uva.nl>
43
44 * textmodes/org.el: Version number fixed.
45
462007-06-07 Glenn Morris <rgm@gnu.org>
47
48 * version.el (emacs-copyright): New constant.
49 * startup.el (fancy-splash-tail): Use emacs-copyright.
50 * calc/calc-help.el (calc-full-help): Use emacs-copyright.
51
52 * emacs-lisp/bytecomp.el (byte-compile-warnings): Add new option
53 `make-local'.
54 (byte-compile-warnings-safe-p): Add `make-local'.
55 (byte-compile-make-variable-buffer-local):
56 Allow byte-compile-warnings to suppress this warning.
57
58 * tutorial.el (tutorial--describe-nonstandard-key): Adjust for new
59 format of "menu" description.
60 (tutorial--find-changed-keys): Describe the specific menu a
61 command is in.
62
63 * dframe.el (dframe-frame-parameter, dframe-mouse-event-p):
64 Rewrite compatibility functions to silence byte-compiler.
65
662007-06-07 Alfred M. Szmidt <ams@gnu.org> (tiny change)
67
68 * mail/rmailsum.el (rmail-summary-save-buffer): New command.
69 (rmail-summary-mode-map): Add rmail-summary-save-buffer.
70
712007-06-07 Eric M. Ludlam <eric@siege-engine.com>
72
73 * emacs-lisp/checkdoc.el (checkdoc-ispell-lisp-words): Remove "iff".
74
752007-06-07 Juanma Barranquero <lekktu@gmail.com>
76
77 * progmodes/ebrowse.el (ebrowse-member-table):
78 * textmodes/org.el (org-export-ascii-bullets, org-batch-agenda)
79 (org-batch-agenda-csv): Fix typos in docstrings.
80
812007-06-06 Juanma Barranquero <lekktu@gmail.com>
82
83 * international/mule-cmds.el (toggle-enable-multibyte-characters)
84 (sort-coding-systems, search-unencodable-char): Doc fixes.
85 (coding-system-change-eol-conversion, set-default-coding-systems)
86 (prefer-coding-system, find-multibyte-characters, princ-list)
87 (leim-list-entry-regexp, set-input-method, locale-language-names)
88 (input-method-exit-on-first-char, exit-language-environment-hook)
89 (locale-charset-language-names): Fix typos in docstrings.
90
912007-06-06 Juanma Barranquero <lekktu@gmail.com>
92
93 * pgg.el (pgg-sign-region, pgg-sign):
94 * ses.el (ses-call-printer):
95 * calendar/icalendar.el (icalendar--diarytime-to-isotime):
96 * textmodes/org.el (org-cycle): Fix typos in docstrings.
97
982007-06-06 Carsten Dominik <dominik@science.uva.nl>
99
100 * textmodes/org.el
101 (org-export-region-as-html, org-replace-region-by-html)
102 (org-number-to-letters, org-table-fedit-finish)
103 (org-normalize-color, org-table-fedit-ref-right)
104 (org-date-to-gregorian, org-table-fedit-move)
105 (org-table-convert-refs-to-rc, org-calendar-holiday)
106 (org-table-fedit-toggle-ref-type, org-write-agenda)
107 (org-colgroup-info-to-vline-list, org-agenda-todo-previousset)
108 (org-defkey, org-encode-for-stdout)
109 (org-indent-line-function, org-export-as-html-to-buffer)
110 (org-store-agenda-views, org-update-mode-line)
111 (org-find-if, org-delete-all)
112 (org-table-fedit-convert-buffer, org-emphasize)
113 (org-uniquify, org-table-fedit-lisp-indent)
114 (org-table-fedit-scroll, org-get-todo-sequence-head)
115 (org-table-fedit-scroll-down, org-table-fedit-line-down)
116 (org-table-fedit-ref-left, org-agenda-export-csv-mapper)
117 (org-table-fedit-toggle-coordinates, org-dvipng-color)
118 (org-table-fedit-line-up, org-table-fedit-ref-down)
119 (org-table-formula-from-user, org-mode-flyspell-verify)
120 (org-cycle-show-empty-lines, org-ctrl-c-ret)
121 (org-table-formula-to-user, org-diary-to-ical-string)
122 (orgtbl-export, org-table-fedit-post-command)
123 (org-closed-in-range, org-shiftcontrolright)
124 (org-table-convert-refs-to-an, org-table-hline-and-move)
125 (org-table-formula-less-p, org-format-table-ascii)
126 (org-agenda-get-sexps, org-shift-refpart)
127 (org-diary-sexp-entry, org-time-string-to-absolute)
128 (org-table-show-reference, org-letters-to-number)
129 (org-fix-agenda-info, org-table-fedit-ref-up)
130 (org-table-fedit-shift-reference, org-table-fedit-abort)
131 (org-closest-date, org-shiftcontrolleft)
132 (org-at-heading-or-item-p, org-rematch-and-replace)
133 (org-agenda-todo-nextset, org-export-grab-title-from-buffer):
134 New functions.
135 (org-table-edit-scroll-down, org-finish-edit-formulas)
136 (org-table-edit-next-field, org-abort-edit-formulas)
137 (org-font-lock-level, org-export-find-first-heading-line)
138 (org-table-edit-line-down, org-table-edit-backward-field)
139 (org-edit-formula-lisp-indent, org-table-edit-move)
140 (org-check-log-option, org-this-word)
141 (org-table-edit-line-up, org-table-edit-formulas-post-command)
142 (org-agenda-file-to-end, org-expand-file-name)
143 (org-fake-empty-table-line, org-table-edit-scroll)
144 (org-toggle-log-option, org-show-reference): Function removed.
145 (org-inhibit-invisibility, org-table-formula-make-cmp-string):
146 New defsubsts.
147 (org-unmodified, org-batch-store-agenda-views)
148 (org-batch-agenda-csv): New macro.
149 (org-agenda-export): New customization group.
150 (org-agenda-skip-deadline-if-done, org-agenda-remove-tags)
151 (org-highest-priority, org-agenda-exporter-settings)
152 (org-log-done-with-time, org-replace-disputed-keys)
153 (org-format-latex-header, org-export-table-header-tags)
154 (org-cycle-separator-lines, org-export-table-data-tags)
155 (org-icalendar-include-sexps)
156 (org-empty-line-terminates-plain-lists)
157 (org-log-repeat, org-special-ctrl-a)
158 (org-table-use-standard-references, org-disputed-keys)
159 (org-export-skip-text-before-1st-heading, org-agenda-with-colors)
160 (org-agenda-export-html-style): New option.
161 (org-allow-auto-repeat, org-agenda-remove-tags-when-in-prefix)
162 (org-CUA-compatible): Option removed.
163 (org-agenda-structure, org-sexp-date): New face.
164 (org-todo-keywords-for-agenda, org-not-done-keywords)
165 (org-planning-or-clock-line-re, org-agenda-name)
166 (org-table-colgroup-info, org-todo-sets)
167 (constants-unit-system, org-clock-mode-line-entry)
168 (org-mode-line-timer, org-table-current-begin-pos)
169 (org-todo-keywords-1, org-mode-line-string)
170 (org-table-clean-did-remove-column, org-table-fedit-map)
171 (org-clock-heading, org-table-buffer-is-an)
172 (org-agenda-info, org-done-keywords)
173 (org-done-keywords-for-agenda, org-todo-heads)
174 (org-todo-kwd-alist, org-clock-start-time): New variable.
175 (org-todo-kwd-priority-p, org-edit-formulas-map)
176 (org-repeat-re, org-todo-kwd-max-priority)
177 (org-version, org-done-string)
178 (org-table-clean-did-remove-column-1, org-disputed-keys):
179 Remove Variables.
180 (org-table-translate-regexp, org-repeat-re, org-version): New consts.
181 (org-ts-lengths): Constant removed.
182 (org-follow-gnus-link): Don't ask how many articles to read.
183 (org-export-find-first-export-line): Rename from
184 `org-export-find-first-heading'.
185 Use `org-export-skip-text-before-1st-heading'.
186 (org-table-fedit-post-command): Rename from
187 `org-table-edit-formulas-post-command'.
188 (org-table-fedit-finish): Rename from `org-finish-edit-formulas'.
189 (org-table-fedit-abort): Rename from `org-abort-edit-formulas'.
190 (org-table-fedit-lisp-indent): Rename from
191 `org-edit-formula-lisp-indent'.
192 (org-table-show-reference): Rename from `org-show-reference'.
193 (org-table-store-formulas): Use `org-table-formula-less-p'.
194 (org-table-edit-formulas): Position cursor to current field equation.
195 (org-update-checkbox-count, org-hide-archived-subtrees)
196 (org-timestamp-up-day, org-timestamp-down-day)
197 (org-shiftmetaleft, org-shiftmetaright, org-shiftmetaup)
198 (org-shiftmetadown, org-metaleft, org-metaright, org-metaup)
199 (org-metadown, org-shiftup, org-shiftdown, org-shiftright)
200 (org-shiftleft, org-ctrl-c-ctrl-c, org-context):
201 Let `org-on-heading-p' also check for invisible heading.
202 (org-read-date): Match am/pm times.
203 (org-eval-in-calendar): Fix default date in prompt.
204
2052007-06-05 Chong Yidong <cyd@stupidchicken.com>
206
207 * files.el (auto-mode-alist): Separate "ChangeLog.1" and
208 "ChangeLog.a" entries, giving the latter lower priority.
209
2102007-06-05 Juanma Barranquero <lekktu@gmail.com>
211
212 * faces.el (face-id): If the argument is a face alias,
213 return the ID of the target face.
214
2152007-06-05 Michael Albinus <michael.albinus@gmx.de>
216
217 * net/socks.el (top): Remove unnecessary copyright line.
218
2192007-06-04 Chong Yidong <cyd@stupidchicken.com>
220
221 * longlines.el (longlines-auto-wrap): Handle argument correctly.
222
2232007-06-04 Michael Albinus <michael.albinus@gmx.de>
224
225 * net/socks.el: New file, taken from w3 repository.
226 (top): Update Copyright. Don't load cl.el.
227 (all): Replace `case' by `cond', `string-to-int' by
228 `string-to-number', and `process-kill-without-query' by
229 `set-process-query-on-exit-flag'.
230 (socks-char-int): Remove defalias and all occurencies.
231
2322007-06-04 Juanma Barranquero <lekktu@gmail.com>
233
234 * progmodes/compile.el (compilation-find-file, compilation-handle-exit):
235 Fix typos in docstrings.
236 (compilation-search-path, compilation-buffer-name-function): Doc fixes.
237 (compilation-finish-function): Fix typo in obsolescence declaration.
238
2392007-06-03 Sam Steingold <sds@gnu.org>
240
241 * progmodes/compile.el: Add TIMESTAMP to the LOC data structure, to
242 handle unending automatic recompilation of changed files (`omake -P').
243 (compilation-loop): VISITED is now 5th CDR.
244 (compilation-next-error-function): Set TIMESTAMP.
245
2462007-06-03 Sam Steingold <sds@gnu.org>
247
248 * files.el (kill-buffer-ask): New function.
249 (kill-some-buffers): Use it.
250 (kill-matching-buffers): New user command.
251
2522007-06-01 David Kastrup <dak@gnu.org>
253
254 * dired.el (dired-recursive-deletes, dired-recursive-copies):
255 Change default to `top'.
256
2572007-05-31 Richard Stallman <rms@gnu.org>
258
259 * dired.el (dired-do-flagged-delete, dired-do-delete): Doc fix.
260
2612007-05-31 Stefan Monnier <monnier@iro.umontreal.ca>
262
263 * textmodes/css-mode.el: New file.
264
12007-05-30 Michael Olson <mwolson@gnu.org> 2652007-05-30 Michael Olson <mwolson@gnu.org>
2 266
3 * emacs-lisp/tq.el (tq-queue-pop): Stifle error when a process has 267 * emacs-lisp/tq.el (tq-queue-pop): Stifle error when a process has
@@ -9,8 +273,8 @@
92007-05-29 Martin Rudalics <rudalics@gmx.at> 2732007-05-29 Martin Rudalics <rudalics@gmx.at>
10 274
11 * textmodes/table.el (table--point-entered-cell-function) 275 * textmodes/table.el (table--point-entered-cell-function)
12 (table--point-left-cell-function): Bind 276 (table--point-left-cell-function):
13 `inhibit-point-motion-hooks' to t. 277 Bind `inhibit-point-motion-hooks' to t.
14 278
152007-05-29 Nikolaj Schumacher <n_schumacher@web.de> (tiny change) 2792007-05-29 Nikolaj Schumacher <n_schumacher@web.de> (tiny change)
16 280
@@ -35,18 +299,17 @@
35 299
36 * net/tramp.el (top): Make `set-buffer-multibyte' an alias if it 300 * net/tramp.el (top): Make `set-buffer-multibyte' an alias if it
37 doesn't exist. 301 doesn't exist.
38 (with-parsed-tramp-file-name): Protect debug spec during 302 (with-parsed-tramp-file-name): Protect debug spec during compilation.
39 compilation.
40 (tramp-handle-insert-directory): Check (featurep 'ls-lisp). 303 (tramp-handle-insert-directory): Check (featurep 'ls-lisp).
41 (tramp-file-name-p, tramp-file-name-multi-method) 304 (tramp-file-name-p, tramp-file-name-multi-method)
42 (tramp-file-name-method, tramp-file-name-user) 305 (tramp-file-name-method, tramp-file-name-user)
43 (tramp-file-name-host, tramp-file-name-localname): New defuns, 306 (tramp-file-name-host, tramp-file-name-localname): New defuns,
44 replacing defstruct `tramp-file-name'. 307 replacing defstruct `tramp-file-name'.
45 (tramp-handle-file-remote-p, tramp-completion-dissect-file-name1) 308 (tramp-handle-file-remote-p, tramp-completion-dissect-file-name1)
46 (tramp-dissect-file-name, tramp-dissect-multi-file-name): Apply 309 (tramp-dissect-file-name, tramp-dissect-multi-file-name):
47 `vector' instead of `make-tramp-file-name'. 310 Apply `vector' instead of `make-tramp-file-name'.
48 (tramp-handle-make-auto-save-file-name): Apply 311 (tramp-handle-make-auto-save-file-name):
49 `tramp-temporary-file-directory' for compatibility reasons. 312 Apply `tramp-temporary-file-directory' for compatibility reasons.
50 (tramp-completion-mode): Use `natnump' instead of `wholenump' 313 (tramp-completion-mode): Use `natnump' instead of `wholenump'
51 because of XEmacs. 314 because of XEmacs.
52 (tramp-completion-mode): `last-input-event' is nil when XEmacs is 315 (tramp-completion-mode): `last-input-event' is nil when XEmacs is
@@ -170,8 +433,8 @@
170 433
1712007-05-22 Katsumi Yamaoka <yamaoka@jpl.org> (tiny change) 4342007-05-22 Katsumi Yamaoka <yamaoka@jpl.org> (tiny change)
172 435
173 * mail/mail-extr.el (mail-extract-address-components): Recognize 436 * mail/mail-extr.el (mail-extract-address-components):
174 non-ASCII characters except for NBSP as words. 437 Recognize non-ASCII characters except for NBSP as words.
175 438
1762007-05-21 Trent Buck <trentbuck@gmail.com> (tiny change) 4392007-05-21 Trent Buck <trentbuck@gmail.com> (tiny change)
177 440
@@ -182,8 +445,8 @@
1822007-05-21 Chong Yidong <cyd@stupidchicken.com> 4452007-05-21 Chong Yidong <cyd@stupidchicken.com>
183 446
184 * image-mode.el (image-toggle-display): Don't clear image cache. 447 * image-mode.el (image-toggle-display): Don't clear image cache.
185 Only use filename in image spec if the file is readable. Call 448 Only use filename in image spec if the file is readable.
186 image-refresh. 449 Call image-refresh.
187 450
188 * image.el (image-type-from-file-name, image-type): Simplify. 451 * image.el (image-type-from-file-name, image-type): Simplify.
189 (image-type-auto-detected-p): Don't scan auto-mode-alist. 452 (image-type-auto-detected-p): Don't scan auto-mode-alist.
@@ -211,6 +474,10 @@
211 * files.el (auto-mode-alist): Change the regexp so that 474 * files.el (auto-mode-alist): Change the regexp so that
212 ChangeLog.unicode and ChangeLog.multi-tty use change-log-mode. 475 ChangeLog.unicode and ChangeLog.multi-tty use change-log-mode.
213 476
4772007-06-02 Chong Yidong <cyd@stupidchicken.com>
478
479 * Version 22.1 released.
480
2142007-05-19 Chong Yidong <cyd@stupidchicken.com> 4812007-05-19 Chong Yidong <cyd@stupidchicken.com>
215 482
216 * paren.el (show-paren-function): Undo 2007-04-19 and 2007-04-20 483 * paren.el (show-paren-function): Undo 2007-04-19 and 2007-04-20
@@ -230,7 +497,7 @@
230 497
2312007-05-18 Rob Riepel <riepel@Stanford.EDU> 4982007-05-18 Rob Riepel <riepel@Stanford.EDU>
232 499
233 * emulation/tpu-edt.el (CSI-map, SS3-map): Moved from global-map to 500 * emulation/tpu-edt.el (CSI-map, SS3-map): Move from global-map to
234 tpu-global-map. 501 tpu-global-map.
235 (tpu-original-global-map): Variable deleted. 502 (tpu-original-global-map): Variable deleted.
236 (tpu-control-keys-map): New keymap variable. 503 (tpu-control-keys-map): New keymap variable.
diff --git a/lisp/ChangeLog.12 b/lisp/ChangeLog.12
index b2ca5ab0682..a5b9de08daa 100644
--- a/lisp/ChangeLog.12
+++ b/lisp/ChangeLog.12
@@ -271,7 +271,7 @@
2712007-04-14 Nick Roberts <nickrob@snap.net.nz> 2712007-04-14 Nick Roberts <nickrob@snap.net.nz>
272 272
273 * tmm.el (tmm-get-keybind): Use copy-sequence to ensure that the 273 * tmm.el (tmm-get-keybind): Use copy-sequence to ensure that the
274 global map isn't modified 274 global map isn't modified.
275 275
2762007-04-14 Glenn Morris <rgm@gnu.org> 2762007-04-14 Glenn Morris <rgm@gnu.org>
277 277
@@ -1413,7 +1413,7 @@
1413 * progmodes/python.el (python-quote-syntax): Don't bother with 1413 * progmodes/python.el (python-quote-syntax): Don't bother with
1414 syntax-ppss-context. 1414 syntax-ppss-context.
1415 (python-fill-paragraph): Make sure that fenced-string delimiters that 1415 (python-fill-paragraph): Make sure that fenced-string delimiters that
1416 stand on their own line stay there 1416 stand on their own line stay there.
1417 1417
14182007-03-01 Lennart Borgman <lennart.borgman.073@student.lu.se> 14182007-03-01 Lennart Borgman <lennart.borgman.073@student.lu.se>
1419 1419
@@ -2549,7 +2549,7 @@
2549 * type-break.el (type-break-demo-hanoi, type-break-demo-life) 2549 * type-break.el (type-break-demo-hanoi, type-break-demo-life)
2550 (type-break-demo-boring): Call read-event instead of read-char. 2550 (type-break-demo-boring): Call read-event instead of read-char.
2551 2551
25522007-01-19 Daniel Pfeiffer <occitan@esperanto.org> (small change) 25522007-01-19 Daniel Pfeiffer <occitan@esperanto.org> (tiny change)
2553 2553
2554 * progmodes/compile.el: Add handling for makepplog. 2554 * progmodes/compile.el: Add handling for makepplog.
2555 2555
@@ -3414,7 +3414,7 @@
3414 (wdired-search-and-rename): Simplify code. 3414 (wdired-search-and-rename): Simplify code.
3415 (wdired-preprocess-files, wdired-preprocess-perms): Make 3415 (wdired-preprocess-files, wdired-preprocess-perms): Make
3416 read-only property of preceding character rear-nonsticky to 3416 read-only property of preceding character rear-nonsticky to
3417 avoid that it can be modified. Put old-name and old-link 3417 avoid that it can be modified. Put old-name and old-link
3418 properties on character preceding name and replace 3418 properties on character preceding name and replace
3419 put-text-property by add-text-properties. 3419 put-text-property by add-text-properties.
3420 (wdired-get-filename, wdired-get-previous-link): Get old-name 3420 (wdired-get-filename, wdired-get-previous-link): Get old-name
@@ -3605,7 +3605,7 @@
3605 allout-mode-map. Call it on file load, so the mode docstring 3605 allout-mode-map. Call it on file load, so the mode docstring
3606 substitutions work even if allout mode has not yet been invoked. 3606 substitutions work even if allout mode has not yet been invoked.
3607 (allout-mode): Use new allout-setup-mode-map to track any keybinding 3607 (allout-mode): Use new allout-setup-mode-map to track any keybinding
3608 customizations since the map was last processed. Also, refine the 3608 customizations since the map was last processed. Also, refine the
3609 docstring so it's ship-shape for release. 3609 docstring so it's ship-shape for release.
3610 (allout-default-layout, allout-beginning-of-line-cycles) 3610 (allout-default-layout, allout-beginning-of-line-cycles)
3611 (allout-distinctive-bullets-string, allout-use-mode-specific-leader) 3611 (allout-distinctive-bullets-string, allout-use-mode-specific-leader)
@@ -5281,7 +5281,7 @@
5281 New C-c key bindings: for `cperl-find-bad-style', 5281 New C-c key bindings: for `cperl-find-bad-style',
5282 `cperl-pod-spell', `cperl-here-doc-spell', `cperl-narrow-to-here-doc', 5282 `cperl-pod-spell', `cperl-here-doc-spell', `cperl-narrow-to-here-doc',
5283 `cperl-perdoc', and `cperl-perldoc-at-point'. 5283 `cperl-perdoc', and `cperl-perldoc-at-point'.
5284 CPerl Mode menu changes: "Fix style by spaces", "Imenu on Perl Info" 5284 CPerl Mode menu changes: "Fix style by spaces", "Imenu on Perl Info"
5285 moved, new submenu of Tools with Ispell entries and narrowing. 5285 moved, new submenu of Tools with Ispell entries and narrowing.
5286 (cperl-after-sub-regexp): New defsubst. 5286 (cperl-after-sub-regexp): New defsubst.
5287 (cperl-imenu--function-name-regexp-perl): Use `cperl-after-sub-regexp'. 5287 (cperl-imenu--function-name-regexp-perl): Use `cperl-after-sub-regexp'.
@@ -5304,7 +5304,7 @@
5304 (cperl-calculate-indent): Try to allow '_' be non-word char 5304 (cperl-calculate-indent): Try to allow '_' be non-word char
5305 Support subs with attributes. 5305 Support subs with attributes.
5306 (cperl-where-am-i): Quiet (?) a warning. 5306 (cperl-where-am-i): Quiet (?) a warning.
5307 (cperl-cached-syntax-table) New function. 5307 (cperl-cached-syntax-table): New function.
5308 (cperl-forward-re): Use `cperl-cached-syntax-table'. 5308 (cperl-forward-re): Use `cperl-cached-syntax-table'.
5309 (cperl-unwind-to-safe): Recognize `syntax-type' property 5309 (cperl-unwind-to-safe): Recognize `syntax-type' property
5310 changing in a middle of line. 5310 changing in a middle of line.
@@ -5478,7 +5478,7 @@
5478 (cperl-string-syntax-table): Make { and } not-grouping 5478 (cperl-string-syntax-table): Make { and } not-grouping
5479 (Sometimes they ARE grouping in RExen, but matching them would only 5479 (Sometimes they ARE grouping in RExen, but matching them would only
5480 confuse in many situations when they are not) 5480 confuse in many situations when they are not)
5481 (beginning-of-buffer): Replace two occurences with goto-char... 5481 (beginning-of-buffer): Replace two occurrences with goto-char...
5482 (cperl-calculate-indent): `char-after' could be nil... 5482 (cperl-calculate-indent): `char-after' could be nil...
5483 (cperl-find-pods-heres): REx can start after "[" too. 5483 (cperl-find-pods-heres): REx can start after "[" too.
5484 Hightlight (??{}) in RExen too. 5484 Hightlight (??{}) in RExen too.
@@ -5551,7 +5551,7 @@
5551 (cperl-next-interpolated-REx): New function. 5551 (cperl-next-interpolated-REx): New function.
5552 (cperl-next-interpolated-REx-0): Likewise. 5552 (cperl-next-interpolated-REx-0): Likewise.
5553 (cperl-next-interpolated-REx-1): Likewise. 5553 (cperl-next-interpolated-REx-1): Likewise.
5554 "\C-c\C-x", "\C-c\C-y", "\C-c\C-v": New keybinding for these functions. 5554 "\C-c\C-x", "\C-c\C-y", "\C-c\C-v": New keybinding for these functions.
5555 Perl/Regexp menu: 3 new entries for `cperl-next-interpolated-REx'. 5555 Perl/Regexp menu: 3 new entries for `cperl-next-interpolated-REx'.
5556 (cperl-praise): Mention finded interpolated RExen. 5556 (cperl-praise): Mention finded interpolated RExen.
5557 5557
@@ -5797,7 +5797,7 @@
5797 5797
5798 * wid-edit.el (widget-button-click-moves-point): New variable. 5798 * wid-edit.el (widget-button-click-moves-point): New variable.
5799 (widget-button-click): If widget-button-click-moves-point is 5799 (widget-button-click): If widget-button-click-moves-point is
5800 non-nil, set point after performing the button action 5800 non-nil, set point after performing the button action.
5801 5801
5802 * cus-edit.el (custom-mode): Set widget-button-click-moves-point. 5802 * cus-edit.el (custom-mode): Set widget-button-click-moves-point.
5803 5803
@@ -6069,8 +6069,8 @@
6069 buffer-read-only isn't set. 6069 buffer-read-only isn't set.
6070 (allout-annotate-hidden): Enable topic annotation during copies even 6070 (allout-annotate-hidden): Enable topic annotation during copies even
6071 when the buffer is read-only, eg for topic copies. Ensure that the loop 6071 when the buffer is read-only, eg for topic copies. Ensure that the loop
6072 advances, even when the span extends beyond the deletion region. 6072 advances, even when the span extends beyond the deletion region.
6073 (allout-toggle-subtree-encryption): Use allout-structure-added-hook 6073 (allout-toggle-subtree-encryption): Use allout-structure-added-hook
6074 rather than allout-exposure-changed-hook, as a stronger assertion. 6074 rather than allout-exposure-changed-hook, as a stronger assertion.
6075 (allout-keybindings-list): Add bindings for 6075 (allout-keybindings-list): Add bindings for
6076 allout-copy-line-as-kill and allout-copy-topic-as-kill. 6076 allout-copy-line-as-kill and allout-copy-topic-as-kill.
@@ -6121,7 +6121,7 @@
6121 6121
6122 * cus-start.el (all): Rename x-gtk-show-chooser-help-text to 6122 * cus-start.el (all): Rename x-gtk-show-chooser-help-text to
6123 x-gtk-file-dialog-help-text. Rename x-use-old-gtk-file-dialog 6123 x-gtk-file-dialog-help-text. Rename x-use-old-gtk-file-dialog
6124 to x-gtk-use-old-file-dialog 6124 to x-gtk-use-old-file-dialog.
6125 6125
61262006-09-18 Richard Stallman <rms@gnu.org> 61262006-09-18 Richard Stallman <rms@gnu.org>
6127 6127
@@ -8116,7 +8116,7 @@
8116 8116
8117 * tumme.el (tumme-create-thumb, tumme-thumbnail-display-external) 8117 * tumme.el (tumme-create-thumb, tumme-thumbnail-display-external)
8118 (tumme-display-image, tumme-rotate-thumbnail, tumme-rotate-original) 8118 (tumme-display-image, tumme-rotate-thumbnail, tumme-rotate-original)
8119 (tumme-set-exif-data, tumme-get-exif-data): Use shell-command-switch. 8119 (tumme-set-exif-data, tumme-get-exif-data): Use shell-command-switch.
8120 8120
8121 * thumbs.el (thumbs-call-convert): Use shell-command-switch. 8121 * thumbs.el (thumbs-call-convert): Use shell-command-switch.
8122 8122
@@ -8652,7 +8652,7 @@
8652 (viper-next-line-at-bol): If point is on a widget or a button, simulate 8652 (viper-next-line-at-bol): If point is on a widget or a button, simulate
8653 clicking on that widget/button. 8653 clicking on that widget/button.
8654 8654
8655 * viper.el (viper-mode): Allow a separate cursor color in Emacs state. 8655 * viper.el (viper-mode): Allow a separate cursor color in Emacs state.
8656 8656
8657 * ediff-diff (ediff-test-patch-utility): Catch errors. 8657 * ediff-diff (ediff-test-patch-utility): Catch errors.
8658 (ediff-actual-diff-options, ediff-actual-diff3-options): New variables. 8658 (ediff-actual-diff-options, ediff-actual-diff3-options): New variables.
@@ -9203,7 +9203,7 @@
9203 (ewoc--wrap): New func. 9203 (ewoc--wrap): New func.
9204 (ewoc-create): Take additional arg NOSEP. If nil, wrap node and 9204 (ewoc-create): Take additional arg NOSEP. If nil, wrap node and
9205 header/footer pretty-printers. Save header/footer pretty-printer. 9205 header/footer pretty-printers. Save header/footer pretty-printer.
9206 (ewoc-set-hf): Use ewoc's header/footer pretty-printer. * 9206 (ewoc-set-hf): Use ewoc's header/footer pretty-printer.
9207 9207
9208 * pcvs.el (cvs-make-cvs-buffer): Specify NOSEP to `ewoc-create'. 9208 * pcvs.el (cvs-make-cvs-buffer): Specify NOSEP to `ewoc-create'.
9209 9209
@@ -10152,7 +10152,7 @@
101522006-05-05 Eli Zaretskii <eliz@gnu.org> 101522006-05-05 Eli Zaretskii <eliz@gnu.org>
10153 10153
10154 * startup.el (command-line): On MS-Windows, probe "~", not 10154 * startup.el (command-line): On MS-Windows, probe "~", not
10155 "~USER", for warning about non-existent home directory 10155 "~USER", for warning about non-existent home directory.
10156 10156
10157 * arc-mode.el (archive-l-e): New optional argument `float' means 10157 * arc-mode.el (archive-l-e): New optional argument `float' means
10158 generate a float value. 10158 generate a float value.
@@ -12103,7 +12103,7 @@
12103 preserve window-start. 12103 preserve window-start.
12104 (speedbar-update-directory-contents): Try to preserve window-start 12104 (speedbar-update-directory-contents): Try to preserve window-start
12105 and window-point. 12105 and window-point.
12106 (speedbar-update-special-contents): Don't move back to start of window. 12106 (speedbar-update-special-contents): Don't move back to start of window.
12107 12107
12108 * progmodes/gdb-ui.el (gdb-speedbar-refresh): Rename from 12108 * progmodes/gdb-ui.el (gdb-speedbar-refresh): Rename from
12109 gdb-speedbar-timer-fn. Use speedbar-refresh instead of 12109 gdb-speedbar-timer-fn. Use speedbar-refresh instead of
@@ -12729,7 +12729,7 @@
12729 12729
12730 (allout-mode): Explicitly specify the mode map in the docstring. 12730 (allout-mode): Explicitly specify the mode map in the docstring.
12731 Clarify provision for various write-file hook var names. 12731 Clarify provision for various write-file hook var names.
12732 Adjusted for invisible-text overlays instead of selective-display. 12732 Adjusted for invisible-text overlays instead of selective-display.
12733 12733
12734 (allout-depth): Really return 0 if not within any topic. This 12734 (allout-depth): Really return 0 if not within any topic. This
12735 rectifies `allout-beginning-of-level' and sequence numbering 12735 rectifies `allout-beginning-of-level' and sequence numbering
@@ -15747,10 +15747,10 @@
157472005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> 157472005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org>
15748 15748
15749 * progmodes/cc-fix.el: Add definitions of the macros push and pop 15749 * progmodes/cc-fix.el: Add definitions of the macros push and pop
15750 (for GNU Emacs 20.4) 15750 (for GNU Emacs 20.4).
15751 15751
15752 * progmodes/cc-defs.el: 15752 * progmodes/cc-defs.el:
15753 (i): Load cc-fix.elc for `push' and `pop' (for GNU Emacs 20.4) 15753 (i): Load cc-fix.elc for `push' and `pop' (for GNU Emacs 20.4).
15754 15754
15755 * progmodes/cc-cmds.el (c-show-syntactic-information): Change the 15755 * progmodes/cc-cmds.el (c-show-syntactic-information): Change the
15756 highlighting mechanism so it will work in XEmacs too. 15756 highlighting mechanism so it will work in XEmacs too.
@@ -16051,7 +16051,7 @@
16051 16051
16052 Introduce an "awk" style, mainly for auto-newline and clean-ups. 16052 Introduce an "awk" style, mainly for auto-newline and clean-ups.
16053 16053
16054 * progmodes/cc-align.el: New function c-snug-1line-defun-close 16054 * progmodes/cc-align.el: New function c-snug-1line-defun-close.
16055 16055
16056 * progmodes/cc-cmds.el: In c-electric-brace, add code for new 16056 * progmodes/cc-cmds.el: In c-electric-brace, add code for new
16057 clean-up one-liner-defun. 16057 clean-up one-liner-defun.
@@ -16185,7 +16185,7 @@
16185 16185
16186 * progmodes/cc-awk.el: Move regexps for analysing AWK code to near the 16186 * progmodes/cc-awk.el: Move regexps for analysing AWK code to near the
16187 start of the file. ^L now separate sections of the file. 16187 start of the file. ^L now separate sections of the file.
16188 (c-awk-non-eol-esc-pair-re, c-awk-blank-or-comment-line-re) 16188 (c-awk-non-eol-esc-pair-re, c-awk-blank-or-comment-line-re)
16189 (c-awk-one-line-possibly-open-string-re) 16189 (c-awk-one-line-possibly-open-string-re)
16190 (c-awk-regexp-one-line-possibly-open-char-class-re) 16190 (c-awk-regexp-one-line-possibly-open-char-class-re)
16191 (c-awk-one-line-possibly-open-regexp-re) 16191 (c-awk-one-line-possibly-open-regexp-re)
@@ -17298,7 +17298,7 @@
17298 17298
172992005-11-30 Kim F. Storm <storm@cua.dk> 172992005-11-30 Kim F. Storm <storm@cua.dk>
17300 17300
17301 * emulation/cua-rect.el (cua--rectangle-overlays): Make permanent-local. 17301 * emulation/cua-rect.el (cua--rectangle-overlays): Make permanent-local.
17302 (cua--rectangle-post-command): Cleanup overlays and deactivate mark 17302 (cua--rectangle-post-command): Cleanup overlays and deactivate mark
17303 after revert-buffer (or anything else which kills all local variables). 17303 after revert-buffer (or anything else which kills all local variables).
17304 17304
@@ -18540,7 +18540,7 @@
18540 (pgg-pgp5-sign-region, pgg-pgp5-sign): Add optional PASSPHRASE 18540 (pgg-pgp5-sign-region, pgg-pgp5-sign): Add optional PASSPHRASE
18541 argument to all these routines, so the passphrase can be managed 18541 argument to all these routines, so the passphrase can be managed
18542 externally and passed in to the system. 18542 externally and passed in to the system.
18543 (pgg-pgp5-sign-region): Use new name of pgg-add-passphrase-to-cache 18543 (pgg-pgp5-sign-region): Use new name of pgg-add-passphrase-to-cache
18544 function. 18544 function.
18545 18545
185462005-11-04 Dan Nicolaescu <dann@ics.uci.edu> 185462005-11-04 Dan Nicolaescu <dann@ics.uci.edu>
@@ -18762,7 +18762,7 @@
18762 (pgg-pgp5-sign-region, pgg-pgp5-sign): Add optional PASSPHRASE 18762 (pgg-pgp5-sign-region, pgg-pgp5-sign): Add optional PASSPHRASE
18763 argument to all these routines, so the passphrase can be managed 18763 argument to all these routines, so the passphrase can be managed
18764 externally and passed in to the system. 18764 externally and passed in to the system.
18765 (pgg-pgp5-sign-region): Use new name of pgg-add-passphrase-to-cache 18765 (pgg-pgp5-sign-region): Use new name of pgg-add-passphrase-to-cache
18766 function. 18766 function.
18767 18767
187682005-11-04 Edward O'Connor <hober0@gmail.com> (tiny change) 187682005-11-04 Edward O'Connor <hober0@gmail.com> (tiny change)
@@ -19664,14 +19664,14 @@
19664 New defvar. Replaces `dired-move-to-filename-regexp' from dired.el. 19664 New defvar. Replaces `dired-move-to-filename-regexp' from dired.el.
19665 19665
19666 * dired.el (dired-move-to-filename-regexp): Remove. 19666 * dired.el (dired-move-to-filename-regexp): Remove.
19667 All occurences replaced by `directory-listing-before-filename-regexp'. 19667 All occurrences replaced by `directory-listing-before-filename-regexp'.
19668 19668
19669 * dired-x.el, locate.el, vc.el: 19669 * dired-x.el, locate.el, vc.el:
19670 Replace `dired-move-to-filename-regexp' by 19670 Replace `dired-move-to-filename-regexp' by
19671 `directory-listing-before-filename-regexp'. In vc.el it is 19671 `directory-listing-before-filename-regexp'. In vc.el it is
19672 overwritten locally; maybe this can be handled in files.el too. 19672 overwritten locally; maybe this can be handled in files.el too.
19673 19673
19674 * net/ange-ftp.el (ange-ftp-date-regexp): Remove. All occurences 19674 * net/ange-ftp.el (ange-ftp-date-regexp): Remove. All occurrences
19675 replaced by `directory-listing-before-filename-regexp'. 19675 replaced by `directory-listing-before-filename-regexp'.
19676 19676
196772005-10-23 Andreas Schwab <schwab@suse.de> 196772005-10-23 Andreas Schwab <schwab@suse.de>
@@ -19923,7 +19923,7 @@
19923 (outlineify-sticky): Use the file vars mechanism. 19923 (outlineify-sticky): Use the file vars mechanism.
19924 (allout-inhibit-protection, allout-during-write-cue) 19924 (allout-inhibit-protection, allout-during-write-cue)
19925 (allout-override-protect, allout-before-change-protect): Remove. 19925 (allout-override-protect, allout-before-change-protect): Remove.
19926 (allout-flag-region, allout-open-topic): Adjust read-only text. 19926 (allout-flag-region, allout-open-topic): Adjust read-only text.
19927 (allout-open-line-not-read-only): Add to facilitate read-only 19927 (allout-open-line-not-read-only): Add to facilitate read-only
19928 text based protection. 19928 text based protection.
19929 (allout-kill-line): Revise to adjust read-only text, clue the 19929 (allout-kill-line): Revise to adjust read-only text, clue the
@@ -20402,7 +20402,7 @@
20402 20402
204032005-10-12 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> 204032005-10-12 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
20404 20404
20405 * startup.el (command-line-x-option-alist): -nb => -nbi 20405 * startup.el (command-line-x-option-alist): -nb => -nbi.
20406 20406
204072005-10-12 Kim F. Storm <storm@cua.dk> 204072005-10-12 Kim F. Storm <storm@cua.dk>
20408 20408
@@ -20580,7 +20580,7 @@
20580 * term/x-win.el: Remove -i, --icon-type from comment. 20580 * term/x-win.el: Remove -i, --icon-type from comment.
20581 20581
20582 * startup.el (command-line-x-option-alist): Remove options -i, 20582 * startup.el (command-line-x-option-alist): Remove options -i,
20583 -itype, --icon-type, added -nb, --no-bitmap-icon 20583 -itype, --icon-type, added -nb, --no-bitmap-icon.
20584 20584
205852005-10-09 Nick Roberts <nickrob@snap.net.nz> 205852005-10-09 Nick Roberts <nickrob@snap.net.nz>
20586 20586
@@ -20866,7 +20866,7 @@
20866 * textmodes/ispell.el (ispell-word, ispell-region): 20866 * textmodes/ispell.el (ispell-word, ispell-region):
20867 Call ispell-maybe-find-aspell-dictionaries. 20867 Call ispell-maybe-find-aspell-dictionaries.
20868 (ispell-accept-buffer-local-defs): 20868 (ispell-accept-buffer-local-defs):
20869 Don't call ispell-maybe-find-aspell-dictionaries 20869 Don't call ispell-maybe-find-aspell-dictionaries.
20870 20870
208712005-10-04 Richard M. Stallman <rms@gnu.org> 208712005-10-04 Richard M. Stallman <rms@gnu.org>
20872 20872
@@ -22474,7 +22474,7 @@
22474 22474
22475 * calendar/diary-lib.el (diary-modify-entry-list-string-function): 22475 * calendar/diary-lib.el (diary-modify-entry-list-string-function):
22476 New hook. 22476 New hook.
22477 (add-to-diary-list): Call `diary-modify-entry-list-string-function' 22477 (add-to-diary-list): Call `diary-modify-entry-list-string-function'.
22478 22478
224792005-08-24 Stefan Monnier <monnier@iro.umontreal.ca> 224792005-08-24 Stefan Monnier <monnier@iro.umontreal.ca>
22480 22480
@@ -24379,7 +24379,7 @@
24379 * viper-init.el: Get rid of -face in face names. 24379 * viper-init.el: Get rid of -face in face names.
24380 24380
24381 * ediff-diff.el (ediff-extract-diffs, ediff-extract-diffs3): 24381 * ediff-diff.el (ediff-extract-diffs, ediff-extract-diffs3):
24382 Make it work with longlines mode 24382 Make it work with longlines mode.
24383 24383
24384 * ediff-mult.el (ediff-meta-mode-hook): New variable. 24384 * ediff-mult.el (ediff-meta-mode-hook): New variable.
24385 24385
@@ -27807,7 +27807,7 @@
27807 (reftex-unhighlight): Use `reftex-delete-overlay'. 27807 (reftex-unhighlight): Use `reftex-delete-overlay'.
27808 (reftex-uniq): Function removed. Use `reftex-uniquify' instead. 27808 (reftex-uniq): Function removed. Use `reftex-uniquify' instead.
27809 (reftex-access-search-path): Use `reftex-uniquify' instead of 27809 (reftex-access-search-path): Use `reftex-uniquify' instead of
27810 `reftex-uniq' 27810 `reftex-uniq'.
27811 27811
27812 * textmodes/reftex-sel.el (reftex-select-unmark): Overlay 27812 * textmodes/reftex-sel.el (reftex-select-unmark): Overlay
27813 `before-string' property modification enables for Emacs as well. 27813 `before-string' property modification enables for Emacs as well.
@@ -29286,7 +29286,7 @@
29286 29286
29287 * isearch.el (isearch-edit-string): Make the search-ring available for 29287 * isearch.el (isearch-edit-string): Make the search-ring available for
29288 minibuffer history commands. 29288 minibuffer history commands.
29289 (minibuffer-local-isearch-map): Remove bindings for M-p and M-n, 29289 (minibuffer-local-isearch-map): Remove bindings for M-p and M-n,
29290 the default history commands now work just as well. 29290 the default history commands now work just as well.
29291 (isearch-ring-retreat-edit, isearch-ring-advance-edit): Remove. 29291 (isearch-ring-retreat-edit, isearch-ring-advance-edit): Remove.
29292 29292
@@ -29446,7 +29446,7 @@
29446 `org-insert-mode-line-in-empty-file' has been set. 29446 `org-insert-mode-line-in-empty-file' has been set.
29447 (org-agenda-todo, org-agenda-priority): Modify to use 29447 (org-agenda-todo, org-agenda-priority): Modify to use
29448 `org-agenda-change-all-lines'. 29448 `org-agenda-change-all-lines'.
29449 (org-warning-face): Change color on dark background 29449 (org-warning-face): Change color on dark background.
29450 29450
294512005-04-14 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 294512005-04-14 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
29452 29452
@@ -29570,7 +29570,7 @@
29570 29570
295712005-04-11 Rajesh Vaidheeswarran <rv@gnu.org> 295712005-04-11 Rajesh Vaidheeswarran <rv@gnu.org>
29572 29572
29573 * whitespace.el (whitespace-version): Bump to 3.5 29573 * whitespace.el (whitespace-version): Bump to 3.5.
29574 29574
29575 (whitespace-buffer-leading, whitespace-buffer-trailing): 29575 (whitespace-buffer-leading, whitespace-buffer-trailing):
29576 Invert sense of the test to highlight the whitespace. 29576 Invert sense of the test to highlight the whitespace.
@@ -29598,7 +29598,7 @@
29598 29598
29599 * dired.el (dired-mode): Use dnd-* instead of x-dnd-* 29599 * dired.el (dired-mode): Use dnd-* instead of x-dnd-*
29600 (dired-dnd-handle-local-file): Call dnd-get-local-file-name. 29600 (dired-dnd-handle-local-file): Call dnd-get-local-file-name.
29601 (dired-dnd-handle-file): Call dnd-get-local-file-uri 29601 (dired-dnd-handle-file): Call dnd-get-local-file-uri.
29602 29602
29603 * cus-edit.el (dnd): New group. 29603 * cus-edit.el (dnd): New group.
29604 29604
@@ -32014,7 +32014,7 @@
32014 (calcFunc-sech, calcFunc-csch, calcFunc-coth, math-sec-raw) 32014 (calcFunc-sech, calcFunc-csch, calcFunc-coth, math-sec-raw)
32015 (math-csc-raw, math-cot-raw): New functions. 32015 (math-csc-raw, math-cot-raw): New functions.
32016 32016
32017 * calc/calc-rules.el (calc-DistribRules, calc-NegateRules): Add rules. 32017 * calc/calc-rules.el (calc-DistribRules, calc-NegateRules): Add rules.
32018 32018
32019 * calc/calc-undo.el (calc-handle-undo): Remove prefix from 32019 * calc/calc-undo.el (calc-handle-undo): Remove prefix from
32020 the variable name in a message. 32020 the variable name in a message.
@@ -32589,7 +32589,7 @@
325892005-01-21 Ren,Ai(B Kyllingstad <listmailxemacs@kyllingstad.com> 325892005-01-21 Ren,Ai(B Kyllingstad <listmailxemacs@kyllingstad.com>
32590 32590
32591 * pcomplete.el: Define pcomplete-read-event instead of read-event, 32591 * pcomplete.el: Define pcomplete-read-event instead of read-event,
32592 since it's not a complete read-event implementation 32592 since it's not a complete read-event implementation.
32593 32593
325942005-01-20 Jay Belanger <belanger@truman.edu> 325942005-01-20 Jay Belanger <belanger@truman.edu>
32595 32595
diff --git a/lisp/calc/calc-help.el b/lisp/calc/calc-help.el
index 9f324a67785..e310020e399 100644
--- a/lisp/calc/calc-help.el
+++ b/lisp/calc/calc-help.el
@@ -414,7 +414,7 @@ C-w Describe how there is no warranty for Calc."
414 (princ (format "GNU Emacs Calculator version %s.\n" 414 (princ (format "GNU Emacs Calculator version %s.\n"
415 calc-version)) 415 calc-version))
416 (princ " By Dave Gillespie.\n") 416 (princ " By Dave Gillespie.\n")
417 (princ " Copyright (C) 2007 Free Software Foundation, Inc.\n\n") 417 (princ (format " %s\n\n" emacs-copyright))
418 (princ "Type `h s' for a more detailed summary.\n") 418 (princ "Type `h s' for a more detailed summary.\n")
419 (princ "Or type `h i' to read the full Calc manual on-line.\n\n") 419 (princ "Or type `h i' to read the full Calc manual on-line.\n\n")
420 (princ "Basic keys:\n") 420 (princ "Basic keys:\n")
diff --git a/lisp/calendar/icalendar.el b/lisp/calendar/icalendar.el
index 7bbd12a436e..6238a7f1ea9 100644
--- a/lisp/calendar/icalendar.el
+++ b/lisp/calendar/icalendar.el
@@ -678,7 +678,7 @@ takes care of european-style."
678 nil))) 678 nil)))
679 679
680(defun icalendar--diarytime-to-isotime (timestring ampmstring) 680(defun icalendar--diarytime-to-isotime (timestring ampmstring)
681 "Convert a a time like 9:30pm to an iso-conform string like T213000. 681 "Convert a time like 9:30pm to an iso-conform string like T213000.
682In this example the TIMESTRING would be \"9:30\" and the AMPMSTRING 682In this example the TIMESTRING would be \"9:30\" and the AMPMSTRING
683would be \"pm\"." 683would be \"pm\"."
684 (if timestring 684 (if timestring
diff --git a/lisp/desktop.el b/lisp/desktop.el
index 31de08bdc26..76fcb8a519f 100644
--- a/lisp/desktop.el
+++ b/lisp/desktop.el
@@ -423,7 +423,7 @@ Furthermore the major mode function must be autoloaded.")
423Each entry has the form (NAME RESTORE-FUNCTION). 423Each entry has the form (NAME RESTORE-FUNCTION).
424NAME is the name of the buffer-local variable indicating that the minor 424NAME is the name of the buffer-local variable indicating that the minor
425mode is active. RESTORE-FUNCTION is the function to activate the minor mode. 425mode is active. RESTORE-FUNCTION is the function to activate the minor mode.
426called. RESTORE-FUNCTION nil means don't try to restore the minor mode. 426RESTORE-FUNCTION nil means don't try to restore the minor mode.
427Only minor modes for which the name of the buffer-local variable 427Only minor modes for which the name of the buffer-local variable
428and the name of the minor mode function are different have to be added to 428and the name of the minor mode function are different have to be added to
429this table. See also `desktop-minor-mode-handlers'." 429this table. See also `desktop-minor-mode-handlers'."
diff --git a/lisp/dframe.el b/lisp/dframe.el
index eda6d45bf21..7971db19dd8 100644
--- a/lisp/dframe.el
+++ b/lisp/dframe.el
@@ -152,13 +152,11 @@
152 152
153;;; Compatibility functions 153;;; Compatibility functions
154;; 154;;
155(if (fboundp 'frame-parameter) 155(defun dframe-frame-parameter (frame parameter)
156 156 "Return FRAME's PARAMETER value."
157 (defalias 'dframe-frame-parameter 'frame-parameter) 157 (if (fboundp 'frame-parameter)
158 158 (frame-parameter frame parameter)
159 (defun dframe-frame-parameter (frame parameter) 159 (cdr (assoc parameter (frame-parameters frame))))) ; XEmacs
160 "Return FRAME's PARAMETER value."
161 (cdr (assoc parameter (frame-parameters frame)))))
162 160
163 161
164;;; Variables 162;;; Variables
@@ -887,10 +885,10 @@ Must be bound to event E."
887 885
888;;; Interactive user functions for the mouse 886;;; Interactive user functions for the mouse
889;; 887;;
890(if dframe-xemacsp 888(defun dframe-mouse-event-p (event)
891 (defalias 'dframe-mouse-event-p 'button-press-event-p) 889 "Return t if the event is a mouse related event."
892 (defun dframe-mouse-event-p (event) 890 (if (fboundp 'button-press-event-p)
893 "Return t if the event is a mouse related event." 891 (button-press-event-p event) ; XEmacs
894 (if (and (listp event) 892 (if (and (listp event)
895 (member (event-basic-type event) 893 (member (event-basic-type event)
896 '(mouse-1 mouse-2 mouse-3))) 894 '(mouse-1 mouse-2 mouse-3)))
diff --git a/lisp/dired.el b/lisp/dired.el
index 4244954d467..4525cc2ea97 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -1452,9 +1452,6 @@ Do so according to the former subdir alist OLD-SUBDIR-ALIST."
1452 (define-key map [menu-bar operate] 1452 (define-key map [menu-bar operate]
1453 (cons "Operate" (make-sparse-keymap "Operate"))) 1453 (cons "Operate" (make-sparse-keymap "Operate")))
1454 1454
1455 (define-key map [menu-bar operate dashes-2]
1456 '("--"))
1457
1458 (define-key map 1455 (define-key map
1459 [menu-bar operate image-dired-delete-tag] 1456 [menu-bar operate image-dired-delete-tag]
1460 '(menu-item "Delete Image Tag..." image-dired-delete-tag 1457 '(menu-item "Delete Image Tag..." image-dired-delete-tag
@@ -2362,7 +2359,7 @@ Optional argument means return a file name relative to `default-directory'."
2362 2359
2363;; Deleting files 2360;; Deleting files
2364 2361
2365(defcustom dired-recursive-deletes nil ; Default only delete empty directories. 2362(defcustom dired-recursive-deletes 'top ; Default only delete empty directories.
2366 "*Decide whether recursive deletes are allowed. 2363 "*Decide whether recursive deletes are allowed.
2367A value of nil means no recursive deletes. 2364A value of nil means no recursive deletes.
2368`always' means delete recursively without asking. This is DANGEROUS! 2365`always' means delete recursively without asking. This is DANGEROUS!
@@ -2410,7 +2407,9 @@ Anything else, ask for each sub-directory."
2410(defun dired-do-flagged-delete (&optional nomessage) 2407(defun dired-do-flagged-delete (&optional nomessage)
2411 "In Dired, delete the files flagged for deletion. 2408 "In Dired, delete the files flagged for deletion.
2412If NOMESSAGE is non-nil, we don't display any message 2409If NOMESSAGE is non-nil, we don't display any message
2413if there are no flagged files." 2410if there are no flagged files.
2411`dired-recursive-deletes' controls whether
2412deletion of non-empty directories is allowed."
2414 (interactive) 2413 (interactive)
2415 (let* ((dired-marker-char dired-del-marker) 2414 (let* ((dired-marker-char dired-del-marker)
2416 (regexp (dired-marker-regexp)) 2415 (regexp (dired-marker-regexp))
@@ -2426,7 +2425,9 @@ if there are no flagged files."
2426 (message "(No deletions requested)"))))) 2425 (message "(No deletions requested)")))))
2427 2426
2428(defun dired-do-delete (&optional arg) 2427(defun dired-do-delete (&optional arg)
2429 "Delete all marked (or next ARG) files." 2428 "Delete all marked (or next ARG) files.
2429`dired-recursive-deletes' controls whether
2430deletion of non-empty directories is allowed."
2430 ;; This is more consistent with the file marking feature than 2431 ;; This is more consistent with the file marking feature than
2431 ;; dired-do-flagged-delete. 2432 ;; dired-do-flagged-delete.
2432 (interactive "P") 2433 (interactive "P")
@@ -3206,7 +3207,7 @@ To be called first in body of `dired-sort-other', etc."
3206 3207
3207;;;; Drag and drop support 3208;;;; Drag and drop support
3208 3209
3209(defcustom dired-recursive-copies nil 3210(defcustom dired-recursive-copies 'top
3210 "*Decide whether recursive copies are allowed. 3211 "*Decide whether recursive copies are allowed.
3211A value of nil means no recursive copies. 3212A value of nil means no recursive copies.
3212`always' means copy recursively without asking. 3213`always' means copy recursively without asking.
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index 8606f1ae2b8..c791026a95b 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -98,9 +98,11 @@
98;; `obsolete' (obsolete variables and functions) 98;; `obsolete' (obsolete variables and functions)
99;; `noruntime' (calls to functions only defined 99;; `noruntime' (calls to functions only defined
100;; within `eval-when-compile') 100;; within `eval-when-compile')
101;; `cl-warnings' (calls to CL functions) 101;; `cl-functions' (calls to CL functions)
102;; `interactive-only' (calls to commands that are 102;; `interactive-only' (calls to commands that are
103;; not good to call from Lisp) 103;; not good to call from Lisp)
104;; `make-local' (dubious calls to
105;; `make-variable-buffer-local')
104;; byte-compile-compatibility Whether the compiler should 106;; byte-compile-compatibility Whether the compiler should
105;; generate .elc files which can be loaded into 107;; generate .elc files which can be loaded into
106;; generic emacs 18. 108;; generic emacs 18.
@@ -356,14 +358,16 @@ Elements of the list may be:
356 cl-functions calls to runtime functions from the CL package (as 358 cl-functions calls to runtime functions from the CL package (as
357 distinguished from macros and aliases). 359 distinguished from macros and aliases).
358 interactive-only 360 interactive-only
359 commands that normally shouldn't be called from Lisp code." 361 commands that normally shouldn't be called from Lisp code.
362 make-local calls to make-variable-buffer-local that may be incorrect."
360 :group 'bytecomp 363 :group 'bytecomp
361 :type `(choice (const :tag "All" t) 364 :type `(choice (const :tag "All" t)
362 (set :menu-tag "Some" 365 (set :menu-tag "Some"
363 (const free-vars) (const unresolved) 366 (const free-vars) (const unresolved)
364 (const callargs) (const redefine) 367 (const callargs) (const redefine)
365 (const obsolete) (const noruntime) 368 (const obsolete) (const noruntime)
366 (const cl-functions) (const interactive-only)))) 369 (const cl-functions) (const interactive-only)
370 (const make-local))))
367(put 'byte-compile-warnings 'safe-local-variable 'byte-compile-warnings-safe-p) 371(put 'byte-compile-warnings 'safe-local-variable 'byte-compile-warnings-safe-p)
368;;;###autoload 372;;;###autoload
369(defun byte-compile-warnings-safe-p (x) 373(defun byte-compile-warnings-safe-p (x)
@@ -374,7 +378,7 @@ Elements of the list may be:
374 (when (memq e '(free-vars unresolved 378 (when (memq e '(free-vars unresolved
375 callargs redefine 379 callargs redefine
376 obsolete noruntime 380 obsolete noruntime
377 cl-functions interactive-only)) 381 cl-functions interactive-only make-local))
378 e)) 382 e))
379 x) 383 x)
380 x)))) 384 x))))
@@ -1344,7 +1348,8 @@ extra args."
1344 (unless byte-compile-cl-functions 1348 (unless byte-compile-cl-functions
1345 (dolist (elt load-history) 1349 (dolist (elt load-history)
1346 (when (and (stringp (car elt)) 1350 (when (and (stringp (car elt))
1347 (string-match "^cl\\>" (car elt))) 1351 (string-match
1352 "^cl\\>" (file-name-nondirectory (car elt))))
1348 (setq byte-compile-cl-functions 1353 (setq byte-compile-cl-functions
1349 (append byte-compile-cl-functions 1354 (append byte-compile-cl-functions
1350 (cdr elt))))) 1355 (cdr elt)))))
@@ -3890,7 +3895,8 @@ that suppresses all warnings during execution of BODY."
3890;; Warn about misuses of make-variable-buffer-local. 3895;; Warn about misuses of make-variable-buffer-local.
3891(byte-defop-compiler-1 make-variable-buffer-local byte-compile-make-variable-buffer-local) 3896(byte-defop-compiler-1 make-variable-buffer-local byte-compile-make-variable-buffer-local)
3892(defun byte-compile-make-variable-buffer-local (form) 3897(defun byte-compile-make-variable-buffer-local (form)
3893 (if (eq (car-safe (car-safe (cdr-safe form))) 'quote) 3898 (if (and (eq (car-safe (car-safe (cdr-safe form))) 'quote)
3899 (memq 'make-local byte-compile-warnings))
3894 (byte-compile-warn 3900 (byte-compile-warn
3895 "`make-variable-buffer-local' should be called at toplevel")) 3901 "`make-variable-buffer-local' should be called at toplevel"))
3896 (byte-compile-normal-call form)) 3902 (byte-compile-normal-call form))
diff --git a/lisp/emacs-lisp/checkdoc.el b/lisp/emacs-lisp/checkdoc.el
index 14b9ce55d9e..b4d925686ca 100644
--- a/lisp/emacs-lisp/checkdoc.el
+++ b/lisp/emacs-lisp/checkdoc.el
@@ -263,7 +263,7 @@ system. Possible values are:
263 (const t))) 263 (const t)))
264 264
265(defvar checkdoc-ispell-lisp-words 265(defvar checkdoc-ispell-lisp-words
266 '("alist" "emacs" "etags" "iff" "keymap" "paren" "regexp" "sexp" "xemacs") 266 '("alist" "emacs" "etags" "keymap" "paren" "regexp" "sexp" "xemacs")
267 "List of words that are correct when spell-checking Lisp documentation.") 267 "List of words that are correct when spell-checking Lisp documentation.")
268 268
269(defcustom checkdoc-max-keyref-before-warn 10 269(defcustom checkdoc-max-keyref-before-warn 10
diff --git a/lisp/erc/ChangeLog b/lisp/erc/ChangeLog
index 70ffa4ede48..9ffbcbd5201 100644
--- a/lisp/erc/ChangeLog
+++ b/lisp/erc/ChangeLog
@@ -1,3 +1,8 @@
12007-06-06 Juanma Barranquero <lekktu@gmail.com>
2
3 * erc.el (erc-show-channel-key-p, erc-startup-file-list):
4 Fix typo in docstring.
5
12007-04-01 Michael Olson <mwolson@gnu.org> 62007-04-01 Michael Olson <mwolson@gnu.org>
2 7
3 * erc.el (erc-version-string): Release ERC 5.2. 8 * erc.el (erc-version-string): Release ERC 5.2.
diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el
index 37c2c2e0883..d6875ffc4af 100644
--- a/lisp/erc/erc.el
+++ b/lisp/erc/erc.el
@@ -842,7 +842,7 @@ See `erc-server-flood-margin' for other flood-related parameters.")
842The first existent and readable one will get executed. 842The first existent and readable one will get executed.
843 843
844If the filename ends with `.el' it is presumed to be an Emacs Lisp 844If the filename ends with `.el' it is presumed to be an Emacs Lisp
845script and it gets (load)ed. Otherwise is is treated as a bunch of 845script and it gets (load)ed. Otherwise it is treated as a bunch of
846regular IRC commands." 846regular IRC commands."
847 :group 'erc-scripts 847 :group 'erc-scripts
848 :type '(repeat file)) 848 :type '(repeat file))
@@ -5756,7 +5756,7 @@ Otherwise, use the `erc-header-line' face."
5756 (function :tag "Call a function"))) 5756 (function :tag "Call a function")))
5757 5757
5758(defcustom erc-show-channel-key-p t 5758(defcustom erc-show-channel-key-p t
5759 "Show the the channel key in the header line." 5759 "Show the channel key in the header line."
5760 :group 'erc-paranoia 5760 :group 'erc-paranoia
5761 :type 'boolean) 5761 :type 'boolean)
5762 5762
diff --git a/lisp/faces.el b/lisp/faces.el
index 01cfae1e20c..277182d8caf 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -292,11 +292,12 @@ Value is FACE."
292 292
293(defun face-id (face &optional frame) 293(defun face-id (face &optional frame)
294 "Return the internal ID of face with name FACE. 294 "Return the internal ID of face with name FACE.
295If FACE is a face-alias, return the ID of the target face.
295The optional argument FRAME is ignored, since the internal face ID 296The optional argument FRAME is ignored, since the internal face ID
296of a face name is the same for all frames." 297of a face name is the same for all frames."
297 (check-face face) 298 (check-face face)
298 (get face 'face)) 299 (or (get face 'face)
299 300 (face-id (get face 'face-alias))))
300 301
301(defun face-equal (face1 face2 &optional frame) 302(defun face-equal (face1 face2 &optional frame)
302 "Non-nil if faces FACE1 and FACE2 are equal. 303 "Non-nil if faces FACE1 and FACE2 are equal.
diff --git a/lisp/files.el b/lisp/files.el
index 9ce1f0a0471..952736f06d7 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -1924,7 +1924,7 @@ since only a single case-insensitive search through the alist is made."
1924 ("\\.[sS]\\'" . asm-mode) 1924 ("\\.[sS]\\'" . asm-mode)
1925 ("\\.asm\\'" . asm-mode) 1925 ("\\.asm\\'" . asm-mode)
1926 ("[cC]hange\\.?[lL]og?\\'" . change-log-mode) 1926 ("[cC]hange\\.?[lL]og?\\'" . change-log-mode)
1927 ("[cC]hange[lL]og[-.][-0-9a-z]+\\'" . change-log-mode) 1927 ("[cC]hange[lL]og[-.][0-9]+\\'" . change-log-mode)
1928 ("\\$CHANGE_LOG\\$\\.TXT" . change-log-mode) 1928 ("\\$CHANGE_LOG\\$\\.TXT" . change-log-mode)
1929 ("\\.scm\\.[0-9]*\\'" . scheme-mode) 1929 ("\\.scm\\.[0-9]*\\'" . scheme-mode)
1930 ("\\.[ck]?sh\\'\\|\\.shar\\'\\|/\\.z?profile\\'" . sh-mode) 1930 ("\\.[ck]?sh\\'\\|\\.shar\\'\\|/\\.z?profile\\'" . sh-mode)
@@ -2012,6 +2012,9 @@ since only a single case-insensitive search through the alist is made."
2012 ("[/.]c\\(?:on\\)?f\\(?:i?g\\)?\\(?:\\.[a-zA-Z0-9._-]+\\)?\\'" . conf-mode) 2012 ("[/.]c\\(?:on\\)?f\\(?:i?g\\)?\\(?:\\.[a-zA-Z0-9._-]+\\)?\\'" . conf-mode)
2013 ("\\`/etc/\\(?:DIR_COLORS\\|ethers\\|.?fstab\\|.*hosts\\|lesskey\\|login\\.?de\\(?:fs\\|vperm\\)\\|magic\\|mtab\\|pam\\.d/.*\\|permissions\\(?:\\.d/.+\\)?\\|protocols\\|rpc\\|services\\)\\'" . conf-space-mode) 2013 ("\\`/etc/\\(?:DIR_COLORS\\|ethers\\|.?fstab\\|.*hosts\\|lesskey\\|login\\.?de\\(?:fs\\|vperm\\)\\|magic\\|mtab\\|pam\\.d/.*\\|permissions\\(?:\\.d/.+\\)?\\|protocols\\|rpc\\|services\\)\\'" . conf-space-mode)
2014 ("\\`/etc/\\(?:acpid?/.+\\|aliases\\(?:\\.d/.+\\)?\\|default/.+\\|group-?\\|hosts\\..+\\|inittab\\|ksysguarddrc\\|opera6rc\\|passwd-?\\|shadow-?\\|sysconfig/.+\\)\\'" . conf-mode) 2014 ("\\`/etc/\\(?:acpid?/.+\\|aliases\\(?:\\.d/.+\\)?\\|default/.+\\|group-?\\|hosts\\..+\\|inittab\\|ksysguarddrc\\|opera6rc\\|passwd-?\\|shadow-?\\|sysconfig/.+\\)\\'" . conf-mode)
2015 ;; ChangeLog.old etc. Other change-log-mode entries are above;
2016 ;; this has lower priority to avoid matching changelog.sgml etc.
2017 ("[cC]hange[lL]og[-.][-0-9a-z]+\\'" . change-log-mode)
2015 ;; either user's dot-files or under /etc or some such 2018 ;; either user's dot-files or under /etc or some such
2016 ("/\\.?\\(?:gnokiirc\\|kde.*rc\\|mime\\.types\\|wgetrc\\)\\'" . conf-mode) 2019 ("/\\.?\\(?:gnokiirc\\|kde.*rc\\|mime\\.types\\|wgetrc\\)\\'" . conf-mode)
2017 ;; alas not all ~/.*rc files are like this 2020 ;; alas not all ~/.*rc files are like this
@@ -4389,6 +4392,14 @@ This command is used in the special Dired buffer created by
4389 (message "No files can be recovered from this session now"))) 4392 (message "No files can be recovered from this session now")))
4390 (kill-buffer buffer)))) 4393 (kill-buffer buffer))))
4391 4394
4395(defun kill-buffer-ask (buffer)
4396 "Kill buffer if confirmed."
4397 (when (yes-or-no-p
4398 (format "Buffer %s %s. Kill? " (buffer-name buffer)
4399 (if (buffer-modified-p buffer)
4400 "HAS BEEN EDITED" "is unmodified")))
4401 (kill-buffer buffer)))
4402
4392(defun kill-some-buffers (&optional list) 4403(defun kill-some-buffers (&optional list)
4393 "Kill some buffers. Asks the user whether to kill each one of them. 4404 "Kill some buffers. Asks the user whether to kill each one of them.
4394Non-interactively, if optional argument LIST is non-nil, it 4405Non-interactively, if optional argument LIST is non-nil, it
@@ -4403,13 +4414,20 @@ specifies the list of buffers to kill, asking for approval for each one."
4403 ; if we killed the base buffer. 4414 ; if we killed the base buffer.
4404 (not (string-equal name "")) 4415 (not (string-equal name ""))
4405 (/= (aref name 0) ?\s) 4416 (/= (aref name 0) ?\s)
4406 (yes-or-no-p 4417 (kill-buffer-ask buffer)))
4407 (format "Buffer %s %s. Kill? "
4408 name
4409 (if (buffer-modified-p buffer)
4410 "HAS BEEN EDITED" "is unmodified")))
4411 (kill-buffer buffer)))
4412 (setq list (cdr list)))) 4418 (setq list (cdr list))))
4419
4420(defun kill-matching-buffers (regexp &optional internal-too)
4421 "Kill buffers whose name matches the specified regexp.
4422The optional second argument indicates whether to kill internal buffers too."
4423 (interactive "sKill buffers matching this regular expression: \nP")
4424 (dolist (buffer (buffer-list))
4425 (let ((name (buffer-name buffer)))
4426 (when (and name (not (string-equal name ""))
4427 (or internal-too (/= (aref name 0) ?\s))
4428 (string-match regexp name))
4429 (kill-buffer-ask buffer)))))
4430
4413 4431
4414(defun auto-save-mode (arg) 4432(defun auto-save-mode (arg)
4415 "Toggle auto-saving of contents of current buffer. 4433 "Toggle auto-saving of contents of current buffer.
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 631869e4f34..17ef7f996b3 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,34 @@
12007-06-08 Katsumi Yamaoka <yamaoka@jpl.org>
2
3 * gnus-ems.el (gnus-x-splash): Make it work.
4
5 * gnus-start.el (gnus-1): Relax restrictions that prevent gnus-x-splash
6 from being used.
7
8 * gnus-art.el (gnus-article-summary-command-nosave): Correct the order
9 of the arguments passed to pop-to-buffer.
10 (gnus-article-read-summary-keys): Ditto.
11
122007-06-07 Juanma Barranquero <lekktu@gmail.com>
13
14 * gnus-art.el (gnus-split-methods): Fix typo in docstring.
15
162007-06-06 Juanma Barranquero <lekktu@gmail.com>
17
18 * gnus-diary.el (gnus-diary-time-format, gnus-summary-sort-by-schedule):
19 * gnus-sum.el (gnus-summary-highlight):
20 * mail-source.el (mail-source-delete-old-incoming-confirm):
21 * nndiary.el (nndiary-reminders): Fix typos in docstrings.
22
232007-06-04 Katsumi Yamaoka <yamaoka@jpl.org>
24
25 * gnus-art.el (gnus-mime-view-part-externally)
26 (gnus-mime-view-part-internally): Fix predicate function passed to
27 completing-read.
28
29 * mm-decode.el (mm-image-fit-p): Return t if argument is not an image;
30 return t if image size is just the same as window size.
31
12007-05-28 Katsumi Yamaoka <yamaoka@jpl.org> 322007-05-28 Katsumi Yamaoka <yamaoka@jpl.org>
2 33
3 * message.el (message-pop-to-buffer): Add switch-function argument. 34 * message.el (message-pop-to-buffer): Add switch-function argument.
@@ -355,7 +386,7 @@
355 (message-simplify-subject): New function to remove duplicate code. 386 (message-simplify-subject): New function to remove duplicate code.
356 (message-reply, message-followup): Use it. 387 (message-reply, message-followup): Use it.
357 (message-simplify-subject-functions): New variable. 388 (message-simplify-subject-functions): New variable.
358 (message-strip-subject-encoded-words): New function 389 (message-strip-subject-encoded-words): New function.
359 390
3602006-11-08 Wolfgang Jenkner <wjenkner@inode.at> (tiny change) 3912006-11-08 Wolfgang Jenkner <wjenkner@inode.at> (tiny change)
361 392
@@ -1195,8 +1226,7 @@
1195 * mm-view.el (mm-fill-flowed): New variable. 1226 * mm-view.el (mm-fill-flowed): New variable.
1196 (mm-inline-text): Use it. 1227 (mm-inline-text): Use it.
1197 1228
11982006-02-21 Wolfram Fenske <wolfram.fenske@student.uni-magdeburg.de> 12292006-02-21 Wolfram Fenske <wolfram.fenske@student.uni-magdeburg.de> (tiny change)
1199 (tiny change)
1200 1230
1201 * nnimap.el (nnimap-request-move-article): Change folder back to 1231 * nnimap.el (nnimap-request-move-article): Change folder back to
1202 source group before deleting. 1232 source group before deleting.
@@ -1758,7 +1788,7 @@
1758 (pgg-pgp5-sign-region, pgg-pgp5-sign): Add optional 'passphrase' 1788 (pgg-pgp5-sign-region, pgg-pgp5-sign): Add optional 'passphrase'
1759 argument to all these routines, so the passphrase can be managed 1789 argument to all these routines, so the passphrase can be managed
1760 externally and passed in to the system. 1790 externally and passed in to the system.
1761 (pgg-pgp5-sign-region): Use new name of pgg-add-passphrase-to-cache 1791 (pgg-pgp5-sign-region): Use new name of pgg-add-passphrase-to-cache
1762 function. 1792 function.
1763 1793
17642005-10-29 Ken Manheimer <ken.manheimer@gmail.com> 17942005-10-29 Ken Manheimer <ken.manheimer@gmail.com>
@@ -3633,7 +3663,7 @@
3633 * nnmail.el (nnmail-split-fancy-with-parent-ignore-groups) 3663 * nnmail.el (nnmail-split-fancy-with-parent-ignore-groups)
3634 (nnmail-cache-ignore-groups, nnmail-spool-hook) 3664 (nnmail-cache-ignore-groups, nnmail-spool-hook)
3635 (nnmail-split-fancy-match-partial-words) 3665 (nnmail-split-fancy-match-partial-words)
3636 (nnmail-split-lowercase-expanded): 3666 (nnmail-split-lowercase-expanded): Add :version.
3637 3667
3638 * nndiary.el (nndiary): Add :version. 3668 * nndiary.el (nndiary): Add :version.
3639 3669
@@ -3909,7 +3939,7 @@
3909 * gnus-int.el (gnus-request-delete-group): 3939 * gnus-int.el (gnus-request-delete-group):
3910 Use gnus-cache-delete-group and gnus-agent-delete-group to keep the 3940 Use gnus-cache-delete-group and gnus-agent-delete-group to keep the
3911 local disk in sync with the server. 3941 local disk in sync with the server.
3912 (gnus-request-rename-group): 3942 (gnus-request-rename-group):
3913 Use gnus-cache-rename-group and gnus-agent-rename-group to keep the 3943 Use gnus-cache-rename-group and gnus-agent-rename-group to keep the
3914 local disk in sync with the server. 3944 local disk in sync with the server.
3915 3945
@@ -4036,7 +4066,7 @@
4036 4066
4037 * gnus-sum.el (gnus-select-newgroup): Replace inline code with 4067 * gnus-sum.el (gnus-select-newgroup): Replace inline code with
4038 gnus-agent-possibly-alter-active. 4068 gnus-agent-possibly-alter-active.
4039 (gnus-adjust-marked-articles): Faster handling of simple lists 4069 (gnus-adjust-marked-articles): Faster handling of simple lists.
4040 4070
40412004-10-18 David Edmondson <dme@dme.org> 40712004-10-18 David Edmondson <dme@dme.org>
4042 4072
@@ -4179,7 +4209,7 @@
4179 4209
4180 * gnus-fun.el: Require gnus-ems and gnus-util. 4210 * gnus-fun.el: Require gnus-ems and gnus-util.
4181 4211
4182 * gnus-diary.el (gnus-diary-header-schedule): caddr -> car (cddr 4212 * gnus-diary.el (gnus-diary-header-schedule): caddr -> car (cddr).
4183 4213
4184 * gnus-art.el (gnus-article-edit-mode): Define before first reference. 4214 * gnus-art.el (gnus-article-edit-mode): Define before first reference.
4185 4215
@@ -4262,6 +4292,7 @@
4262 4292
4263 * nnmail.el (nnmail-fancy-expiry-targets) 4293 * nnmail.el (nnmail-fancy-expiry-targets)
4264 (nnmail-mail-splitting-charset, nnmail-mail-splitting-decodes): 4294 (nnmail-mail-splitting-charset, nnmail-mail-splitting-decodes):
4295 Add :version.
4265 4296
4266 * nnimap.el (nnimap-split-download-body, nnimap-dont-close) 4297 * nnimap.el (nnimap-split-download-body, nnimap-dont-close)
4267 (nnimap-retrieve-groups-asynchronous): Add :version. 4298 (nnimap-retrieve-groups-asynchronous): Add :version.
@@ -4270,7 +4301,7 @@
4270 * mml.el (mml-content-disposition-parameters) 4301 * mml.el (mml-content-disposition-parameters)
4271 (mml-insert-mime-headers-always): Add :version. 4302 (mml-insert-mime-headers-always): Add :version.
4272 4303
4273 * mm-util.el (mm-coding-system-priorities): 4304 * mm-util.el (mm-coding-system-priorities): Add :version.
4274 4305
4275 * mm-decode.el (mm-inline-text-html-with-images) 4306 * mm-decode.el (mm-inline-text-html-with-images)
4276 (mm-keep-viewer-alive-types, mm-external-terminal-program) 4307 (mm-keep-viewer-alive-types, mm-external-terminal-program)
@@ -4327,7 +4358,7 @@
4327 * gnus-srvr.el (gnus-server-browse-in-group-buffer) 4358 * gnus-srvr.el (gnus-server-browse-in-group-buffer)
4328 (gnus-server-offline-face): Add :version. 4359 (gnus-server-offline-face): Add :version.
4329 4360
4330 * gnus-score.el (gnus-adaptive-word-length-limit): 4361 * gnus-score.el (gnus-adaptive-word-length-limit): Add :version.
4331 4362
4332 * gnus-msg.el (gnus-gcc-externalize-attachments) 4363 * gnus-msg.el (gnus-gcc-externalize-attachments)
4333 (gnus-debug-files, gnus-debug-exclude-variables) 4364 (gnus-debug-files, gnus-debug-exclude-variables)
@@ -4349,7 +4380,7 @@
4349 * gnus-delay.el (gnus-delay-default-hour): Add :version. 4380 * gnus-delay.el (gnus-delay-default-hour): Add :version.
4350 4381
4351 * gnus-cite.el (gnus-cite-blank-line-after-header) 4382 * gnus-cite.el (gnus-cite-blank-line-after-header)
4352 (gnus-article-boring-faces): 4383 (gnus-article-boring-faces): Add :version.
4353 4384
4354 * gnus-art.el (gnus-buttonized-mime-types) 4385 * gnus-art.el (gnus-buttonized-mime-types)
4355 (gnus-inhibit-mime-unbuttonizing) 4386 (gnus-inhibit-mime-unbuttonizing)
@@ -4413,10 +4444,10 @@
44132004-09-10 Teodor Zlatanov <tzz@lifelogs.com> 44442004-09-10 Teodor Zlatanov <tzz@lifelogs.com>
4414 4445
4415 * nnimap.el (nnimap-open-connection): Allow 'imaps' as a synonym 4446 * nnimap.el (nnimap-open-connection): Allow 'imaps' as a synonym
4416 for the 'imap' port in netrc files 4447 for the 'imap' port in netrc files.
4417 4448
4418 * gnus-registry.el (gnus-registry-trim): Watch out for negatives 4449 * gnus-registry.el (gnus-registry-trim): Watch out for negatives
4419 in gnus-registry-trim 4450 in gnus-registry-trim.
4420 4451
44212004-09-10 Simon Josefsson <jas@extundo.com> 44522004-09-10 Simon Josefsson <jas@extundo.com>
4422 4453
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index 013bf48110d..90af0740318 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -651,7 +651,7 @@ value is a list of possible files to save in if the match is non-nil.
651If the match is a string, it is used as a regexp match on the 651If the match is a string, it is used as a regexp match on the
652article. If the match is a symbol, that symbol will be funcalled 652article. If the match is a symbol, that symbol will be funcalled
653from the buffer of the article to be saved with the newsgroup as the 653from the buffer of the article to be saved with the newsgroup as the
654parameter. If it is a list, it will be evaled in the same buffer. 654parameter. If it is a list, it will be evalled in the same buffer.
655 655
656If this form or function returns a string, this string will be used as 656If this form or function returns a string, this string will be used as
657a possible file name; and if it returns a non-nil list, that list will 657a possible file name; and if it returns a non-nil list, that list will
@@ -4674,7 +4674,7 @@ specified charset."
4674 (mm-enable-external t)) 4674 (mm-enable-external t))
4675 (if (not (stringp method)) 4675 (if (not (stringp method))
4676 (gnus-mime-view-part-as-type 4676 (gnus-mime-view-part-as-type
4677 nil (lambda (type) (stringp (mailcap-mime-info type)))) 4677 nil (lambda (types) (stringp (mailcap-mime-info (car types)))))
4678 (when handle 4678 (when handle
4679 (if (mm-handle-undisplayer handle) 4679 (if (mm-handle-undisplayer handle)
4680 (mm-remove-part handle) 4680 (mm-remove-part handle)
@@ -4695,7 +4695,7 @@ If no internal viewer is available, use an external viewer."
4695 (inhibit-read-only t)) 4695 (inhibit-read-only t))
4696 (if (not (mm-inlinable-p handle)) 4696 (if (not (mm-inlinable-p handle))
4697 (gnus-mime-view-part-as-type 4697 (gnus-mime-view-part-as-type
4698 nil (lambda (type) (mm-inlinable-p handle type))) 4698 nil (lambda (types) (mm-inlinable-p handle (car types))))
4699 (when handle 4699 (when handle
4700 (if (mm-handle-undisplayer handle) 4700 (if (mm-handle-undisplayer handle)
4701 (mm-remove-part handle) 4701 (mm-remove-part handle)
@@ -5607,7 +5607,7 @@ not have a face in `gnus-article-boring-faces'."
5607 "Execute the last keystroke in the summary buffer." 5607 "Execute the last keystroke in the summary buffer."
5608 (interactive) 5608 (interactive)
5609 (let (func) 5609 (let (func)
5610 (pop-to-buffer gnus-article-current-summary 'norecord) 5610 (pop-to-buffer gnus-article-current-summary nil 'norecord)
5611 (setq func (lookup-key (current-local-map) (this-command-keys))) 5611 (setq func (lookup-key (current-local-map) (this-command-keys)))
5612 (call-interactively func))) 5612 (call-interactively func)))
5613 5613
@@ -5646,7 +5646,7 @@ not have a face in `gnus-article-boring-faces'."
5646 (member keys nosave-in-article)) 5646 (member keys nosave-in-article))
5647 (let (func) 5647 (let (func)
5648 (save-window-excursion 5648 (save-window-excursion
5649 (pop-to-buffer gnus-article-current-summary 'norecord) 5649 (pop-to-buffer gnus-article-current-summary nil 'norecord)
5650 ;; We disable the pick minor mode commands. 5650 ;; We disable the pick minor mode commands.
5651 (let (gnus-pick-mode) 5651 (let (gnus-pick-mode)
5652 (setq func (lookup-key (current-local-map) keys)))) 5652 (setq func (lookup-key (current-local-map) keys))))
@@ -5658,14 +5658,14 @@ not have a face in `gnus-article-boring-faces'."
5658 (call-interactively func) 5658 (call-interactively func)
5659 (setq new-sum-point (point))) 5659 (setq new-sum-point (point)))
5660 (when (member keys nosave-but-article) 5660 (when (member keys nosave-but-article)
5661 (pop-to-buffer gnus-article-buffer 'norecord))) 5661 (pop-to-buffer gnus-article-buffer nil 'norecord)))
5662 ;; These commands should restore window configuration. 5662 ;; These commands should restore window configuration.
5663 (let ((obuf (current-buffer)) 5663 (let ((obuf (current-buffer))
5664 (owin (current-window-configuration)) 5664 (owin (current-window-configuration))
5665 (opoint (point)) 5665 (opoint (point))
5666 win func in-buffer selected new-sum-start new-sum-hscroll) 5666 win func in-buffer selected new-sum-start new-sum-hscroll)
5667 (cond (not-restore-window 5667 (cond (not-restore-window
5668 (pop-to-buffer gnus-article-current-summary 'norecord)) 5668 (pop-to-buffer gnus-article-current-summary nil 'norecord))
5669 ((setq win (get-buffer-window gnus-article-current-summary)) 5669 ((setq win (get-buffer-window gnus-article-current-summary))
5670 (select-window win)) 5670 (select-window win))
5671 (t 5671 (t
diff --git a/lisp/gnus/gnus-diary.el b/lisp/gnus/gnus-diary.el
index a7f7ee65ec3..d5bc9c3a05d 100644
--- a/lisp/gnus/gnus-diary.el
+++ b/lisp/gnus/gnus-diary.el
@@ -59,7 +59,7 @@
59 :group 'gnus-summary-format) 59 :group 'gnus-summary-format)
60 60
61(defcustom gnus-diary-time-format "%a, %b %e %y, %H:%M" 61(defcustom gnus-diary-time-format "%a, %b %e %y, %H:%M"
62 "*Time format to display appointements in nndiary summary buffers. 62 "*Time format to display appointments in nndiary summary buffers.
63Please refer to `format-time-string' for information on possible values." 63Please refer to `format-time-string' for information on possible values."
64 :type 'string 64 :type 'string
65 :group 'gnus-diary) 65 :group 'gnus-diary)
@@ -224,7 +224,7 @@ There are currently two built-in format functions:
224 (gnus-thread-header h2))) 224 (gnus-thread-header h2)))
225 225
226(defun gnus-summary-sort-by-schedule (&optional reverse) 226(defun gnus-summary-sort-by-schedule (&optional reverse)
227 "Sort nndiary summary buffers by schedule of appointements. 227 "Sort nndiary summary buffers by schedule of appointments.
228Optional prefix (or REVERSE argument) means sort in reverse order." 228Optional prefix (or REVERSE argument) means sort in reverse order."
229 (interactive "P") 229 (interactive "P")
230 (gnus-summary-sort 'schedule reverse)) 230 (gnus-summary-sort 'schedule reverse))
diff --git a/lisp/gnus/gnus-ems.el b/lisp/gnus/gnus-ems.el
index 60e66adc98b..4400b81f041 100644
--- a/lisp/gnus/gnus-ems.el
+++ b/lisp/gnus/gnus-ems.el
@@ -172,40 +172,95 @@
172 172
173(defun gnus-x-splash () 173(defun gnus-x-splash ()
174 "Show a splash screen using a pixmap in the current buffer." 174 "Show a splash screen using a pixmap in the current buffer."
175 (let ((dir (nnheader-find-etc-directory "gnus")) 175 (interactive)
176 pixmap file height beg i) 176 (unless window-system
177 (save-excursion 177 (error "`gnus-x-splash' requires running on the window system"))
178 (switch-to-buffer (gnus-get-buffer-create gnus-group-buffer)) 178 (switch-to-buffer (gnus-get-buffer-create (if (or (gnus-alive-p)
179 (let ((buffer-read-only nil) 179 (interactive-p))
180 width height) 180 "*gnus-x-splash*"
181 (erase-buffer) 181 gnus-group-buffer)))
182 (when (and dir 182 (let ((inhibit-read-only nil)
183 (file-exists-p (setq file 183 (file (nnheader-find-etc-directory "images/gnus/x-splash" t))
184 (expand-file-name "x-splash" dir)))) 184 pixmap fcw fch width height fringes sbars left yoffset top ls)
185 (let ((coding-system-for-read 'raw-text) 185 (erase-buffer)
186 default-enable-multibyte-characters) 186 (when (and file
187 (with-temp-buffer 187 (ignore-errors
188 (insert-file-contents file) 188 (let ((coding-system-for-read 'raw-text)
189 (goto-char (point-min)) 189 default-enable-multibyte-characters)
190 (ignore-errors 190 (with-temp-buffer
191 (setq pixmap (read (current-buffer))))))) 191 (insert-file-contents file)
192 (when pixmap 192 (goto-char (point-min))
193 (make-face 'gnus-splash) 193 (setq pixmap (read (current-buffer)))))))
194 (setq height (/ (car pixmap) (frame-char-height)) 194 (setq fcw (float (frame-char-width))
195 width (/ (cadr pixmap) (frame-char-width))) 195 fch (float (frame-char-height))
196 (set-face-foreground 'gnus-splash "Brown") 196 width (/ (car pixmap) fcw)
197 (set-face-stipple 'gnus-splash pixmap) 197 height (/ (cadr pixmap) fch)
198 (insert-char ?\n (* (/ (window-height) 2 height) height)) 198 fringes (if (fboundp 'window-fringes)
199 (setq i height) 199 (eval '(window-fringes))
200 (while (> i 0) 200 '(10 11 nil))
201 (insert-char ?\ (* (/ (window-width) 2 width) width)) 201 sbars (frame-parameter nil 'vertical-scroll-bars))
202 (setq beg (point)) 202 (cond ((eq sbars 'right)
203 (insert-char ?\ width) 203 (setq sbars
204 (set-text-properties beg (point) '(face gnus-splash)) 204 (cons 0 (/ (or (frame-parameter nil 'scroll-bar-width) 14)
205 (insert ?\n) 205 fcw))))
206 (decf i)) 206 (sbars
207 (goto-char (point-min)) 207 (setq sbars
208 (sit-for 0)))))) 208 (cons (/ (or (frame-parameter nil 'scroll-bar-width) 14)
209 fcw)
210 0))))
211 (setq left (- (* (round (/ (1- (/ (+ (window-width)
212 (car sbars) (cdr sbars)
213 (/ (+ (or (car fringes) 0)
214 (or (cadr fringes) 0))
215 fcw))
216 width))
217 2))
218 width)
219 (car sbars)
220 (/ (or (car fringes) 0) fcw))
221 yoffset (cadr (window-edges))
222 top (max 0 (- (* (max (if (and tool-bar-mode
223 (not (featurep 'gtk))
224 (eq (frame-first-window)
225 (selected-window)))
226 1 0)
227 (round (/ (1- (/ (+ (1- (window-height))
228 (* 2 yoffset))
229 height))
230 2)))
231 height)
232 yoffset))
233 ls (/ (or line-spacing 0) fch)
234 height (max 0 (- height ls)))
235 (cond ((>= (- top ls) 1)
236 (insert
237 (propertize
238 " "
239 'display `(space :width 0 :ascent 100))
240 "\n"
241 (propertize
242 " "
243 'display `(space :width 0 :height ,(- top ls 1) :ascent 100))
244 "\n"))
245 ((> (- top ls) 0)
246 (insert
247 (propertize
248 " "
249 'display `(space :width 0 :height ,(- top ls) :ascent 100))
250 "\n")))
251 (if (and (> width 0) (> left 0))
252 (insert (propertize
253 " "
254 'display `(space :width ,left :height ,height :ascent 0)))
255 (setq width (+ width left)))
256 (when (> width 0)
257 (insert (propertize
258 " "
259 'display `(space :width ,width :height ,height :ascent 0)
260 'face `(gnus-splash :stipple ,pixmap))))
261 (goto-char (if (<= (- top ls) 0) (1- (point)) (point-min)))
262 (redraw-frame (selected-frame))
263 (sit-for 0))))
209 264
210;;; Image functions. 265;;; Image functions.
211 266
diff --git a/lisp/gnus/gnus-start.el b/lisp/gnus/gnus-start.el
index 72748fc359c..276b028843a 100644
--- a/lisp/gnus/gnus-start.el
+++ b/lisp/gnus/gnus-start.el
@@ -760,8 +760,7 @@ prompt the user for the name of an NNTP server to use."
760 (cond 760 (cond
761 ((featurep 'xemacs) 761 ((featurep 'xemacs)
762 (gnus-xmas-splash)) 762 (gnus-xmas-splash))
763 ((and window-system 763 (window-system
764 (= (frame-height) (1+ (window-height))))
765 (gnus-x-splash)))) 764 (gnus-x-splash))))
766 765
767 (let ((level (and (numberp arg) (> arg 0) arg)) 766 (let ((level (and (numberp arg) (> arg 0) arg))
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
index 5653c8be746..b1b6c8b760b 100644
--- a/lisp/gnus/gnus-sum.el
+++ b/lisp/gnus/gnus-sum.el
@@ -973,14 +973,14 @@ automatically when it is selected."
973 . gnus-summary-normal-read)) 973 . gnus-summary-normal-read))
974 "*Controls the highlighting of summary buffer lines. 974 "*Controls the highlighting of summary buffer lines.
975 975
976A list of (FORM . FACE) pairs. When deciding how a a particular 976A list of (FORM . FACE) pairs. When deciding how a particular
977summary line should be displayed, each form is evaluated. The content 977summary line should be displayed, each form is evaluated. The content
978of the face field after the first true form is used. You can change 978of the face field after the first true form is used. You can change
979how those summary lines are displayed, by editing the face field. 979how those summary lines are displayed, by editing the face field.
980 980
981You can use the following variables in the FORM field. 981You can use the following variables in the FORM field.
982 982
983score: The article's score 983score: The article's score.
984default: The default article score. 984default: The default article score.
985default-high: The default score for high scored articles. 985default-high: The default score for high scored articles.
986default-low: The default score for low scored articles. 986default-low: The default score for low scored articles.
diff --git a/lisp/gnus/mail-source.el b/lisp/gnus/mail-source.el
index b991415342d..99596d2584b 100644
--- a/lisp/gnus/mail-source.el
+++ b/lisp/gnus/mail-source.el
@@ -284,7 +284,7 @@ files older than number of days."
284 (integer :tag "days"))) 284 (integer :tag "days")))
285 285
286(defcustom mail-source-delete-old-incoming-confirm t 286(defcustom mail-source-delete-old-incoming-confirm t
287 "*If non-nil, ask for for confirmation before deleting old incoming files. 287 "*If non-nil, ask for confirmation before deleting old incoming files.
288This variable only applies when `mail-source-delete-incoming' is a positive 288This variable only applies when `mail-source-delete-incoming' is a positive
289number." 289number."
290 :version "22.1" 290 :version "22.1"
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el
index 6d52d8b2f16..028855ab341 100644
--- a/lisp/gnus/mm-decode.el
+++ b/lisp/gnus/mm-decode.el
@@ -1371,18 +1371,19 @@ be determined."
1371(defun mm-image-fit-p (handle) 1371(defun mm-image-fit-p (handle)
1372 "Say whether the image in HANDLE will fit the current window." 1372 "Say whether the image in HANDLE will fit the current window."
1373 (let ((image (mm-get-image handle))) 1373 (let ((image (mm-get-image handle)))
1374 (if (fboundp 'glyph-width) 1374 (or (not image)
1375 ;; XEmacs' glyphs can actually tell us about their width, so 1375 (if (fboundp 'glyph-width)
1376 ;; lets be nice and smart about them. 1376 ;; XEmacs' glyphs can actually tell us about their width, so
1377 (or mm-inline-large-images 1377 ;; lets be nice and smart about them.
1378 (and (< (glyph-width image) (window-pixel-width)) 1378 (or mm-inline-large-images
1379 (< (glyph-height image) (window-pixel-height)))) 1379 (and (<= (glyph-width image) (window-pixel-width))
1380 (let* ((size (image-size image)) 1380 (<= (glyph-height image) (window-pixel-height))))
1381 (w (car size)) 1381 (let* ((size (image-size image))
1382 (h (cdr size))) 1382 (w (car size))
1383 (or mm-inline-large-images 1383 (h (cdr size)))
1384 (and (< h (1- (window-height))) ; Don't include mode line. 1384 (or mm-inline-large-images
1385 (< w (window-width)))))))) 1385 (and (<= h (1- (window-height))) ; Don't include mode line.
1386 (<= w (window-width)))))))))
1386 1387
1387(defun mm-valid-image-format-p (format) 1388(defun mm-valid-image-format-p (format)
1388 "Say whether FORMAT can be displayed natively by Emacs." 1389 "Say whether FORMAT can be displayed natively by Emacs."
diff --git a/lisp/gnus/nndiary.el b/lisp/gnus/nndiary.el
index 483c2ee1070..f6e0ae44cb2 100644
--- a/lisp/gnus/nndiary.el
+++ b/lisp/gnus/nndiary.el
@@ -131,7 +131,7 @@ non-nil."
131 131
132 132
133(defcustom nndiary-reminders '((0 . day)) 133(defcustom nndiary-reminders '((0 . day))
134 "*Different times when you want to be reminded of your appointements. 134 "*Different times when you want to be reminded of your appointments.
135Diary articles will appear again, as if they'd been just received. 135Diary articles will appear again, as if they'd been just received.
136 136
137Entries look like (3 . day) which means something like \"Please 137Entries look like (3 . day) which means something like \"Please
@@ -145,7 +145,7 @@ not 'century, sorry).
145NOTE: the units of measure actually express dates, not durations: if you 145NOTE: the units of measure actually express dates, not durations: if you
146use 'week, messages will pop up on Sundays at 00:00 (or Mondays if 146use 'week, messages will pop up on Sundays at 00:00 (or Mondays if
147`nndiary-week-starts-on-monday' is non-nil) and *not* 7 days before the 147`nndiary-week-starts-on-monday' is non-nil) and *not* 7 days before the
148appointement, if you use 'month, messages will pop up on the first day of 148appointment, if you use 'month, messages will pop up on the first day of
149each months, at 00:00 and so on. 149each months, at 00:00 and so on.
150 150
151If you really want to specify a duration (like 24 hours exactly), you can 151If you really want to specify a duration (like 24 hours exactly), you can
@@ -155,15 +155,15 @@ scheme might appear somewhat weird at a first glance, it is very powerful.
155In order to make this clear, here are some examples: 155In order to make this clear, here are some examples:
156 156
157- '(0 . day): this is the default value of `nndiary-reminders'. It means 157- '(0 . day): this is the default value of `nndiary-reminders'. It means
158 pop up the appointements of the day each morning at 00:00. 158 pop up the appointments of the day each morning at 00:00.
159 159
160- '(1 . day): this means pop up the appointements the day before, at 00:00. 160- '(1 . day): this means pop up the appointments the day before, at 00:00.
161 161
162- '(6 . hour): for an appointement at 18:30, this would pop up the 162- '(6 . hour): for an appointment at 18:30, this would pop up the
163 appointement message at 12:00. 163 appointment message at 12:00.
164 164
165- '(360 . minute): for an appointement at 18:30 and 15 seconds, this would 165- '(360 . minute): for an appointment at 18:30 and 15 seconds, this would
166 pop up the appointement message at 12:30." 166 pop up the appointment message at 12:30."
167 :group 'nndiary 167 :group 'nndiary
168 :type '(repeat (cons :format "%v\n" 168 :type '(repeat (cons :format "%v\n"
169 (integer :format "%v") 169 (integer :format "%v")
diff --git a/lisp/help-mode.el b/lisp/help-mode.el
index afaf06bec3c..f7c33d85286 100644
--- a/lisp/help-mode.el
+++ b/lisp/help-mode.el
@@ -40,6 +40,7 @@
40 40
41(define-key help-mode-map [mouse-2] 'help-follow-mouse) 41(define-key help-mode-map [mouse-2] 'help-follow-mouse)
42(define-key help-mode-map "\C-c\C-b" 'help-go-back) 42(define-key help-mode-map "\C-c\C-b" 'help-go-back)
43(define-key help-mode-map "\C-c\C-f" 'help-go-forward)
43(define-key help-mode-map "\C-c\C-c" 'help-follow-symbol) 44(define-key help-mode-map "\C-c\C-c" 'help-follow-symbol)
44;; Documentation only, since we use minor-mode-overriding-map-alist. 45;; Documentation only, since we use minor-mode-overriding-map-alist.
45(define-key help-mode-map "\r" 'help-follow) 46(define-key help-mode-map "\r" 'help-follow)
@@ -52,13 +53,28 @@ To use the element, do (apply FUNCTION ARGS) then goto the point.")
52(put 'help-xref-stack 'permanent-local t) 53(put 'help-xref-stack 'permanent-local t)
53(make-variable-buffer-local 'help-xref-stack) 54(make-variable-buffer-local 'help-xref-stack)
54 55
56(defvar help-xref-forward-stack nil
57 "The stack of used to navigate help forwards after using the back button.
58Used by `help-follow' and `help-xref-go-forward'.
59An element looks like (POSITION FUNCTION ARGS...).
60To use the element, do (apply FUNCTION ARGS) then goto the point.")
61(put 'help-xref-forward-stack 'permanent-local t)
62(make-variable-buffer-local 'help-xref-forward-stack)
63
55(defvar help-xref-stack-item nil 64(defvar help-xref-stack-item nil
56 "An item for `help-follow' in this buffer to push onto `help-xref-stack'. 65 "An item for `help-follow' in this buffer to push onto `help-xref-stack'.
57The format is (FUNCTION ARGS...).") 66The format is (FUNCTION ARGS...).")
58(put 'help-xref-stack-item 'permanent-local t) 67(put 'help-xref-stack-item 'permanent-local t)
59(make-variable-buffer-local 'help-xref-stack-item) 68(make-variable-buffer-local 'help-xref-stack-item)
60 69
70(defvar help-xref-stack-forward-item nil
71 "An item for `help-go-back' to push onto `help-xref-forward-stack'.
72The format is (FUNCTION ARGS...).")
73(put 'help-xref-stack-forward-item 'permanent-local t)
74(make-variable-buffer-local 'help-xref-stack-forward-item)
75
61(setq-default help-xref-stack nil help-xref-stack-item nil) 76(setq-default help-xref-stack nil help-xref-stack-item nil)
77(setq-default help-xref-forward-stack nil help-xref-forward-stack-item nil)
62 78
63(defcustom help-mode-hook nil 79(defcustom help-mode-hook nil
64 "Hook run by `help-mode'." 80 "Hook run by `help-mode'."
@@ -123,6 +139,11 @@ The format is (FUNCTION ARGS...).")
123 'help-function #'help-xref-go-back 139 'help-function #'help-xref-go-back
124 'help-echo (purecopy "mouse-2, RET: go back to previous help buffer")) 140 'help-echo (purecopy "mouse-2, RET: go back to previous help buffer"))
125 141
142(define-button-type 'help-forward
143 :supertype 'help-xref
144 'help-function #'help-xref-go-forward
145 'help-echo (purecopy "mouse-2, RET: move forward to next help buffer"))
146
126(define-button-type 'help-info 147(define-button-type 'help-info
127 :supertype 'help-xref 148 :supertype 'help-xref
128 'help-function #'info 149 'help-function #'info
@@ -242,6 +263,9 @@ Commands:
242(defvar help-back-label (purecopy "[back]") 263(defvar help-back-label (purecopy "[back]")
243 "Label to use by `help-make-xrefs' for the go-back reference.") 264 "Label to use by `help-make-xrefs' for the go-back reference.")
244 265
266(defvar help-forward-label (purecopy "[forward]")
267 "Label to use by `help-make-xrefs' for the go-forward reference.")
268
245(defconst help-xref-symbol-regexp 269(defconst help-xref-symbol-regexp
246 (purecopy (concat "\\(\\<\\(\\(variable\\|option\\)\\|" ; Link to var 270 (purecopy (concat "\\(\\<\\(\\(variable\\|option\\)\\|" ; Link to var
247 "\\(function\\|command\\)\\|" ; Link to function 271 "\\(function\\|command\\)\\|" ; Link to function
@@ -286,7 +310,8 @@ because we want to record the \"previous\" position of point so we can
286restore it properly when going back." 310restore it properly when going back."
287 (with-current-buffer (help-buffer) 311 (with-current-buffer (help-buffer)
288 (when help-xref-stack-item 312 (when help-xref-stack-item
289 (push (cons (point) help-xref-stack-item) help-xref-stack)) 313 (push (cons (point) help-xref-stack-item) help-xref-stack)
314 (setq help-xref-forward-stack nil))
290 (when interactive-p 315 (when interactive-p
291 (let ((tail (nthcdr 10 help-xref-stack))) 316 (let ((tail (nthcdr 10 help-xref-stack)))
292 ;; Truncate the stack. 317 ;; Truncate the stack.
@@ -480,6 +505,11 @@ that."
480 (insert "\n") 505 (insert "\n")
481 (help-insert-xref-button help-back-label 'help-back 506 (help-insert-xref-button help-back-label 'help-back
482 (current-buffer)) 507 (current-buffer))
508 (insert "\t"))
509 ;; Make a forward-reference in this buffer if appropriate.
510 (when help-xref-forward-stack
511 (help-insert-xref-button help-forward-label 'help-forward
512 (current-buffer))
483 (insert "\n"))) 513 (insert "\n")))
484 ;; View mode steals RET from us. 514 ;; View mode steals RET from us.
485 (set (make-local-variable 'minor-mode-overriding-map-alist) 515 (set (make-local-variable 'minor-mode-overriding-map-alist)
@@ -598,6 +628,7 @@ help buffer."
598 "From BUFFER, go back to previous help buffer text using `help-xref-stack'." 628 "From BUFFER, go back to previous help buffer text using `help-xref-stack'."
599 (let (item position method args) 629 (let (item position method args)
600 (with-current-buffer buffer 630 (with-current-buffer buffer
631 (push (cons (point) help-xref-stack-item) help-xref-forward-stack)
601 (when help-xref-stack 632 (when help-xref-stack
602 (setq item (pop help-xref-stack) 633 (setq item (pop help-xref-stack)
603 ;; Clear the current item so that it won't get pushed 634 ;; Clear the current item so that it won't get pushed
@@ -613,12 +644,39 @@ help buffer."
613 (set-window-point (get-buffer-window buffer) position) 644 (set-window-point (get-buffer-window buffer) position)
614 (goto-char position))))) 645 (goto-char position)))))
615 646
647(defun help-xref-go-forward (buffer)
648 "From BUFFER, go forward to next help buffer."
649 (let (item position method args)
650 (with-current-buffer buffer
651 (push (cons (point) help-xref-stack-item) help-xref-stack)
652 (when help-xref-forward-stack
653 (setq item (pop help-xref-forward-stack)
654 ;; Clear the current item so that it won't get pushed
655 ;; by the function we're about to call. TODO: We could also
656 ;; push it onto a "forward" stack and add a `forw' button.
657 help-xref-stack-item nil
658 position (car item)
659 method (cadr item)
660 args (cddr item))))
661 (apply method args)
662 (with-current-buffer buffer
663 (if (get-buffer-window buffer)
664 (set-window-point (get-buffer-window buffer) position)
665 (goto-char position)))))
666
616(defun help-go-back () 667(defun help-go-back ()
617 "Go back to previous topic in this help buffer." 668 "Go back to previous topic in this help buffer."
618 (interactive) 669 (interactive)
619 (if help-xref-stack 670 (if help-xref-stack
620 (help-xref-go-back (current-buffer)) 671 (help-xref-go-back (current-buffer))
621 (error "No previous help buffer"))) 672 (error "No previous help buffer")))
673
674(defun help-go-forward ()
675 "Go back to next topic in this help buffer."
676 (interactive)
677 (if help-xref-forward-stack
678 (help-xref-go-forward (current-buffer))
679 (error "No next help buffer")))
622 680
623(defun help-do-xref (pos function args) 681(defun help-do-xref (pos function args)
624 "Call the help cross-reference function FUNCTION with args ARGS. 682 "Call the help cross-reference function FUNCTION with args ARGS.
diff --git a/lisp/ldefs-boot.el b/lisp/ldefs-boot.el
index b3fcf719a75..b12fe880074 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" (17941 5494)) 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" "\
@@ -63,14 +63,14 @@ should return a grid vector array that is the new solution.
63 63
64;;;*** 64;;;***
65 65
66;;;### (autoloads nil "abbrev" "abbrev.el" (17939 56016)) 66;;;### (autoloads nil "abbrev" "abbrev.el" (17905 55681))
67;;; Generated autoloads from abbrev.el 67;;; Generated autoloads from abbrev.el
68(put 'abbrev-mode 'safe-local-variable 'booleanp) 68(put 'abbrev-mode 'safe-local-variable 'booleanp)
69 69
70;;;*** 70;;;***
71 71
72;;;### (autoloads (list-one-abbrev-table) "abbrevlist" "abbrevlist.el" 72;;;### (autoloads (list-one-abbrev-table) "abbrevlist" "abbrevlist.el"
73;;;;;; (17843 45609)) 73;;;;;; (17842 58280))
74;;; Generated autoloads from abbrevlist.el 74;;; Generated autoloads from abbrevlist.el
75 75
76(autoload (quote list-one-abbrev-table) "abbrevlist" "\ 76(autoload (quote list-one-abbrev-table) "abbrevlist" "\
@@ -81,7 +81,7 @@ Display alphabetical listing of ABBREV-TABLE in buffer OUTPUT-BUFFER.
81;;;*** 81;;;***
82 82
83;;;### (autoloads (ada-mode ada-add-extensions) "ada-mode" "progmodes/ada-mode.el" 83;;;### (autoloads (ada-mode ada-add-extensions) "ada-mode" "progmodes/ada-mode.el"
84;;;;;; (17843 45626)) 84;;;;;; (17842 56333))
85;;; Generated autoloads from progmodes/ada-mode.el 85;;; Generated autoloads from progmodes/ada-mode.el
86 86
87(autoload (quote ada-add-extensions) "ada-mode" "\ 87(autoload (quote ada-add-extensions) "ada-mode" "\
@@ -142,7 +142,7 @@ If you use ada-xref.el:
142;;;*** 142;;;***
143 143
144;;;### (autoloads (ada-header) "ada-stmt" "progmodes/ada-stmt.el" 144;;;### (autoloads (ada-header) "ada-stmt" "progmodes/ada-stmt.el"
145;;;;;; (17843 45626)) 145;;;;;; (17842 56333))
146;;; Generated autoloads from progmodes/ada-stmt.el 146;;; Generated autoloads from progmodes/ada-stmt.el
147 147
148(autoload (quote ada-header) "ada-stmt" "\ 148(autoload (quote ada-header) "ada-stmt" "\
@@ -153,7 +153,7 @@ Insert a descriptive header at the top of the file.
153;;;*** 153;;;***
154 154
155;;;### (autoloads (ada-find-file) "ada-xref" "progmodes/ada-xref.el" 155;;;### (autoloads (ada-find-file) "ada-xref" "progmodes/ada-xref.el"
156;;;;;; (17843 45626)) 156;;;;;; (17842 56333))
157;;; Generated autoloads from progmodes/ada-xref.el 157;;; Generated autoloads from progmodes/ada-xref.el
158 158
159(autoload (quote ada-find-file) "ada-xref" "\ 159(autoload (quote ada-find-file) "ada-xref" "\
@@ -168,7 +168,7 @@ Completion is available.
168;;;;;; change-log-mode add-change-log-entry-other-window add-change-log-entry 168;;;;;; change-log-mode add-change-log-entry-other-window add-change-log-entry
169;;;;;; find-change-log prompt-for-change-log-name add-log-mailing-address 169;;;;;; find-change-log prompt-for-change-log-name add-log-mailing-address
170;;;;;; add-log-full-name add-log-current-defun-function) "add-log" 170;;;;;; add-log-full-name add-log-current-defun-function) "add-log"
171;;;;;; "add-log.el" (17939 56016)) 171;;;;;; "add-log.el" (17851 44469))
172;;; Generated autoloads from add-log.el 172;;; Generated autoloads from add-log.el
173 173
174(defvar add-log-current-defun-function nil "\ 174(defvar add-log-current-defun-function nil "\
@@ -306,7 +306,7 @@ Fix any old-style date entries in the current log file to default format.
306 306
307;;;### (autoloads (defadvice ad-activate ad-add-advice ad-disable-advice 307;;;### (autoloads (defadvice ad-activate ad-add-advice ad-disable-advice
308;;;;;; ad-enable-advice ad-default-compilation-action ad-redefinition-action) 308;;;;;; ad-enable-advice ad-default-compilation-action ad-redefinition-action)
309;;;;;; "advice" "emacs-lisp/advice.el" (17843 45615)) 309;;;;;; "advice" "emacs-lisp/advice.el" (17992 30878))
310;;; Generated autoloads from emacs-lisp/advice.el 310;;; Generated autoloads from emacs-lisp/advice.el
311 311
312(defvar ad-redefinition-action (quote warn) "\ 312(defvar ad-redefinition-action (quote warn) "\
@@ -434,7 +434,7 @@ See Info node `(elisp)Advising Functions' for comprehensive documentation.
434 434
435;;;### (autoloads (align-newline-and-indent align-unhighlight-rule 435;;;### (autoloads (align-newline-and-indent align-unhighlight-rule
436;;;;;; align-highlight-rule align-current align-entire align-regexp 436;;;;;; align-highlight-rule align-current align-entire align-regexp
437;;;;;; align) "align" "align.el" (17843 45609)) 437;;;;;; align) "align" "align.el" (17842 58280))
438;;; Generated autoloads from align.el 438;;; Generated autoloads from align.el
439 439
440(autoload (quote align) "align" "\ 440(autoload (quote align) "align" "\
@@ -524,7 +524,7 @@ A replacement function for `newline-and-indent', aligning as it goes.
524;;;*** 524;;;***
525 525
526;;;### (autoloads (outlineify-sticky allout-mode) "allout" "allout.el" 526;;;### (autoloads (outlineify-sticky allout-mode) "allout" "allout.el"
527;;;;;; (17939 56016)) 527;;;;;; (17892 52945))
528;;; Generated autoloads from allout.el 528;;; Generated autoloads from allout.el
529 529
530(put (quote allout-show-bodies) (quote safe-local-variable) (if (fboundp (quote booleanp)) (quote booleanp) (quote (lambda (x) (member x (quote (t nil))))))) 530(put (quote allout-show-bodies) (quote safe-local-variable) (if (fboundp (quote booleanp)) (quote booleanp) (quote (lambda (x) (member x (quote (t nil)))))))
@@ -830,7 +830,7 @@ setup for auto-startup.
830;;;*** 830;;;***
831 831
832;;;### (autoloads (ange-ftp-hook-function ange-ftp-reread-dir) "ange-ftp" 832;;;### (autoloads (ange-ftp-hook-function ange-ftp-reread-dir) "ange-ftp"
833;;;;;; "net/ange-ftp.el" (17939 56022)) 833;;;;;; "net/ange-ftp.el" (17905 9579))
834;;; Generated autoloads from net/ange-ftp.el 834;;; Generated autoloads from net/ange-ftp.el
835 835
836(defalias (quote ange-ftp-re-read-dir) (quote ange-ftp-reread-dir)) 836(defalias (quote ange-ftp-re-read-dir) (quote ange-ftp-reread-dir))
@@ -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" (17941 5494)) 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" "\
@@ -880,7 +880,7 @@ You can specify the one's name by NAME; the default value is \"Sarah\".
880;;;*** 880;;;***
881 881
882;;;### (autoloads (ansi-color-process-output ansi-color-for-comint-mode-on) 882;;;### (autoloads (ansi-color-process-output ansi-color-for-comint-mode-on)
883;;;;;; "ansi-color" "ansi-color.el" (17843 45609)) 883;;;;;; "ansi-color" "ansi-color.el" (17842 58280))
884;;; Generated autoloads from ansi-color.el 884;;; Generated autoloads from ansi-color.el
885 885
886(autoload (quote ansi-color-for-comint-mode-on) "ansi-color" "\ 886(autoload (quote ansi-color-for-comint-mode-on) "ansi-color" "\
@@ -906,7 +906,7 @@ This is a good function to put in `comint-output-filter-functions'.
906;;;*** 906;;;***
907 907
908;;;### (autoloads (antlr-set-tabs antlr-mode antlr-show-makefile-rules) 908;;;### (autoloads (antlr-set-tabs antlr-mode antlr-show-makefile-rules)
909;;;;;; "antlr-mode" "progmodes/antlr-mode.el" (17838 18033)) 909;;;;;; "antlr-mode" "progmodes/antlr-mode.el" (17833 42928))
910;;; Generated autoloads from progmodes/antlr-mode.el 910;;; Generated autoloads from progmodes/antlr-mode.el
911 911
912(autoload (quote antlr-show-makefile-rules) "antlr-mode" "\ 912(autoload (quote antlr-show-makefile-rules) "antlr-mode" "\
@@ -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" (17953 11485)) 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 "\
@@ -1033,7 +1033,7 @@ ARG is positive, otherwise off.
1033 1033
1034;;;### (autoloads (apropos-documentation apropos-value apropos apropos-documentation-property 1034;;;### (autoloads (apropos-documentation apropos-value apropos apropos-documentation-property
1035;;;;;; apropos-command apropos-variable apropos-read-pattern) "apropos" 1035;;;;;; apropos-command apropos-variable apropos-read-pattern) "apropos"
1036;;;;;; "apropos.el" (17843 45609)) 1036;;;;;; "apropos.el" (17842 58280))
1037;;; Generated autoloads from apropos.el 1037;;; Generated autoloads from apropos.el
1038 1038
1039(autoload (quote apropos-read-pattern) "apropos" "\ 1039(autoload (quote apropos-read-pattern) "apropos" "\
@@ -1130,7 +1130,7 @@ Returns list of symbols and documentation found.
1130;;;*** 1130;;;***
1131 1131
1132;;;### (autoloads (archive-mode) "arc-mode" "arc-mode.el" (17960 1132;;;### (autoloads (archive-mode) "arc-mode" "arc-mode.el" (17960
1133;;;;;; 114)) 1133;;;;;; 49045))
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" "\
@@ -1150,7 +1150,7 @@ archive.
1150 1150
1151;;;*** 1151;;;***
1152 1152
1153;;;### (autoloads (array-mode) "array" "array.el" (17843 45609)) 1153;;;### (autoloads (array-mode) "array" "array.el" (17842 58280))
1154;;; Generated autoloads from array.el 1154;;; Generated autoloads from array.el
1155 1155
1156(autoload (quote array-mode) "array" "\ 1156(autoload (quote array-mode) "array" "\
@@ -1221,8 +1221,8 @@ Entering array mode calls the function `array-mode-hook'.
1221 1221
1222;;;*** 1222;;;***
1223 1223
1224;;;### (autoloads (artist-mode) "artist" "textmodes/artist.el" (17843 1224;;;### (autoloads (artist-mode) "artist" "textmodes/artist.el" (17842
1225;;;;;; 45629)) 1225;;;;;; 58277))
1226;;; Generated autoloads from textmodes/artist.el 1226;;; Generated autoloads from textmodes/artist.el
1227 1227
1228(autoload (quote artist-mode) "artist" "\ 1228(autoload (quote artist-mode) "artist" "\
@@ -1427,8 +1427,8 @@ Keymap summary
1427 1427
1428;;;*** 1428;;;***
1429 1429
1430;;;### (autoloads (asm-mode) "asm-mode" "progmodes/asm-mode.el" (17843 1430;;;### (autoloads (asm-mode) "asm-mode" "progmodes/asm-mode.el" (17842
1431;;;;;; 45626)) 1431;;;;;; 56333))
1432;;; Generated autoloads from progmodes/asm-mode.el 1432;;; Generated autoloads from progmodes/asm-mode.el
1433 1433
1434(autoload (quote asm-mode) "asm-mode" "\ 1434(autoload (quote asm-mode) "asm-mode" "\
@@ -1456,12 +1456,12 @@ Special commands:
1456;;;*** 1456;;;***
1457 1457
1458;;;### (autoloads (autoarg-kp-mode autoarg-mode) "autoarg" "autoarg.el" 1458;;;### (autoloads (autoarg-kp-mode autoarg-mode) "autoarg" "autoarg.el"
1459;;;;;; (17843 45609)) 1459;;;;;; (17842 58280))
1460;;; Generated autoloads from autoarg.el 1460;;; Generated autoloads from autoarg.el
1461 1461
1462(defvar autoarg-mode nil "\ 1462(defvar autoarg-mode nil "\
1463Non-nil if Autoarg mode is enabled. 1463Non-nil if Autoarg mode is enabled.
1464See the command `autoarg-mode' for a description of this minor-mode.") 1464See the command `autoarg-mode' for a description of this minor mode.")
1465 1465
1466(custom-autoload (quote autoarg-mode) "autoarg" nil) 1466(custom-autoload (quote autoarg-mode) "autoarg" nil)
1467 1467
@@ -1489,7 +1489,7 @@ then invokes the normal binding of \\[autoarg-terminate].
1489 1489
1490(defvar autoarg-kp-mode nil "\ 1490(defvar autoarg-kp-mode nil "\
1491Non-nil if Autoarg-Kp mode is enabled. 1491Non-nil if Autoarg-Kp mode is enabled.
1492See the command `autoarg-kp-mode' for a description of this minor-mode. 1492See the command `autoarg-kp-mode' for a description of this minor mode.
1493Setting this variable directly does not take effect; 1493Setting this variable directly does not take effect;
1494either customize it (see the info node `Easy Customization') 1494either customize it (see the info node `Easy Customization')
1495or call the function `autoarg-kp-mode'.") 1495or call the function `autoarg-kp-mode'.")
@@ -1510,7 +1510,7 @@ etc. to supply digit arguments.
1510;;;*** 1510;;;***
1511 1511
1512;;;### (autoloads (autoconf-mode) "autoconf" "progmodes/autoconf.el" 1512;;;### (autoloads (autoconf-mode) "autoconf" "progmodes/autoconf.el"
1513;;;;;; (17843 45626)) 1513;;;;;; (17842 56333))
1514;;; Generated autoloads from progmodes/autoconf.el 1514;;; Generated autoloads from progmodes/autoconf.el
1515 1515
1516(autoload (quote autoconf-mode) "autoconf" "\ 1516(autoload (quote autoconf-mode) "autoconf" "\
@@ -1521,7 +1521,7 @@ Major mode for editing Autoconf configure.in files.
1521;;;*** 1521;;;***
1522 1522
1523;;;### (autoloads (auto-insert-mode define-auto-insert auto-insert) 1523;;;### (autoloads (auto-insert-mode define-auto-insert auto-insert)
1524;;;;;; "autoinsert" "autoinsert.el" (17843 45609)) 1524;;;;;; "autoinsert" "autoinsert.el" (17842 58280))
1525;;; Generated autoloads from autoinsert.el 1525;;; Generated autoloads from autoinsert.el
1526 1526
1527(autoload (quote auto-insert) "autoinsert" "\ 1527(autoload (quote auto-insert) "autoinsert" "\
@@ -1539,7 +1539,7 @@ or if CONDITION had no actions, after all other CONDITIONs.
1539 1539
1540(defvar auto-insert-mode nil "\ 1540(defvar auto-insert-mode nil "\
1541Non-nil if Auto-Insert mode is enabled. 1541Non-nil if Auto-Insert mode is enabled.
1542See the command `auto-insert-mode' for a description of this minor-mode. 1542See the command `auto-insert-mode' for a description of this minor mode.
1543Setting this variable directly does not take effect; 1543Setting this variable directly does not take effect;
1544either customize it (see the info node `Easy Customization') 1544either customize it (see the info node `Easy Customization')
1545or call the function `auto-insert-mode'.") 1545or call the function `auto-insert-mode'.")
@@ -1560,7 +1560,7 @@ insert a template for the file depending on the mode of the buffer.
1560 1560
1561;;;### (autoloads (batch-update-autoloads update-directory-autoloads 1561;;;### (autoloads (batch-update-autoloads update-directory-autoloads
1562;;;;;; update-file-autoloads) "autoload" "emacs-lisp/autoload.el" 1562;;;;;; update-file-autoloads) "autoload" "emacs-lisp/autoload.el"
1563;;;;;; (17939 56021)) 1563;;;;;; (17860 50557))
1564;;; Generated autoloads from emacs-lisp/autoload.el 1564;;; Generated autoloads from emacs-lisp/autoload.el
1565 1565
1566(autoload (quote update-file-autoloads) "autoload" "\ 1566(autoload (quote update-file-autoloads) "autoload" "\
@@ -1595,7 +1595,7 @@ Calls `update-directory-autoloads' on the command line arguments.
1595 1595
1596;;;### (autoloads (global-auto-revert-mode turn-on-auto-revert-tail-mode 1596;;;### (autoloads (global-auto-revert-mode turn-on-auto-revert-tail-mode
1597;;;;;; auto-revert-tail-mode turn-on-auto-revert-mode auto-revert-mode) 1597;;;;;; auto-revert-tail-mode turn-on-auto-revert-mode auto-revert-mode)
1598;;;;;; "autorevert" "autorevert.el" (17939 56016)) 1598;;;;;; "autorevert" "autorevert.el" (17925 15265))
1599;;; Generated autoloads from autorevert.el 1599;;; Generated autoloads from autorevert.el
1600 1600
1601(autoload (quote auto-revert-mode) "autorevert" "\ 1601(autoload (quote auto-revert-mode) "autorevert" "\
@@ -1645,7 +1645,7 @@ This function is designed to be added to hooks, for example:
1645 1645
1646(defvar global-auto-revert-mode nil "\ 1646(defvar global-auto-revert-mode nil "\
1647Non-nil if Global-Auto-Revert mode is enabled. 1647Non-nil if Global-Auto-Revert mode is enabled.
1648See the command `global-auto-revert-mode' for a description of this minor-mode. 1648See the command `global-auto-revert-mode' for a description of this minor mode.
1649Setting this variable directly does not take effect; 1649Setting this variable directly does not take effect;
1650either customize it (see the info node `Easy Customization') 1650either customize it (see the info node `Easy Customization')
1651or call the function `global-auto-revert-mode'.") 1651or call the function `global-auto-revert-mode'.")
@@ -1664,7 +1664,7 @@ Use `auto-revert-mode' to revert a particular buffer.
1664;;;*** 1664;;;***
1665 1665
1666;;;### (autoloads (mouse-avoidance-mode mouse-avoidance-mode) "avoid" 1666;;;### (autoloads (mouse-avoidance-mode mouse-avoidance-mode) "avoid"
1667;;;;;; "avoid.el" (17843 45609)) 1667;;;;;; "avoid.el" (17842 58280))
1668;;; Generated autoloads from avoid.el 1668;;; Generated autoloads from avoid.el
1669 1669
1670(defvar mouse-avoidance-mode nil "\ 1670(defvar mouse-avoidance-mode nil "\
@@ -1705,7 +1705,7 @@ definition of \"random distance\".)
1705;;;*** 1705;;;***
1706 1706
1707;;;### (autoloads (backquote) "backquote" "emacs-lisp/backquote.el" 1707;;;### (autoloads (backquote) "backquote" "emacs-lisp/backquote.el"
1708;;;;;; (17843 45615)) 1708;;;;;; (17842 54152))
1709;;; Generated autoloads from emacs-lisp/backquote.el 1709;;; Generated autoloads from emacs-lisp/backquote.el
1710 1710
1711(autoload (quote backquote) "backquote" "\ 1711(autoload (quote backquote) "backquote" "\
@@ -1730,7 +1730,7 @@ Vectors work just like lists. Nested backquotes are permitted.
1730;;;*** 1730;;;***
1731 1731
1732;;;### (autoloads (display-battery-mode battery) "battery" "battery.el" 1732;;;### (autoloads (display-battery-mode battery) "battery" "battery.el"
1733;;;;;; (17843 45609)) 1733;;;;;; (17842 58280))
1734;;; Generated autoloads from battery.el 1734;;; Generated autoloads from battery.el
1735 (put 'battery-mode-line-string 'risky-local-variable t) 1735 (put 'battery-mode-line-string 'risky-local-variable t)
1736 1736
@@ -1743,7 +1743,7 @@ The text being displayed in the echo area is controlled by the variables
1743 1743
1744(defvar display-battery-mode nil "\ 1744(defvar display-battery-mode nil "\
1745Non-nil if Display-Battery mode is enabled. 1745Non-nil if Display-Battery mode is enabled.
1746See the command `display-battery-mode' for a description of this minor-mode. 1746See the command `display-battery-mode' for a description of this minor mode.
1747Setting this variable directly does not take effect; 1747Setting this variable directly does not take effect;
1748either customize it (see the info node `Easy Customization') 1748either customize it (see the info node `Easy Customization')
1749or call the function `display-battery-mode'.") 1749or call the function `display-battery-mode'.")
@@ -1762,7 +1762,7 @@ seconds.
1762;;;*** 1762;;;***
1763 1763
1764;;;### (autoloads (benchmark benchmark-run-compiled benchmark-run) 1764;;;### (autoloads (benchmark benchmark-run-compiled benchmark-run)
1765;;;;;; "benchmark" "emacs-lisp/benchmark.el" (17843 45615)) 1765;;;;;; "benchmark" "emacs-lisp/benchmark.el" (17842 54152))
1766;;; Generated autoloads from emacs-lisp/benchmark.el 1766;;; Generated autoloads from emacs-lisp/benchmark.el
1767 1767
1768(autoload (quote benchmark-run) "benchmark" "\ 1768(autoload (quote benchmark-run) "benchmark" "\
@@ -1795,7 +1795,7 @@ non-interactive use see also `benchmark-run' and
1795;;;*** 1795;;;***
1796 1796
1797;;;### (autoloads (bibtex-mode) "bibtex" "textmodes/bibtex.el" (17956 1797;;;### (autoloads (bibtex-mode) "bibtex" "textmodes/bibtex.el" (17956
1798;;;;;; 60684)) 1798;;;;;; 21270))
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" "\
@@ -1857,7 +1857,7 @@ if that value is non-nil.
1857 1857
1858;;;### (autoloads (binhex-decode-region binhex-decode-region-external 1858;;;### (autoloads (binhex-decode-region binhex-decode-region-external
1859;;;;;; binhex-decode-region-internal) "binhex" "gnus/binhex.el" 1859;;;;;; binhex-decode-region-internal) "binhex" "gnus/binhex.el"
1860;;;;;; (17843 45616)) 1860;;;;;; (17842 54741))
1861;;; Generated autoloads from gnus/binhex.el 1861;;; Generated autoloads from gnus/binhex.el
1862 1862
1863(defconst binhex-begin-line "^:...............................................................$") 1863(defconst binhex-begin-line "^:...............................................................$")
@@ -1880,8 +1880,8 @@ Binhex decode region between START and END.
1880 1880
1881;;;*** 1881;;;***
1882 1882
1883;;;### (autoloads (blackbox) "blackbox" "play/blackbox.el" (17843 1883;;;### (autoloads (blackbox) "blackbox" "play/blackbox.el" (17842
1884;;;;;; 45625)) 1884;;;;;; 55395))
1885;;; Generated autoloads from play/blackbox.el 1885;;; Generated autoloads from play/blackbox.el
1886 1886
1887(autoload (quote blackbox) "blackbox" "\ 1887(autoload (quote blackbox) "blackbox" "\
@@ -2003,7 +2003,7 @@ a reflection.
2003;;;### (autoloads (bookmark-bmenu-list bookmark-load bookmark-save 2003;;;### (autoloads (bookmark-bmenu-list bookmark-load bookmark-save
2004;;;;;; bookmark-write bookmark-delete bookmark-insert bookmark-rename 2004;;;;;; bookmark-write bookmark-delete bookmark-insert bookmark-rename
2005;;;;;; bookmark-insert-location bookmark-relocate bookmark-jump 2005;;;;;; bookmark-insert-location bookmark-relocate bookmark-jump
2006;;;;;; bookmark-set) "bookmark" "bookmark.el" (17843 45609)) 2006;;;;;; bookmark-set) "bookmark" "bookmark.el" (17842 58280))
2007;;; Generated autoloads from bookmark.el 2007;;; Generated autoloads from bookmark.el
2008 (define-key ctl-x-map "rb" 'bookmark-jump) 2008 (define-key ctl-x-map "rb" 'bookmark-jump)
2009 (define-key ctl-x-map "rm" 'bookmark-set) 2009 (define-key ctl-x-map "rm" 'bookmark-set)
@@ -2193,7 +2193,7 @@ deletion, or > if it is flagged for displaying.
2193;;;;;; browse-url browse-url-of-region browse-url-of-dired-file 2193;;;;;; browse-url browse-url-of-region browse-url-of-dired-file
2194;;;;;; browse-url-of-buffer browse-url-of-file browse-url-url-at-point 2194;;;;;; browse-url-of-buffer browse-url-of-file browse-url-url-at-point
2195;;;;;; browse-url-galeon-program browse-url-firefox-program browse-url-browser-function) 2195;;;;;; browse-url-galeon-program browse-url-firefox-program browse-url-browser-function)
2196;;;;;; "browse-url" "net/browse-url.el" (17843 45624)) 2196;;;;;; "browse-url" "net/browse-url.el" (17842 55218))
2197;;; Generated autoloads from net/browse-url.el 2197;;; Generated autoloads from net/browse-url.el
2198 2198
2199(defvar browse-url-browser-function (cond ((memq system-type (quote (windows-nt ms-dos cygwin))) (quote browse-url-default-windows-browser)) ((memq system-type (quote (darwin))) (quote browse-url-default-macosx-browser)) (t (quote browse-url-default-browser))) "\ 2199(defvar browse-url-browser-function (cond ((memq system-type (quote (windows-nt ms-dos cygwin))) (quote browse-url-default-windows-browser)) ((memq system-type (quote (darwin))) (quote browse-url-default-macosx-browser)) (t (quote browse-url-default-browser))) "\
@@ -2524,8 +2524,8 @@ Default to the URL around or before point.
2524 2524
2525;;;*** 2525;;;***
2526 2526
2527;;;### (autoloads (snarf-bruces bruce) "bruce" "play/bruce.el" (17843 2527;;;### (autoloads (snarf-bruces bruce) "bruce" "play/bruce.el" (17842
2528;;;;;; 45625)) 2528;;;;;; 55395))
2529;;; Generated autoloads from play/bruce.el 2529;;; Generated autoloads from play/bruce.el
2530 2530
2531(autoload (quote bruce) "bruce" "\ 2531(autoload (quote bruce) "bruce" "\
@@ -2541,7 +2541,7 @@ Return a vector containing the lines from `bruce-phrases-file'.
2541;;;*** 2541;;;***
2542 2542
2543;;;### (autoloads (bs-show bs-customize bs-cycle-previous bs-cycle-next) 2543;;;### (autoloads (bs-show bs-customize bs-cycle-previous bs-cycle-next)
2544;;;;;; "bs" "bs.el" (17843 45609)) 2544;;;;;; "bs" "bs.el" (17842 58280))
2545;;; Generated autoloads from bs.el 2545;;; Generated autoloads from bs.el
2546 2546
2547(autoload (quote bs-cycle-next) "bs" "\ 2547(autoload (quote bs-cycle-next) "bs" "\
@@ -2582,8 +2582,8 @@ name of buffer configuration.
2582;;;*** 2582;;;***
2583 2583
2584;;;### (autoloads (insert-text-button make-text-button insert-button 2584;;;### (autoloads (insert-text-button make-text-button insert-button
2585;;;;;; make-button define-button-type) "button" "button.el" (17970 2585;;;;;; make-button define-button-type) "button" "button.el" (17992
2586;;;;;; 17147)) 2586;;;;;; 30877))
2587;;; Generated autoloads from button.el 2587;;; Generated autoloads from button.el
2588 2588
2589(defvar button-map (let ((map (make-sparse-keymap))) (define-key map " " (quote push-button)) (define-key map [mouse-2] (quote push-button)) map) "\ 2589(defvar button-map (let ((map (make-sparse-keymap))) (define-key map " " (quote push-button)) (define-key map [mouse-2] (quote push-button)) map) "\
@@ -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" (17949 5807)) 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)
@@ -2777,7 +2777,7 @@ and corresponding effects.
2777 2777
2778;;;*** 2778;;;***
2779 2779
2780;;;### (autoloads nil "cal-dst" "calendar/cal-dst.el" (17956 60684)) 2780;;;### (autoloads nil "cal-dst" "calendar/cal-dst.el" (17956 13479))
2781;;; Generated autoloads from calendar/cal-dst.el 2781;;; Generated autoloads from calendar/cal-dst.el
2782 2782
2783(put (quote calendar-daylight-savings-starts) (quote risky-local-variable) t) 2783(put (quote calendar-daylight-savings-starts) (quote risky-local-variable) t)
@@ -2787,7 +2787,7 @@ and corresponding effects.
2787;;;*** 2787;;;***
2788 2788
2789;;;### (autoloads (list-yahrzeit-dates) "cal-hebrew" "calendar/cal-hebrew.el" 2789;;;### (autoloads (list-yahrzeit-dates) "cal-hebrew" "calendar/cal-hebrew.el"
2790;;;;;; (17956 60684)) 2790;;;;;; (17956 13479))
2791;;; Generated autoloads from calendar/cal-hebrew.el 2791;;; Generated autoloads from calendar/cal-hebrew.el
2792 2792
2793(autoload (quote list-yahrzeit-dates) "cal-hebrew" "\ 2793(autoload (quote list-yahrzeit-dates) "cal-hebrew" "\
@@ -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;;;;;; (17966 9916)) 2805;;;;;; (17965 11665))
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") "\
@@ -2880,8 +2880,8 @@ Not documented
2880 2880
2881;;;*** 2881;;;***
2882 2882
2883;;;### (autoloads (calculator) "calculator" "calculator.el" (17939 2883;;;### (autoloads (calculator) "calculator" "calculator.el" (17870
2884;;;;;; 56016)) 2884;;;;;; 28179))
2885;;; Generated autoloads from calculator.el 2885;;; Generated autoloads from calculator.el
2886 2886
2887(autoload (quote calculator) "calculator" "\ 2887(autoload (quote calculator) "calculator" "\
@@ -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" (17956 60684)) 2912;;;;;; "calendar/calendar.el" (17956 13479))
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 "\
@@ -3482,7 +3482,7 @@ movement commands will not work correctly.")
3482;;;*** 3482;;;***
3483 3483
3484;;;### (autoloads (canlock-verify canlock-insert-header) "canlock" 3484;;;### (autoloads (canlock-verify canlock-insert-header) "canlock"
3485;;;;;; "gnus/canlock.el" (17843 45616)) 3485;;;;;; "gnus/canlock.el" (17842 54741))
3486;;; Generated autoloads from gnus/canlock.el 3486;;; Generated autoloads from gnus/canlock.el
3487 3487
3488(autoload (quote canlock-insert-header) "canlock" "\ 3488(autoload (quote canlock-insert-header) "canlock" "\
@@ -3499,15 +3499,15 @@ it fails.
3499 3499
3500;;;*** 3500;;;***
3501 3501
3502;;;### (autoloads nil "cc-compat" "progmodes/cc-compat.el" (17958 3502;;;### (autoloads nil "cc-compat" "progmodes/cc-compat.el" (17842
3503;;;;;; 39758)) 3503;;;;;; 56333))
3504;;; Generated autoloads from progmodes/cc-compat.el 3504;;; Generated autoloads from progmodes/cc-compat.el
3505(put 'c-indent-level 'safe-local-variable 'integerp) 3505(put 'c-indent-level 'safe-local-variable 'integerp)
3506 3506
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;;;;;; (17958 39759)) 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" "\
@@ -3519,7 +3519,7 @@ Return the syntactic context of the current line.
3519 3519
3520;;;### (autoloads (pike-mode idl-mode java-mode objc-mode c++-mode 3520;;;### (autoloads (pike-mode idl-mode java-mode objc-mode c++-mode
3521;;;;;; c-mode c-initialize-cc-mode) "cc-mode" "progmodes/cc-mode.el" 3521;;;;;; c-mode c-initialize-cc-mode) "cc-mode" "progmodes/cc-mode.el"
3522;;;;;; (17988 52353)) 3522;;;;;; (17992 30878))
3523;;; Generated autoloads from progmodes/cc-mode.el 3523;;; Generated autoloads from progmodes/cc-mode.el
3524 3524
3525(autoload (quote c-initialize-cc-mode) "cc-mode" "\ 3525(autoload (quote c-initialize-cc-mode) "cc-mode" "\
@@ -3677,7 +3677,7 @@ Key bindings:
3677;;;*** 3677;;;***
3678 3678
3679;;;### (autoloads (c-set-offset c-add-style c-set-style) "cc-styles" 3679;;;### (autoloads (c-set-offset c-add-style c-set-style) "cc-styles"
3680;;;;;; "progmodes/cc-styles.el" (17958 39759)) 3680;;;;;; "progmodes/cc-styles.el" (17842 56333))
3681;;; Generated autoloads from progmodes/cc-styles.el 3681;;; Generated autoloads from progmodes/cc-styles.el
3682 3682
3683(autoload (quote c-set-style) "cc-styles" "\ 3683(autoload (quote c-set-style) "cc-styles" "\
@@ -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" (17958 3731;;;### (autoloads nil "cc-subword" "progmodes/cc-subword.el" (17949
3732;;;;;; 39759)) 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" (17958 39759)) 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)
@@ -3745,7 +3745,7 @@ and exists only for compatibility reasons.
3745 3745
3746;;;### (autoloads (ccl-execute-with-args check-ccl-program define-ccl-program 3746;;;### (autoloads (ccl-execute-with-args check-ccl-program define-ccl-program
3747;;;;;; declare-ccl-program ccl-dump ccl-compile) "ccl" "international/ccl.el" 3747;;;;;; declare-ccl-program ccl-dump ccl-compile) "ccl" "international/ccl.el"
3748;;;;;; (17843 45618)) 3748;;;;;; (17842 54888))
3749;;; Generated autoloads from international/ccl.el 3749;;; Generated autoloads from international/ccl.el
3750 3750
3751(autoload (quote ccl-compile) "ccl" "\ 3751(autoload (quote ccl-compile) "ccl" "\
@@ -4004,7 +4004,7 @@ See the documentation of `define-ccl-program' for the detail of CCL program.
4004;;;*** 4004;;;***
4005 4005
4006;;;### (autoloads (cfengine-mode) "cfengine" "progmodes/cfengine.el" 4006;;;### (autoloads (cfengine-mode) "cfengine" "progmodes/cfengine.el"
4007;;;;;; (17843 45627)) 4007;;;;;; (17842 56333))
4008;;; Generated autoloads from progmodes/cfengine.el 4008;;; Generated autoloads from progmodes/cfengine.el
4009 4009
4010(autoload (quote cfengine-mode) "cfengine" "\ 4010(autoload (quote cfengine-mode) "cfengine" "\
@@ -4026,7 +4026,7 @@ to the action header.
4026;;;;;; checkdoc-comments checkdoc-continue checkdoc-start checkdoc-current-buffer 4026;;;;;; checkdoc-comments checkdoc-continue checkdoc-start checkdoc-current-buffer
4027;;;;;; checkdoc-eval-current-buffer checkdoc-message-interactive 4027;;;;;; checkdoc-eval-current-buffer checkdoc-message-interactive
4028;;;;;; checkdoc-interactive checkdoc) "checkdoc" "emacs-lisp/checkdoc.el" 4028;;;;;; checkdoc-interactive checkdoc) "checkdoc" "emacs-lisp/checkdoc.el"
4029;;;;;; (17843 45615)) 4029;;;;;; (17842 54152))
4030;;; Generated autoloads from emacs-lisp/checkdoc.el 4030;;; Generated autoloads from emacs-lisp/checkdoc.el
4031 4031
4032(autoload (quote checkdoc) "checkdoc" "\ 4032(autoload (quote checkdoc) "checkdoc" "\
@@ -4209,8 +4209,8 @@ checking of documentation strings.
4209;;;*** 4209;;;***
4210 4210
4211;;;### (autoloads (encode-hz-buffer encode-hz-region decode-hz-buffer 4211;;;### (autoloads (encode-hz-buffer encode-hz-region decode-hz-buffer
4212;;;;;; decode-hz-region) "china-util" "language/china-util.el" (17843 4212;;;;;; decode-hz-region) "china-util" "language/china-util.el" (17842
4213;;;;;; 45620)) 4213;;;;;; 58278))
4214;;; Generated autoloads from language/china-util.el 4214;;; Generated autoloads from language/china-util.el
4215 4215
4216(autoload (quote decode-hz-region) "china-util" "\ 4216(autoload (quote decode-hz-region) "china-util" "\
@@ -4238,7 +4238,7 @@ Encode the text in the current buffer to HZ.
4238;;;*** 4238;;;***
4239 4239
4240;;;### (autoloads (command-history list-command-history repeat-matching-complex-command) 4240;;;### (autoloads (command-history list-command-history repeat-matching-complex-command)
4241;;;;;; "chistory" "chistory.el" (17843 45609)) 4241;;;;;; "chistory" "chistory.el" (17842 58280))
4242;;; Generated autoloads from chistory.el 4242;;; Generated autoloads from chistory.el
4243 4243
4244(autoload (quote repeat-matching-complex-command) "chistory" "\ 4244(autoload (quote repeat-matching-complex-command) "chistory" "\
@@ -4277,7 +4277,7 @@ and runs the normal hook `command-history-hook'.
4277 4277
4278;;;*** 4278;;;***
4279 4279
4280;;;### (autoloads nil "cl" "emacs-lisp/cl.el" (17843 45615)) 4280;;;### (autoloads nil "cl" "emacs-lisp/cl.el" (17842 54152))
4281;;; Generated autoloads from emacs-lisp/cl.el 4281;;; Generated autoloads from emacs-lisp/cl.el
4282 4282
4283(defvar custom-print-functions nil "\ 4283(defvar custom-print-functions nil "\
@@ -4293,7 +4293,7 @@ a future Emacs interpreter will be able to use it.")
4293;;;*** 4293;;;***
4294 4294
4295;;;### (autoloads (common-lisp-indent-function) "cl-indent" "emacs-lisp/cl-indent.el" 4295;;;### (autoloads (common-lisp-indent-function) "cl-indent" "emacs-lisp/cl-indent.el"
4296;;;;;; (17843 45615)) 4296;;;;;; (17842 54152))
4297;;; Generated autoloads from emacs-lisp/cl-indent.el 4297;;; Generated autoloads from emacs-lisp/cl-indent.el
4298 4298
4299(autoload (quote common-lisp-indent-function) "cl-indent" "\ 4299(autoload (quote common-lisp-indent-function) "cl-indent" "\
@@ -4304,7 +4304,7 @@ Not documented
4304;;;*** 4304;;;***
4305 4305
4306;;;### (autoloads (c-macro-expand) "cmacexp" "progmodes/cmacexp.el" 4306;;;### (autoloads (c-macro-expand) "cmacexp" "progmodes/cmacexp.el"
4307;;;;;; (17843 45627)) 4307;;;;;; (17842 56333))
4308;;; Generated autoloads from progmodes/cmacexp.el 4308;;; Generated autoloads from progmodes/cmacexp.el
4309 4309
4310(autoload (quote c-macro-expand) "cmacexp" "\ 4310(autoload (quote c-macro-expand) "cmacexp" "\
@@ -4324,8 +4324,8 @@ For use inside Lisp programs, see also `c-macro-expansion'.
4324 4324
4325;;;*** 4325;;;***
4326 4326
4327;;;### (autoloads (run-scheme) "cmuscheme" "cmuscheme.el" (17843 4327;;;### (autoloads (run-scheme) "cmuscheme" "cmuscheme.el" (17842
4328;;;;;; 45609)) 4328;;;;;; 58280))
4329;;; Generated autoloads from cmuscheme.el 4329;;; Generated autoloads from cmuscheme.el
4330 4330
4331(autoload (quote run-scheme) "cmuscheme" "\ 4331(autoload (quote run-scheme) "cmuscheme" "\
@@ -4348,7 +4348,7 @@ is run).
4348 4348
4349;;;### (autoloads (codepage-setup cp-supported-codepages cp-offset-for-codepage 4349;;;### (autoloads (codepage-setup cp-supported-codepages cp-offset-for-codepage
4350;;;;;; cp-language-for-codepage cp-charset-for-codepage cp-make-coding-systems-for-codepage) 4350;;;;;; cp-language-for-codepage cp-charset-for-codepage cp-make-coding-systems-for-codepage)
4351;;;;;; "codepage" "international/codepage.el" (17843 45618)) 4351;;;;;; "codepage" "international/codepage.el" (17842 54888))
4352;;; Generated autoloads from international/codepage.el 4352;;; Generated autoloads from international/codepage.el
4353 4353
4354(autoload (quote cp-make-coding-systems-for-codepage) "codepage" "\ 4354(autoload (quote cp-make-coding-systems-for-codepage) "codepage" "\
@@ -4407,7 +4407,7 @@ read/written by MS-DOS software, or for display on the MS-DOS terminal.
4407;;;### (autoloads (comint-redirect-results-list-from-process comint-redirect-results-list 4407;;;### (autoloads (comint-redirect-results-list-from-process comint-redirect-results-list
4408;;;;;; comint-redirect-send-command-to-process comint-redirect-send-command 4408;;;;;; comint-redirect-send-command-to-process comint-redirect-send-command
4409;;;;;; comint-run make-comint make-comint-in-buffer) "comint" "comint.el" 4409;;;;;; comint-run make-comint make-comint-in-buffer) "comint" "comint.el"
4410;;;;;; (17939 56016)) 4410;;;;;; (17937 3189))
4411;;; Generated autoloads from comint.el 4411;;; Generated autoloads from comint.el
4412 4412
4413(defvar comint-output-filter-functions (quote (comint-postoutput-scroll-to-bottom comint-watch-for-password-prompt)) "\ 4413(defvar comint-output-filter-functions (quote (comint-postoutput-scroll-to-bottom comint-watch-for-password-prompt)) "\
@@ -4497,8 +4497,8 @@ REGEXP-GROUP is the regular expression group in REGEXP to use.
4497 4497
4498;;;*** 4498;;;***
4499 4499
4500;;;### (autoloads (compare-windows) "compare-w" "compare-w.el" (17939 4500;;;### (autoloads (compare-windows) "compare-w" "compare-w.el" (17926
4501;;;;;; 56016)) 4501;;;;;; 45410))
4502;;; Generated autoloads from compare-w.el 4502;;; Generated autoloads from compare-w.el
4503 4503
4504(autoload (quote compare-windows) "compare-w" "\ 4504(autoload (quote compare-windows) "compare-w" "\
@@ -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" (17996 37926)) 4538;;;;;; "compile" "progmodes/compile.el" (18006 55797))
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,12 +4698,12 @@ 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;;;;;; (17953 25415)) 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 "\
4705Non-nil if Partial-Completion mode is enabled. 4705Non-nil if Partial-Completion mode is enabled.
4706See the command `partial-completion-mode' for a description of this minor-mode. 4706See the command `partial-completion-mode' for a description of this minor mode.
4707Setting this variable directly does not take effect; 4707Setting this variable directly does not take effect;
4708either customize it (see the info node `Easy Customization') 4708either customize it (see the info node `Easy Customization')
4709or call the function `partial-completion-mode'.") 4709or call the function `partial-completion-mode'.")
@@ -4740,12 +4740,12 @@ second TAB brings up the `*Completions*' buffer.
4740;;;*** 4740;;;***
4741 4741
4742;;;### (autoloads (dynamic-completion-mode) "completion" "completion.el" 4742;;;### (autoloads (dynamic-completion-mode) "completion" "completion.el"
4743;;;;;; (17843 45609)) 4743;;;;;; (17842 58280))
4744;;; Generated autoloads from completion.el 4744;;; Generated autoloads from completion.el
4745 4745
4746(defvar dynamic-completion-mode nil "\ 4746(defvar dynamic-completion-mode nil "\
4747Non-nil if Dynamic-Completion mode is enabled. 4747Non-nil if Dynamic-Completion mode is enabled.
4748See the command `dynamic-completion-mode' for a description of this minor-mode. 4748See the command `dynamic-completion-mode' for a description of this minor mode.
4749Setting this variable directly does not take effect; 4749Setting this variable directly does not take effect;
4750either customize it (see the info node `Easy Customization') 4750either customize it (see the info node `Easy Customization')
4751or call the function `dynamic-completion-mode'.") 4751or call the function `dynamic-completion-mode'.")
@@ -4762,7 +4762,7 @@ Enable dynamic word-completion.
4762;;;### (autoloads (decompose-composite-char compose-last-chars compose-chars-after 4762;;;### (autoloads (decompose-composite-char compose-last-chars compose-chars-after
4763;;;;;; find-composition compose-chars decompose-string compose-string 4763;;;;;; find-composition compose-chars decompose-string compose-string
4764;;;;;; decompose-region compose-region encode-composition-rule) 4764;;;;;; decompose-region compose-region encode-composition-rule)
4765;;;;;; "composite" "composite.el" (17843 45609)) 4765;;;;;; "composite" "composite.el" (17842 58280))
4766;;; Generated autoloads from composite.el 4766;;; Generated autoloads from composite.el
4767 4767
4768(defconst reference-point-alist (quote ((tl . 0) (tc . 1) (tr . 2) (Bl . 3) (Bc . 4) (Br . 5) (bl . 6) (bc . 7) (br . 8) (cl . 9) (cc . 10) (cr . 11) (top-left . 0) (top-center . 1) (top-right . 2) (base-left . 3) (base-center . 4) (base-right . 5) (bottom-left . 6) (bottom-center . 7) (bottom-right . 8) (center-left . 9) (center-center . 10) (center-right . 11) (ml . 3) (mc . 10) (mr . 5) (mid-left . 3) (mid-center . 10) (mid-right . 5))) "\ 4768(defconst reference-point-alist (quote ((tl . 0) (tc . 1) (tr . 2) (Bl . 3) (Bc . 4) (Br . 5) (bl . 6) (bc . 7) (br . 8) (cl . 9) (cc . 10) (cr . 11) (top-left . 0) (top-center . 1) (top-right . 2) (base-left . 3) (base-center . 4) (base-right . 5) (bottom-left . 6) (bottom-center . 7) (bottom-right . 8) (center-left . 9) (center-center . 10) (center-right . 11) (ml . 3) (mc . 10) (mr . 5) (mid-left . 3) (mid-center . 10) (mid-right . 5))) "\
@@ -4984,7 +4984,7 @@ Optional 3rd arg WITH-COMPOSITION-RULE is ignored.
4984;;;### (autoloads (conf-xdefaults-mode conf-ppd-mode conf-colon-mode 4984;;;### (autoloads (conf-xdefaults-mode conf-ppd-mode conf-colon-mode
4985;;;;;; conf-space-keywords conf-space-mode conf-javaprop-mode conf-windows-mode 4985;;;;;; conf-space-keywords conf-space-mode conf-javaprop-mode conf-windows-mode
4986;;;;;; conf-unix-mode conf-mode) "conf-mode" "textmodes/conf-mode.el" 4986;;;;;; conf-unix-mode conf-mode) "conf-mode" "textmodes/conf-mode.el"
4987;;;;;; (17843 45630)) 4987;;;;;; (17842 58277))
4988;;; Generated autoloads from textmodes/conf-mode.el 4988;;; Generated autoloads from textmodes/conf-mode.el
4989 4989
4990(autoload (quote conf-mode) "conf-mode" "\ 4990(autoload (quote conf-mode) "conf-mode" "\
@@ -5140,7 +5140,7 @@ For details see `conf-mode'. Example:
5140;;;*** 5140;;;***
5141 5141
5142;;;### (autoloads (shuffle-vector cookie-snarf cookie-insert cookie) 5142;;;### (autoloads (shuffle-vector cookie-snarf cookie-insert cookie)
5143;;;;;; "cookie1" "play/cookie1.el" (17843 45625)) 5143;;;;;; "cookie1" "play/cookie1.el" (17842 55395))
5144;;; Generated autoloads from play/cookie1.el 5144;;; Generated autoloads from play/cookie1.el
5145 5145
5146(autoload (quote cookie) "cookie1" "\ 5146(autoload (quote cookie) "cookie1" "\
@@ -5172,7 +5172,7 @@ Randomly permute the elements of VECTOR (all permutations equally likely).
5172;;;*** 5172;;;***
5173 5173
5174;;;### (autoloads (copyright copyright-fix-years copyright-update) 5174;;;### (autoloads (copyright copyright-fix-years copyright-update)
5175;;;;;; "copyright" "emacs-lisp/copyright.el" (17843 45615)) 5175;;;;;; "copyright" "emacs-lisp/copyright.el" (17842 54152))
5176;;; Generated autoloads from emacs-lisp/copyright.el 5176;;; Generated autoloads from emacs-lisp/copyright.el
5177 5177
5178(autoload (quote copyright-update) "copyright" "\ 5178(autoload (quote copyright-update) "copyright" "\
@@ -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" (17955 48757)) 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" "\
@@ -5391,7 +5391,7 @@ Run a `perldoc' on the word around point.
5391;;;*** 5391;;;***
5392 5392
5393;;;### (autoloads (cpp-parse-edit cpp-highlight-buffer) "cpp" "progmodes/cpp.el" 5393;;;### (autoloads (cpp-parse-edit cpp-highlight-buffer) "cpp" "progmodes/cpp.el"
5394;;;;;; (17843 45627)) 5394;;;;;; (17842 56333))
5395;;; Generated autoloads from progmodes/cpp.el 5395;;; Generated autoloads from progmodes/cpp.el
5396 5396
5397(autoload (quote cpp-highlight-buffer) "cpp" "\ 5397(autoload (quote cpp-highlight-buffer) "cpp" "\
@@ -5410,7 +5410,7 @@ Edit display information for cpp conditionals.
5410;;;*** 5410;;;***
5411 5411
5412;;;### (autoloads (crisp-mode crisp-mode) "crisp" "emulation/crisp.el" 5412;;;### (autoloads (crisp-mode crisp-mode) "crisp" "emulation/crisp.el"
5413;;;;;; (17843 45615)) 5413;;;;;; (17842 54264))
5414;;; Generated autoloads from emulation/crisp.el 5414;;; Generated autoloads from emulation/crisp.el
5415 5415
5416(defvar crisp-mode nil "\ 5416(defvar crisp-mode nil "\
@@ -5434,7 +5434,7 @@ With ARG, turn CRiSP mode on if ARG is positive, off otherwise.
5434;;;*** 5434;;;***
5435 5435
5436;;;### (autoloads (completing-read-multiple) "crm" "emacs-lisp/crm.el" 5436;;;### (autoloads (completing-read-multiple) "crm" "emacs-lisp/crm.el"
5437;;;;;; (17843 45615)) 5437;;;;;; (17842 54152))
5438;;; Generated autoloads from emacs-lisp/crm.el 5438;;; Generated autoloads from emacs-lisp/crm.el
5439 5439
5440(autoload (quote completing-read-multiple) "crm" "\ 5440(autoload (quote completing-read-multiple) "crm" "\
@@ -5470,12 +5470,12 @@ INHERIT-INPUT-METHOD.
5470;;;*** 5470;;;***
5471 5471
5472;;;### (autoloads (cua-selection-mode cua-mode) "cua-base" "emulation/cua-base.el" 5472;;;### (autoloads (cua-selection-mode cua-mode) "cua-base" "emulation/cua-base.el"
5473;;;;;; (17939 56021)) 5473;;;;;; (17888 45995))
5474;;; Generated autoloads from emulation/cua-base.el 5474;;; Generated autoloads from emulation/cua-base.el
5475 5475
5476(defvar cua-mode nil "\ 5476(defvar cua-mode nil "\
5477Non-nil if Cua mode is enabled. 5477Non-nil if Cua mode is enabled.
5478See the command `cua-mode' for a description of this minor-mode. 5478See the command `cua-mode' for a description of this minor mode.
5479Setting this variable directly does not take effect; 5479Setting this variable directly does not take effect;
5480either customize it (see the info node `Easy Customization') 5480either customize it (see the info node `Easy Customization')
5481or call the function `cua-mode'.") 5481or call the function `cua-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;;;;;; (17951 39252)) 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 "\
@@ -5836,7 +5836,7 @@ The format is suitable for use with `easy-menu-define'.
5836;;;*** 5836;;;***
5837 5837
5838;;;### (autoloads (custom-reset-faces custom-theme-reset-faces custom-set-faces 5838;;;### (autoloads (custom-reset-faces custom-theme-reset-faces custom-set-faces
5839;;;;;; custom-declare-face) "cus-face" "cus-face.el" (17843 45609)) 5839;;;;;; custom-declare-face) "cus-face" "cus-face.el" (17842 58280))
5840;;; Generated autoloads from cus-face.el 5840;;; Generated autoloads from cus-face.el
5841 5841
5842(autoload (quote custom-declare-face) "cus-face" "\ 5842(autoload (quote custom-declare-face) "cus-face" "\
@@ -5906,7 +5906,7 @@ This means reset FACE to its value in FROM-THEME.
5906;;;*** 5906;;;***
5907 5907
5908;;;### (autoloads (customize-create-theme) "cus-theme" "cus-theme.el" 5908;;;### (autoloads (customize-create-theme) "cus-theme" "cus-theme.el"
5909;;;;;; (17843 45609)) 5909;;;;;; (17842 58280))
5910;;; Generated autoloads from cus-theme.el 5910;;; Generated autoloads from cus-theme.el
5911 5911
5912(autoload (quote customize-create-theme) "cus-theme" "\ 5912(autoload (quote customize-create-theme) "cus-theme" "\
@@ -5917,7 +5917,7 @@ Create a custom theme.
5917;;;*** 5917;;;***
5918 5918
5919;;;### (autoloads (cvs-status-mode) "cvs-status" "cvs-status.el" 5919;;;### (autoloads (cvs-status-mode) "cvs-status" "cvs-status.el"
5920;;;;;; (17843 45609)) 5920;;;;;; (17842 58280))
5921;;; Generated autoloads from cvs-status.el 5921;;; Generated autoloads from cvs-status.el
5922 5922
5923(autoload (quote cvs-status-mode) "cvs-status" "\ 5923(autoload (quote cvs-status-mode) "cvs-status" "\
@@ -5928,7 +5928,7 @@ Mode used for cvs status output.
5928;;;*** 5928;;;***
5929 5929
5930;;;### (autoloads (global-cwarn-mode turn-on-cwarn-mode cwarn-mode) 5930;;;### (autoloads (global-cwarn-mode turn-on-cwarn-mode cwarn-mode)
5931;;;;;; "cwarn" "progmodes/cwarn.el" (17939 56022)) 5931;;;;;; "cwarn" "progmodes/cwarn.el" (17860 50532))
5932;;; Generated autoloads from progmodes/cwarn.el 5932;;; Generated autoloads from progmodes/cwarn.el
5933 5933
5934(autoload (quote cwarn-mode) "cwarn" "\ 5934(autoload (quote cwarn-mode) "cwarn" "\
@@ -5952,7 +5952,7 @@ This function is designed to be added to hooks, for example:
5952 5952
5953(defvar global-cwarn-mode nil "\ 5953(defvar global-cwarn-mode nil "\
5954Non-nil if Global-Cwarn mode is enabled. 5954Non-nil if Global-Cwarn mode is enabled.
5955See the command `global-cwarn-mode' for a description of this minor-mode. 5955See the command `global-cwarn-mode' for a description of this minor mode.
5956Setting this variable directly does not take effect; 5956Setting this variable directly does not take effect;
5957either customize it (see the info node `Easy Customization') 5957either customize it (see the info node `Easy Customization')
5958or call the function `global-cwarn-mode'.") 5958or call the function `global-cwarn-mode'.")
@@ -5960,10 +5960,10 @@ or call the function `global-cwarn-mode'.")
5960(custom-autoload (quote global-cwarn-mode) "cwarn" nil) 5960(custom-autoload (quote global-cwarn-mode) "cwarn" nil)
5961 5961
5962(autoload (quote global-cwarn-mode) "cwarn" "\ 5962(autoload (quote global-cwarn-mode) "cwarn" "\
5963Toggle Cwarn mode in every buffer. 5963Toggle Cwarn mode in every possible buffer.
5964With prefix ARG, turn Global-Cwarn mode on if and only if ARG is positive. 5964With prefix ARG, turn Global-Cwarn mode on if and only if ARG is positive.
5965Cwarn mode is actually not turned on in every buffer but only in those 5965Cwarn mode is enabled in all buffers where `turn-on-cwarn-mode-if-enabled' would do it.
5966in which `turn-on-cwarn-mode-if-enabled' turns it on. 5966See `cwarn-mode' for more information on Cwarn mode.
5967 5967
5968\(fn &optional ARG)" t nil) 5968\(fn &optional ARG)" t nil)
5969 5969
@@ -5971,7 +5971,7 @@ in which `turn-on-cwarn-mode-if-enabled' turns it on.
5971 5971
5972;;;### (autoloads (standard-display-cyrillic-translit cyrillic-encode-alternativnyj-char 5972;;;### (autoloads (standard-display-cyrillic-translit cyrillic-encode-alternativnyj-char
5973;;;;;; cyrillic-encode-koi8-r-char) "cyril-util" "language/cyril-util.el" 5973;;;;;; cyrillic-encode-koi8-r-char) "cyril-util" "language/cyril-util.el"
5974;;;;;; (17843 45620)) 5974;;;;;; (17842 58278))
5975;;; Generated autoloads from language/cyril-util.el 5975;;; Generated autoloads from language/cyril-util.el
5976 5976
5977(autoload (quote cyrillic-encode-koi8-r-char) "cyril-util" "\ 5977(autoload (quote cyrillic-encode-koi8-r-char) "cyril-util" "\
@@ -6000,7 +6000,7 @@ If the argument is nil, we return the display table to its standard state.
6000;;;*** 6000;;;***
6001 6001
6002;;;### (autoloads (dabbrev-expand dabbrev-completion) "dabbrev" "dabbrev.el" 6002;;;### (autoloads (dabbrev-expand dabbrev-completion) "dabbrev" "dabbrev.el"
6003;;;;;; (17995 6542)) 6003;;;;;; (18006 55794))
6004;;; Generated autoloads from dabbrev.el 6004;;; Generated autoloads from dabbrev.el
6005 (define-key esc-map "/" 'dabbrev-expand) 6005 (define-key esc-map "/" 'dabbrev-expand)
6006 (define-key esc-map [?\C-/] 'dabbrev-completion) 6006 (define-key esc-map [?\C-/] 'dabbrev-completion)
@@ -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" (17947 6047;;;### (autoloads (dcl-mode) "dcl-mode" "progmodes/dcl-mode.el" (17949
6048;;;;;; 44454)) 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" "\
@@ -6172,7 +6172,7 @@ There is some minimal font-lock support (see vars
6172;;;*** 6172;;;***
6173 6173
6174;;;### (autoloads (cancel-debug-on-entry debug-on-entry debug) "debug" 6174;;;### (autoloads (cancel-debug-on-entry debug-on-entry debug) "debug"
6175;;;;;; "emacs-lisp/debug.el" (17843 45615)) 6175;;;;;; "emacs-lisp/debug.el" (17842 54152))
6176;;; Generated autoloads from emacs-lisp/debug.el 6176;;; Generated autoloads from emacs-lisp/debug.el
6177 6177
6178(setq debugger (quote debug)) 6178(setq debugger (quote debug))
@@ -6216,7 +6216,7 @@ To specify a nil argument interactively, exit with an empty minibuffer.
6216;;;*** 6216;;;***
6217 6217
6218;;;### (autoloads (decipher-mode decipher) "decipher" "play/decipher.el" 6218;;;### (autoloads (decipher-mode decipher) "decipher" "play/decipher.el"
6219;;;;;; (17843 45625)) 6219;;;;;; (17842 55395))
6220;;; Generated autoloads from play/decipher.el 6220;;; Generated autoloads from play/decipher.el
6221 6221
6222(autoload (quote decipher) "decipher" "\ 6222(autoload (quote decipher) "decipher" "\
@@ -6245,8 +6245,8 @@ The most useful commands are:
6245;;;*** 6245;;;***
6246 6246
6247;;;### (autoloads (delimit-columns-rectangle delimit-columns-region 6247;;;### (autoloads (delimit-columns-rectangle delimit-columns-region
6248;;;;;; delimit-columns-customize) "delim-col" "delim-col.el" (17843 6248;;;;;; delimit-columns-customize) "delim-col" "delim-col.el" (17842
6249;;;;;; 45609)) 6249;;;;;; 58280))
6250;;; Generated autoloads from delim-col.el 6250;;; Generated autoloads from delim-col.el
6251 6251
6252(autoload (quote delimit-columns-customize) "delim-col" "\ 6252(autoload (quote delimit-columns-customize) "delim-col" "\
@@ -6270,8 +6270,8 @@ START and END delimits the corners of text rectangle.
6270 6270
6271;;;*** 6271;;;***
6272 6272
6273;;;### (autoloads (delphi-mode) "delphi" "progmodes/delphi.el" (17843 6273;;;### (autoloads (delphi-mode) "delphi" "progmodes/delphi.el" (17842
6274;;;;;; 45627)) 6274;;;;;; 56333))
6275;;; Generated autoloads from progmodes/delphi.el 6275;;; Generated autoloads from progmodes/delphi.el
6276 6276
6277(autoload (quote delphi-mode) "delphi" "\ 6277(autoload (quote delphi-mode) "delphi" "\
@@ -6321,15 +6321,15 @@ no args, if that value is non-nil.
6321 6321
6322;;;*** 6322;;;***
6323 6323
6324;;;### (autoloads (delete-selection-mode) "delsel" "delsel.el" (17843 6324;;;### (autoloads (delete-selection-mode) "delsel" "delsel.el" (17842
6325;;;;;; 45609)) 6325;;;;;; 58280))
6326;;; Generated autoloads from delsel.el 6326;;; Generated autoloads from delsel.el
6327 6327
6328(defalias (quote pending-delete-mode) (quote delete-selection-mode)) 6328(defalias (quote pending-delete-mode) (quote delete-selection-mode))
6329 6329
6330(defvar delete-selection-mode nil "\ 6330(defvar delete-selection-mode nil "\
6331Non-nil if Delete-Selection mode is enabled. 6331Non-nil if Delete-Selection mode is enabled.
6332See the command `delete-selection-mode' for a description of this minor-mode. 6332See the command `delete-selection-mode' for a description of this minor mode.
6333Setting this variable directly does not take effect; 6333Setting this variable directly does not take effect;
6334either customize it (see the info node `Easy Customization') 6334either customize it (see the info node `Easy Customization')
6335or call the function `delete-selection-mode'.") 6335or call the function `delete-selection-mode'.")
@@ -6351,7 +6351,7 @@ any selection.
6351;;;*** 6351;;;***
6352 6352
6353;;;### (autoloads (derived-mode-init-mode-variables define-derived-mode) 6353;;;### (autoloads (derived-mode-init-mode-variables define-derived-mode)
6354;;;;;; "derived" "emacs-lisp/derived.el" (17843 45615)) 6354;;;;;; "derived" "emacs-lisp/derived.el" (17842 54152))
6355;;; Generated autoloads from emacs-lisp/derived.el 6355;;; Generated autoloads from emacs-lisp/derived.el
6356 6356
6357(autoload (quote define-derived-mode) "derived" "\ 6357(autoload (quote define-derived-mode) "derived" "\
@@ -6416,7 +6416,7 @@ the first time the mode is used.
6416;;;*** 6416;;;***
6417 6417
6418;;;### (autoloads (describe-char describe-text-properties) "descr-text" 6418;;;### (autoloads (describe-char describe-text-properties) "descr-text"
6419;;;;;; "descr-text.el" (17939 56016)) 6419;;;;;; "descr-text.el" (17874 62047))
6420;;; Generated autoloads from descr-text.el 6420;;; Generated autoloads from descr-text.el
6421 6421
6422(autoload (quote describe-text-properties) "descr-text" "\ 6422(autoload (quote describe-text-properties) "descr-text" "\
@@ -6442,12 +6442,12 @@ 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" (17949 5807)) 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 "\
6449Non-nil if Desktop-Save mode is enabled. 6449Non-nil if Desktop-Save mode is enabled.
6450See the command `desktop-save-mode' for a description of this minor-mode.") 6450See the command `desktop-save-mode' for a description of this minor mode.")
6451 6451
6452(custom-autoload (quote desktop-save-mode) "desktop" nil) 6452(custom-autoload (quote desktop-save-mode) "desktop" nil)
6453 6453
@@ -6625,7 +6625,7 @@ Revert to the last loaded desktop.
6625 6625
6626;;;### (autoloads (gnus-article-outlook-deuglify-article gnus-outlook-deuglify-article 6626;;;### (autoloads (gnus-article-outlook-deuglify-article gnus-outlook-deuglify-article
6627;;;;;; gnus-article-outlook-repair-attribution gnus-article-outlook-unwrap-lines) 6627;;;;;; gnus-article-outlook-repair-attribution gnus-article-outlook-unwrap-lines)
6628;;;;;; "deuglify" "gnus/deuglify.el" (17843 45616)) 6628;;;;;; "deuglify" "gnus/deuglify.el" (17842 54741))
6629;;; Generated autoloads from gnus/deuglify.el 6629;;; Generated autoloads from gnus/deuglify.el
6630 6630
6631(autoload (quote gnus-article-outlook-unwrap-lines) "deuglify" "\ 6631(autoload (quote gnus-article-outlook-unwrap-lines) "deuglify" "\
@@ -6658,7 +6658,7 @@ Deuglify broken Outlook (Express) articles and redisplay.
6658;;;*** 6658;;;***
6659 6659
6660;;;### (autoloads (devanagari-post-read-conversion devanagari-compose-region) 6660;;;### (autoloads (devanagari-post-read-conversion devanagari-compose-region)
6661;;;;;; "devan-util" "language/devan-util.el" (17843 45620)) 6661;;;;;; "devan-util" "language/devan-util.el" (17842 58278))
6662;;; Generated autoloads from language/devan-util.el 6662;;; Generated autoloads from language/devan-util.el
6663 6663
6664(defconst devanagari-consonant "[\x51ad5-\x51af9\x51b38-\x51b3f]") 6664(defconst devanagari-consonant "[\x51ad5-\x51af9\x51b38-\x51b3f]")
@@ -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" (17958 15315)) 6679;;;;;; "calendar/diary-lib.el" (17958 11887))
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" "\
@@ -6722,7 +6722,7 @@ Major mode for editing the diary file.
6722;;;*** 6722;;;***
6723 6723
6724;;;### (autoloads (diff-backup diff diff-command diff-switches) "diff" 6724;;;### (autoloads (diff-backup diff diff-command diff-switches) "diff"
6725;;;;;; "diff.el" (17843 45609)) 6725;;;;;; "diff.el" (17992 30877))
6726;;; Generated autoloads from diff.el 6726;;; Generated autoloads from diff.el
6727 6727
6728(defvar diff-switches "-c" "\ 6728(defvar diff-switches "-c" "\
@@ -6756,7 +6756,7 @@ 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;;;;;; (17942 38318)) 6759;;;;;; (17992 30877))
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" "\
@@ -6788,7 +6788,7 @@ Minor mode for viewing/editing context diffs.
6788;;;;;; dired dired-copy-preserve-time dired-dwim-target dired-keep-marker-symlink 6788;;;;;; dired dired-copy-preserve-time dired-dwim-target dired-keep-marker-symlink
6789;;;;;; dired-keep-marker-hardlink dired-keep-marker-copy dired-keep-marker-rename 6789;;;;;; dired-keep-marker-hardlink dired-keep-marker-copy dired-keep-marker-rename
6790;;;;;; dired-trivial-filenames dired-ls-F-marks-symlinks dired-listing-switches) 6790;;;;;; dired-trivial-filenames dired-ls-F-marks-symlinks dired-listing-switches)
6791;;;;;; "dired" "dired.el" (17995 6542)) 6791;;;;;; "dired" "dired.el" (18015 32019))
6792;;; Generated autoloads from dired.el 6792;;; Generated autoloads from dired.el
6793 6793
6794(defvar dired-listing-switches "-al" "\ 6794(defvar dired-listing-switches "-al" "\
@@ -6993,7 +6993,7 @@ Keybindings:
6993;;;;;; dired-run-shell-command dired-do-shell-command dired-clean-directory 6993;;;;;; dired-run-shell-command dired-do-shell-command dired-clean-directory
6994;;;;;; dired-do-print dired-do-touch dired-do-chown dired-do-chgrp 6994;;;;;; dired-do-print dired-do-touch dired-do-chown dired-do-chgrp
6995;;;;;; dired-do-chmod dired-compare-directories dired-backup-diff 6995;;;;;; dired-do-chmod dired-compare-directories dired-backup-diff
6996;;;;;; dired-diff) "dired-aux" "dired-aux.el" (17939 56016)) 6996;;;;;; dired-diff) "dired-aux" "dired-aux.el" (17859 20444))
6997;;; Generated autoloads from dired-aux.el 6997;;; Generated autoloads from dired-aux.el
6998 6998
6999(autoload (quote dired-diff) "dired-aux" "\ 6999(autoload (quote dired-diff) "dired-aux" "\
@@ -7408,7 +7408,7 @@ true then the type of the file linked to by FILE is printed instead.
7408;;;*** 7408;;;***
7409 7409
7410;;;### (autoloads (dired-do-relsymlink dired-jump) "dired-x" "dired-x.el" 7410;;;### (autoloads (dired-do-relsymlink dired-jump) "dired-x" "dired-x.el"
7411;;;;;; (17988 52353)) 7411;;;;;; (17992 30877))
7412;;; Generated autoloads from dired-x.el 7412;;; Generated autoloads from dired-x.el
7413 7413
7414(autoload (quote dired-jump) "dired-x" "\ 7414(autoload (quote dired-jump) "dired-x" "\
@@ -7437,7 +7437,7 @@ For absolute symlinks, use \\[dired-do-symlink].
7437 7437
7438;;;*** 7438;;;***
7439 7439
7440;;;### (autoloads (dirtrack) "dirtrack" "dirtrack.el" (17843 45609)) 7440;;;### (autoloads (dirtrack) "dirtrack" "dirtrack.el" (17842 58280))
7441;;; Generated autoloads from dirtrack.el 7441;;; Generated autoloads from dirtrack.el
7442 7442
7443(autoload (quote dirtrack) "dirtrack" "\ 7443(autoload (quote dirtrack) "dirtrack" "\
@@ -7456,8 +7456,8 @@ You can enable directory tracking by adding this function to
7456 7456
7457;;;*** 7457;;;***
7458 7458
7459;;;### (autoloads (disassemble) "disass" "emacs-lisp/disass.el" (17843 7459;;;### (autoloads (disassemble) "disass" "emacs-lisp/disass.el" (17842
7460;;;;;; 45615)) 7460;;;;;; 54152))
7461;;; Generated autoloads from emacs-lisp/disass.el 7461;;; Generated autoloads from emacs-lisp/disass.el
7462 7462
7463(autoload (quote disassemble) "disass" "\ 7463(autoload (quote disassemble) "disass" "\
@@ -7476,7 +7476,7 @@ redefine OBJECT if it is a symbol.
7476;;;;;; standard-display-g1 standard-display-ascii standard-display-default 7476;;;;;; standard-display-g1 standard-display-ascii standard-display-default
7477;;;;;; standard-display-8bit describe-current-display-table describe-display-table 7477;;;;;; standard-display-8bit describe-current-display-table describe-display-table
7478;;;;;; set-display-table-slot display-table-slot make-display-table) 7478;;;;;; set-display-table-slot display-table-slot make-display-table)
7479;;;;;; "disp-table" "disp-table.el" (17939 56016)) 7479;;;;;; "disp-table" "disp-table.el" (17874 62056))
7480;;; Generated autoloads from disp-table.el 7480;;; Generated autoloads from disp-table.el
7481 7481
7482(autoload (quote make-display-table) "disp-table" "\ 7482(autoload (quote make-display-table) "disp-table" "\
@@ -7592,7 +7592,7 @@ for users who call this function in `.emacs'.
7592;;;*** 7592;;;***
7593 7593
7594;;;### (autoloads (dissociated-press) "dissociate" "play/dissociate.el" 7594;;;### (autoloads (dissociated-press) "dissociate" "play/dissociate.el"
7595;;;;;; (17941 5494)) 7595;;;;;; (17941 38806))
7596;;; Generated autoloads from play/dissociate.el 7596;;; Generated autoloads from play/dissociate.el
7597 7597
7598(autoload (quote dissociated-press) "dissociate" "\ 7598(autoload (quote dissociated-press) "dissociate" "\
@@ -7608,7 +7608,7 @@ Default is 2.
7608 7608
7609;;;*** 7609;;;***
7610 7610
7611;;;### (autoloads (dnd-protocol-alist) "dnd" "dnd.el" (17950 27944)) 7611;;;### (autoloads (dnd-protocol-alist) "dnd" "dnd.el" (17949 41467))
7612;;; Generated autoloads from dnd.el 7612;;; Generated autoloads from dnd.el
7613 7613
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))) "\ 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))) "\
@@ -7629,7 +7629,7 @@ if some action was made, or nil if the URL is ignored.")
7629;;;*** 7629;;;***
7630 7630
7631;;;### (autoloads (dns-mode-soa-increment-serial dns-mode) "dns-mode" 7631;;;### (autoloads (dns-mode-soa-increment-serial dns-mode) "dns-mode"
7632;;;;;; "textmodes/dns-mode.el" (17843 45630)) 7632;;;;;; "textmodes/dns-mode.el" (17842 58277))
7633;;; Generated autoloads from textmodes/dns-mode.el 7633;;; Generated autoloads from textmodes/dns-mode.el
7634 7634
7635(autoload (quote dns-mode) "dns-mode" "\ 7635(autoload (quote dns-mode) "dns-mode" "\
@@ -7653,7 +7653,7 @@ Locate SOA record and increment the serial field.
7653 7653
7654;;;*** 7654;;;***
7655 7655
7656;;;### (autoloads (doctor) "doctor" "play/doctor.el" (17941 5494)) 7656;;;### (autoloads (doctor) "doctor" "play/doctor.el" (17941 38806))
7657;;; Generated autoloads from play/doctor.el 7657;;; Generated autoloads from play/doctor.el
7658 7658
7659(autoload (quote doctor) "doctor" "\ 7659(autoload (quote doctor) "doctor" "\
@@ -7664,7 +7664,7 @@ Switch to *doctor* buffer and start giving psychotherapy.
7664;;;*** 7664;;;***
7665 7665
7666;;;### (autoloads (double-mode double-mode) "double" "double.el" 7666;;;### (autoloads (double-mode double-mode) "double" "double.el"
7667;;;;;; (17843 45610)) 7667;;;;;; (17842 58280))
7668;;; Generated autoloads from double.el 7668;;; Generated autoloads from double.el
7669 7669
7670(defvar double-mode nil "\ 7670(defvar double-mode nil "\
@@ -7685,7 +7685,7 @@ when pressed twice. See variable `double-map' for details.
7685 7685
7686;;;*** 7686;;;***
7687 7687
7688;;;### (autoloads (dunnet) "dunnet" "play/dunnet.el" (17843 45625)) 7688;;;### (autoloads (dunnet) "dunnet" "play/dunnet.el" (17842 55395))
7689;;; Generated autoloads from play/dunnet.el 7689;;; Generated autoloads from play/dunnet.el
7690 7690
7691(autoload (quote dunnet) "dunnet" "\ 7691(autoload (quote dunnet) "dunnet" "\
@@ -7696,7 +7696,7 @@ Switch to *dungeon* buffer and start game.
7696;;;*** 7696;;;***
7697 7697
7698;;;### (autoloads (gnus-earcon-display) "earcon" "gnus/earcon.el" 7698;;;### (autoloads (gnus-earcon-display) "earcon" "gnus/earcon.el"
7699;;;;;; (17843 45616)) 7699;;;;;; (17842 54741))
7700;;; Generated autoloads from gnus/earcon.el 7700;;; Generated autoloads from gnus/earcon.el
7701 7701
7702(autoload (quote gnus-earcon-display) "earcon" "\ 7702(autoload (quote gnus-earcon-display) "earcon" "\
@@ -7708,7 +7708,7 @@ Play sounds in message buffers.
7708 7708
7709;;;### (autoloads (easy-mmode-defsyntax easy-mmode-defmap easy-mmode-define-keymap 7709;;;### (autoloads (easy-mmode-defsyntax easy-mmode-defmap easy-mmode-define-keymap
7710;;;;;; define-globalized-minor-mode define-minor-mode) "easy-mmode" 7710;;;;;; define-globalized-minor-mode define-minor-mode) "easy-mmode"
7711;;;;;; "emacs-lisp/easy-mmode.el" (17988 52353)) 7711;;;;;; "emacs-lisp/easy-mmode.el" (17992 30878))
7712;;; Generated autoloads from emacs-lisp/easy-mmode.el 7712;;; Generated autoloads from emacs-lisp/easy-mmode.el
7713 7713
7714(defalias (quote easy-mmode-define-minor-mode) (quote define-minor-mode)) 7714(defalias (quote easy-mmode-define-minor-mode) (quote define-minor-mode))
@@ -7802,8 +7802,8 @@ CSS contains a list of syntax specifications of the form (CHAR . SYNTAX).
7802;;;*** 7802;;;***
7803 7803
7804;;;### (autoloads (easy-menu-change easy-menu-create-menu easy-menu-do-define 7804;;;### (autoloads (easy-menu-change easy-menu-create-menu easy-menu-do-define
7805;;;;;; easy-menu-define) "easymenu" "emacs-lisp/easymenu.el" (17843 7805;;;;;; easy-menu-define) "easymenu" "emacs-lisp/easymenu.el" (17842
7806;;;;;; 45615)) 7806;;;;;; 54152))
7807;;; Generated autoloads from emacs-lisp/easymenu.el 7807;;; Generated autoloads from emacs-lisp/easymenu.el
7808 7808
7809(put (quote easy-menu-define) (quote lisp-indent-function) (quote defun)) 7809(put (quote easy-menu-define) (quote lisp-indent-function) (quote defun))
@@ -7952,7 +7952,7 @@ To implement dynamic menus, either call this from
7952;;;;;; 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
7953;;;;;; ebnf-spool-directory ebnf-print-region ebnf-print-buffer 7953;;;;;; ebnf-spool-directory ebnf-print-region ebnf-print-buffer
7954;;;;;; ebnf-print-file ebnf-print-directory ebnf-customize) "ebnf2ps" 7954;;;;;; ebnf-print-file ebnf-print-directory ebnf-customize) "ebnf2ps"
7955;;;;;; "progmodes/ebnf2ps.el" (17951 39252)) 7955;;;;;; "progmodes/ebnf2ps.el" (17952 11093))
7956;;; Generated autoloads from progmodes/ebnf2ps.el 7956;;; Generated autoloads from progmodes/ebnf2ps.el
7957 7957
7958(autoload (quote ebnf-customize) "ebnf2ps" "\ 7958(autoload (quote ebnf-customize) "ebnf2ps" "\
@@ -8219,8 +8219,8 @@ See `ebnf-style-database' documentation.
8219;;;;;; ebrowse-tags-find-declaration-other-window ebrowse-tags-find-definition 8219;;;;;; ebrowse-tags-find-declaration-other-window ebrowse-tags-find-definition
8220;;;;;; ebrowse-tags-view-definition ebrowse-tags-find-declaration 8220;;;;;; ebrowse-tags-view-definition ebrowse-tags-find-declaration
8221;;;;;; ebrowse-tags-view-declaration ebrowse-member-mode ebrowse-electric-choose-tree 8221;;;;;; ebrowse-tags-view-declaration ebrowse-member-mode ebrowse-electric-choose-tree
8222;;;;;; ebrowse-tree-mode) "ebrowse" "progmodes/ebrowse.el" (17827 8222;;;;;; ebrowse-tree-mode) "ebrowse" "progmodes/ebrowse.el" (17821
8223;;;;;; 37447)) 8223;;;;;; 5918))
8224;;; Generated autoloads from progmodes/ebrowse.el 8224;;; Generated autoloads from progmodes/ebrowse.el
8225 8225
8226(autoload (quote ebrowse-tree-mode) "ebrowse" "\ 8226(autoload (quote ebrowse-tree-mode) "ebrowse" "\
@@ -8371,7 +8371,7 @@ Display statistics for a class tree.
8371;;;*** 8371;;;***
8372 8372
8373;;;### (autoloads (electric-buffer-list) "ebuff-menu" "ebuff-menu.el" 8373;;;### (autoloads (electric-buffer-list) "ebuff-menu" "ebuff-menu.el"
8374;;;;;; (17843 45610)) 8374;;;;;; (17842 58280))
8375;;; Generated autoloads from ebuff-menu.el 8375;;; Generated autoloads from ebuff-menu.el
8376 8376
8377(autoload (quote electric-buffer-list) "ebuff-menu" "\ 8377(autoload (quote electric-buffer-list) "ebuff-menu" "\
@@ -8396,7 +8396,7 @@ Run hooks in `electric-buffer-menu-mode-hook' on entry.
8396;;;*** 8396;;;***
8397 8397
8398;;;### (autoloads (Electric-command-history-redo-expression) "echistory" 8398;;;### (autoloads (Electric-command-history-redo-expression) "echistory"
8399;;;;;; "echistory.el" (17843 45610)) 8399;;;;;; "echistory.el" (17842 58280))
8400;;; Generated autoloads from echistory.el 8400;;; Generated autoloads from echistory.el
8401 8401
8402(autoload (quote Electric-command-history-redo-expression) "echistory" "\ 8402(autoload (quote Electric-command-history-redo-expression) "echistory" "\
@@ -8409,7 +8409,7 @@ With prefix arg NOCONFIRM, execute current line as-is without editing.
8409 8409
8410;;;### (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
8411;;;;;; edebug-basic-spec edebug-all-forms edebug-all-defs) "edebug" 8411;;;;;; edebug-basic-spec edebug-all-forms edebug-all-defs) "edebug"
8412;;;;;; "emacs-lisp/edebug.el" (17951 39252)) 8412;;;;;; "emacs-lisp/edebug.el" (17952 11093))
8413;;; Generated autoloads from emacs-lisp/edebug.el 8413;;; Generated autoloads from emacs-lisp/edebug.el
8414 8414
8415(defvar edebug-all-defs nil "\ 8415(defvar edebug-all-defs nil "\
@@ -8482,7 +8482,7 @@ Toggle edebugging of all forms.
8482;;;;;; ediff-merge-directory-revisions ediff-merge-directories-with-ancestor 8482;;;;;; ediff-merge-directory-revisions ediff-merge-directories-with-ancestor
8483;;;;;; ediff-merge-directories ediff-directories3 ediff-directory-revisions 8483;;;;;; ediff-merge-directories ediff-directories3 ediff-directory-revisions
8484;;;;;; ediff-directories ediff-buffers3 ediff-buffers ediff-backup 8484;;;;;; ediff-directories ediff-buffers3 ediff-buffers ediff-backup
8485;;;;;; ediff-files3 ediff-files) "ediff" "ediff.el" (17939 56017)) 8485;;;;;; ediff-files3 ediff-files) "ediff" "ediff.el" (17846 30361))
8486;;; Generated autoloads from ediff.el 8486;;; Generated autoloads from ediff.el
8487 8487
8488(autoload (quote ediff-files) "ediff" "\ 8488(autoload (quote ediff-files) "ediff" "\
@@ -8714,7 +8714,7 @@ With optional NODE, goes to that node.
8714;;;*** 8714;;;***
8715 8715
8716;;;### (autoloads (ediff-customize) "ediff-help" "ediff-help.el" 8716;;;### (autoloads (ediff-customize) "ediff-help" "ediff-help.el"
8717;;;;;; (17843 45610)) 8717;;;;;; (17842 58280))
8718;;; Generated autoloads from ediff-help.el 8718;;; Generated autoloads from ediff-help.el
8719 8719
8720(autoload (quote ediff-customize) "ediff-help" "\ 8720(autoload (quote ediff-customize) "ediff-help" "\
@@ -8724,7 +8724,7 @@ Not documented
8724 8724
8725;;;*** 8725;;;***
8726 8726
8727;;;### (autoloads nil "ediff-hook" "ediff-hook.el" (17843 45610)) 8727;;;### (autoloads nil "ediff-hook" "ediff-hook.el" (17842 58280))
8728;;; Generated autoloads from ediff-hook.el 8728;;; Generated autoloads from ediff-hook.el
8729 8729
8730(defvar ediff-window-setup-function) 8730(defvar ediff-window-setup-function)
@@ -8737,7 +8737,7 @@ Not documented
8737;;;*** 8737;;;***
8738 8738
8739;;;### (autoloads (ediff-show-registry) "ediff-mult" "ediff-mult.el" 8739;;;### (autoloads (ediff-show-registry) "ediff-mult" "ediff-mult.el"
8740;;;;;; (17843 45610)) 8740;;;;;; (17842 58279))
8741;;; Generated autoloads from ediff-mult.el 8741;;; Generated autoloads from ediff-mult.el
8742 8742
8743(autoload (quote ediff-show-registry) "ediff-mult" "\ 8743(autoload (quote ediff-show-registry) "ediff-mult" "\
@@ -8750,7 +8750,7 @@ Display Ediff's registry.
8750;;;*** 8750;;;***
8751 8751
8752;;;### (autoloads (ediff-toggle-use-toolbar ediff-toggle-multiframe) 8752;;;### (autoloads (ediff-toggle-use-toolbar ediff-toggle-multiframe)
8753;;;;;; "ediff-util" "ediff-util.el" (17939 56016)) 8753;;;;;; "ediff-util" "ediff-util.el" (17846 30361))
8754;;; Generated autoloads from ediff-util.el 8754;;; Generated autoloads from ediff-util.el
8755 8755
8756(autoload (quote ediff-toggle-multiframe) "ediff-util" "\ 8756(autoload (quote ediff-toggle-multiframe) "ediff-util" "\
@@ -8771,7 +8771,7 @@ To change the default, set the variable `ediff-use-toolbar-p', which see.
8771 8771
8772;;;### (autoloads (format-kbd-macro read-kbd-macro edit-named-kbd-macro 8772;;;### (autoloads (format-kbd-macro read-kbd-macro edit-named-kbd-macro
8773;;;;;; edit-last-kbd-macro edit-kbd-macro) "edmacro" "edmacro.el" 8773;;;;;; edit-last-kbd-macro edit-kbd-macro) "edmacro" "edmacro.el"
8774;;;;;; (17843 45610)) 8774;;;;;; (17842 58279))
8775;;; Generated autoloads from edmacro.el 8775;;; Generated autoloads from edmacro.el
8776 8776
8777(defvar edmacro-eight-bits nil "\ 8777(defvar edmacro-eight-bits nil "\
@@ -8824,7 +8824,7 @@ or nil, use a compact 80-column format.
8824;;;*** 8824;;;***
8825 8825
8826;;;### (autoloads (edt-emulation-on edt-set-scroll-margins) "edt" 8826;;;### (autoloads (edt-emulation-on edt-set-scroll-margins) "edt"
8827;;;;;; "emulation/edt.el" (17843 45615)) 8827;;;;;; "emulation/edt.el" (17842 54264))
8828;;; Generated autoloads from emulation/edt.el 8828;;; Generated autoloads from emulation/edt.el
8829 8829
8830(autoload (quote edt-set-scroll-margins) "edt" "\ 8830(autoload (quote edt-set-scroll-margins) "edt" "\
@@ -8842,7 +8842,7 @@ Turn on EDT Emulation.
8842;;;*** 8842;;;***
8843 8843
8844;;;### (autoloads (electric-helpify with-electric-help) "ehelp" "ehelp.el" 8844;;;### (autoloads (electric-helpify with-electric-help) "ehelp" "ehelp.el"
8845;;;;;; (17939 56017)) 8845;;;;;; (17873 45892))
8846;;; Generated autoloads from ehelp.el 8846;;; Generated autoloads from ehelp.el
8847 8847
8848(autoload (quote with-electric-help) "ehelp" "\ 8848(autoload (quote with-electric-help) "ehelp" "\
@@ -8879,7 +8879,7 @@ Not documented
8879;;;*** 8879;;;***
8880 8880
8881;;;### (autoloads (turn-on-eldoc-mode eldoc-mode eldoc-minor-mode-string) 8881;;;### (autoloads (turn-on-eldoc-mode eldoc-mode eldoc-minor-mode-string)
8882;;;;;; "eldoc" "emacs-lisp/eldoc.el" (17988 52353)) 8882;;;;;; "eldoc" "emacs-lisp/eldoc.el" (17992 30878))
8883;;; Generated autoloads from emacs-lisp/eldoc.el 8883;;; Generated autoloads from emacs-lisp/eldoc.el
8884 8884
8885(defvar eldoc-minor-mode-string " ElDoc" "\ 8885(defvar eldoc-minor-mode-string " ElDoc" "\
@@ -8917,8 +8917,8 @@ Emacs Lisp mode) that support Eldoc.")
8917 8917
8918;;;*** 8918;;;***
8919 8919
8920;;;### (autoloads (elide-head) "elide-head" "elide-head.el" (17843 8920;;;### (autoloads (elide-head) "elide-head" "elide-head.el" (17842
8921;;;;;; 45610)) 8921;;;;;; 58279))
8922;;; Generated autoloads from elide-head.el 8922;;; Generated autoloads from elide-head.el
8923 8923
8924(autoload (quote elide-head) "elide-head" "\ 8924(autoload (quote elide-head) "elide-head" "\
@@ -8934,7 +8934,7 @@ This is suitable as an entry on `find-file-hook' or appropriate mode hooks.
8934;;;*** 8934;;;***
8935 8935
8936;;;### (autoloads (elint-initialize) "elint" "emacs-lisp/elint.el" 8936;;;### (autoloads (elint-initialize) "elint" "emacs-lisp/elint.el"
8937;;;;;; (17843 45615)) 8937;;;;;; (17842 54152))
8938;;; Generated autoloads from emacs-lisp/elint.el 8938;;; Generated autoloads from emacs-lisp/elint.el
8939 8939
8940(autoload (quote elint-initialize) "elint" "\ 8940(autoload (quote elint-initialize) "elint" "\
@@ -8945,8 +8945,8 @@ Initialize elint.
8945;;;*** 8945;;;***
8946 8946
8947;;;### (autoloads (elp-results elp-instrument-package elp-instrument-list 8947;;;### (autoloads (elp-results elp-instrument-package elp-instrument-list
8948;;;;;; elp-instrument-function) "elp" "emacs-lisp/elp.el" (17843 8948;;;;;; elp-instrument-function) "elp" "emacs-lisp/elp.el" (17842
8949;;;;;; 45615)) 8949;;;;;; 54152))
8950;;; Generated autoloads from emacs-lisp/elp.el 8950;;; Generated autoloads from emacs-lisp/elp.el
8951 8951
8952(autoload (quote elp-instrument-function) "elp" "\ 8952(autoload (quote elp-instrument-function) "elp" "\
@@ -8980,7 +8980,7 @@ displayed.
8980;;;*** 8980;;;***
8981 8981
8982;;;### (autoloads (report-emacs-bug) "emacsbug" "mail/emacsbug.el" 8982;;;### (autoloads (report-emacs-bug) "emacsbug" "mail/emacsbug.el"
8983;;;;;; (17939 56022)) 8983;;;;;; (17907 23437))
8984;;; Generated autoloads from mail/emacsbug.el 8984;;; Generated autoloads from mail/emacsbug.el
8985 8985
8986(autoload (quote report-emacs-bug) "emacsbug" "\ 8986(autoload (quote report-emacs-bug) "emacsbug" "\
@@ -9073,12 +9073,12 @@ Not documented
9073;;;*** 9073;;;***
9074 9074
9075;;;### (autoloads (encoded-kbd-mode) "encoded-kb" "international/encoded-kb.el" 9075;;;### (autoloads (encoded-kbd-mode) "encoded-kb" "international/encoded-kb.el"
9076;;;;;; (17843 45618)) 9076;;;;;; (17842 54888))
9077;;; Generated autoloads from international/encoded-kb.el 9077;;; Generated autoloads from international/encoded-kb.el
9078 9078
9079(defvar encoded-kbd-mode nil "\ 9079(defvar encoded-kbd-mode nil "\
9080Non-nil if Encoded-Kbd mode is enabled. 9080Non-nil if Encoded-Kbd mode is enabled.
9081See the command `encoded-kbd-mode' for a description of this minor-mode. 9081See the command `encoded-kbd-mode' for a description of this minor mode.
9082Setting this variable directly does not take effect; 9082Setting this variable directly does not take effect;
9083either customize it (see the info node `Easy Customization') 9083either customize it (see the info node `Easy Customization')
9084or call the function `encoded-kbd-mode'.") 9084or call the function `encoded-kbd-mode'.")
@@ -9102,7 +9102,7 @@ as a multilingual text encoded in a coding system set by
9102;;;*** 9102;;;***
9103 9103
9104;;;### (autoloads (enriched-decode enriched-encode enriched-mode) 9104;;;### (autoloads (enriched-decode enriched-encode enriched-mode)
9105;;;;;; "enriched" "textmodes/enriched.el" (17843 45630)) 9105;;;;;; "enriched" "textmodes/enriched.el" (17842 58277))
9106;;; Generated autoloads from textmodes/enriched.el 9106;;; Generated autoloads from textmodes/enriched.el
9107 9107
9108(autoload (quote enriched-mode) "enriched" "\ 9108(autoload (quote enriched-mode) "enriched" "\
@@ -9133,7 +9133,7 @@ Not documented
9133;;;*** 9133;;;***
9134 9134
9135;;;### (autoloads (erc-handle-irc-url erc erc-select-read-args) "erc" 9135;;;### (autoloads (erc-handle-irc-url erc erc-select-read-args) "erc"
9136;;;;;; "erc/erc.el" (17939 56021)) 9136;;;;;; "erc/erc.el" (17935 53318))
9137;;; Generated autoloads from erc/erc.el 9137;;; Generated autoloads from erc/erc.el
9138 9138
9139(autoload (quote erc-select-read-args) "erc" "\ 9139(autoload (quote erc-select-read-args) "erc" "\
@@ -9175,33 +9175,33 @@ Otherwise, connect to HOST:PORT as USER and /join CHANNEL.
9175 9175
9176;;;*** 9176;;;***
9177 9177
9178;;;### (autoloads nil "erc-autoaway" "erc/erc-autoaway.el" (17939 9178;;;### (autoloads nil "erc-autoaway" "erc/erc-autoaway.el" (17935
9179;;;;;; 56021)) 9179;;;;;; 53318))
9180;;; Generated autoloads from erc/erc-autoaway.el 9180;;; Generated autoloads from erc/erc-autoaway.el
9181 (autoload 'erc-autoaway-mode "erc-autoaway") 9181 (autoload 'erc-autoaway-mode "erc-autoaway")
9182 9182
9183;;;*** 9183;;;***
9184 9184
9185;;;### (autoloads nil "erc-button" "erc/erc-button.el" (17939 56021)) 9185;;;### (autoloads nil "erc-button" "erc/erc-button.el" (17935 53318))
9186;;; Generated autoloads from erc/erc-button.el 9186;;; Generated autoloads from erc/erc-button.el
9187 (autoload 'erc-button-mode "erc-button" nil t) 9187 (autoload 'erc-button-mode "erc-button" nil t)
9188 9188
9189;;;*** 9189;;;***
9190 9190
9191;;;### (autoloads nil "erc-capab" "erc/erc-capab.el" (17939 56021)) 9191;;;### (autoloads nil "erc-capab" "erc/erc-capab.el" (17935 53318))
9192;;; Generated autoloads from erc/erc-capab.el 9192;;; Generated autoloads from erc/erc-capab.el
9193 (autoload 'erc-capab-identify-mode "erc-capab" nil t) 9193 (autoload 'erc-capab-identify-mode "erc-capab" nil t)
9194 9194
9195;;;*** 9195;;;***
9196 9196
9197;;;### (autoloads nil "erc-compat" "erc/erc-compat.el" (17939 56021)) 9197;;;### (autoloads nil "erc-compat" "erc/erc-compat.el" (17935 53318))
9198;;; Generated autoloads from erc/erc-compat.el 9198;;; Generated autoloads from erc/erc-compat.el
9199 (autoload 'erc-define-minor-mode "erc-compat") 9199 (autoload 'erc-define-minor-mode "erc-compat")
9200 9200
9201;;;*** 9201;;;***
9202 9202
9203;;;### (autoloads (erc-ctcp-query-DCC pcomplete/erc-mode/DCC erc-cmd-DCC) 9203;;;### (autoloads (erc-ctcp-query-DCC pcomplete/erc-mode/DCC erc-cmd-DCC)
9204;;;;;; "erc-dcc" "erc/erc-dcc.el" (17843 45616)) 9204;;;;;; "erc-dcc" "erc/erc-dcc.el" (17842 54344))
9205;;; Generated autoloads from erc/erc-dcc.el 9205;;; Generated autoloads from erc/erc-dcc.el
9206 9206
9207(autoload (quote erc-cmd-DCC) "erc-dcc" "\ 9207(autoload (quote erc-cmd-DCC) "erc-dcc" "\
@@ -9233,7 +9233,7 @@ that subcommand.
9233;;;;;; erc-ezb-add-session erc-ezb-end-of-session-list erc-ezb-init-session-list 9233;;;;;; erc-ezb-add-session erc-ezb-end-of-session-list erc-ezb-init-session-list
9234;;;;;; erc-ezb-identify erc-ezb-notice-autodetect erc-ezb-lookup-action 9234;;;;;; erc-ezb-identify erc-ezb-notice-autodetect erc-ezb-lookup-action
9235;;;;;; erc-ezb-get-login erc-cmd-ezb) "erc-ezbounce" "erc/erc-ezbounce.el" 9235;;;;;; erc-ezb-get-login erc-cmd-ezb) "erc-ezbounce" "erc/erc-ezbounce.el"
9236;;;;;; (17843 45616)) 9236;;;;;; (17842 54344))
9237;;; Generated autoloads from erc/erc-ezbounce.el 9237;;; Generated autoloads from erc/erc-ezbounce.el
9238 9238
9239(autoload (quote erc-cmd-ezb) "erc-ezbounce" "\ 9239(autoload (quote erc-cmd-ezb) "erc-ezbounce" "\
@@ -9295,8 +9295,8 @@ Add EZBouncer convenience functions to ERC.
9295 9295
9296;;;*** 9296;;;***
9297 9297
9298;;;### (autoloads (erc-fill) "erc-fill" "erc/erc-fill.el" (17939 9298;;;### (autoloads (erc-fill) "erc-fill" "erc/erc-fill.el" (17935
9299;;;;;; 56021)) 9299;;;;;; 53318))
9300;;; Generated autoloads from erc/erc-fill.el 9300;;; Generated autoloads from erc/erc-fill.el
9301 (autoload 'erc-fill-mode "erc-fill" nil t) 9301 (autoload 'erc-fill-mode "erc-fill" nil t)
9302 9302
@@ -9308,15 +9308,15 @@ You can put this on `erc-insert-modify-hook' and/or `erc-send-modify-hook'.
9308 9308
9309;;;*** 9309;;;***
9310 9310
9311;;;### (autoloads nil "erc-hecomplete" "erc/erc-hecomplete.el" (17843 9311;;;### (autoloads nil "erc-hecomplete" "erc/erc-hecomplete.el" (17842
9312;;;;;; 45616)) 9312;;;;;; 54344))
9313;;; Generated autoloads from erc/erc-hecomplete.el 9313;;; Generated autoloads from erc/erc-hecomplete.el
9314 (autoload 'erc-hecomplete-mode "erc-hecomplete" nil t) 9314 (autoload 'erc-hecomplete-mode "erc-hecomplete" nil t)
9315 9315
9316;;;*** 9316;;;***
9317 9317
9318;;;### (autoloads (erc-identd-stop erc-identd-start) "erc-identd" 9318;;;### (autoloads (erc-identd-stop erc-identd-start) "erc-identd"
9319;;;;;; "erc/erc-identd.el" (17939 56021)) 9319;;;;;; "erc/erc-identd.el" (17935 53318))
9320;;; Generated autoloads from erc/erc-identd.el 9320;;; Generated autoloads from erc/erc-identd.el
9321 (autoload 'erc-identd-mode "erc-identd") 9321 (autoload 'erc-identd-mode "erc-identd")
9322 9322
@@ -9338,7 +9338,7 @@ Not documented
9338;;;*** 9338;;;***
9339 9339
9340;;;### (autoloads (erc-create-imenu-index) "erc-imenu" "erc/erc-imenu.el" 9340;;;### (autoloads (erc-create-imenu-index) "erc-imenu" "erc/erc-imenu.el"
9341;;;;;; (17843 45616)) 9341;;;;;; (17842 54344))
9342;;; Generated autoloads from erc/erc-imenu.el 9342;;; Generated autoloads from erc/erc-imenu.el
9343 9343
9344(autoload (quote erc-create-imenu-index) "erc-imenu" "\ 9344(autoload (quote erc-create-imenu-index) "erc-imenu" "\
@@ -9348,14 +9348,14 @@ Not documented
9348 9348
9349;;;*** 9349;;;***
9350 9350
9351;;;### (autoloads nil "erc-join" "erc/erc-join.el" (17843 45616)) 9351;;;### (autoloads nil "erc-join" "erc/erc-join.el" (17842 54344))
9352;;; Generated autoloads from erc/erc-join.el 9352;;; Generated autoloads from erc/erc-join.el
9353 (autoload 'erc-autojoin-mode "erc-join" nil t) 9353 (autoload 'erc-autojoin-mode "erc-join" nil t)
9354 9354
9355;;;*** 9355;;;***
9356 9356
9357;;;### (autoloads (erc-save-buffer-in-logs erc-logging-enabled) "erc-log" 9357;;;### (autoloads (erc-save-buffer-in-logs erc-logging-enabled) "erc-log"
9358;;;;;; "erc/erc-log.el" (17939 56021)) 9358;;;;;; "erc/erc-log.el" (17935 53318))
9359;;; Generated autoloads from erc/erc-log.el 9359;;; Generated autoloads from erc/erc-log.el
9360 (autoload 'erc-log-mode "erc-log" nil t) 9360 (autoload 'erc-log-mode "erc-log" nil t)
9361 9361
@@ -9387,7 +9387,7 @@ You can save every individual message by putting this function on
9387;;;### (autoloads (erc-delete-dangerous-host erc-add-dangerous-host 9387;;;### (autoloads (erc-delete-dangerous-host erc-add-dangerous-host
9388;;;;;; erc-delete-keyword erc-add-keyword erc-delete-fool erc-add-fool 9388;;;;;; erc-delete-keyword erc-add-keyword erc-delete-fool erc-add-fool
9389;;;;;; erc-delete-pal erc-add-pal) "erc-match" "erc/erc-match.el" 9389;;;;;; erc-delete-pal erc-add-pal) "erc-match" "erc/erc-match.el"
9390;;;;;; (17939 56021)) 9390;;;;;; (17935 53318))
9391;;; Generated autoloads from erc/erc-match.el 9391;;; Generated autoloads from erc/erc-match.el
9392 (autoload 'erc-match-mode "erc-match") 9392 (autoload 'erc-match-mode "erc-match")
9393 9393
@@ -9433,14 +9433,14 @@ Delete dangerous-host interactively to `erc-dangerous-hosts'.
9433 9433
9434;;;*** 9434;;;***
9435 9435
9436;;;### (autoloads nil "erc-menu" "erc/erc-menu.el" (17939 56021)) 9436;;;### (autoloads nil "erc-menu" "erc/erc-menu.el" (17935 53318))
9437;;; Generated autoloads from erc/erc-menu.el 9437;;; Generated autoloads from erc/erc-menu.el
9438 (autoload 'erc-menu-mode "erc-menu" nil t) 9438 (autoload 'erc-menu-mode "erc-menu" nil t)
9439 9439
9440;;;*** 9440;;;***
9441 9441
9442;;;### (autoloads (erc-cmd-WHOLEFT) "erc-netsplit" "erc/erc-netsplit.el" 9442;;;### (autoloads (erc-cmd-WHOLEFT) "erc-netsplit" "erc/erc-netsplit.el"
9443;;;;;; (17939 56021)) 9443;;;;;; (17935 53318))
9444;;; Generated autoloads from erc/erc-netsplit.el 9444;;; Generated autoloads from erc/erc-netsplit.el
9445 (autoload 'erc-netsplit-mode "erc-netsplit") 9445 (autoload 'erc-netsplit-mode "erc-netsplit")
9446 9446
@@ -9452,7 +9452,7 @@ Show who's gone.
9452;;;*** 9452;;;***
9453 9453
9454;;;### (autoloads (erc-server-select erc-determine-network) "erc-networks" 9454;;;### (autoloads (erc-server-select erc-determine-network) "erc-networks"
9455;;;;;; "erc/erc-networks.el" (17939 56021)) 9455;;;;;; "erc/erc-networks.el" (17935 53318))
9456;;; Generated autoloads from erc/erc-networks.el 9456;;; Generated autoloads from erc/erc-networks.el
9457 9457
9458(autoload (quote erc-determine-network) "erc-networks" "\ 9458(autoload (quote erc-determine-network) "erc-networks" "\
@@ -9470,7 +9470,7 @@ Interactively select a server to connect to using `erc-server-alist'.
9470;;;*** 9470;;;***
9471 9471
9472;;;### (autoloads (pcomplete/erc-mode/NOTIFY erc-cmd-NOTIFY) "erc-notify" 9472;;;### (autoloads (pcomplete/erc-mode/NOTIFY erc-cmd-NOTIFY) "erc-notify"
9473;;;;;; "erc/erc-notify.el" (17939 56021)) 9473;;;;;; "erc/erc-notify.el" (17935 53318))
9474;;; Generated autoloads from erc/erc-notify.el 9474;;; Generated autoloads from erc/erc-notify.el
9475 (autoload 'erc-notify-mode "erc-notify" nil t) 9475 (autoload 'erc-notify-mode "erc-notify" nil t)
9476 9476
@@ -9488,33 +9488,33 @@ Not documented
9488 9488
9489;;;*** 9489;;;***
9490 9490
9491;;;### (autoloads nil "erc-page" "erc/erc-page.el" (17843 45616)) 9491;;;### (autoloads nil "erc-page" "erc/erc-page.el" (17842 54344))
9492;;; Generated autoloads from erc/erc-page.el 9492;;; Generated autoloads from erc/erc-page.el
9493 (autoload 'erc-page-mode "erc-page") 9493 (autoload 'erc-page-mode "erc-page")
9494 9494
9495;;;*** 9495;;;***
9496 9496
9497;;;### (autoloads nil "erc-pcomplete" "erc/erc-pcomplete.el" (17939 9497;;;### (autoloads nil "erc-pcomplete" "erc/erc-pcomplete.el" (17935
9498;;;;;; 56021)) 9498;;;;;; 53318))
9499;;; Generated autoloads from erc/erc-pcomplete.el 9499;;; Generated autoloads from erc/erc-pcomplete.el
9500 (autoload 'erc-completion-mode "erc-pcomplete" nil t) 9500 (autoload 'erc-completion-mode "erc-pcomplete" nil t)
9501 9501
9502;;;*** 9502;;;***
9503 9503
9504;;;### (autoloads nil "erc-replace" "erc/erc-replace.el" (17843 45616)) 9504;;;### (autoloads nil "erc-replace" "erc/erc-replace.el" (17842 54344))
9505;;; Generated autoloads from erc/erc-replace.el 9505;;; Generated autoloads from erc/erc-replace.el
9506 (autoload 'erc-replace-mode "erc-replace") 9506 (autoload 'erc-replace-mode "erc-replace")
9507 9507
9508;;;*** 9508;;;***
9509 9509
9510;;;### (autoloads nil "erc-ring" "erc/erc-ring.el" (17939 56021)) 9510;;;### (autoloads nil "erc-ring" "erc/erc-ring.el" (17935 53318))
9511;;; Generated autoloads from erc/erc-ring.el 9511;;; Generated autoloads from erc/erc-ring.el
9512 (autoload 'erc-ring-mode "erc-ring" nil t) 9512 (autoload 'erc-ring-mode "erc-ring" nil t)
9513 9513
9514;;;*** 9514;;;***
9515 9515
9516;;;### (autoloads (erc-nickserv-identify erc-nickserv-identify-mode) 9516;;;### (autoloads (erc-nickserv-identify erc-nickserv-identify-mode)
9517;;;;;; "erc-services" "erc/erc-services.el" (17939 56021)) 9517;;;;;; "erc-services" "erc/erc-services.el" (17935 53318))
9518;;; Generated autoloads from erc/erc-services.el 9518;;; Generated autoloads from erc/erc-services.el
9519 (autoload 'erc-services-mode "erc-services" nil t) 9519 (autoload 'erc-services-mode "erc-services" nil t)
9520 9520
@@ -9531,14 +9531,14 @@ When called interactively, read the password using `read-passwd'.
9531 9531
9532;;;*** 9532;;;***
9533 9533
9534;;;### (autoloads nil "erc-sound" "erc/erc-sound.el" (17843 45616)) 9534;;;### (autoloads nil "erc-sound" "erc/erc-sound.el" (17842 54344))
9535;;; Generated autoloads from erc/erc-sound.el 9535;;; Generated autoloads from erc/erc-sound.el
9536 (autoload 'erc-sound-mode "erc-sound") 9536 (autoload 'erc-sound-mode "erc-sound")
9537 9537
9538;;;*** 9538;;;***
9539 9539
9540;;;### (autoloads (erc-speedbar-browser) "erc-speedbar" "erc/erc-speedbar.el" 9540;;;### (autoloads (erc-speedbar-browser) "erc-speedbar" "erc/erc-speedbar.el"
9541;;;;;; (17939 56021)) 9541;;;;;; (17935 53318))
9542;;; Generated autoloads from erc/erc-speedbar.el 9542;;; Generated autoloads from erc/erc-speedbar.el
9543 9543
9544(autoload (quote erc-speedbar-browser) "erc-speedbar" "\ 9544(autoload (quote erc-speedbar-browser) "erc-speedbar" "\
@@ -9549,26 +9549,26 @@ This will add a speedbar major display mode.
9549 9549
9550;;;*** 9550;;;***
9551 9551
9552;;;### (autoloads nil "erc-spelling" "erc/erc-spelling.el" (17939 9552;;;### (autoloads nil "erc-spelling" "erc/erc-spelling.el" (17935
9553;;;;;; 56021)) 9553;;;;;; 53318))
9554;;; Generated autoloads from erc/erc-spelling.el 9554;;; Generated autoloads from erc/erc-spelling.el
9555 (autoload 'erc-spelling-mode "erc-spelling" nil t) 9555 (autoload 'erc-spelling-mode "erc-spelling" nil t)
9556 9556
9557;;;*** 9557;;;***
9558 9558
9559;;;### (autoloads nil "erc-stamp" "erc/erc-stamp.el" (17939 56021)) 9559;;;### (autoloads nil "erc-stamp" "erc/erc-stamp.el" (17935 53318))
9560;;; Generated autoloads from erc/erc-stamp.el 9560;;; Generated autoloads from erc/erc-stamp.el
9561 (autoload 'erc-timestamp-mode "erc-stamp" nil t) 9561 (autoload 'erc-timestamp-mode "erc-stamp" nil t)
9562 9562
9563;;;*** 9563;;;***
9564 9564
9565;;;### (autoloads (erc-track-minor-mode) "erc-track" "erc/erc-track.el" 9565;;;### (autoloads (erc-track-minor-mode) "erc-track" "erc/erc-track.el"
9566;;;;;; (17939 56021)) 9566;;;;;; (17935 53318))
9567;;; Generated autoloads from erc/erc-track.el 9567;;; Generated autoloads from erc/erc-track.el
9568 9568
9569(defvar erc-track-minor-mode nil "\ 9569(defvar erc-track-minor-mode nil "\
9570Non-nil if Erc-Track minor mode is enabled. 9570Non-nil if Erc-Track minor mode is enabled.
9571See the command `erc-track-minor-mode' for a description of this minor-mode.") 9571See the command `erc-track-minor-mode' for a description of this minor mode.")
9572 9572
9573(custom-autoload (quote erc-track-minor-mode) "erc-track" nil) 9573(custom-autoload (quote erc-track-minor-mode) "erc-track" nil)
9574 9574
@@ -9586,7 +9586,7 @@ module, otherwise the keybindings will not do anything useful.
9586;;;*** 9586;;;***
9587 9587
9588;;;### (autoloads (erc-truncate-buffer erc-truncate-buffer-to-size) 9588;;;### (autoloads (erc-truncate-buffer erc-truncate-buffer-to-size)
9589;;;;;; "erc-truncate" "erc/erc-truncate.el" (17843 45616)) 9589;;;;;; "erc-truncate" "erc/erc-truncate.el" (17842 54344))
9590;;; Generated autoloads from erc/erc-truncate.el 9590;;; Generated autoloads from erc/erc-truncate.el
9591 (autoload 'erc-truncate-mode "erc-truncate" nil t) 9591 (autoload 'erc-truncate-mode "erc-truncate" nil t)
9592 9592
@@ -9606,7 +9606,7 @@ Meant to be used in hooks, like `erc-insert-post-hook'.
9606;;;*** 9606;;;***
9607 9607
9608;;;### (autoloads (erc-xdcc-add-file) "erc-xdcc" "erc/erc-xdcc.el" 9608;;;### (autoloads (erc-xdcc-add-file) "erc-xdcc" "erc/erc-xdcc.el"
9609;;;;;; (17843 45616)) 9609;;;;;; (17842 54344))
9610;;; Generated autoloads from erc/erc-xdcc.el 9610;;; Generated autoloads from erc/erc-xdcc.el
9611 9611
9612(autoload (quote erc-xdcc-add-file) "erc-xdcc" "\ 9612(autoload (quote erc-xdcc-add-file) "erc-xdcc" "\
@@ -9616,8 +9616,8 @@ Add a file to `erc-xdcc-files'.
9616 9616
9617;;;*** 9617;;;***
9618 9618
9619;;;### (autoloads (eshell-mode) "esh-mode" "eshell/esh-mode.el" (17939 9619;;;### (autoloads (eshell-mode) "esh-mode" "eshell/esh-mode.el" (17914
9620;;;;;; 56021)) 9620;;;;;; 52082))
9621;;; Generated autoloads from eshell/esh-mode.el 9621;;; Generated autoloads from eshell/esh-mode.el
9622 9622
9623(autoload (quote eshell-mode) "esh-mode" "\ 9623(autoload (quote eshell-mode) "esh-mode" "\
@@ -9629,8 +9629,8 @@ Emacs shell interactive mode.
9629 9629
9630;;;*** 9630;;;***
9631 9631
9632;;;### (autoloads (eshell-test) "esh-test" "eshell/esh-test.el" (17843 9632;;;### (autoloads (eshell-test) "esh-test" "eshell/esh-test.el" (17842
9633;;;;;; 45616)) 9633;;;;;; 54411))
9634;;; Generated autoloads from eshell/esh-test.el 9634;;; Generated autoloads from eshell/esh-test.el
9635 9635
9636(autoload (quote eshell-test) "esh-test" "\ 9636(autoload (quote eshell-test) "esh-test" "\
@@ -9641,7 +9641,7 @@ Test Eshell to verify that it works as expected.
9641;;;*** 9641;;;***
9642 9642
9643;;;### (autoloads (eshell-report-bug eshell-command-result eshell-command 9643;;;### (autoloads (eshell-report-bug eshell-command-result eshell-command
9644;;;;;; eshell) "eshell" "eshell/eshell.el" (17843 45616)) 9644;;;;;; eshell) "eshell" "eshell/eshell.el" (17842 54411))
9645;;; Generated autoloads from eshell/eshell.el 9645;;; Generated autoloads from eshell/eshell.el
9646 9646
9647(autoload (quote eshell) "eshell" "\ 9647(autoload (quote eshell) "eshell" "\
@@ -9687,7 +9687,7 @@ Please include any configuration details that might be involved.
9687;;;;;; visit-tags-table tags-table-mode find-tag-default-function 9687;;;;;; visit-tags-table tags-table-mode find-tag-default-function
9688;;;;;; find-tag-hook tags-add-tables tags-compression-info-list 9688;;;;;; find-tag-hook tags-add-tables tags-compression-info-list
9689;;;;;; tags-table-list tags-case-fold-search) "etags" "progmodes/etags.el" 9689;;;;;; tags-table-list tags-case-fold-search) "etags" "progmodes/etags.el"
9690;;;;;; (17843 45627)) 9690;;;;;; (17842 56333))
9691;;; Generated autoloads from progmodes/etags.el 9691;;; Generated autoloads from progmodes/etags.el
9692 9692
9693(defvar tags-file-name nil "\ 9693(defvar tags-file-name nil "\
@@ -9989,7 +9989,7 @@ for \\[find-tag] (which see).
9989;;;;;; ethio-fidel-to-sera-buffer ethio-fidel-to-sera-region ethio-sera-to-fidel-marker 9989;;;;;; ethio-fidel-to-sera-buffer ethio-fidel-to-sera-region ethio-sera-to-fidel-marker
9990;;;;;; ethio-sera-to-fidel-mail ethio-sera-to-fidel-mail-or-marker 9990;;;;;; ethio-sera-to-fidel-mail ethio-sera-to-fidel-mail-or-marker
9991;;;;;; ethio-sera-to-fidel-buffer ethio-sera-to-fidel-region setup-ethiopic-environment-internal) 9991;;;;;; ethio-sera-to-fidel-buffer ethio-sera-to-fidel-region setup-ethiopic-environment-internal)
9992;;;;;; "ethio-util" "language/ethio-util.el" (17843 45620)) 9992;;;;;; "ethio-util" "language/ethio-util.el" (17842 58278))
9993;;; Generated autoloads from language/ethio-util.el 9993;;; Generated autoloads from language/ethio-util.el
9994 9994
9995(autoload (quote setup-ethiopic-environment-internal) "ethio-util" "\ 9995(autoload (quote setup-ethiopic-environment-internal) "ethio-util" "\
@@ -10184,7 +10184,7 @@ Transcribe Ethiopic characters in ASCII depending on the file extension.
10184 10184
10185;;;### (autoloads (eudc-load-eudc eudc-query-form eudc-expand-inline 10185;;;### (autoloads (eudc-load-eudc eudc-query-form eudc-expand-inline
10186;;;;;; eudc-get-phone eudc-get-email eudc-set-server) "eudc" "net/eudc.el" 10186;;;;;; eudc-get-phone eudc-get-email eudc-set-server) "eudc" "net/eudc.el"
10187;;;;;; (17843 45624)) 10187;;;;;; (17842 55218))
10188;;; Generated autoloads from net/eudc.el 10188;;; Generated autoloads from net/eudc.el
10189 10189
10190(autoload (quote eudc-set-server) "eudc" "\ 10190(autoload (quote eudc-set-server) "eudc" "\
@@ -10240,7 +10240,7 @@ This does nothing except loading eudc by autoload side-effect.
10240 10240
10241;;;### (autoloads (eudc-display-jpeg-as-button eudc-display-jpeg-inline 10241;;;### (autoloads (eudc-display-jpeg-as-button eudc-display-jpeg-inline
10242;;;;;; eudc-display-sound eudc-display-mail eudc-display-url eudc-display-generic-binary) 10242;;;;;; eudc-display-sound eudc-display-mail eudc-display-url eudc-display-generic-binary)
10243;;;;;; "eudc-bob" "net/eudc-bob.el" (17843 45624)) 10243;;;;;; "eudc-bob" "net/eudc-bob.el" (17842 55218))
10244;;; Generated autoloads from net/eudc-bob.el 10244;;; Generated autoloads from net/eudc-bob.el
10245 10245
10246(autoload (quote eudc-display-generic-binary) "eudc-bob" "\ 10246(autoload (quote eudc-display-generic-binary) "eudc-bob" "\
@@ -10276,7 +10276,7 @@ Display a button for the JPEG DATA.
10276;;;*** 10276;;;***
10277 10277
10278;;;### (autoloads (eudc-try-bbdb-insert eudc-insert-record-at-point-into-bbdb) 10278;;;### (autoloads (eudc-try-bbdb-insert eudc-insert-record-at-point-into-bbdb)
10279;;;;;; "eudc-export" "net/eudc-export.el" (17843 45624)) 10279;;;;;; "eudc-export" "net/eudc-export.el" (17842 55218))
10280;;; Generated autoloads from net/eudc-export.el 10280;;; Generated autoloads from net/eudc-export.el
10281 10281
10282(autoload (quote eudc-insert-record-at-point-into-bbdb) "eudc-export" "\ 10282(autoload (quote eudc-insert-record-at-point-into-bbdb) "eudc-export" "\
@@ -10293,7 +10293,7 @@ Call `eudc-insert-record-at-point-into-bbdb' if on a record.
10293;;;*** 10293;;;***
10294 10294
10295;;;### (autoloads (eudc-edit-hotlist) "eudc-hotlist" "net/eudc-hotlist.el" 10295;;;### (autoloads (eudc-edit-hotlist) "eudc-hotlist" "net/eudc-hotlist.el"
10296;;;;;; (17843 45624)) 10296;;;;;; (17842 55218))
10297;;; Generated autoloads from net/eudc-hotlist.el 10297;;; Generated autoloads from net/eudc-hotlist.el
10298 10298
10299(autoload (quote eudc-edit-hotlist) "eudc-hotlist" "\ 10299(autoload (quote eudc-edit-hotlist) "eudc-hotlist" "\
@@ -10303,8 +10303,8 @@ Edit the hotlist of directory servers in a specialized buffer.
10303 10303
10304;;;*** 10304;;;***
10305 10305
10306;;;### (autoloads (ewoc-create) "ewoc" "emacs-lisp/ewoc.el" (17939 10306;;;### (autoloads (ewoc-create) "ewoc" "emacs-lisp/ewoc.el" (17933
10307;;;;;; 56021)) 10307;;;;;; 14283))
10308;;; Generated autoloads from emacs-lisp/ewoc.el 10308;;; Generated autoloads from emacs-lisp/ewoc.el
10309 10309
10310(autoload (quote ewoc-create) "ewoc" "\ 10310(autoload (quote ewoc-create) "ewoc" "\
@@ -10333,7 +10333,7 @@ fourth arg NOSEP non-nil inhibits this.
10333;;;### (autoloads (executable-make-buffer-file-executable-if-script-p 10333;;;### (autoloads (executable-make-buffer-file-executable-if-script-p
10334;;;;;; executable-self-display executable-set-magic executable-interpret 10334;;;;;; executable-self-display executable-set-magic executable-interpret
10335;;;;;; executable-command-find-posix-p) "executable" "progmodes/executable.el" 10335;;;;;; executable-command-find-posix-p) "executable" "progmodes/executable.el"
10336;;;;;; (17843 45627)) 10336;;;;;; (17842 56333))
10337;;; Generated autoloads from progmodes/executable.el 10337;;; Generated autoloads from progmodes/executable.el
10338 10338
10339(autoload (quote executable-command-find-posix-p) "executable" "\ 10339(autoload (quote executable-command-find-posix-p) "executable" "\
@@ -10376,7 +10376,7 @@ file modes.
10376 10376
10377;;;### (autoloads (expand-jump-to-next-slot expand-jump-to-previous-slot 10377;;;### (autoloads (expand-jump-to-next-slot expand-jump-to-previous-slot
10378;;;;;; expand-abbrev-hook expand-add-abbrevs) "expand" "expand.el" 10378;;;;;; expand-abbrev-hook expand-add-abbrevs) "expand" "expand.el"
10379;;;;;; (17939 56017)) 10379;;;;;; (17925 52793))
10380;;; Generated autoloads from expand.el 10380;;; Generated autoloads from expand.el
10381 10381
10382(autoload (quote expand-add-abbrevs) "expand" "\ 10382(autoload (quote expand-add-abbrevs) "expand" "\
@@ -10425,7 +10425,7 @@ This is used only in conjunction with `expand-add-abbrevs'.
10425 10425
10426;;;*** 10426;;;***
10427 10427
10428;;;### (autoloads (f90-mode) "f90" "progmodes/f90.el" (17843 45627)) 10428;;;### (autoloads (f90-mode) "f90" "progmodes/f90.el" (17842 56333))
10429;;; Generated autoloads from progmodes/f90.el 10429;;; Generated autoloads from progmodes/f90.el
10430 10430
10431(autoload (quote f90-mode) "f90" "\ 10431(autoload (quote f90-mode) "f90" "\
@@ -10492,7 +10492,7 @@ with no args, if that value is non-nil.
10492;;;;;; facemenu-remove-all facemenu-remove-face-props facemenu-set-read-only 10492;;;;;; facemenu-remove-all facemenu-remove-face-props facemenu-set-read-only
10493;;;;;; facemenu-set-intangible facemenu-set-invisible facemenu-set-face-from-menu 10493;;;;;; facemenu-set-intangible facemenu-set-invisible facemenu-set-face-from-menu
10494;;;;;; facemenu-set-background facemenu-set-foreground facemenu-set-face) 10494;;;;;; facemenu-set-background facemenu-set-foreground facemenu-set-face)
10495;;;;;; "facemenu" "facemenu.el" (17843 45610)) 10495;;;;;; "facemenu" "facemenu.el" (17842 58279))
10496;;; Generated autoloads from facemenu.el 10496;;; Generated autoloads from facemenu.el
10497 (define-key global-map "\M-o" 'facemenu-keymap) 10497 (define-key global-map "\M-o" 'facemenu-keymap)
10498 (autoload 'facemenu-keymap "facemenu" "Keymap for face-changing commands." t 'keymap) 10498 (autoload 'facemenu-keymap "facemenu" "Keymap for face-changing commands." t 'keymap)
@@ -10661,7 +10661,7 @@ argument BUFFER-NAME is nil, it defaults to *Colors*.
10661 10661
10662;;;### (autoloads (feedmail-queue-reminder feedmail-run-the-queue 10662;;;### (autoloads (feedmail-queue-reminder feedmail-run-the-queue
10663;;;;;; feedmail-run-the-queue-global-prompt feedmail-run-the-queue-no-prompts 10663;;;;;; feedmail-run-the-queue-global-prompt feedmail-run-the-queue-no-prompts
10664;;;;;; feedmail-send-it) "feedmail" "mail/feedmail.el" (17939 56022)) 10664;;;;;; feedmail-send-it) "feedmail" "mail/feedmail.el" (17888 29839))
10665;;; Generated autoloads from mail/feedmail.el 10665;;; Generated autoloads from mail/feedmail.el
10666 10666
10667(autoload (quote feedmail-send-it) "feedmail" "\ 10667(autoload (quote feedmail-send-it) "feedmail" "\
@@ -10715,7 +10715,7 @@ you can set `feedmail-queue-reminder-alist' to nil.
10715;;;*** 10715;;;***
10716 10716
10717;;;### (autoloads (ffap-bindings dired-at-point ffap-at-mouse ffap-menu 10717;;;### (autoloads (ffap-bindings dired-at-point ffap-at-mouse ffap-menu
10718;;;;;; find-file-at-point ffap-next) "ffap" "ffap.el" (17943 51387)) 10718;;;;;; find-file-at-point ffap-next) "ffap" "ffap.el" (17943 4602))
10719;;; Generated autoloads from ffap.el 10719;;; Generated autoloads from ffap.el
10720 10720
10721(autoload (quote ffap-next) "ffap" "\ 10721(autoload (quote ffap-next) "ffap" "\
@@ -10774,7 +10774,7 @@ Evaluate the forms in variable `ffap-bindings'.
10774;;;### (autoloads (file-cache-minibuffer-complete file-cache-add-directory-recursively 10774;;;### (autoloads (file-cache-minibuffer-complete file-cache-add-directory-recursively
10775;;;;;; file-cache-add-directory-using-locate file-cache-add-directory-using-find 10775;;;;;; file-cache-add-directory-using-locate file-cache-add-directory-using-find
10776;;;;;; file-cache-add-file file-cache-add-directory-list file-cache-add-directory) 10776;;;;;; file-cache-add-file file-cache-add-directory-list file-cache-add-directory)
10777;;;;;; "filecache" "filecache.el" (17843 45610)) 10777;;;;;; "filecache" "filecache.el" (17842 58279))
10778;;; Generated autoloads from filecache.el 10778;;; Generated autoloads from filecache.el
10779 10779
10780(autoload (quote file-cache-add-directory) "filecache" "\ 10780(autoload (quote file-cache-add-directory) "filecache" "\
@@ -10833,8 +10833,8 @@ the name is considered already unique; only the second substitution
10833 10833
10834;;;*** 10834;;;***
10835 10835
10836;;;### (autoloads (filesets-init) "filesets" "filesets.el" (17843 10836;;;### (autoloads (filesets-init) "filesets" "filesets.el" (17842
10837;;;;;; 45610)) 10837;;;;;; 58279))
10838;;; Generated autoloads from filesets.el 10838;;; Generated autoloads from filesets.el
10839 10839
10840(autoload (quote filesets-init) "filesets" "\ 10840(autoload (quote filesets-init) "filesets" "\
@@ -10845,7 +10845,7 @@ Set up hooks, load the cache file -- if existing -- and build the menu.
10845 10845
10846;;;*** 10846;;;***
10847 10847
10848;;;### (autoloads nil "fill" "textmodes/fill.el" (17988 52354)) 10848;;;### (autoloads nil "fill" "textmodes/fill.el" (18007 39658))
10849;;; Generated autoloads from textmodes/fill.el 10849;;; Generated autoloads from textmodes/fill.el
10850(put 'colon-double-space 'safe-local-variable 'booleanp) 10850(put 'colon-double-space 'safe-local-variable 'booleanp)
10851 10851
@@ -10853,7 +10853,7 @@ Set up hooks, load the cache file -- if existing -- and build the menu.
10853 10853
10854;;;### (autoloads (find-grep-dired find-name-dired find-dired find-grep-options 10854;;;### (autoloads (find-grep-dired find-name-dired find-dired find-grep-options
10855;;;;;; find-ls-subdir-switches find-ls-option) "find-dired" "find-dired.el" 10855;;;;;; find-ls-subdir-switches find-ls-option) "find-dired" "find-dired.el"
10856;;;;;; (17988 52353)) 10856;;;;;; (17992 30877))
10857;;; Generated autoloads from find-dired.el 10857;;; Generated autoloads from find-dired.el
10858 10858
10859(defvar find-ls-option (if (eq system-type (quote berkeley-unix)) (quote ("-ls" . "-gilsb")) (quote ("-exec ls -ld {} \\;" . "-ld"))) "\ 10859(defvar find-ls-option (if (eq system-type (quote berkeley-unix)) (quote ("-ls" . "-gilsb")) (quote ("-exec ls -ld {} \\;" . "-ld"))) "\
@@ -10914,7 +10914,7 @@ Thus ARG can also contain additional grep options.
10914 10914
10915;;;### (autoloads (ff-mouse-find-other-file-other-window ff-mouse-find-other-file 10915;;;### (autoloads (ff-mouse-find-other-file-other-window ff-mouse-find-other-file
10916;;;;;; ff-find-other-file ff-get-other-file) "find-file" "find-file.el" 10916;;;;;; ff-find-other-file ff-get-other-file) "find-file" "find-file.el"
10917;;;;;; (17843 45610)) 10917;;;;;; (17842 58279))
10918;;; Generated autoloads from find-file.el 10918;;; Generated autoloads from find-file.el
10919 10919
10920(defvar ff-special-constructs (quote (("^#\\s *\\(include\\|import\\)\\s +[<\"]\\(.*\\)[>\"]" lambda nil (buffer-substring (match-beginning 2) (match-end 2))))) "\ 10920(defvar ff-special-constructs (quote (("^#\\s *\\(include\\|import\\)\\s +[<\"]\\(.*\\)[>\"]" lambda nil (buffer-substring (match-beginning 2) (match-end 2))))) "\
@@ -11008,7 +11008,7 @@ Visit the file you click on in another window.
11008;;;;;; find-variable find-variable-noselect find-function-other-frame 11008;;;;;; find-variable find-variable-noselect find-function-other-frame
11009;;;;;; find-function-other-window find-function find-function-noselect 11009;;;;;; find-function-other-window find-function find-function-noselect
11010;;;;;; find-function-search-for-symbol find-library) "find-func" 11010;;;;;; find-function-search-for-symbol find-library) "find-func"
11011;;;;;; "emacs-lisp/find-func.el" (17843 45615)) 11011;;;;;; "emacs-lisp/find-func.el" (17842 54152))
11012;;; Generated autoloads from emacs-lisp/find-func.el 11012;;; Generated autoloads from emacs-lisp/find-func.el
11013 11013
11014(autoload (quote find-library) "find-func" "\ 11014(autoload (quote find-library) "find-func" "\
@@ -11162,7 +11162,7 @@ Define some key bindings for the find-function family of functions.
11162;;;*** 11162;;;***
11163 11163
11164;;;### (autoloads (find-lisp-find-dired-filter find-lisp-find-dired-subdirectories 11164;;;### (autoloads (find-lisp-find-dired-filter find-lisp-find-dired-subdirectories
11165;;;;;; find-lisp-find-dired) "find-lisp" "find-lisp.el" (17939 56017)) 11165;;;;;; find-lisp-find-dired) "find-lisp" "find-lisp.el" (17893 23802))
11166;;; Generated autoloads from find-lisp.el 11166;;; Generated autoloads from find-lisp.el
11167 11167
11168(autoload (quote find-lisp-find-dired) "find-lisp" "\ 11168(autoload (quote find-lisp-find-dired) "find-lisp" "\
@@ -11183,7 +11183,7 @@ Change the filter on a find-lisp-find-dired buffer to REGEXP.
11183;;;*** 11183;;;***
11184 11184
11185;;;### (autoloads (finder-by-keyword finder-commentary finder-list-keywords) 11185;;;### (autoloads (finder-by-keyword finder-commentary finder-list-keywords)
11186;;;;;; "finder" "finder.el" (17843 45610)) 11186;;;;;; "finder" "finder.el" (17842 58279))
11187;;; Generated autoloads from finder.el 11187;;; Generated autoloads from finder.el
11188 11188
11189(autoload (quote finder-list-keywords) "finder" "\ 11189(autoload (quote finder-list-keywords) "finder" "\
@@ -11205,7 +11205,7 @@ Find packages matching a given keyword.
11205;;;*** 11205;;;***
11206 11206
11207;;;### (autoloads (enable-flow-control-on enable-flow-control) "flow-ctrl" 11207;;;### (autoloads (enable-flow-control-on enable-flow-control) "flow-ctrl"
11208;;;;;; "flow-ctrl.el" (17843 45610)) 11208;;;;;; "flow-ctrl.el" (17842 58279))
11209;;; Generated autoloads from flow-ctrl.el 11209;;; Generated autoloads from flow-ctrl.el
11210 11210
11211(autoload (quote enable-flow-control) "flow-ctrl" "\ 11211(autoload (quote enable-flow-control) "flow-ctrl" "\
@@ -11227,7 +11227,7 @@ to get the effect of a C-q.
11227;;;*** 11227;;;***
11228 11228
11229;;;### (autoloads (fill-flowed fill-flowed-encode) "flow-fill" "gnus/flow-fill.el" 11229;;;### (autoloads (fill-flowed fill-flowed-encode) "flow-fill" "gnus/flow-fill.el"
11230;;;;;; (17843 45616)) 11230;;;;;; (17842 54741))
11231;;; Generated autoloads from gnus/flow-fill.el 11231;;; Generated autoloads from gnus/flow-fill.el
11232 11232
11233(autoload (quote fill-flowed-encode) "flow-fill" "\ 11233(autoload (quote fill-flowed-encode) "flow-fill" "\
@@ -11243,7 +11243,7 @@ Not documented
11243;;;*** 11243;;;***
11244 11244
11245;;;### (autoloads (flymake-mode-off flymake-mode-on flymake-mode) 11245;;;### (autoloads (flymake-mode-off flymake-mode-on flymake-mode)
11246;;;;;; "flymake" "progmodes/flymake.el" (17939 56022)) 11246;;;;;; "flymake" "progmodes/flymake.el" (17934 27588))
11247;;; Generated autoloads from progmodes/flymake.el 11247;;; Generated autoloads from progmodes/flymake.el
11248 11248
11249(autoload (quote flymake-mode) "flymake" "\ 11249(autoload (quote flymake-mode) "flymake" "\
@@ -11267,7 +11267,7 @@ Turn flymake mode off.
11267 11267
11268;;;### (autoloads (flyspell-buffer flyspell-region flyspell-mode-off 11268;;;### (autoloads (flyspell-buffer flyspell-region flyspell-mode-off
11269;;;;;; turn-off-flyspell turn-on-flyspell flyspell-mode flyspell-prog-mode) 11269;;;;;; turn-off-flyspell turn-on-flyspell flyspell-mode flyspell-prog-mode)
11270;;;;;; "flyspell" "textmodes/flyspell.el" (17970 18176)) 11270;;;;;; "flyspell" "textmodes/flyspell.el" (18006 55797))
11271;;; Generated autoloads from textmodes/flyspell.el 11271;;; Generated autoloads from textmodes/flyspell.el
11272 11272
11273(autoload (quote flyspell-prog-mode) "flyspell" "\ 11273(autoload (quote flyspell-prog-mode) "flyspell" "\
@@ -11336,7 +11336,7 @@ Flyspell whole buffer.
11336 11336
11337;;;### (autoloads (follow-delete-other-windows-and-split follow-mode 11337;;;### (autoloads (follow-delete-other-windows-and-split follow-mode
11338;;;;;; turn-off-follow-mode turn-on-follow-mode) "follow" "follow.el" 11338;;;;;; turn-off-follow-mode turn-on-follow-mode) "follow" "follow.el"
11339;;;;;; (17843 45610)) 11339;;;;;; (17842 58279))
11340;;; Generated autoloads from follow.el 11340;;; Generated autoloads from follow.el
11341 11341
11342(autoload (quote turn-on-follow-mode) "follow" "\ 11342(autoload (quote turn-on-follow-mode) "follow" "\
@@ -11410,8 +11410,8 @@ in your `~/.emacs' file, replacing [f7] by your favourite key:
11410 11410
11411;;;*** 11411;;;***
11412 11412
11413;;;### (autoloads (footnote-mode) "footnote" "mail/footnote.el" (17955 11413;;;### (autoloads (footnote-mode) "footnote" "mail/footnote.el" (17954
11414;;;;;; 48757)) 11414;;;;;; 24686))
11415;;; Generated autoloads from mail/footnote.el 11415;;; Generated autoloads from mail/footnote.el
11416 11416
11417(autoload (quote footnote-mode) "footnote" "\ 11417(autoload (quote footnote-mode) "footnote" "\
@@ -11432,7 +11432,7 @@ key binding
11432;;;*** 11432;;;***
11433 11433
11434;;;### (autoloads (forms-find-file-other-window forms-find-file forms-mode) 11434;;;### (autoloads (forms-find-file-other-window forms-find-file forms-mode)
11435;;;;;; "forms" "forms.el" (17843 45610)) 11435;;;;;; "forms" "forms.el" (17842 58279))
11436;;; Generated autoloads from forms.el 11436;;; Generated autoloads from forms.el
11437 11437
11438(autoload (quote forms-mode) "forms" "\ 11438(autoload (quote forms-mode) "forms" "\
@@ -11469,7 +11469,7 @@ Visit a file in Forms mode in other window.
11469;;;*** 11469;;;***
11470 11470
11471;;;### (autoloads (fortran-mode fortran-tab-mode-default) "fortran" 11471;;;### (autoloads (fortran-mode fortran-tab-mode-default) "fortran"
11472;;;;;; "progmodes/fortran.el" (17843 45628)) 11472;;;;;; "progmodes/fortran.el" (17842 56333))
11473;;; Generated autoloads from progmodes/fortran.el 11473;;; Generated autoloads from progmodes/fortran.el
11474 11474
11475(defvar fortran-tab-mode-default nil "\ 11475(defvar fortran-tab-mode-default nil "\
@@ -11555,7 +11555,7 @@ with no args, if that value is non-nil.
11555;;;*** 11555;;;***
11556 11556
11557;;;### (autoloads (fortune fortune-to-signature fortune-compile fortune-from-region 11557;;;### (autoloads (fortune fortune-to-signature fortune-compile fortune-from-region
11558;;;;;; fortune-add-fortune) "fortune" "play/fortune.el" (17843 45625)) 11558;;;;;; fortune-add-fortune) "fortune" "play/fortune.el" (17842 55395))
11559;;; Generated autoloads from play/fortune.el 11559;;; Generated autoloads from play/fortune.el
11560 11560
11561(autoload (quote fortune-add-fortune) "fortune" "\ 11561(autoload (quote fortune-add-fortune) "fortune" "\
@@ -11605,7 +11605,7 @@ and choose the directory as the fortune-file.
11605;;;*** 11605;;;***
11606 11606
11607;;;### (autoloads (gdb-enable-debug gdba) "gdb-ui" "progmodes/gdb-ui.el" 11607;;;### (autoloads (gdb-enable-debug gdba) "gdb-ui" "progmodes/gdb-ui.el"
11608;;;;;; (17941 5494)) 11608;;;;;; (17941 38806))
11609;;; Generated autoloads from progmodes/gdb-ui.el 11609;;; Generated autoloads from progmodes/gdb-ui.el
11610 11610
11611(autoload (quote gdba) "gdb-ui" "\ 11611(autoload (quote gdba) "gdb-ui" "\
@@ -11668,8 +11668,8 @@ Non-nil means record the process input and output in `gdb-debug-log'.")
11668;;;*** 11668;;;***
11669 11669
11670;;;### (autoloads (generic-make-keywords-list generic-mode generic-mode-internal 11670;;;### (autoloads (generic-make-keywords-list generic-mode generic-mode-internal
11671;;;;;; define-generic-mode) "generic" "emacs-lisp/generic.el" (17843 11671;;;;;; define-generic-mode) "generic" "emacs-lisp/generic.el" (17842
11672;;;;;; 45615)) 11672;;;;;; 54152))
11673;;; Generated autoloads from emacs-lisp/generic.el 11673;;; Generated autoloads from emacs-lisp/generic.el
11674 11674
11675(defvar generic-mode-list nil "\ 11675(defvar generic-mode-list nil "\
@@ -11744,7 +11744,7 @@ regular expression that can be used as an element of
11744;;;*** 11744;;;***
11745 11745
11746;;;### (autoloads (glasses-mode) "glasses" "progmodes/glasses.el" 11746;;;### (autoloads (glasses-mode) "glasses" "progmodes/glasses.el"
11747;;;;;; (17843 45628)) 11747;;;;;; (17842 56333))
11748;;; Generated autoloads from progmodes/glasses.el 11748;;; Generated autoloads from progmodes/glasses.el
11749 11749
11750(autoload (quote glasses-mode) "glasses" "\ 11750(autoload (quote glasses-mode) "glasses" "\
@@ -11757,7 +11757,7 @@ at places they belong to.
11757;;;*** 11757;;;***
11758 11758
11759;;;### (autoloads (gmm-tool-bar-from-list gmm-widget-p gmm-error 11759;;;### (autoloads (gmm-tool-bar-from-list gmm-widget-p gmm-error
11760;;;;;; gmm-message) "gmm-utils" "gnus/gmm-utils.el" (17939 56021)) 11760;;;;;; gmm-message) "gmm-utils" "gnus/gmm-utils.el" (17934 27588))
11761;;; Generated autoloads from gnus/gmm-utils.el 11761;;; Generated autoloads from gnus/gmm-utils.el
11762 11762
11763(autoload (quote gmm-message) "gmm-utils" "\ 11763(autoload (quote gmm-message) "gmm-utils" "\
@@ -11804,7 +11804,7 @@ DEFAULT-MAP specifies the default key map for ICON-LIST.
11804;;;*** 11804;;;***
11805 11805
11806;;;### (autoloads (gnus gnus-other-frame gnus-slave gnus-no-server 11806;;;### (autoloads (gnus gnus-other-frame gnus-slave gnus-no-server
11807;;;;;; gnus-slave-no-server) "gnus" "gnus/gnus.el" (17843 45617)) 11807;;;;;; gnus-slave-no-server) "gnus" "gnus/gnus.el" (17842 54741))
11808;;; Generated autoloads from gnus/gnus.el 11808;;; Generated autoloads from gnus/gnus.el
11809(when (fboundp 'custom-autoload) 11809(when (fboundp 'custom-autoload)
11810 (custom-autoload 'gnus-select-method "gnus")) 11810 (custom-autoload 'gnus-select-method "gnus"))
@@ -11857,7 +11857,7 @@ prompt the user for the name of an NNTP server to use.
11857;;;;;; gnus-agent-get-undownloaded-list gnus-agent-delete-group 11857;;;;;; gnus-agent-get-undownloaded-list gnus-agent-delete-group
11858;;;;;; gnus-agent-rename-group gnus-agent-possibly-save-gcc gnus-agentize 11858;;;;;; gnus-agent-rename-group gnus-agent-possibly-save-gcc gnus-agentize
11859;;;;;; gnus-slave-unplugged gnus-plugged gnus-unplugged) "gnus-agent" 11859;;;;;; gnus-slave-unplugged gnus-plugged gnus-unplugged) "gnus-agent"
11860;;;;;; "gnus/gnus-agent.el" (17843 45616)) 11860;;;;;; "gnus/gnus-agent.el" (17842 54741))
11861;;; Generated autoloads from gnus/gnus-agent.el 11861;;; Generated autoloads from gnus/gnus-agent.el
11862 11862
11863(autoload (quote gnus-unplugged) "gnus-agent" "\ 11863(autoload (quote gnus-unplugged) "gnus-agent" "\
@@ -11948,7 +11948,7 @@ If CLEAN, obsolete (ignore).
11948;;;*** 11948;;;***
11949 11949
11950;;;### (autoloads (gnus-article-prepare-display) "gnus-art" "gnus/gnus-art.el" 11950;;;### (autoloads (gnus-article-prepare-display) "gnus-art" "gnus/gnus-art.el"
11951;;;;;; (17959 36648)) 11951;;;;;; (17960 49045))
11952;;; Generated autoloads from gnus/gnus-art.el 11952;;; Generated autoloads from gnus/gnus-art.el
11953 11953
11954(autoload (quote gnus-article-prepare-display) "gnus-art" "\ 11954(autoload (quote gnus-article-prepare-display) "gnus-art" "\
@@ -11959,7 +11959,7 @@ Make the current buffer look like a nice article.
11959;;;*** 11959;;;***
11960 11960
11961;;;### (autoloads (gnus-audio-play) "gnus-audio" "gnus/gnus-audio.el" 11961;;;### (autoloads (gnus-audio-play) "gnus-audio" "gnus/gnus-audio.el"
11962;;;;;; (17843 45616)) 11962;;;;;; (17842 54741))
11963;;; Generated autoloads from gnus/gnus-audio.el 11963;;; Generated autoloads from gnus/gnus-audio.el
11964 11964
11965(autoload (quote gnus-audio-play) "gnus-audio" "\ 11965(autoload (quote gnus-audio-play) "gnus-audio" "\
@@ -11971,8 +11971,8 @@ Play a sound FILE through the speaker.
11971 11971
11972;;;### (autoloads (gnus-cache-delete-group gnus-cache-rename-group 11972;;;### (autoloads (gnus-cache-delete-group gnus-cache-rename-group
11973;;;;;; gnus-cache-generate-nov-databases gnus-cache-generate-active 11973;;;;;; gnus-cache-generate-nov-databases gnus-cache-generate-active
11974;;;;;; gnus-jog-cache) "gnus-cache" "gnus/gnus-cache.el" (17843 11974;;;;;; gnus-jog-cache) "gnus-cache" "gnus/gnus-cache.el" (17842
11975;;;;;; 45616)) 11975;;;;;; 54741))
11976;;; Generated autoloads from gnus/gnus-cache.el 11976;;; Generated autoloads from gnus/gnus-cache.el
11977 11977
11978(autoload (quote gnus-jog-cache) "gnus-cache" "\ 11978(autoload (quote gnus-jog-cache) "gnus-cache" "\
@@ -12014,7 +12014,7 @@ supported.
12014;;;*** 12014;;;***
12015 12015
12016;;;### (autoloads (gnus-delay-initialize gnus-delay-send-queue gnus-delay-article) 12016;;;### (autoloads (gnus-delay-initialize gnus-delay-send-queue gnus-delay-article)
12017;;;;;; "gnus-delay" "gnus/gnus-delay.el" (17843 45616)) 12017;;;;;; "gnus-delay" "gnus/gnus-delay.el" (17842 54741))
12018;;; Generated autoloads from gnus/gnus-delay.el 12018;;; Generated autoloads from gnus/gnus-delay.el
12019 12019
12020(autoload (quote gnus-delay-article) "gnus-delay" "\ 12020(autoload (quote gnus-delay-article) "gnus-delay" "\
@@ -12050,7 +12050,7 @@ Checking delayed messages is skipped if optional arg NO-CHECK is non-nil.
12050;;;*** 12050;;;***
12051 12051
12052;;;### (autoloads (gnus-user-format-function-D gnus-user-format-function-d) 12052;;;### (autoloads (gnus-user-format-function-D gnus-user-format-function-d)
12053;;;;;; "gnus-diary" "gnus/gnus-diary.el" (17988 52353)) 12053;;;;;; "gnus-diary" "gnus/gnus-diary.el" (17992 30878))
12054;;; Generated autoloads from gnus/gnus-diary.el 12054;;; Generated autoloads from gnus/gnus-diary.el
12055 12055
12056(autoload (quote gnus-user-format-function-d) "gnus-diary" "\ 12056(autoload (quote gnus-user-format-function-d) "gnus-diary" "\
@@ -12066,7 +12066,7 @@ Not documented
12066;;;*** 12066;;;***
12067 12067
12068;;;### (autoloads (turn-on-gnus-dired-mode) "gnus-dired" "gnus/gnus-dired.el" 12068;;;### (autoloads (turn-on-gnus-dired-mode) "gnus-dired" "gnus/gnus-dired.el"
12069;;;;;; (17843 45616)) 12069;;;;;; (17842 54741))
12070;;; Generated autoloads from gnus/gnus-dired.el 12070;;; Generated autoloads from gnus/gnus-dired.el
12071 12071
12072(autoload (quote turn-on-gnus-dired-mode) "gnus-dired" "\ 12072(autoload (quote turn-on-gnus-dired-mode) "gnus-dired" "\
@@ -12077,7 +12077,7 @@ Convenience method to turn on gnus-dired-mode.
12077;;;*** 12077;;;***
12078 12078
12079;;;### (autoloads (gnus-draft-reminder) "gnus-draft" "gnus/gnus-draft.el" 12079;;;### (autoloads (gnus-draft-reminder) "gnus-draft" "gnus/gnus-draft.el"
12080;;;;;; (17843 45616)) 12080;;;;;; (17842 54741))
12081;;; Generated autoloads from gnus/gnus-draft.el 12081;;; Generated autoloads from gnus/gnus-draft.el
12082 12082
12083(autoload (quote gnus-draft-reminder) "gnus-draft" "\ 12083(autoload (quote gnus-draft-reminder) "gnus-draft" "\
@@ -12089,8 +12089,8 @@ Reminder user if there are unsent drafts.
12089 12089
12090;;;### (autoloads (gnus-convert-png-to-face gnus-convert-face-to-png 12090;;;### (autoloads (gnus-convert-png-to-face gnus-convert-face-to-png
12091;;;;;; gnus-face-from-file gnus-x-face-from-file gnus-insert-random-x-face-header 12091;;;;;; gnus-face-from-file gnus-x-face-from-file gnus-insert-random-x-face-header
12092;;;;;; gnus-random-x-face) "gnus-fun" "gnus/gnus-fun.el" (17843 12092;;;;;; gnus-random-x-face) "gnus-fun" "gnus/gnus-fun.el" (17842
12093;;;;;; 45616)) 12093;;;;;; 54741))
12094;;; Generated autoloads from gnus/gnus-fun.el 12094;;; Generated autoloads from gnus/gnus-fun.el
12095 12095
12096(autoload (quote gnus-random-x-face) "gnus-fun" "\ 12096(autoload (quote gnus-random-x-face) "gnus-fun" "\
@@ -12129,7 +12129,7 @@ FILE should be a PNG file that's 48x48 and smaller than or equal to
12129;;;*** 12129;;;***
12130 12130
12131;;;### (autoloads (gnus-fetch-group-other-frame gnus-fetch-group) 12131;;;### (autoloads (gnus-fetch-group-other-frame gnus-fetch-group)
12132;;;;;; "gnus-group" "gnus/gnus-group.el" (17843 45617)) 12132;;;;;; "gnus-group" "gnus/gnus-group.el" (17842 54741))
12133;;; Generated autoloads from gnus/gnus-group.el 12133;;; Generated autoloads from gnus/gnus-group.el
12134 12134
12135(autoload (quote gnus-fetch-group) "gnus-group" "\ 12135(autoload (quote gnus-fetch-group) "gnus-group" "\
@@ -12146,7 +12146,7 @@ Pop up a frame and enter GROUP.
12146;;;*** 12146;;;***
12147 12147
12148;;;### (autoloads (gnus-batch-score) "gnus-kill" "gnus/gnus-kill.el" 12148;;;### (autoloads (gnus-batch-score) "gnus-kill" "gnus/gnus-kill.el"
12149;;;;;; (17843 45617)) 12149;;;;;; (17842 54741))
12150;;; Generated autoloads from gnus/gnus-kill.el 12150;;; Generated autoloads from gnus/gnus-kill.el
12151 12151
12152(defalias (quote gnus-batch-kill) (quote gnus-batch-score)) 12152(defalias (quote gnus-batch-kill) (quote gnus-batch-score))
@@ -12161,7 +12161,7 @@ Usage: emacs -batch -l ~/.emacs -l gnus -f gnus-batch-score
12161 12161
12162;;;### (autoloads (gnus-mailing-list-mode gnus-mailing-list-insinuate 12162;;;### (autoloads (gnus-mailing-list-mode gnus-mailing-list-insinuate
12163;;;;;; turn-on-gnus-mailing-list-mode) "gnus-ml" "gnus/gnus-ml.el" 12163;;;;;; turn-on-gnus-mailing-list-mode) "gnus-ml" "gnus/gnus-ml.el"
12164;;;;;; (17843 45617)) 12164;;;;;; (17842 54741))
12165;;; Generated autoloads from gnus/gnus-ml.el 12165;;; Generated autoloads from gnus/gnus-ml.el
12166 12166
12167(autoload (quote turn-on-gnus-mailing-list-mode) "gnus-ml" "\ 12167(autoload (quote turn-on-gnus-mailing-list-mode) "gnus-ml" "\
@@ -12186,7 +12186,7 @@ Minor mode for providing mailing-list commands.
12186 12186
12187;;;### (autoloads (gnus-group-split-fancy gnus-group-split gnus-group-split-update 12187;;;### (autoloads (gnus-group-split-fancy gnus-group-split gnus-group-split-update
12188;;;;;; gnus-group-split-setup) "gnus-mlspl" "gnus/gnus-mlspl.el" 12188;;;;;; gnus-group-split-setup) "gnus-mlspl" "gnus/gnus-mlspl.el"
12189;;;;;; (17843 45617)) 12189;;;;;; (17842 54741))
12190;;; Generated autoloads from gnus/gnus-mlspl.el 12190;;; Generated autoloads from gnus/gnus-mlspl.el
12191 12191
12192(autoload (quote gnus-group-split-setup) "gnus-mlspl" "\ 12192(autoload (quote gnus-group-split-setup) "gnus-mlspl" "\
@@ -12287,7 +12287,7 @@ Calling (gnus-group-split-fancy nil nil \"mail.others\") returns:
12287;;;*** 12287;;;***
12288 12288
12289;;;### (autoloads (gnus-change-server) "gnus-move" "gnus/gnus-move.el" 12289;;;### (autoloads (gnus-change-server) "gnus-move" "gnus/gnus-move.el"
12290;;;;;; (17843 45617)) 12290;;;;;; (17842 54741))
12291;;; Generated autoloads from gnus/gnus-move.el 12291;;; Generated autoloads from gnus/gnus-move.el
12292 12292
12293(autoload (quote gnus-change-server) "gnus-move" "\ 12293(autoload (quote gnus-change-server) "gnus-move" "\
@@ -12299,7 +12299,7 @@ Update the .newsrc.eld file to reflect the change of nntp server.
12299;;;*** 12299;;;***
12300 12300
12301;;;### (autoloads (gnus-button-reply gnus-button-mailto gnus-msg-mail) 12301;;;### (autoloads (gnus-button-reply gnus-button-mailto gnus-msg-mail)
12302;;;;;; "gnus-msg" "gnus/gnus-msg.el" (17949 5807)) 12302;;;;;; "gnus-msg" "gnus/gnus-msg.el" (17949 41467))
12303;;; Generated autoloads from gnus/gnus-msg.el 12303;;; Generated autoloads from gnus/gnus-msg.el
12304 12304
12305(autoload (quote gnus-msg-mail) "gnus-msg" "\ 12305(autoload (quote gnus-msg-mail) "gnus-msg" "\
@@ -12324,7 +12324,7 @@ Like `message-reply'.
12324;;;*** 12324;;;***
12325 12325
12326;;;### (autoloads (gnus-nocem-load-cache gnus-nocem-scan-groups) 12326;;;### (autoloads (gnus-nocem-load-cache gnus-nocem-scan-groups)
12327;;;;;; "gnus-nocem" "gnus/gnus-nocem.el" (17843 45617)) 12327;;;;;; "gnus-nocem" "gnus/gnus-nocem.el" (17842 54741))
12328;;; Generated autoloads from gnus/gnus-nocem.el 12328;;; Generated autoloads from gnus/gnus-nocem.el
12329 12329
12330(autoload (quote gnus-nocem-scan-groups) "gnus-nocem" "\ 12330(autoload (quote gnus-nocem-scan-groups) "gnus-nocem" "\
@@ -12341,7 +12341,7 @@ Load the NoCeM cache.
12341 12341
12342;;;### (autoloads (gnus-treat-newsgroups-picon gnus-treat-mail-picon 12342;;;### (autoloads (gnus-treat-newsgroups-picon gnus-treat-mail-picon
12343;;;;;; gnus-treat-from-picon) "gnus-picon" "gnus/gnus-picon.el" 12343;;;;;; gnus-treat-from-picon) "gnus-picon" "gnus/gnus-picon.el"
12344;;;;;; (17843 45617)) 12344;;;;;; (17842 54741))
12345;;; Generated autoloads from gnus/gnus-picon.el 12345;;; Generated autoloads from gnus/gnus-picon.el
12346 12346
12347(autoload (quote gnus-treat-from-picon) "gnus-picon" "\ 12347(autoload (quote gnus-treat-from-picon) "gnus-picon" "\
@@ -12368,7 +12368,7 @@ If picons are already displayed, remove them.
12368;;;;;; gnus-sorted-nintersection gnus-sorted-range-intersection 12368;;;;;; gnus-sorted-nintersection gnus-sorted-range-intersection
12369;;;;;; gnus-sorted-intersection gnus-intersection gnus-sorted-complement 12369;;;;;; gnus-sorted-intersection gnus-intersection gnus-sorted-complement
12370;;;;;; gnus-sorted-ndifference gnus-sorted-difference) "gnus-range" 12370;;;;;; gnus-sorted-ndifference gnus-sorted-difference) "gnus-range"
12371;;;;;; "gnus/gnus-range.el" (17843 45617)) 12371;;;;;; "gnus/gnus-range.el" (17842 54741))
12372;;; Generated autoloads from gnus/gnus-range.el 12372;;; Generated autoloads from gnus/gnus-range.el
12373 12373
12374(autoload (quote gnus-sorted-difference) "gnus-range" "\ 12374(autoload (quote gnus-sorted-difference) "gnus-range" "\
@@ -12436,7 +12436,7 @@ Add NUM into sorted LIST by side effect.
12436;;;*** 12436;;;***
12437 12437
12438;;;### (autoloads (gnus-registry-install-hooks gnus-registry-initialize) 12438;;;### (autoloads (gnus-registry-install-hooks gnus-registry-initialize)
12439;;;;;; "gnus-registry" "gnus/gnus-registry.el" (17939 56021)) 12439;;;;;; "gnus-registry" "gnus/gnus-registry.el" (17934 27588))
12440;;; Generated autoloads from gnus/gnus-registry.el 12440;;; Generated autoloads from gnus/gnus-registry.el
12441 12441
12442(autoload (quote gnus-registry-initialize) "gnus-registry" "\ 12442(autoload (quote gnus-registry-initialize) "gnus-registry" "\
@@ -12452,8 +12452,8 @@ Install the registry hooks.
12452;;;*** 12452;;;***
12453 12453
12454;;;### (autoloads (gnus-sieve-article-add-rule gnus-sieve-generate 12454;;;### (autoloads (gnus-sieve-article-add-rule gnus-sieve-generate
12455;;;;;; gnus-sieve-update) "gnus-sieve" "gnus/gnus-sieve.el" (17843 12455;;;;;; gnus-sieve-update) "gnus-sieve" "gnus/gnus-sieve.el" (17842
12456;;;;;; 45617)) 12456;;;;;; 54741))
12457;;; Generated autoloads from gnus/gnus-sieve.el 12457;;; Generated autoloads from gnus/gnus-sieve.el
12458 12458
12459(autoload (quote gnus-sieve-update) "gnus-sieve" "\ 12459(autoload (quote gnus-sieve-update) "gnus-sieve" "\
@@ -12481,7 +12481,7 @@ Not documented
12481;;;*** 12481;;;***
12482 12482
12483;;;### (autoloads (gnus-batch-brew-soup) "gnus-soup" "gnus/gnus-soup.el" 12483;;;### (autoloads (gnus-batch-brew-soup) "gnus-soup" "gnus/gnus-soup.el"
12484;;;;;; (17843 45617)) 12484;;;;;; (17842 54741))
12485;;; Generated autoloads from gnus/gnus-soup.el 12485;;; Generated autoloads from gnus/gnus-soup.el
12486 12486
12487(autoload (quote gnus-batch-brew-soup) "gnus-soup" "\ 12487(autoload (quote gnus-batch-brew-soup) "gnus-soup" "\
@@ -12501,7 +12501,7 @@ Note -- this function hasn't been implemented yet.
12501;;;*** 12501;;;***
12502 12502
12503;;;### (autoloads (gnus-update-format) "gnus-spec" "gnus/gnus-spec.el" 12503;;;### (autoloads (gnus-update-format) "gnus-spec" "gnus/gnus-spec.el"
12504;;;;;; (17843 45617)) 12504;;;;;; (17842 54741))
12505;;; Generated autoloads from gnus/gnus-spec.el 12505;;; Generated autoloads from gnus/gnus-spec.el
12506 12506
12507(autoload (quote gnus-update-format) "gnus-spec" "\ 12507(autoload (quote gnus-update-format) "gnus-spec" "\
@@ -12512,8 +12512,8 @@ Update the format specification near point.
12512;;;*** 12512;;;***
12513 12513
12514;;;### (autoloads (gnus-fixup-nnimap-unread-after-getting-new-news 12514;;;### (autoloads (gnus-fixup-nnimap-unread-after-getting-new-news
12515;;;;;; gnus-declare-backend) "gnus-start" "gnus/gnus-start.el" (17843 12515;;;;;; gnus-declare-backend) "gnus-start" "gnus/gnus-start.el" (17842
12516;;;;;; 45617)) 12516;;;;;; 54741))
12517;;; Generated autoloads from gnus/gnus-start.el 12517;;; Generated autoloads from gnus/gnus-start.el
12518 12518
12519(autoload (quote gnus-declare-backend) "gnus-start" "\ 12519(autoload (quote gnus-declare-backend) "gnus-start" "\
@@ -12529,7 +12529,7 @@ Not documented
12529;;;*** 12529;;;***
12530 12530
12531;;;### (autoloads (gnus-add-configuration) "gnus-win" "gnus/gnus-win.el" 12531;;;### (autoloads (gnus-add-configuration) "gnus-win" "gnus/gnus-win.el"
12532;;;;;; (17843 45617)) 12532;;;;;; (17842 54741))
12533;;; Generated autoloads from gnus/gnus-win.el 12533;;; Generated autoloads from gnus/gnus-win.el
12534 12534
12535(autoload (quote gnus-add-configuration) "gnus-win" "\ 12535(autoload (quote gnus-add-configuration) "gnus-win" "\
@@ -12539,7 +12539,7 @@ Add the window configuration CONF to `gnus-buffer-configuration'.
12539 12539
12540;;;*** 12540;;;***
12541 12541
12542;;;### (autoloads (gomoku) "gomoku" "play/gomoku.el" (17941 5494)) 12542;;;### (autoloads (gomoku) "gomoku" "play/gomoku.el" (17941 38806))
12543;;; Generated autoloads from play/gomoku.el 12543;;; Generated autoloads from play/gomoku.el
12544 12544
12545(autoload (quote gomoku) "gomoku" "\ 12545(autoload (quote gomoku) "gomoku" "\
@@ -12566,7 +12566,7 @@ Use \\[describe-mode] for more info.
12566;;;*** 12566;;;***
12567 12567
12568;;;### (autoloads (goto-address goto-address-at-point) "goto-addr" 12568;;;### (autoloads (goto-address goto-address-at-point) "goto-addr"
12569;;;;;; "net/goto-addr.el" (17843 45624)) 12569;;;;;; "net/goto-addr.el" (17842 55218))
12570;;; Generated autoloads from net/goto-addr.el 12570;;; Generated autoloads from net/goto-addr.el
12571 12571
12572(define-obsolete-function-alias (quote goto-address-at-mouse) (quote goto-address-at-point) "22.1") 12572(define-obsolete-function-alias (quote goto-address-at-mouse) (quote goto-address-at-point) "22.1")
@@ -12596,7 +12596,7 @@ Also fontifies the buffer appropriately (see `goto-address-fontify-p' and
12596 12596
12597;;;### (autoloads (rgrep lgrep grep-find grep grep-mode grep-compute-defaults 12597;;;### (autoloads (rgrep lgrep grep-find grep grep-mode grep-compute-defaults
12598;;;;;; grep-process-setup grep-setup-hook grep-find-command grep-command 12598;;;;;; grep-process-setup grep-setup-hook grep-find-command grep-command
12599;;;;;; grep-window-height) "grep" "progmodes/grep.el" (17943 52506)) 12599;;;;;; grep-window-height) "grep" "progmodes/grep.el" (17944 20144))
12600;;; Generated autoloads from progmodes/grep.el 12600;;; Generated autoloads from progmodes/grep.el
12601 12601
12602(defvar grep-window-height nil "\ 12602(defvar grep-window-height nil "\
@@ -12736,7 +12736,7 @@ This command shares argument histories with \\[lgrep] and \\[grep-find].
12736 12736
12737;;;*** 12737;;;***
12738 12738
12739;;;### (autoloads (gs-load-image) "gs" "gs.el" (17843 45610)) 12739;;;### (autoloads (gs-load-image) "gs" "gs.el" (17842 58279))
12740;;; Generated autoloads from gs.el 12740;;; Generated autoloads from gs.el
12741 12741
12742(autoload (quote gs-load-image) "gs" "\ 12742(autoload (quote gs-load-image) "gs" "\
@@ -12750,7 +12750,7 @@ the form \"WINDOW-ID PIXMAP-ID\". Value is non-nil if successful.
12750;;;*** 12750;;;***
12751 12751
12752;;;### (autoloads (gdb-script-mode jdb pdb perldb xdb dbx sdb gdb) 12752;;;### (autoloads (gdb-script-mode jdb pdb perldb xdb dbx sdb gdb)
12753;;;;;; "gud" "progmodes/gud.el" (17988 52353)) 12753;;;;;; "gud" "progmodes/gud.el" (17992 30878))
12754;;; Generated autoloads from progmodes/gud.el 12754;;; Generated autoloads from progmodes/gud.el
12755 12755
12756(autoload (quote gdb) "gud" "\ 12756(autoload (quote gdb) "gud" "\
@@ -12833,8 +12833,8 @@ Major mode for editing GDB scripts
12833 12833
12834;;;*** 12834;;;***
12835 12835
12836;;;### (autoloads (handwrite) "handwrite" "play/handwrite.el" (17843 12836;;;### (autoloads (handwrite) "handwrite" "play/handwrite.el" (17842
12837;;;;;; 45626)) 12837;;;;;; 55395))
12838;;; Generated autoloads from play/handwrite.el 12838;;; Generated autoloads from play/handwrite.el
12839 12839
12840(autoload (quote handwrite) "handwrite" "\ 12840(autoload (quote handwrite) "handwrite" "\
@@ -12852,7 +12852,7 @@ Variables: handwrite-linespace (default 12)
12852;;;*** 12852;;;***
12853 12853
12854;;;### (autoloads (hanoi-unix-64 hanoi-unix hanoi) "hanoi" "play/hanoi.el" 12854;;;### (autoloads (hanoi-unix-64 hanoi-unix hanoi) "hanoi" "play/hanoi.el"
12855;;;;;; (17743 18144)) 12855;;;;;; (17742 40275))
12856;;; Generated autoloads from play/hanoi.el 12856;;; Generated autoloads from play/hanoi.el
12857 12857
12858(autoload (quote hanoi) "hanoi" "\ 12858(autoload (quote hanoi) "hanoi" "\
@@ -12882,7 +12882,7 @@ to be updated.
12882;;;### (autoloads (scan-buf-previous-region scan-buf-next-region 12882;;;### (autoloads (scan-buf-previous-region scan-buf-next-region
12883;;;;;; scan-buf-move-to-region help-at-pt-display-when-idle help-at-pt-set-timer 12883;;;;;; scan-buf-move-to-region help-at-pt-display-when-idle help-at-pt-set-timer
12884;;;;;; help-at-pt-cancel-timer display-local-help help-at-pt-kbd-string 12884;;;;;; help-at-pt-cancel-timer display-local-help help-at-pt-kbd-string
12885;;;;;; help-at-pt-string) "help-at-pt" "help-at-pt.el" (17843 45610)) 12885;;;;;; help-at-pt-string) "help-at-pt" "help-at-pt.el" (17842 58279))
12886;;; Generated autoloads from help-at-pt.el 12886;;; Generated autoloads from help-at-pt.el
12887 12887
12888(autoload (quote help-at-pt-string) "help-at-pt" "\ 12888(autoload (quote help-at-pt-string) "help-at-pt" "\
@@ -13012,7 +13012,7 @@ different regions. With numeric argument ARG, behaves like
13012;;;### (autoloads (describe-categories describe-syntax describe-variable 13012;;;### (autoloads (describe-categories describe-syntax describe-variable
13013;;;;;; variable-at-point describe-function-1 describe-simplify-lib-file-name 13013;;;;;; variable-at-point describe-function-1 describe-simplify-lib-file-name
13014;;;;;; help-C-file-name describe-function) "help-fns" "help-fns.el" 13014;;;;;; help-C-file-name describe-function) "help-fns" "help-fns.el"
13015;;;;;; (17939 56017)) 13015;;;;;; (17845 46651))
13016;;; Generated autoloads from help-fns.el 13016;;; Generated autoloads from help-fns.el
13017 13017
13018(autoload (quote describe-function) "help-fns" "\ 13018(autoload (quote describe-function) "help-fns" "\
@@ -13069,7 +13069,7 @@ BUFFER should be a buffer or a buffer name.
13069;;;*** 13069;;;***
13070 13070
13071;;;### (autoloads (three-step-help) "help-macro" "help-macro.el" 13071;;;### (autoloads (three-step-help) "help-macro" "help-macro.el"
13072;;;;;; (17843 45610)) 13072;;;;;; (17842 58279))
13073;;; Generated autoloads from help-macro.el 13073;;; Generated autoloads from help-macro.el
13074 13074
13075(defvar three-step-help nil "\ 13075(defvar three-step-help nil "\
@@ -13085,7 +13085,7 @@ A value of nil means skip the middle step, so that
13085 13085
13086;;;### (autoloads (help-xref-on-pp help-insert-xref-button help-xref-button 13086;;;### (autoloads (help-xref-on-pp help-insert-xref-button help-xref-button
13087;;;;;; help-make-xrefs help-setup-xref help-mode-finish help-mode-setup 13087;;;;;; help-make-xrefs help-setup-xref help-mode-finish help-mode-setup
13088;;;;;; help-mode) "help-mode" "help-mode.el" (17843 45610)) 13088;;;;;; help-mode) "help-mode" "help-mode.el" (17842 58279))
13089;;; Generated autoloads from help-mode.el 13089;;; Generated autoloads from help-mode.el
13090 13090
13091(autoload (quote help-mode) "help-mode" "\ 13091(autoload (quote help-mode) "help-mode" "\
@@ -13168,7 +13168,7 @@ Add xrefs for symbols in `pp's output between FROM and TO.
13168;;;*** 13168;;;***
13169 13169
13170;;;### (autoloads (Helper-help Helper-describe-bindings) "helper" 13170;;;### (autoloads (Helper-help Helper-describe-bindings) "helper"
13171;;;;;; "emacs-lisp/helper.el" (17843 45615)) 13171;;;;;; "emacs-lisp/helper.el" (17842 54152))
13172;;; Generated autoloads from emacs-lisp/helper.el 13172;;; Generated autoloads from emacs-lisp/helper.el
13173 13173
13174(autoload (quote Helper-describe-bindings) "helper" "\ 13174(autoload (quote Helper-describe-bindings) "helper" "\
@@ -13184,7 +13184,7 @@ Provide help for current mode.
13184;;;*** 13184;;;***
13185 13185
13186;;;### (autoloads (hexlify-buffer hexl-find-file hexl-mode) "hexl" 13186;;;### (autoloads (hexlify-buffer hexl-find-file hexl-mode) "hexl"
13187;;;;;; "hexl.el" (17844 62922)) 13187;;;;;; "hexl.el" (17844 53657))
13188;;; Generated autoloads from hexl.el 13188;;; Generated autoloads from hexl.el
13189 13189
13190(autoload (quote hexl-mode) "hexl" "\ 13190(autoload (quote hexl-mode) "hexl" "\
@@ -13281,7 +13281,7 @@ This discards the buffer's undo information.
13281;;;### (autoloads (hi-lock-write-interactive-patterns hi-lock-unface-buffer 13281;;;### (autoloads (hi-lock-write-interactive-patterns hi-lock-unface-buffer
13282;;;;;; hi-lock-face-phrase-buffer hi-lock-face-buffer hi-lock-line-face-buffer 13282;;;;;; hi-lock-face-phrase-buffer hi-lock-face-buffer hi-lock-line-face-buffer
13283;;;;;; global-hi-lock-mode hi-lock-mode) "hi-lock" "hi-lock.el" 13283;;;;;; global-hi-lock-mode hi-lock-mode) "hi-lock" "hi-lock.el"
13284;;;;;; (17970 17147)) 13284;;;;;; (17992 30877))
13285;;; Generated autoloads from hi-lock.el 13285;;; Generated autoloads from hi-lock.el
13286 13286
13287(autoload (quote hi-lock-mode) "hi-lock" "\ 13287(autoload (quote hi-lock-mode) "hi-lock" "\
@@ -13411,7 +13411,7 @@ be found in variable `hi-lock-interactive-patterns'.
13411;;;*** 13411;;;***
13412 13412
13413;;;### (autoloads (hide-ifdef-lines hide-ifdef-read-only hide-ifdef-initially 13413;;;### (autoloads (hide-ifdef-lines hide-ifdef-read-only hide-ifdef-initially
13414;;;;;; hide-ifdef-mode) "hideif" "progmodes/hideif.el" (17843 45628)) 13414;;;;;; hide-ifdef-mode) "hideif" "progmodes/hideif.el" (17842 56333))
13415;;; Generated autoloads from progmodes/hideif.el 13415;;; Generated autoloads from progmodes/hideif.el
13416 13416
13417(autoload (quote hide-ifdef-mode) "hideif" "\ 13417(autoload (quote hide-ifdef-mode) "hideif" "\
@@ -13466,7 +13466,7 @@ how the hiding is done:
13466;;;*** 13466;;;***
13467 13467
13468;;;### (autoloads (turn-off-hideshow hs-minor-mode) "hideshow" "progmodes/hideshow.el" 13468;;;### (autoloads (turn-off-hideshow hs-minor-mode) "hideshow" "progmodes/hideshow.el"
13469;;;;;; (17939 56022)) 13469;;;;;; (17934 43341))
13470;;; Generated autoloads from progmodes/hideshow.el 13470;;; Generated autoloads from progmodes/hideshow.el
13471 13471
13472(defvar hs-special-modes-alist (quote ((c-mode "{" "}" "/[*/]" nil hs-c-like-adjust-block-beginning) (c++-mode "{" "}" "/[*/]" nil hs-c-like-adjust-block-beginning) (bibtex-mode ("^@\\S(*\\(\\s(\\)" 1)) (java-mode "{" "}" "/[*/]" nil hs-c-like-adjust-block-beginning))) "\ 13472(defvar hs-special-modes-alist (quote ((c-mode "{" "}" "/[*/]" nil hs-c-like-adjust-block-beginning) (c++-mode "{" "}" "/[*/]" nil hs-c-like-adjust-block-beginning) (bibtex-mode ("^@\\S(*\\(\\s(\\)" 1)) (java-mode "{" "}" "/[*/]" nil hs-c-like-adjust-block-beginning))) "\
@@ -13529,7 +13529,7 @@ Unconditionally turn off `hs-minor-mode'.
13529;;;;;; highlight-compare-buffers highlight-changes-rotate-faces 13529;;;;;; highlight-compare-buffers highlight-changes-rotate-faces
13530;;;;;; highlight-changes-previous-change highlight-changes-next-change 13530;;;;;; highlight-changes-previous-change highlight-changes-next-change
13531;;;;;; highlight-changes-mode highlight-changes-remove-highlight) 13531;;;;;; highlight-changes-mode highlight-changes-remove-highlight)
13532;;;;;; "hilit-chg" "hilit-chg.el" (17843 45610)) 13532;;;;;; "hilit-chg" "hilit-chg.el" (17842 58279))
13533;;; Generated autoloads from hilit-chg.el 13533;;; Generated autoloads from hilit-chg.el
13534 13534
13535(autoload (quote highlight-changes-remove-highlight) "hilit-chg" "\ 13535(autoload (quote highlight-changes-remove-highlight) "hilit-chg" "\
@@ -13659,7 +13659,7 @@ variable `highlight-changes-global-changes-existing-buffers' is non-nil).
13659;;;;;; hippie-expand-ignore-buffers hippie-expand-max-buffers hippie-expand-no-restriction 13659;;;;;; hippie-expand-ignore-buffers hippie-expand-max-buffers hippie-expand-no-restriction
13660;;;;;; hippie-expand-dabbrev-as-symbol hippie-expand-dabbrev-skip-space 13660;;;;;; hippie-expand-dabbrev-as-symbol hippie-expand-dabbrev-skip-space
13661;;;;;; hippie-expand-verbose hippie-expand-try-functions-list) "hippie-exp" 13661;;;;;; hippie-expand-verbose hippie-expand-try-functions-list) "hippie-exp"
13662;;;;;; "hippie-exp.el" (17843 45610)) 13662;;;;;; "hippie-exp.el" (17842 58279))
13663;;; Generated autoloads from hippie-exp.el 13663;;; Generated autoloads from hippie-exp.el
13664 13664
13665(defvar hippie-expand-try-functions-list (quote (try-complete-file-name-partially try-complete-file-name try-expand-all-abbrevs try-expand-list try-expand-line try-expand-dabbrev try-expand-dabbrev-all-buffers try-expand-dabbrev-from-kill try-complete-lisp-symbol-partially try-complete-lisp-symbol)) "\ 13665(defvar hippie-expand-try-functions-list (quote (try-complete-file-name-partially try-complete-file-name try-expand-all-abbrevs try-expand-list try-expand-line try-expand-dabbrev try-expand-dabbrev-all-buffers try-expand-dabbrev-from-kill try-complete-lisp-symbol-partially try-complete-lisp-symbol)) "\
@@ -13732,7 +13732,7 @@ argument VERBOSE non-nil makes the function verbose.
13732;;;*** 13732;;;***
13733 13733
13734;;;### (autoloads (global-hl-line-mode hl-line-mode) "hl-line" "hl-line.el" 13734;;;### (autoloads (global-hl-line-mode hl-line-mode) "hl-line" "hl-line.el"
13735;;;;;; (17843 45610)) 13735;;;;;; (17842 58279))
13736;;; Generated autoloads from hl-line.el 13736;;; Generated autoloads from hl-line.el
13737 13737
13738(autoload (quote hl-line-mode) "hl-line" "\ 13738(autoload (quote hl-line-mode) "hl-line" "\
@@ -13754,7 +13754,7 @@ addition to `hl-line-highlight' on `post-command-hook'.
13754 13754
13755(defvar global-hl-line-mode nil "\ 13755(defvar global-hl-line-mode nil "\
13756Non-nil if Global-Hl-Line mode is enabled. 13756Non-nil if Global-Hl-Line mode is enabled.
13757See the command `global-hl-line-mode' for a description of this minor-mode. 13757See the command `global-hl-line-mode' for a description of this minor mode.
13758Setting this variable directly does not take effect; 13758Setting this variable directly does not take effect;
13759either customize it (see the info node `Easy Customization') 13759either customize it (see the info node `Easy Customization')
13760or call the function `global-hl-line-mode'.") 13760or call the function `global-hl-line-mode'.")
@@ -13773,7 +13773,7 @@ Global-Hl-Line mode uses the functions `global-hl-line-unhighlight' and
13773;;;*** 13773;;;***
13774 13774
13775;;;### (autoloads (list-holidays holidays) "holidays" "calendar/holidays.el" 13775;;;### (autoloads (list-holidays holidays) "holidays" "calendar/holidays.el"
13776;;;;;; (17956 60684)) 13776;;;;;; (17956 13479))
13777;;; Generated autoloads from calendar/holidays.el 13777;;; Generated autoloads from calendar/holidays.el
13778 13778
13779(autoload (quote holidays) "holidays" "\ 13779(autoload (quote holidays) "holidays" "\
@@ -13809,8 +13809,8 @@ The optional LABEL is used to label the buffer created.
13809 13809
13810;;;*** 13810;;;***
13811 13811
13812;;;### (autoloads (html2text) "html2text" "gnus/html2text.el" (17843 13812;;;### (autoloads (html2text) "html2text" "gnus/html2text.el" (17842
13813;;;;;; 45617)) 13813;;;;;; 54741))
13814;;; Generated autoloads from gnus/html2text.el 13814;;; Generated autoloads from gnus/html2text.el
13815 13815
13816(autoload (quote html2text) "html2text" "\ 13816(autoload (quote html2text) "html2text" "\
@@ -13842,7 +13842,7 @@ Convert HTML to plain text in the current buffer.
13842;;;;;; ibuffer-backward-filter-group ibuffer-forward-filter-group 13842;;;;;; ibuffer-backward-filter-group ibuffer-forward-filter-group
13843;;;;;; ibuffer-toggle-filter-group ibuffer-mouse-toggle-filter-group 13843;;;;;; ibuffer-toggle-filter-group ibuffer-mouse-toggle-filter-group
13844;;;;;; ibuffer-interactive-filter-by-mode ibuffer-mouse-filter-by-mode 13844;;;;;; ibuffer-interactive-filter-by-mode ibuffer-mouse-filter-by-mode
13845;;;;;; ibuffer-auto-mode) "ibuf-ext" "ibuf-ext.el" (17843 45610)) 13845;;;;;; ibuffer-auto-mode) "ibuf-ext" "ibuf-ext.el" (17842 58279))
13846;;; Generated autoloads from ibuf-ext.el 13846;;; Generated autoloads from ibuf-ext.el
13847 13847
13848(autoload (quote ibuffer-auto-mode) "ibuf-ext" "\ 13848(autoload (quote ibuffer-auto-mode) "ibuf-ext" "\
@@ -14208,8 +14208,8 @@ defaults to one.
14208;;;*** 14208;;;***
14209 14209
14210;;;### (autoloads (define-ibuffer-filter define-ibuffer-op define-ibuffer-sorter 14210;;;### (autoloads (define-ibuffer-filter define-ibuffer-op define-ibuffer-sorter
14211;;;;;; define-ibuffer-column) "ibuf-macs" "ibuf-macs.el" (17843 14211;;;;;; define-ibuffer-column) "ibuf-macs" "ibuf-macs.el" (17842
14212;;;;;; 45610)) 14212;;;;;; 58279))
14213;;; Generated autoloads from ibuf-macs.el 14213;;; Generated autoloads from ibuf-macs.el
14214 14214
14215(autoload (quote define-ibuffer-column) "ibuf-macs" "\ 14215(autoload (quote define-ibuffer-column) "ibuf-macs" "\
@@ -14298,7 +14298,7 @@ bound to the current value of the filter.
14298;;;*** 14298;;;***
14299 14299
14300;;;### (autoloads (ibuffer ibuffer-other-window ibuffer-list-buffers) 14300;;;### (autoloads (ibuffer ibuffer-other-window ibuffer-list-buffers)
14301;;;;;; "ibuffer" "ibuffer.el" (17843 45610)) 14301;;;;;; "ibuffer" "ibuffer.el" (17842 58279))
14302;;; Generated autoloads from ibuffer.el 14302;;; Generated autoloads from ibuffer.el
14303 14303
14304(autoload (quote ibuffer-list-buffers) "ibuffer" "\ 14304(autoload (quote ibuffer-list-buffers) "ibuffer" "\
@@ -14339,7 +14339,7 @@ FORMATS is the value to use for `ibuffer-formats'.
14339 14339
14340;;;### (autoloads (icalendar-import-buffer icalendar-import-file 14340;;;### (autoloads (icalendar-import-buffer icalendar-import-file
14341;;;;;; icalendar-export-region icalendar-export-file) "icalendar" 14341;;;;;; icalendar-export-region icalendar-export-file) "icalendar"
14342;;;;;; "calendar/icalendar.el" (17939 56021)) 14342;;;;;; "calendar/icalendar.el" (17921 16827))
14343;;; Generated autoloads from calendar/icalendar.el 14343;;; Generated autoloads from calendar/icalendar.el
14344 14344
14345(autoload (quote icalendar-export-file) "icalendar" "\ 14345(autoload (quote icalendar-export-file) "icalendar" "\
@@ -14391,13 +14391,13 @@ buffer `*icalendar-errors*'.
14391 14391
14392;;;*** 14392;;;***
14393 14393
14394;;;### (autoloads (icomplete-mode) "icomplete" "icomplete.el" (17939 14394;;;### (autoloads (icomplete-mode) "icomplete" "icomplete.el" (17907
14395;;;;;; 56017)) 14395;;;;;; 1407))
14396;;; Generated autoloads from icomplete.el 14396;;; Generated autoloads from icomplete.el
14397 14397
14398(defvar icomplete-mode nil "\ 14398(defvar icomplete-mode nil "\
14399Non-nil if Icomplete mode is enabled. 14399Non-nil if Icomplete mode is enabled.
14400See the command `icomplete-mode' for a description of this minor-mode. 14400See the command `icomplete-mode' for a description of this minor mode.
14401Setting this variable directly does not take effect; 14401Setting this variable directly does not take effect;
14402either customize it (see the info node `Easy Customization') 14402either customize it (see the info node `Easy Customization')
14403or call the function `icomplete-mode'.") 14403or call the function `icomplete-mode'.")
@@ -14412,7 +14412,7 @@ With a numeric argument, turn Icomplete mode on iff ARG is positive.
14412 14412
14413;;;*** 14413;;;***
14414 14414
14415;;;### (autoloads (icon-mode) "icon" "progmodes/icon.el" (17843 45628)) 14415;;;### (autoloads (icon-mode) "icon" "progmodes/icon.el" (17842 56333))
14416;;; Generated autoloads from progmodes/icon.el 14416;;; Generated autoloads from progmodes/icon.el
14417 14417
14418(autoload (quote icon-mode) "icon" "\ 14418(autoload (quote icon-mode) "icon" "\
@@ -14453,7 +14453,7 @@ with no args, if that value is non-nil.
14453;;;*** 14453;;;***
14454 14454
14455;;;### (autoloads (idlwave-shell) "idlw-shell" "progmodes/idlw-shell.el" 14455;;;### (autoloads (idlwave-shell) "idlw-shell" "progmodes/idlw-shell.el"
14456;;;;;; (17966 9916)) 14456;;;;;; (17965 23638))
14457;;; Generated autoloads from progmodes/idlw-shell.el 14457;;; Generated autoloads from progmodes/idlw-shell.el
14458 14458
14459(autoload (quote idlwave-shell) "idlw-shell" "\ 14459(autoload (quote idlwave-shell) "idlw-shell" "\
@@ -14479,7 +14479,7 @@ See also the variable `idlwave-shell-prompt-pattern'.
14479;;;*** 14479;;;***
14480 14480
14481;;;### (autoloads (idlwave-mode) "idlwave" "progmodes/idlwave.el" 14481;;;### (autoloads (idlwave-mode) "idlwave" "progmodes/idlwave.el"
14482;;;;;; (17970 17147)) 14482;;;;;; (17992 30878))
14483;;; Generated autoloads from progmodes/idlwave.el 14483;;; Generated autoloads from progmodes/idlwave.el
14484 14484
14485(autoload (quote idlwave-mode) "idlwave" "\ 14485(autoload (quote idlwave-mode) "idlwave" "\
@@ -14614,8 +14614,8 @@ The main features of this mode are
14614;;;;;; ido-find-alternate-file ido-find-file-other-window ido-find-file 14614;;;;;; ido-find-alternate-file ido-find-file-other-window ido-find-file
14615;;;;;; ido-find-file-in-dir ido-switch-buffer-other-frame ido-insert-buffer 14615;;;;;; ido-find-file-in-dir ido-switch-buffer-other-frame ido-insert-buffer
14616;;;;;; ido-kill-buffer ido-display-buffer ido-switch-buffer-other-window 14616;;;;;; ido-kill-buffer ido-display-buffer ido-switch-buffer-other-window
14617;;;;;; ido-switch-buffer ido-mode ido-mode) "ido" "ido.el" (17966 14617;;;;;; ido-switch-buffer ido-mode ido-mode) "ido" "ido.el" (17963
14618;;;;;; 9915)) 14618;;;;;; 25911))
14619;;; Generated autoloads from ido.el 14619;;; Generated autoloads from ido.el
14620 14620
14621(defvar ido-mode nil "\ 14621(defvar ido-mode nil "\
@@ -14876,7 +14876,7 @@ DEF, if non-nil, is the default value.
14876 14876
14877;;;*** 14877;;;***
14878 14878
14879;;;### (autoloads (ielm) "ielm" "ielm.el" (17843 45610)) 14879;;;### (autoloads (ielm) "ielm" "ielm.el" (17842 58279))
14880;;; Generated autoloads from ielm.el 14880;;; Generated autoloads from ielm.el
14881 (add-hook 'same-window-buffer-names "*ielm*") 14881 (add-hook 'same-window-buffer-names "*ielm*")
14882 14882
@@ -14889,7 +14889,7 @@ Switches to the buffer `*ielm*', or creates it if it does not exist.
14889;;;*** 14889;;;***
14890 14890
14891;;;### (autoloads (iimage-mode turn-on-iimage-mode) "iimage" "iimage.el" 14891;;;### (autoloads (iimage-mode turn-on-iimage-mode) "iimage" "iimage.el"
14892;;;;;; (17843 45610)) 14892;;;;;; (17842 58279))
14893;;; Generated autoloads from iimage.el 14893;;; Generated autoloads from iimage.el
14894 14894
14895(autoload (quote turn-on-iimage-mode) "iimage" "\ 14895(autoload (quote turn-on-iimage-mode) "iimage" "\
@@ -14908,7 +14908,7 @@ Toggle inline image minor mode.
14908;;;;;; insert-image put-image create-image image-type-auto-detected-p 14908;;;;;; insert-image put-image create-image image-type-auto-detected-p
14909;;;;;; image-type-available-p image-type image-type-from-file-name 14909;;;;;; image-type-available-p image-type image-type-from-file-name
14910;;;;;; image-type-from-file-header image-type-from-buffer image-type-from-data) 14910;;;;;; image-type-from-file-header image-type-from-buffer image-type-from-data)
14911;;;;;; "image" "image.el" (17939 56017)) 14911;;;;;; "image" "image.el" (17868 42568))
14912;;; Generated autoloads from image.el 14912;;; Generated autoloads from image.el
14913 14913
14914(autoload (quote image-type-from-data) "image" "\ 14914(autoload (quote image-type-from-data) "image" "\
@@ -15089,7 +15089,7 @@ Example:
15089;;;;;; image-dired-jump-thumbnail-buffer image-dired-delete-tag 15089;;;;;; image-dired-jump-thumbnail-buffer image-dired-delete-tag
15090;;;;;; image-dired-tag-files image-dired-show-all-from-dir image-dired-display-thumbs 15090;;;;;; image-dired-tag-files image-dired-show-all-from-dir image-dired-display-thumbs
15091;;;;;; image-dired-dired-with-window-configuration image-dired-dired-insert-marked-thumbs) 15091;;;;;; image-dired-dired-with-window-configuration image-dired-dired-insert-marked-thumbs)
15092;;;;;; "image-dired" "image-dired.el" (17988 52353)) 15092;;;;;; "image-dired" "image-dired.el" (17992 30877))
15093;;; Generated autoloads from image-dired.el 15093;;; Generated autoloads from image-dired.el
15094 15094
15095(autoload (quote image-dired-dired-insert-marked-thumbs) "image-dired" "\ 15095(autoload (quote image-dired-dired-insert-marked-thumbs) "image-dired" "\
@@ -15223,7 +15223,7 @@ easy-to-use form.
15223 15223
15224;;;### (autoloads (auto-image-file-mode insert-image-file image-file-name-regexp 15224;;;### (autoloads (auto-image-file-mode insert-image-file image-file-name-regexp
15225;;;;;; image-file-name-regexps image-file-name-extensions) "image-file" 15225;;;;;; image-file-name-regexps image-file-name-extensions) "image-file"
15226;;;;;; "image-file.el" (17843 45610)) 15226;;;;;; "image-file.el" (17842 58279))
15227;;; Generated autoloads from image-file.el 15227;;; Generated autoloads from image-file.el
15228 15228
15229(defvar image-file-name-extensions (quote ("png" "jpeg" "jpg" "gif" "tiff" "tif" "xbm" "xpm" "pbm" "pgm" "ppm" "pnm")) "\ 15229(defvar image-file-name-extensions (quote ("png" "jpeg" "jpg" "gif" "tiff" "tif" "xbm" "xpm" "pbm" "pgm" "ppm" "pnm")) "\
@@ -15264,7 +15264,7 @@ the command `insert-file-contents'.
15264 15264
15265(defvar auto-image-file-mode nil "\ 15265(defvar auto-image-file-mode nil "\
15266Non-nil if Auto-Image-File mode is enabled. 15266Non-nil if Auto-Image-File mode is enabled.
15267See the command `auto-image-file-mode' for a description of this minor-mode. 15267See the command `auto-image-file-mode' for a description of this minor mode.
15268Setting this variable directly does not take effect; 15268Setting this variable directly does not take effect;
15269either customize it (see the info node `Easy Customization') 15269either customize it (see the info node `Easy Customization')
15270or call the function `auto-image-file-mode'.") 15270or call the function `auto-image-file-mode'.")
@@ -15285,7 +15285,7 @@ Image files are those whose name has an extension in
15285;;;*** 15285;;;***
15286 15286
15287;;;### (autoloads (image-mode-maybe image-minor-mode image-mode) 15287;;;### (autoloads (image-mode-maybe image-minor-mode image-mode)
15288;;;;;; "image-mode" "image-mode.el" (17943 53704)) 15288;;;;;; "image-mode" "image-mode.el" (17868 42581))
15289;;; Generated autoloads from image-mode.el 15289;;; Generated autoloads from image-mode.el
15290 (push '("\\.jpe?g\\'" . image-mode) auto-mode-alist) 15290 (push '("\\.jpe?g\\'" . image-mode) auto-mode-alist)
15291 (push '("\\.png\\'" . image-mode) auto-mode-alist) 15291 (push '("\\.png\\'" . image-mode) auto-mode-alist)
@@ -15323,7 +15323,7 @@ information on these modes.
15323;;;*** 15323;;;***
15324 15324
15325;;;### (autoloads (imenu imenu-add-menubar-index imenu-add-to-menubar 15325;;;### (autoloads (imenu imenu-add-menubar-index imenu-add-to-menubar
15326;;;;;; imenu-sort-function) "imenu" "imenu.el" (17843 45610)) 15326;;;;;; imenu-sort-function) "imenu" "imenu.el" (17842 58279))
15327;;; Generated autoloads from imenu.el 15327;;; Generated autoloads from imenu.el
15328 15328
15329(defvar imenu-sort-function nil "\ 15329(defvar imenu-sort-function nil "\
@@ -15438,7 +15438,7 @@ for more information.
15438 15438
15439;;;### (autoloads (indian-char-glyph indian-glyph-char in-is13194-pre-write-conversion 15439;;;### (autoloads (indian-char-glyph indian-glyph-char in-is13194-pre-write-conversion
15440;;;;;; in-is13194-post-read-conversion indian-compose-string indian-compose-region) 15440;;;;;; in-is13194-post-read-conversion indian-compose-string indian-compose-region)
15441;;;;;; "ind-util" "language/ind-util.el" (17843 45620)) 15441;;;;;; "ind-util" "language/ind-util.el" (17842 58278))
15442;;; Generated autoloads from language/ind-util.el 15442;;; Generated autoloads from language/ind-util.el
15443 15443
15444(autoload (quote indian-compose-region) "ind-util" "\ 15444(autoload (quote indian-compose-region) "ind-util" "\
@@ -15481,7 +15481,7 @@ See also the function `indian-glyph-char'.
15481 15481
15482;;;### (autoloads (inferior-lisp inferior-lisp-prompt inferior-lisp-load-command 15482;;;### (autoloads (inferior-lisp inferior-lisp-prompt inferior-lisp-load-command
15483;;;;;; inferior-lisp-program inferior-lisp-filter-regexp) "inf-lisp" 15483;;;;;; inferior-lisp-program inferior-lisp-filter-regexp) "inf-lisp"
15484;;;;;; "progmodes/inf-lisp.el" (17843 45628)) 15484;;;;;; "progmodes/inf-lisp.el" (17842 56332))
15485;;; Generated autoloads from progmodes/inf-lisp.el 15485;;; Generated autoloads from progmodes/inf-lisp.el
15486 15486
15487(defvar inferior-lisp-filter-regexp "\\`\\s *\\(:\\(\\w\\|\\s_\\)\\)?\\s *\\'" "\ 15487(defvar inferior-lisp-filter-regexp "\\`\\s *\\(:\\(\\w\\|\\s_\\)\\)?\\s *\\'" "\
@@ -15548,7 +15548,7 @@ of `inferior-lisp-program'). Runs the hooks from
15548;;;### (autoloads (Info-speedbar-browser Info-goto-emacs-key-command-node 15548;;;### (autoloads (Info-speedbar-browser Info-goto-emacs-key-command-node
15549;;;;;; Info-goto-emacs-command-node Info-mode info-apropos Info-index 15549;;;;;; Info-goto-emacs-command-node Info-mode info-apropos Info-index
15550;;;;;; Info-directory Info-on-current-buffer info-standalone info-emacs-manual 15550;;;;;; Info-directory Info-on-current-buffer info-standalone info-emacs-manual
15551;;;;;; info info-other-window) "info" "info.el" (17995 6542)) 15551;;;;;; info info-other-window) "info" "info.el" (18006 55795))
15552;;; Generated autoloads from info.el 15552;;; Generated autoloads from info.el
15553 15553
15554(autoload (quote info-other-window) "info" "\ 15554(autoload (quote info-other-window) "info" "\
@@ -15714,7 +15714,7 @@ This will add a speedbar major display mode.
15714 15714
15715;;;### (autoloads (info-complete-file info-complete-symbol info-lookup-file 15715;;;### (autoloads (info-complete-file info-complete-symbol info-lookup-file
15716;;;;;; info-lookup-symbol info-lookup-reset) "info-look" "info-look.el" 15716;;;;;; info-lookup-symbol info-lookup-reset) "info-look" "info-look.el"
15717;;;;;; (17939 56017)) 15717;;;;;; (17878 61008))
15718;;; Generated autoloads from info-look.el 15718;;; Generated autoloads from info-look.el
15719 15719
15720(autoload (quote info-lookup-reset) "info-look" "\ 15720(autoload (quote info-lookup-reset) "info-look" "\
@@ -15762,7 +15762,7 @@ Perform completion on file preceding point.
15762;;;*** 15762;;;***
15763 15763
15764;;;### (autoloads (info-xref-check-all-custom info-xref-check-all 15764;;;### (autoloads (info-xref-check-all-custom info-xref-check-all
15765;;;;;; info-xref-check) "info-xref" "info-xref.el" (17843 45610)) 15765;;;;;; info-xref-check) "info-xref" "info-xref.el" (17842 58279))
15766;;; Generated autoloads from info-xref.el 15766;;; Generated autoloads from info-xref.el
15767 15767
15768(autoload (quote info-xref-check) "info-xref" "\ 15768(autoload (quote info-xref-check) "info-xref" "\
@@ -15789,7 +15789,7 @@ quite a while.
15789;;;*** 15789;;;***
15790 15790
15791;;;### (autoloads (batch-info-validate Info-validate Info-split Info-tagify) 15791;;;### (autoloads (batch-info-validate Info-validate Info-split Info-tagify)
15792;;;;;; "informat" "informat.el" (17843 45610)) 15792;;;;;; "informat" "informat.el" (17842 58279))
15793;;; Generated autoloads from informat.el 15793;;; Generated autoloads from informat.el
15794 15794
15795(autoload (quote Info-tagify) "informat" "\ 15795(autoload (quote Info-tagify) "informat" "\
@@ -15830,7 +15830,7 @@ For example, invoke \"emacs -batch -f batch-info-validate $info/ ~/*.info\"
15830 15830
15831;;;### (autoloads (isearch-process-search-multibyte-characters isearch-toggle-input-method 15831;;;### (autoloads (isearch-process-search-multibyte-characters isearch-toggle-input-method
15832;;;;;; isearch-toggle-specified-input-method) "isearch-x" "international/isearch-x.el" 15832;;;;;; isearch-toggle-specified-input-method) "isearch-x" "international/isearch-x.el"
15833;;;;;; (17939 56022)) 15833;;;;;; (17903 2305))
15834;;; Generated autoloads from international/isearch-x.el 15834;;; Generated autoloads from international/isearch-x.el
15835 15835
15836(autoload (quote isearch-toggle-specified-input-method) "isearch-x" "\ 15836(autoload (quote isearch-toggle-specified-input-method) "isearch-x" "\
@@ -15850,8 +15850,8 @@ Not documented
15850 15850
15851;;;*** 15851;;;***
15852 15852
15853;;;### (autoloads (isearchb-activate) "isearchb" "isearchb.el" (17939 15853;;;### (autoloads (isearchb-activate) "isearchb" "isearchb.el" (17918
15854;;;;;; 56017)) 15854;;;;;; 44913))
15855;;; Generated autoloads from isearchb.el 15855;;; Generated autoloads from isearchb.el
15856 15856
15857(autoload (quote isearchb-activate) "isearchb" "\ 15857(autoload (quote isearchb-activate) "isearchb" "\
@@ -15867,7 +15867,7 @@ accessed via isearchb.
15867;;;### (autoloads (iso-cvt-define-menu iso-cvt-write-only iso-cvt-read-only 15867;;;### (autoloads (iso-cvt-define-menu iso-cvt-write-only iso-cvt-read-only
15868;;;;;; iso-sgml2iso iso-iso2sgml iso-iso2duden iso-iso2gtex iso-gtex2iso 15868;;;;;; iso-sgml2iso iso-iso2sgml iso-iso2duden iso-iso2gtex iso-gtex2iso
15869;;;;;; iso-tex2iso iso-iso2tex iso-german iso-spanish) "iso-cvt" 15869;;;;;; iso-tex2iso iso-iso2tex iso-german iso-spanish) "iso-cvt"
15870;;;;;; "international/iso-cvt.el" (17988 52353)) 15870;;;;;; "international/iso-cvt.el" (17992 30878))
15871;;; Generated autoloads from international/iso-cvt.el 15871;;; Generated autoloads from international/iso-cvt.el
15872 15872
15873(autoload (quote iso-spanish) "iso-cvt" "\ 15873(autoload (quote iso-spanish) "iso-cvt" "\
@@ -15951,7 +15951,7 @@ Add submenus to the File menu, to convert to and from various formats.
15951;;;*** 15951;;;***
15952 15952
15953;;;### (autoloads nil "iso-transl" "international/iso-transl.el" 15953;;;### (autoloads nil "iso-transl" "international/iso-transl.el"
15954;;;;;; (17843 45618)) 15954;;;;;; (17842 54888))
15955;;; Generated autoloads from international/iso-transl.el 15955;;; Generated autoloads from international/iso-transl.el
15956 (or key-translation-map (setq key-translation-map (make-sparse-keymap))) 15956 (or key-translation-map (setq key-translation-map (make-sparse-keymap)))
15957 (define-key key-translation-map "\C-x8" 'iso-transl-ctl-x-8-map) 15957 (define-key key-translation-map "\C-x8" 'iso-transl-ctl-x-8-map)
@@ -15964,7 +15964,7 @@ Add submenus to the File menu, to convert to and from various formats.
15964;;;;;; ispell-region ispell-change-dictionary ispell-kill-ispell 15964;;;;;; ispell-region ispell-change-dictionary ispell-kill-ispell
15965;;;;;; ispell-help ispell-pdict-save ispell-word ispell-local-dictionary-alist 15965;;;;;; ispell-help ispell-pdict-save ispell-word ispell-local-dictionary-alist
15966;;;;;; ispell-personal-dictionary) "ispell" "textmodes/ispell.el" 15966;;;;;; ispell-personal-dictionary) "ispell" "textmodes/ispell.el"
15967;;;;;; (17996 37926)) 15967;;;;;; (18006 55797))
15968;;; Generated autoloads from textmodes/ispell.el 15968;;; Generated autoloads from textmodes/ispell.el
15969(put 'ispell-check-comments 'safe-local-variable (lambda (a) (memq a '(nil t exclusive)))) 15969(put 'ispell-check-comments 'safe-local-variable (lambda (a) (memq a '(nil t exclusive))))
15970 15970
@@ -16251,13 +16251,13 @@ You can bind this to the key C-c i in GNUS or mail by adding to
16251 16251
16252;;;*** 16252;;;***
16253 16253
16254;;;### (autoloads (iswitchb-mode) "iswitchb" "iswitchb.el" (17827 16254;;;### (autoloads (iswitchb-mode) "iswitchb" "iswitchb.el" (17819
16255;;;;;; 37446)) 16255;;;;;; 9451))
16256;;; Generated autoloads from iswitchb.el 16256;;; Generated autoloads from iswitchb.el
16257 16257
16258(defvar iswitchb-mode nil "\ 16258(defvar iswitchb-mode nil "\
16259Non-nil if Iswitchb mode is enabled. 16259Non-nil if Iswitchb mode is enabled.
16260See the command `iswitchb-mode' for a description of this minor-mode. 16260See the command `iswitchb-mode' for a description of this minor mode.
16261Setting this variable directly does not take effect; 16261Setting this variable directly does not take effect;
16262either customize it (see the info node `Easy Customization') 16262either customize it (see the info node `Easy Customization')
16263or call the function `iswitchb-mode'.") 16263or call the function `iswitchb-mode'.")
@@ -16277,7 +16277,7 @@ This mode enables switching between buffers using substrings. See
16277;;;### (autoloads (read-hiragana-string japanese-zenkaku-region japanese-hankaku-region 16277;;;### (autoloads (read-hiragana-string japanese-zenkaku-region japanese-hankaku-region
16278;;;;;; japanese-hiragana-region japanese-katakana-region japanese-zenkaku 16278;;;;;; japanese-hiragana-region japanese-katakana-region japanese-zenkaku
16279;;;;;; japanese-hankaku japanese-hiragana japanese-katakana setup-japanese-environment-internal) 16279;;;;;; japanese-hankaku japanese-hiragana japanese-katakana setup-japanese-environment-internal)
16280;;;;;; "japan-util" "language/japan-util.el" (17843 45620)) 16280;;;;;; "japan-util" "language/japan-util.el" (17842 58278))
16281;;; Generated autoloads from language/japan-util.el 16281;;; Generated autoloads from language/japan-util.el
16282 16282
16283(autoload (quote setup-japanese-environment-internal) "japan-util" "\ 16283(autoload (quote setup-japanese-environment-internal) "japan-util" "\
@@ -16355,7 +16355,7 @@ If non-nil, second arg INITIAL-INPUT is a string to insert before reading.
16355;;;*** 16355;;;***
16356 16356
16357;;;### (autoloads (jka-compr-uninstall jka-compr-handler) "jka-compr" 16357;;;### (autoloads (jka-compr-uninstall jka-compr-handler) "jka-compr"
16358;;;;;; "jka-compr.el" (17939 56017)) 16358;;;;;; "jka-compr.el" (17853 24893))
16359;;; Generated autoloads from jka-compr.el 16359;;; Generated autoloads from jka-compr.el
16360 16360
16361(defvar jka-compr-inhibit nil "\ 16361(defvar jka-compr-inhibit nil "\
@@ -16380,7 +16380,7 @@ by `jka-compr-installed'.
16380 16380
16381;;;### (autoloads (keypad-setup keypad-numlock-shifted-setup keypad-shifted-setup 16381;;;### (autoloads (keypad-setup keypad-numlock-shifted-setup keypad-shifted-setup
16382;;;;;; keypad-numlock-setup keypad-setup) "keypad" "emulation/keypad.el" 16382;;;;;; keypad-numlock-setup keypad-setup) "keypad" "emulation/keypad.el"
16383;;;;;; (17838 18033)) 16383;;;;;; (17833 41203))
16384;;; Generated autoloads from emulation/keypad.el 16384;;; Generated autoloads from emulation/keypad.el
16385 16385
16386(defvar keypad-setup nil "\ 16386(defvar keypad-setup nil "\
@@ -16436,7 +16436,7 @@ the decimal key on the keypad is mapped to DECIMAL instead of `.'
16436;;;*** 16436;;;***
16437 16437
16438;;;### (autoloads (kinsoku) "kinsoku" "international/kinsoku.el" 16438;;;### (autoloads (kinsoku) "kinsoku" "international/kinsoku.el"
16439;;;;;; (17843 45618)) 16439;;;;;; (17842 54888))
16440;;; Generated autoloads from international/kinsoku.el 16440;;; Generated autoloads from international/kinsoku.el
16441 16441
16442(autoload (quote kinsoku) "kinsoku" "\ 16442(autoload (quote kinsoku) "kinsoku" "\
@@ -16457,8 +16457,8 @@ the context of text formatting.
16457 16457
16458;;;*** 16458;;;***
16459 16459
16460;;;### (autoloads (kkc-region) "kkc" "international/kkc.el" (17843 16460;;;### (autoloads (kkc-region) "kkc" "international/kkc.el" (17842
16461;;;;;; 45618)) 16461;;;;;; 54888))
16462;;; Generated autoloads from international/kkc.el 16462;;; Generated autoloads from international/kkc.el
16463 16463
16464(defvar kkc-after-update-conversion-functions nil "\ 16464(defvar kkc-after-update-conversion-functions nil "\
@@ -16483,7 +16483,7 @@ and the return value is the length of the conversion.
16483;;;### (autoloads (kmacro-end-call-mouse kmacro-end-and-call-macro 16483;;;### (autoloads (kmacro-end-call-mouse kmacro-end-and-call-macro
16484;;;;;; kmacro-end-or-call-macro kmacro-start-macro-or-insert-counter 16484;;;;;; kmacro-end-or-call-macro kmacro-start-macro-or-insert-counter
16485;;;;;; kmacro-call-macro kmacro-end-macro kmacro-start-macro) "kmacro" 16485;;;;;; kmacro-call-macro kmacro-end-macro kmacro-start-macro) "kmacro"
16486;;;;;; "kmacro.el" (17838 18033)) 16486;;;;;; "kmacro.el" (17833 41350))
16487;;; Generated autoloads from kmacro.el 16487;;; Generated autoloads from kmacro.el
16488 (global-set-key "\C-x(" 'kmacro-start-macro) 16488 (global-set-key "\C-x(" 'kmacro-start-macro)
16489 (global-set-key "\C-x)" 'kmacro-end-macro) 16489 (global-set-key "\C-x)" 'kmacro-end-macro)
@@ -16590,7 +16590,7 @@ If kbd macro currently being defined end it before activating it.
16590 16590
16591;;;### (autoloads (kannada-post-read-conversion kannada-compose-string 16591;;;### (autoloads (kannada-post-read-conversion kannada-compose-string
16592;;;;;; kannada-compose-region) "knd-util" "language/knd-util.el" 16592;;;;;; kannada-compose-region) "knd-util" "language/knd-util.el"
16593;;;;;; (17843 45620)) 16593;;;;;; (17842 58278))
16594;;; Generated autoloads from language/knd-util.el 16594;;; Generated autoloads from language/knd-util.el
16595 16595
16596(defconst kannada-consonant "[\x51f75-\x51fb9]") 16596(defconst kannada-consonant "[\x51f75-\x51fb9]")
@@ -16613,7 +16613,7 @@ Not documented
16613;;;*** 16613;;;***
16614 16614
16615;;;### (autoloads (setup-korean-environment-internal) "korea-util" 16615;;;### (autoloads (setup-korean-environment-internal) "korea-util"
16616;;;;;; "language/korea-util.el" (17843 45620)) 16616;;;;;; "language/korea-util.el" (17842 58278))
16617;;; Generated autoloads from language/korea-util.el 16617;;; Generated autoloads from language/korea-util.el
16618 16618
16619(defvar default-korean-keyboard (if (string-match "3" (or (getenv "HANGUL_KEYBOARD_TYPE") "")) "3" "") "\ 16619(defvar default-korean-keyboard (if (string-match "3" (or (getenv "HANGUL_KEYBOARD_TYPE") "")) "3" "") "\
@@ -16628,7 +16628,7 @@ Not documented
16628;;;*** 16628;;;***
16629 16629
16630;;;### (autoloads (lm lm-test-run) "landmark" "play/landmark.el" 16630;;;### (autoloads (lm lm-test-run) "landmark" "play/landmark.el"
16631;;;;;; (17941 5494)) 16631;;;;;; (17941 38806))
16632;;; Generated autoloads from play/landmark.el 16632;;; Generated autoloads from play/landmark.el
16633 16633
16634(defalias (quote landmark-repeat) (quote lm-test-run)) 16634(defalias (quote landmark-repeat) (quote lm-test-run))
@@ -16662,8 +16662,8 @@ Use \\[describe-mode] for more info.
16662 16662
16663;;;### (autoloads (lao-compose-region lao-composition-function lao-post-read-conversion 16663;;;### (autoloads (lao-compose-region lao-composition-function lao-post-read-conversion
16664;;;;;; lao-transcribe-roman-to-lao-string lao-transcribe-single-roman-syllable-to-lao 16664;;;;;; lao-transcribe-roman-to-lao-string lao-transcribe-single-roman-syllable-to-lao
16665;;;;;; lao-compose-string) "lao-util" "language/lao-util.el" (17843 16665;;;;;; lao-compose-string) "lao-util" "language/lao-util.el" (17842
16666;;;;;; 45620)) 16666;;;;;; 58278))
16667;;; Generated autoloads from language/lao-util.el 16667;;; Generated autoloads from language/lao-util.el
16668 16668
16669(autoload (quote lao-compose-string) "lao-util" "\ 16669(autoload (quote lao-compose-string) "lao-util" "\
@@ -16712,7 +16712,7 @@ Not documented
16712 16712
16713;;;### (autoloads (latexenc-find-file-coding-system latexenc-coding-system-to-inputenc 16713;;;### (autoloads (latexenc-find-file-coding-system latexenc-coding-system-to-inputenc
16714;;;;;; latexenc-inputenc-to-coding-system latex-inputenc-coding-alist) 16714;;;;;; latexenc-inputenc-to-coding-system latex-inputenc-coding-alist)
16715;;;;;; "latexenc" "international/latexenc.el" (17843 45618)) 16715;;;;;; "latexenc" "international/latexenc.el" (17842 54888))
16716;;; Generated autoloads from international/latexenc.el 16716;;; Generated autoloads from international/latexenc.el
16717 16717
16718(defvar latex-inputenc-coding-alist (quote (("ansinew" . windows-1252) ("applemac" . mac-roman) ("ascii" . us-ascii) ("cp1250" . windows-1250) ("cp1252" . windows-1252) ("cp1257" . cp1257) ("cp437de" . cp437) ("cp437" . cp437) ("cp850" . cp850) ("cp852" . cp852) ("cp858" . cp858) ("cp865" . cp865) ("latin1" . iso-8859-1) ("latin2" . iso-8859-2) ("latin3" . iso-8859-3) ("latin4" . iso-8859-4) ("latin5" . iso-8859-5) ("latin9" . iso-8859-15) ("next" . next) ("utf8" . utf-8) ("utf8x" . utf-8))) "\ 16718(defvar latex-inputenc-coding-alist (quote (("ansinew" . windows-1252) ("applemac" . mac-roman) ("ascii" . us-ascii) ("cp1250" . windows-1250) ("cp1252" . windows-1252) ("cp1257" . cp1257) ("cp437de" . cp437) ("cp437" . cp437) ("cp850" . cp850) ("cp852" . cp852) ("cp858" . cp858) ("cp865" . cp865) ("latin1" . iso-8859-1) ("latin2" . iso-8859-2) ("latin3" . iso-8859-3) ("latin4" . iso-8859-4) ("latin5" . iso-8859-5) ("latin9" . iso-8859-15) ("next" . next) ("utf8" . utf-8) ("utf8x" . utf-8))) "\
@@ -16744,7 +16744,7 @@ coding system names is determined from `latex-inputenc-coding-alist'.
16744;;;*** 16744;;;***
16745 16745
16746;;;### (autoloads (latin1-display-ucs-per-lynx latin1-display latin1-display) 16746;;;### (autoloads (latin1-display-ucs-per-lynx latin1-display latin1-display)
16747;;;;;; "latin1-disp" "international/latin1-disp.el" (17939 56022)) 16747;;;;;; "latin1-disp" "international/latin1-disp.el" (17874 62081))
16748;;; Generated autoloads from international/latin1-disp.el 16748;;; Generated autoloads from international/latin1-disp.el
16749 16749
16750(defvar latin1-display nil "\ 16750(defvar latin1-display nil "\
@@ -16788,7 +16788,7 @@ use either \\[customize] or the function `latin1-display'.")
16788;;;*** 16788;;;***
16789 16789
16790;;;### (autoloads (ld-script-mode) "ld-script" "progmodes/ld-script.el" 16790;;;### (autoloads (ld-script-mode) "ld-script" "progmodes/ld-script.el"
16791;;;;;; (17843 45628)) 16791;;;;;; (17842 56332))
16792;;; Generated autoloads from progmodes/ld-script.el 16792;;; Generated autoloads from progmodes/ld-script.el
16793 16793
16794(add-to-list (quote auto-mode-alist) (quote ("\\.ld[si]?\\>" . ld-script-mode))) 16794(add-to-list (quote auto-mode-alist) (quote ("\\.ld[si]?\\>" . ld-script-mode)))
@@ -16803,7 +16803,7 @@ A major mode to edit GNU ld script files
16803;;;*** 16803;;;***
16804 16804
16805;;;### (autoloads (ledit-from-lisp-mode ledit-mode) "ledit" "ledit.el" 16805;;;### (autoloads (ledit-from-lisp-mode ledit-mode) "ledit" "ledit.el"
16806;;;;;; (17843 45610)) 16806;;;;;; (17842 58279))
16807;;; Generated autoloads from ledit.el 16807;;; Generated autoloads from ledit.el
16808 16808
16809(defconst ledit-save-files t "\ 16809(defconst ledit-save-files t "\
@@ -16838,7 +16838,7 @@ Not documented
16838 16838
16839;;;*** 16839;;;***
16840 16840
16841;;;### (autoloads (life) "life" "play/life.el" (17843 45626)) 16841;;;### (autoloads (life) "life" "play/life.el" (17842 55395))
16842;;; Generated autoloads from play/life.el 16842;;; Generated autoloads from play/life.el
16843 16843
16844(autoload (quote life) "life" "\ 16844(autoload (quote life) "life" "\
@@ -16852,7 +16852,7 @@ generations (this defaults to 1).
16852;;;*** 16852;;;***
16853 16853
16854;;;### (autoloads (unload-feature) "loadhist" "loadhist.el" (17942 16854;;;### (autoloads (unload-feature) "loadhist" "loadhist.el" (17942
16855;;;;;; 34668)) 16855;;;;;; 63381))
16856;;; Generated autoloads from loadhist.el 16856;;; Generated autoloads from loadhist.el
16857 16857
16858(autoload (quote unload-feature) "loadhist" "\ 16858(autoload (quote unload-feature) "loadhist" "\
@@ -16875,7 +16875,7 @@ such as redefining an Emacs function.
16875;;;*** 16875;;;***
16876 16876
16877;;;### (autoloads (locate-with-filter locate locate-ls-subdir-switches) 16877;;;### (autoloads (locate-with-filter locate locate-ls-subdir-switches)
16878;;;;;; "locate" "locate.el" (17988 52353)) 16878;;;;;; "locate" "locate.el" (17992 30877))
16879;;; Generated autoloads from locate.el 16879;;; Generated autoloads from locate.el
16880 16880
16881(defvar locate-ls-subdir-switches "-al" "\ 16881(defvar locate-ls-subdir-switches "-al" "\
@@ -16926,7 +16926,7 @@ except that FILTER is not optional.
16926 16926
16927;;;*** 16927;;;***
16928 16928
16929;;;### (autoloads (log-edit) "log-edit" "log-edit.el" (17843 45610)) 16929;;;### (autoloads (log-edit) "log-edit" "log-edit.el" (18010 5298))
16930;;; Generated autoloads from log-edit.el 16930;;; Generated autoloads from log-edit.el
16931 16931
16932(autoload (quote log-edit) "log-edit" "\ 16932(autoload (quote log-edit) "log-edit" "\
@@ -16947,8 +16947,8 @@ If BUFFER is non-nil `log-edit' will jump to that buffer, use it to edit the
16947 16947
16948;;;*** 16948;;;***
16949 16949
16950;;;### (autoloads (log-view-mode) "log-view" "log-view.el" (17843 16950;;;### (autoloads (log-view-mode) "log-view" "log-view.el" (17842
16951;;;;;; 45610)) 16951;;;;;; 58279))
16952;;; Generated autoloads from log-view.el 16952;;; Generated autoloads from log-view.el
16953 16953
16954(autoload (quote log-view-mode) "log-view" "\ 16954(autoload (quote log-view-mode) "log-view" "\
@@ -16958,8 +16958,8 @@ Major mode for browsing CVS log output.
16958 16958
16959;;;*** 16959;;;***
16960 16960
16961;;;### (autoloads (longlines-mode) "longlines" "longlines.el" (17843 16961;;;### (autoloads (longlines-mode) "longlines" "longlines.el" (17992
16962;;;;;; 45610)) 16962;;;;;; 30877))
16963;;; Generated autoloads from longlines.el 16963;;; Generated autoloads from longlines.el
16964 16964
16965(autoload (quote longlines-mode) "longlines" "\ 16965(autoload (quote longlines-mode) "longlines" "\
@@ -16980,8 +16980,8 @@ are indicated with a symbol.
16980;;;*** 16980;;;***
16981 16981
16982;;;### (autoloads (print-region lpr-region print-buffer lpr-buffer 16982;;;### (autoloads (print-region lpr-region print-buffer lpr-buffer
16983;;;;;; lpr-command lpr-switches printer-name) "lpr" "lpr.el" (17843 16983;;;;;; lpr-command lpr-switches printer-name) "lpr" "lpr.el" (17842
16984;;;;;; 45610)) 16984;;;;;; 58279))
16985;;; Generated autoloads from lpr.el 16985;;; Generated autoloads from lpr.el
16986 16986
16987(defvar lpr-windows-system (memq system-type (quote (emx win32 w32 mswindows ms-dos windows-nt)))) 16987(defvar lpr-windows-system (memq system-type (quote (emx win32 w32 mswindows ms-dos windows-nt))))
@@ -17075,7 +17075,7 @@ for further customization of the printer command.
17075;;;*** 17075;;;***
17076 17076
17077;;;### (autoloads (ls-lisp-support-shell-wildcards) "ls-lisp" "ls-lisp.el" 17077;;;### (autoloads (ls-lisp-support-shell-wildcards) "ls-lisp" "ls-lisp.el"
17078;;;;;; (17995 6542)) 17078;;;;;; (18006 55796))
17079;;; Generated autoloads from ls-lisp.el 17079;;; Generated autoloads from ls-lisp.el
17080 17080
17081(defvar ls-lisp-support-shell-wildcards t "\ 17081(defvar ls-lisp-support-shell-wildcards t "\
@@ -17087,7 +17087,7 @@ Otherwise they are treated as Emacs regexps (for backward compatibility).")
17087;;;*** 17087;;;***
17088 17088
17089;;;### (autoloads (phases-of-moon) "lunar" "calendar/lunar.el" (17956 17089;;;### (autoloads (phases-of-moon) "lunar" "calendar/lunar.el" (17956
17090;;;;;; 60684)) 17090;;;;;; 13479))
17091;;; Generated autoloads from calendar/lunar.el 17091;;; Generated autoloads from calendar/lunar.el
17092 17092
17093(autoload (quote phases-of-moon) "lunar" "\ 17093(autoload (quote phases-of-moon) "lunar" "\
@@ -17100,8 +17100,8 @@ This function is suitable for execution in a .emacs file.
17100 17100
17101;;;*** 17101;;;***
17102 17102
17103;;;### (autoloads (m4-mode) "m4-mode" "progmodes/m4-mode.el" (17939 17103;;;### (autoloads (m4-mode) "m4-mode" "progmodes/m4-mode.el" (17923
17104;;;;;; 56023)) 17104;;;;;; 63540))
17105;;; Generated autoloads from progmodes/m4-mode.el 17105;;; Generated autoloads from progmodes/m4-mode.el
17106 17106
17107(autoload (quote m4-mode) "m4-mode" "\ 17107(autoload (quote m4-mode) "m4-mode" "\
@@ -17113,7 +17113,7 @@ A major mode to edit m4 macro files.
17113;;;*** 17113;;;***
17114 17114
17115;;;### (autoloads (macroexpand-all) "macroexp" "emacs-lisp/macroexp.el" 17115;;;### (autoloads (macroexpand-all) "macroexp" "emacs-lisp/macroexp.el"
17116;;;;;; (17843 45615)) 17116;;;;;; (17842 54152))
17117;;; Generated autoloads from emacs-lisp/macroexp.el 17117;;; Generated autoloads from emacs-lisp/macroexp.el
17118 17118
17119(autoload (quote macroexpand-all) "macroexp" "\ 17119(autoload (quote macroexpand-all) "macroexp" "\
@@ -17127,7 +17127,7 @@ definitions to shadow the loaded ones for use in file byte-compilation.
17127;;;*** 17127;;;***
17128 17128
17129;;;### (autoloads (apply-macro-to-region-lines kbd-macro-query insert-kbd-macro 17129;;;### (autoloads (apply-macro-to-region-lines kbd-macro-query insert-kbd-macro
17130;;;;;; name-last-kbd-macro) "macros" "macros.el" (17843 45611)) 17130;;;;;; name-last-kbd-macro) "macros" "macros.el" (17842 58279))
17131;;; Generated autoloads from macros.el 17131;;; Generated autoloads from macros.el
17132 17132
17133(autoload (quote name-last-kbd-macro) "macros" "\ 17133(autoload (quote name-last-kbd-macro) "macros" "\
@@ -17216,7 +17216,7 @@ and then select the region of un-tablified names and use
17216;;;*** 17216;;;***
17217 17217
17218;;;### (autoloads (what-domain mail-extract-address-components) "mail-extr" 17218;;;### (autoloads (what-domain mail-extract-address-components) "mail-extr"
17219;;;;;; "mail/mail-extr.el" (17843 45621)) 17219;;;;;; "mail/mail-extr.el" (17842 55035))
17220;;; Generated autoloads from mail/mail-extr.el 17220;;; Generated autoloads from mail/mail-extr.el
17221 17221
17222(autoload (quote mail-extract-address-components) "mail-extr" "\ 17222(autoload (quote mail-extract-address-components) "mail-extr" "\
@@ -17248,7 +17248,7 @@ Convert mail domain DOMAIN to the country it corresponds to.
17248 17248
17249;;;### (autoloads (mail-hist-put-headers-into-history mail-hist-keep-history 17249;;;### (autoloads (mail-hist-put-headers-into-history mail-hist-keep-history
17250;;;;;; mail-hist-enable mail-hist-define-keys) "mail-hist" "mail/mail-hist.el" 17250;;;;;; mail-hist-enable mail-hist-define-keys) "mail-hist" "mail/mail-hist.el"
17251;;;;;; (17843 45621)) 17251;;;;;; (17842 55035))
17252;;; Generated autoloads from mail/mail-hist.el 17252;;; Generated autoloads from mail/mail-hist.el
17253 17253
17254(autoload (quote mail-hist-define-keys) "mail-hist" "\ 17254(autoload (quote mail-hist-define-keys) "mail-hist" "\
@@ -17279,8 +17279,8 @@ This function normally would be called when the message is sent.
17279 17279
17280;;;### (autoloads (mail-fetch-field mail-unquote-printable-region 17280;;;### (autoloads (mail-fetch-field mail-unquote-printable-region
17281;;;;;; mail-unquote-printable mail-quote-printable mail-file-babyl-p 17281;;;;;; mail-unquote-printable mail-quote-printable mail-file-babyl-p
17282;;;;;; mail-use-rfc822) "mail-utils" "mail/mail-utils.el" (17843 17282;;;;;; mail-use-rfc822) "mail-utils" "mail/mail-utils.el" (17842
17283;;;;;; 45621)) 17283;;;;;; 55035))
17284;;; Generated autoloads from mail/mail-utils.el 17284;;; Generated autoloads from mail/mail-utils.el
17285 17285
17286(defvar mail-use-rfc822 nil "\ 17286(defvar mail-use-rfc822 nil "\
@@ -17332,7 +17332,7 @@ If 4th arg LIST is non-nil, return a list of all such fields.
17332;;;*** 17332;;;***
17333 17333
17334;;;### (autoloads (define-mail-abbrev build-mail-abbrevs mail-abbrevs-setup) 17334;;;### (autoloads (define-mail-abbrev build-mail-abbrevs mail-abbrevs-setup)
17335;;;;;; "mailabbrev" "mail/mailabbrev.el" (17988 52353)) 17335;;;;;; "mailabbrev" "mail/mailabbrev.el" (17992 30878))
17336;;; Generated autoloads from mail/mailabbrev.el 17336;;; Generated autoloads from mail/mailabbrev.el
17337 17337
17338(autoload (quote mail-abbrevs-setup) "mailabbrev" "\ 17338(autoload (quote mail-abbrevs-setup) "mailabbrev" "\
@@ -17355,8 +17355,8 @@ If DEFINITION contains multiple addresses, separate them with commas.
17355;;;*** 17355;;;***
17356 17356
17357;;;### (autoloads (mail-complete define-mail-alias expand-mail-aliases 17357;;;### (autoloads (mail-complete define-mail-alias expand-mail-aliases
17358;;;;;; mail-complete-style) "mailalias" "mail/mailalias.el" (17843 17358;;;;;; mail-complete-style) "mailalias" "mail/mailalias.el" (17842
17359;;;;;; 45621)) 17359;;;;;; 55035))
17360;;; Generated autoloads from mail/mailalias.el 17360;;; Generated autoloads from mail/mailalias.el
17361 17361
17362(defvar mail-complete-style (quote angles) "\ 17362(defvar mail-complete-style (quote angles) "\
@@ -17402,7 +17402,7 @@ current header, calls `mail-complete-function' and passes prefix arg if any.
17402;;;*** 17402;;;***
17403 17403
17404;;;### (autoloads (mailclient-send-it) "mailclient" "mail/mailclient.el" 17404;;;### (autoloads (mailclient-send-it) "mailclient" "mail/mailclient.el"
17405;;;;;; (17843 45621)) 17405;;;;;; (17842 55035))
17406;;; Generated autoloads from mail/mailclient.el 17406;;; Generated autoloads from mail/mailclient.el
17407 17407
17408(autoload (quote mailclient-send-it) "mailclient" "\ 17408(autoload (quote mailclient-send-it) "mailclient" "\
@@ -17416,7 +17416,7 @@ The mail client is taken to be the handler of mailto URLs.
17416 17416
17417;;;### (autoloads (makefile-imake-mode makefile-bsdmake-mode makefile-makepp-mode 17417;;;### (autoloads (makefile-imake-mode makefile-bsdmake-mode makefile-makepp-mode
17418;;;;;; makefile-gmake-mode makefile-automake-mode makefile-mode) 17418;;;;;; makefile-gmake-mode makefile-automake-mode makefile-mode)
17419;;;;;; "make-mode" "progmodes/make-mode.el" (17843 45628)) 17419;;;;;; "make-mode" "progmodes/make-mode.el" (17842 56332))
17420;;; Generated autoloads from progmodes/make-mode.el 17420;;; Generated autoloads from progmodes/make-mode.el
17421 17421
17422(autoload (quote makefile-mode) "make-mode" "\ 17422(autoload (quote makefile-mode) "make-mode" "\
@@ -17533,8 +17533,8 @@ An adapted `makefile-mode' that knows about imake.
17533 17533
17534;;;*** 17534;;;***
17535 17535
17536;;;### (autoloads (make-command-summary) "makesum" "makesum.el" (17843 17536;;;### (autoloads (make-command-summary) "makesum" "makesum.el" (17842
17537;;;;;; 45611)) 17537;;;;;; 58279))
17538;;; Generated autoloads from makesum.el 17538;;; Generated autoloads from makesum.el
17539 17539
17540(autoload (quote make-command-summary) "makesum" "\ 17540(autoload (quote make-command-summary) "makesum" "\
@@ -17545,7 +17545,7 @@ Previous contents of that buffer are killed first.
17545 17545
17546;;;*** 17546;;;***
17547 17547
17548;;;### (autoloads (man-follow man) "man" "man.el" (17939 56017)) 17548;;;### (autoloads (man-follow man) "man" "man.el" (17992 30877))
17549;;; Generated autoloads from man.el 17549;;; Generated autoloads from man.el
17550 17550
17551(defalias (quote manual-entry) (quote man)) 17551(defalias (quote manual-entry) (quote man))
@@ -17572,7 +17572,7 @@ Get a Un*x manual page of the item under point and put it in a buffer.
17572 17572
17573;;;*** 17573;;;***
17574 17574
17575;;;### (autoloads (master-mode) "master" "master.el" (17843 45611)) 17575;;;### (autoloads (master-mode) "master" "master.el" (17842 58279))
17576;;; Generated autoloads from master.el 17576;;; Generated autoloads from master.el
17577 17577
17578(autoload (quote master-mode) "master" "\ 17578(autoload (quote master-mode) "master" "\
@@ -17595,14 +17595,14 @@ yourself the value of `master-of' by calling `master-show-slave'.
17595;;;*** 17595;;;***
17596 17596
17597;;;### (autoloads (menu-bar-mode) "menu-bar" "menu-bar.el" (17942 17597;;;### (autoloads (menu-bar-mode) "menu-bar" "menu-bar.el" (17942
17598;;;;;; 37801)) 17598;;;;;; 63381))
17599;;; Generated autoloads from menu-bar.el 17599;;; Generated autoloads from menu-bar.el
17600 17600
17601(put (quote menu-bar-mode) (quote standard-value) (quote (t))) 17601(put (quote menu-bar-mode) (quote standard-value) (quote (t)))
17602 17602
17603(defvar menu-bar-mode nil "\ 17603(defvar menu-bar-mode nil "\
17604Non-nil if Menu-Bar mode is enabled. 17604Non-nil if Menu-Bar mode is enabled.
17605See the command `menu-bar-mode' for a description of this minor-mode. 17605See the command `menu-bar-mode' for a description of this minor mode.
17606Setting this variable directly does not take effect; 17606Setting this variable directly does not take effect;
17607either customize it (see the info node `Easy Customization') 17607either customize it (see the info node `Easy Customization')
17608or call the function `menu-bar-mode'.") 17608or call the function `menu-bar-mode'.")
@@ -17630,7 +17630,7 @@ turn on menu bars; otherwise, turn off menu bars.
17630;;;;;; message-cite-function message-yank-prefix message-citation-line-function 17630;;;;;; message-cite-function message-yank-prefix message-citation-line-function
17631;;;;;; message-send-mail-function message-user-organization-file 17631;;;;;; message-send-mail-function message-user-organization-file
17632;;;;;; message-signature-separator message-from-style) "message" 17632;;;;;; message-signature-separator message-from-style) "message"
17633;;;;;; "gnus/message.el" (17949 5807)) 17633;;;;;; "gnus/message.el" (18010 19867))
17634;;; Generated autoloads from gnus/message.el 17634;;; Generated autoloads from gnus/message.el
17635 17635
17636(defvar message-from-style (quote default) "\ 17636(defvar message-from-style (quote default) "\
@@ -17886,7 +17886,7 @@ which specify the range to operate on.
17886;;;*** 17886;;;***
17887 17887
17888;;;### (autoloads (metapost-mode metafont-mode) "meta-mode" "progmodes/meta-mode.el" 17888;;;### (autoloads (metapost-mode metafont-mode) "meta-mode" "progmodes/meta-mode.el"
17889;;;;;; (17843 45629)) 17889;;;;;; (17842 56332))
17890;;; Generated autoloads from progmodes/meta-mode.el 17890;;; Generated autoloads from progmodes/meta-mode.el
17891 17891
17892(autoload (quote metafont-mode) "meta-mode" "\ 17892(autoload (quote metafont-mode) "meta-mode" "\
@@ -17913,7 +17913,7 @@ Turning on MetaPost mode calls the value of the variable
17913 17913
17914;;;### (autoloads (metamail-region metamail-buffer metamail-interpret-body 17914;;;### (autoloads (metamail-region metamail-buffer metamail-interpret-body
17915;;;;;; metamail-interpret-header) "metamail" "mail/metamail.el" 17915;;;;;; metamail-interpret-header) "metamail" "mail/metamail.el"
17916;;;;;; (17843 45621)) 17916;;;;;; (17842 55035))
17917;;; Generated autoloads from mail/metamail.el 17917;;; Generated autoloads from mail/metamail.el
17918 17918
17919(autoload (quote metamail-interpret-header) "metamail" "\ 17919(autoload (quote metamail-interpret-header) "metamail" "\
@@ -17958,7 +17958,7 @@ redisplayed as output is inserted.
17958 17958
17959;;;### (autoloads (mh-fully-kill-draft mh-send-letter mh-user-agent-compose 17959;;;### (autoloads (mh-fully-kill-draft mh-send-letter mh-user-agent-compose
17960;;;;;; mh-smail-batch mh-smail-other-window mh-smail) "mh-comp" 17960;;;;;; mh-smail-batch mh-smail-other-window mh-smail) "mh-comp"
17961;;;;;; "mh-e/mh-comp.el" (17843 45622)) 17961;;;;;; "mh-e/mh-comp.el" (17842 55144))
17962;;; Generated autoloads from mh-e/mh-comp.el 17962;;; Generated autoloads from mh-e/mh-comp.el
17963 17963
17964(autoload (quote mh-smail) "mh-comp" "\ 17964(autoload (quote mh-smail) "mh-comp" "\
@@ -18045,7 +18045,7 @@ delete the draft message.
18045 18045
18046;;;*** 18046;;;***
18047 18047
18048;;;### (autoloads (mh-version) "mh-e" "mh-e/mh-e.el" (17843 45622)) 18048;;;### (autoloads (mh-version) "mh-e" "mh-e/mh-e.el" (17842 55144))
18049;;; Generated autoloads from mh-e/mh-e.el 18049;;; Generated autoloads from mh-e/mh-e.el
18050 18050
18051(put (quote mh-progs) (quote risky-local-variable) t) 18051(put (quote mh-progs) (quote risky-local-variable) t)
@@ -18062,7 +18062,7 @@ Display version information about MH-E and the MH mail handling system.
18062;;;*** 18062;;;***
18063 18063
18064;;;### (autoloads (mh-folder-mode mh-nmail mh-rmail) "mh-folder" 18064;;;### (autoloads (mh-folder-mode mh-nmail mh-rmail) "mh-folder"
18065;;;;;; "mh-e/mh-folder.el" (17843 45622)) 18065;;;;;; "mh-e/mh-folder.el" (17842 55144))
18066;;; Generated autoloads from mh-e/mh-folder.el 18066;;; Generated autoloads from mh-e/mh-folder.el
18067 18067
18068(autoload (quote mh-rmail) "mh-folder" "\ 18068(autoload (quote mh-rmail) "mh-folder" "\
@@ -18144,7 +18144,7 @@ perform the operation on all messages in that region.
18144;;;*** 18144;;;***
18145 18145
18146;;;### (autoloads (midnight-delay-set clean-buffer-list) "midnight" 18146;;;### (autoloads (midnight-delay-set clean-buffer-list) "midnight"
18147;;;;;; "midnight.el" (17843 45611)) 18147;;;;;; "midnight.el" (17842 58279))
18148;;; Generated autoloads from midnight.el 18148;;; Generated autoloads from midnight.el
18149 18149
18150(autoload (quote clean-buffer-list) "midnight" "\ 18150(autoload (quote clean-buffer-list) "midnight" "\
@@ -18171,12 +18171,12 @@ to its second argument TM.
18171;;;*** 18171;;;***
18172 18172
18173;;;### (autoloads (minibuffer-electric-default-mode) "minibuf-eldef" 18173;;;### (autoloads (minibuffer-electric-default-mode) "minibuf-eldef"
18174;;;;;; "minibuf-eldef.el" (17843 45611)) 18174;;;;;; "minibuf-eldef.el" (17842 58279))
18175;;; Generated autoloads from minibuf-eldef.el 18175;;; Generated autoloads from minibuf-eldef.el
18176 18176
18177(defvar minibuffer-electric-default-mode nil "\ 18177(defvar minibuffer-electric-default-mode nil "\
18178Non-nil if Minibuffer-Electric-Default mode is enabled. 18178Non-nil if Minibuffer-Electric-Default mode is enabled.
18179See the command `minibuffer-electric-default-mode' for a description of this minor-mode. 18179See the command `minibuffer-electric-default-mode' for a description of this minor mode.
18180Setting this variable directly does not take effect; 18180Setting this variable directly does not take effect;
18181either customize it (see the info node `Easy Customization') 18181either customize it (see the info node `Easy Customization')
18182or call the function `minibuffer-electric-default-mode'.") 18182or call the function `minibuffer-electric-default-mode'.")
@@ -18199,7 +18199,7 @@ Returns non-nil if the new state is enabled.
18199;;;*** 18199;;;***
18200 18200
18201;;;### (autoloads (mixal-mode) "mixal-mode" "progmodes/mixal-mode.el" 18201;;;### (autoloads (mixal-mode) "mixal-mode" "progmodes/mixal-mode.el"
18202;;;;;; (17843 45629)) 18202;;;;;; (17842 56332))
18203;;; Generated autoloads from progmodes/mixal-mode.el 18203;;; Generated autoloads from progmodes/mixal-mode.el
18204 18204
18205(autoload (quote mixal-mode) "mixal-mode" "\ 18205(autoload (quote mixal-mode) "mixal-mode" "\
@@ -18214,7 +18214,7 @@ Major mode for the mixal asm language.
18214 18214
18215;;;### (autoloads (malayalam-composition-function malayalam-post-read-conversion 18215;;;### (autoloads (malayalam-composition-function malayalam-post-read-conversion
18216;;;;;; malayalam-compose-region) "mlm-util" "language/mlm-util.el" 18216;;;;;; malayalam-compose-region) "mlm-util" "language/mlm-util.el"
18217;;;;;; (17843 45620)) 18217;;;;;; (17842 58278))
18218;;; Generated autoloads from language/mlm-util.el 18218;;; Generated autoloads from language/mlm-util.el
18219 18219
18220(autoload (quote malayalam-compose-region) "mlm-util" "\ 18220(autoload (quote malayalam-compose-region) "mlm-util" "\
@@ -18237,7 +18237,7 @@ PATTERN regexp.
18237;;;*** 18237;;;***
18238 18238
18239;;;### (autoloads (mm-inline-external-body mm-extern-cache-contents) 18239;;;### (autoloads (mm-inline-external-body mm-extern-cache-contents)
18240;;;;;; "mm-extern" "gnus/mm-extern.el" (17843 45617)) 18240;;;;;; "mm-extern" "gnus/mm-extern.el" (17842 54741))
18241;;; Generated autoloads from gnus/mm-extern.el 18241;;; Generated autoloads from gnus/mm-extern.el
18242 18242
18243(autoload (quote mm-extern-cache-contents) "mm-extern" "\ 18243(autoload (quote mm-extern-cache-contents) "mm-extern" "\
@@ -18256,7 +18256,7 @@ If NO-DISPLAY is nil, display it. Otherwise, do nothing after replacing.
18256;;;*** 18256;;;***
18257 18257
18258;;;### (autoloads (mm-inline-partial) "mm-partial" "gnus/mm-partial.el" 18258;;;### (autoloads (mm-inline-partial) "mm-partial" "gnus/mm-partial.el"
18259;;;;;; (17843 45617)) 18259;;;;;; (17842 54741))
18260;;; Generated autoloads from gnus/mm-partial.el 18260;;; Generated autoloads from gnus/mm-partial.el
18261 18261
18262(autoload (quote mm-inline-partial) "mm-partial" "\ 18262(autoload (quote mm-inline-partial) "mm-partial" "\
@@ -18270,7 +18270,7 @@ If NO-DISPLAY is nil, display it. Otherwise, do nothing after replacing.
18270;;;*** 18270;;;***
18271 18271
18272;;;### (autoloads (mm-url-insert-file-contents-external mm-url-insert-file-contents) 18272;;;### (autoloads (mm-url-insert-file-contents-external mm-url-insert-file-contents)
18273;;;;;; "mm-url" "gnus/mm-url.el" (17843 45617)) 18273;;;;;; "mm-url" "gnus/mm-url.el" (17842 54741))
18274;;; Generated autoloads from gnus/mm-url.el 18274;;; Generated autoloads from gnus/mm-url.el
18275 18275
18276(autoload (quote mm-url-insert-file-contents) "mm-url" "\ 18276(autoload (quote mm-url-insert-file-contents) "mm-url" "\
@@ -18287,7 +18287,7 @@ Insert file contents of URL using `mm-url-program'.
18287;;;*** 18287;;;***
18288 18288
18289;;;### (autoloads (mm-uu-dissect-text-parts mm-uu-dissect) "mm-uu" 18289;;;### (autoloads (mm-uu-dissect-text-parts mm-uu-dissect) "mm-uu"
18290;;;;;; "gnus/mm-uu.el" (17843 45617)) 18290;;;;;; "gnus/mm-uu.el" (17842 54741))
18291;;; Generated autoloads from gnus/mm-uu.el 18291;;; Generated autoloads from gnus/mm-uu.el
18292 18292
18293(autoload (quote mm-uu-dissect) "mm-uu" "\ 18293(autoload (quote mm-uu-dissect) "mm-uu" "\
@@ -18307,7 +18307,7 @@ Assume text has been decoded if DECODED is non-nil.
18307;;;*** 18307;;;***
18308 18308
18309;;;### (autoloads (mml1991-sign mml1991-encrypt) "mml1991" "gnus/mml1991.el" 18309;;;### (autoloads (mml1991-sign mml1991-encrypt) "mml1991" "gnus/mml1991.el"
18310;;;;;; (17843 45617)) 18310;;;;;; (17842 54741))
18311;;; Generated autoloads from gnus/mml1991.el 18311;;; Generated autoloads from gnus/mml1991.el
18312 18312
18313(autoload (quote mml1991-encrypt) "mml1991" "\ 18313(autoload (quote mml1991-encrypt) "mml1991" "\
@@ -18324,7 +18324,7 @@ Not documented
18324 18324
18325;;;### (autoloads (mml2015-self-encrypt mml2015-sign mml2015-encrypt 18325;;;### (autoloads (mml2015-self-encrypt mml2015-sign mml2015-encrypt
18326;;;;;; mml2015-verify-test mml2015-verify mml2015-decrypt-test mml2015-decrypt) 18326;;;;;; mml2015-verify-test mml2015-verify mml2015-decrypt-test mml2015-decrypt)
18327;;;;;; "mml2015" "gnus/mml2015.el" (17843 45617)) 18327;;;;;; "mml2015" "gnus/mml2015.el" (17842 54741))
18328;;; Generated autoloads from gnus/mml2015.el 18328;;; Generated autoloads from gnus/mml2015.el
18329 18329
18330(autoload (quote mml2015-decrypt) "mml2015" "\ 18330(autoload (quote mml2015-decrypt) "mml2015" "\
@@ -18365,7 +18365,7 @@ Not documented
18365;;;*** 18365;;;***
18366 18366
18367;;;### (autoloads (modula-2-mode) "modula2" "progmodes/modula2.el" 18367;;;### (autoloads (modula-2-mode) "modula2" "progmodes/modula2.el"
18368;;;;;; (17276 54295)) 18368;;;;;; (17276 13069))
18369;;; Generated autoloads from progmodes/modula2.el 18369;;; Generated autoloads from progmodes/modula2.el
18370 18370
18371(autoload (quote modula-2-mode) "modula2" "\ 18371(autoload (quote modula-2-mode) "modula2" "\
@@ -18397,7 +18397,7 @@ followed by the first character of the construct.
18397;;;*** 18397;;;***
18398 18398
18399;;;### (autoloads (unmorse-region morse-region) "morse" "play/morse.el" 18399;;;### (autoloads (unmorse-region morse-region) "morse" "play/morse.el"
18400;;;;;; (17843 45626)) 18400;;;;;; (17842 55395))
18401;;; Generated autoloads from play/morse.el 18401;;; Generated autoloads from play/morse.el
18402 18402
18403(autoload (quote morse-region) "morse" "\ 18403(autoload (quote morse-region) "morse" "\
@@ -18412,13 +18412,13 @@ Convert morse coded text in region to ordinary ASCII text.
18412 18412
18413;;;*** 18413;;;***
18414 18414
18415;;;### (autoloads (mouse-sel-mode) "mouse-sel" "mouse-sel.el" (17843 18415;;;### (autoloads (mouse-sel-mode) "mouse-sel" "mouse-sel.el" (17842
18416;;;;;; 45611)) 18416;;;;;; 58279))
18417;;; Generated autoloads from mouse-sel.el 18417;;; Generated autoloads from mouse-sel.el
18418 18418
18419(defvar mouse-sel-mode nil "\ 18419(defvar mouse-sel-mode nil "\
18420Non-nil if Mouse-Sel mode is enabled. 18420Non-nil if Mouse-Sel mode is enabled.
18421See the command `mouse-sel-mode' for a description of this minor-mode. 18421See the command `mouse-sel-mode' for a description of this minor mode.
18422Setting this variable directly does not take effect; 18422Setting this variable directly does not take effect;
18423either customize it (see the info node `Easy Customization') 18423either customize it (see the info node `Easy Customization')
18424or call the function `mouse-sel-mode'.") 18424or call the function `mouse-sel-mode'.")
@@ -18465,7 +18465,7 @@ primary selection and region.
18465 18465
18466;;;*** 18466;;;***
18467 18467
18468;;;### (autoloads (mpuz) "mpuz" "play/mpuz.el" (17939 56022)) 18468;;;### (autoloads (mpuz) "mpuz" "play/mpuz.el" (17862 6157))
18469;;; Generated autoloads from play/mpuz.el 18469;;; Generated autoloads from play/mpuz.el
18470 18470
18471(autoload (quote mpuz) "mpuz" "\ 18471(autoload (quote mpuz) "mpuz" "\
@@ -18475,7 +18475,7 @@ Multiplication puzzle with GNU Emacs.
18475 18475
18476;;;*** 18476;;;***
18477 18477
18478;;;### (autoloads (msb-mode) "msb" "msb.el" (17995 6542)) 18478;;;### (autoloads (msb-mode) "msb" "msb.el" (18006 55796))
18479;;; Generated autoloads from msb.el 18479;;; Generated autoloads from msb.el
18480 18480
18481(defvar msb-mode nil "\ 18481(defvar msb-mode nil "\
@@ -18502,7 +18502,7 @@ different buffer menu using the function `msb'.
18502;;;;;; describe-current-coding-system describe-current-coding-system-briefly 18502;;;;;; describe-current-coding-system describe-current-coding-system-briefly
18503;;;;;; describe-coding-system describe-character-set list-charset-chars 18503;;;;;; describe-coding-system describe-character-set list-charset-chars
18504;;;;;; read-charset list-character-sets) "mule-diag" "international/mule-diag.el" 18504;;;;;; read-charset list-character-sets) "mule-diag" "international/mule-diag.el"
18505;;;;;; (17843 45619)) 18505;;;;;; (17842 54888))
18506;;; Generated autoloads from international/mule-diag.el 18506;;; Generated autoloads from international/mule-diag.el
18507 18507
18508(defvar non-iso-charset-alist (\` ((mac-roman (ascii latin-iso8859-1 mule-unicode-2500-33ff mule-unicode-0100-24ff mule-unicode-e000-ffff) mac-roman-decoder ((0 255))) (viscii (ascii vietnamese-viscii-lower vietnamese-viscii-upper) viet-viscii-nonascii-translation-table ((0 255))) (vietnamese-tcvn (ascii vietnamese-viscii-lower vietnamese-viscii-upper) viet-tcvn-nonascii-translation-table ((0 255))) (koi8-r (ascii cyrillic-iso8859-5) cyrillic-koi8-r-nonascii-translation-table ((32 255))) (alternativnyj (ascii cyrillic-iso8859-5) cyrillic-alternativnyj-nonascii-translation-table ((32 255))) (koi8-u (ascii cyrillic-iso8859-5 mule-unicode-0100-24ff) cyrillic-koi8-u-nonascii-translation-table ((32 255))) (big5 (ascii chinese-big5-1 chinese-big5-2) decode-big5-char ((32 127) ((161 254) 64 126 161 254))) (sjis (ascii katakana-jisx0201 japanese-jisx0208) decode-sjis-char ((32 127 161 223) ((129 159 224 239) 64 126 128 252))))) "\ 18508(defvar non-iso-charset-alist (\` ((mac-roman (ascii latin-iso8859-1 mule-unicode-2500-33ff mule-unicode-0100-24ff mule-unicode-e000-ffff) mac-roman-decoder ((0 255))) (viscii (ascii vietnamese-viscii-lower vietnamese-viscii-upper) viet-viscii-nonascii-translation-table ((0 255))) (vietnamese-tcvn (ascii vietnamese-viscii-lower vietnamese-viscii-upper) viet-tcvn-nonascii-translation-table ((0 255))) (koi8-r (ascii cyrillic-iso8859-5) cyrillic-koi8-r-nonascii-translation-table ((32 255))) (alternativnyj (ascii cyrillic-iso8859-5) cyrillic-alternativnyj-nonascii-translation-table ((32 255))) (koi8-u (ascii cyrillic-iso8859-5 mule-unicode-0100-24ff) cyrillic-koi8-u-nonascii-translation-table ((32 255))) (big5 (ascii chinese-big5-1 chinese-big5-2) decode-big5-char ((32 127) ((161 254) 64 126 161 254))) (sjis (ascii katakana-jisx0201 japanese-jisx0208) decode-sjis-char ((32 127 161 223) ((129 159 224 239) 64 126 128 252))))) "\
@@ -18676,7 +18676,7 @@ system which uses fontsets).
18676;;;;;; coding-system-translation-table-for-decode coding-system-pre-write-conversion 18676;;;;;; coding-system-translation-table-for-decode coding-system-pre-write-conversion
18677;;;;;; coding-system-post-read-conversion lookup-nested-alist set-nested-alist 18677;;;;;; coding-system-post-read-conversion lookup-nested-alist set-nested-alist
18678;;;;;; truncate-string-to-width store-substring string-to-sequence) 18678;;;;;; truncate-string-to-width store-substring string-to-sequence)
18679;;;;;; "mule-util" "international/mule-util.el" (17843 45619)) 18679;;;;;; "mule-util" "international/mule-util.el" (17842 54888))
18680;;; Generated autoloads from international/mule-util.el 18680;;; Generated autoloads from international/mule-util.el
18681 18681
18682(autoload (quote string-to-sequence) "mule-util" "\ 18682(autoload (quote string-to-sequence) "mule-util" "\
@@ -18805,12 +18805,12 @@ basis, this may not be accurate.
18805;;;*** 18805;;;***
18806 18806
18807;;;### (autoloads (mwheel-install mouse-wheel-mode) "mwheel" "mwheel.el" 18807;;;### (autoloads (mwheel-install mouse-wheel-mode) "mwheel" "mwheel.el"
18808;;;;;; (17843 45611)) 18808;;;;;; (17842 58279))
18809;;; Generated autoloads from mwheel.el 18809;;; Generated autoloads from mwheel.el
18810 18810
18811(defvar mouse-wheel-mode nil "\ 18811(defvar mouse-wheel-mode nil "\
18812Non-nil if Mouse-Wheel mode is enabled. 18812Non-nil if Mouse-Wheel mode is enabled.
18813See the command `mouse-wheel-mode' for a description of this minor-mode. 18813See the command `mouse-wheel-mode' for a description of this minor mode.
18814Setting this variable directly does not take effect; 18814Setting this variable directly does not take effect;
18815either customize it (see the info node `Easy Customization') 18815either customize it (see the info node `Easy Customization')
18816or call the function `mouse-wheel-mode'.") 18816or call the function `mouse-wheel-mode'.")
@@ -18834,7 +18834,7 @@ Enable mouse wheel support.
18834;;;### (autoloads (network-connection network-connection-to-service 18834;;;### (autoloads (network-connection network-connection-to-service
18835;;;;;; whois-reverse-lookup whois finger ftp run-dig dns-lookup-host 18835;;;;;; whois-reverse-lookup whois finger ftp run-dig dns-lookup-host
18836;;;;;; nslookup nslookup-host route arp netstat ipconfig ping traceroute) 18836;;;;;; nslookup nslookup-host route arp netstat ipconfig ping traceroute)
18837;;;;;; "net-utils" "net/net-utils.el" (17939 56022)) 18837;;;;;; "net-utils" "net/net-utils.el" (17891 7215))
18838;;; Generated autoloads from net/net-utils.el 18838;;; Generated autoloads from net/net-utils.el
18839 18839
18840(autoload (quote traceroute) "net-utils" "\ 18840(autoload (quote traceroute) "net-utils" "\
@@ -18930,7 +18930,7 @@ Open a network connection to HOST on PORT.
18930;;;;;; uncomment-region comment-kill comment-set-column comment-indent 18930;;;;;; uncomment-region comment-kill comment-set-column comment-indent
18931;;;;;; comment-indent-default comment-normalize-vars comment-multi-line 18931;;;;;; comment-indent-default comment-normalize-vars comment-multi-line
18932;;;;;; comment-padding comment-style comment-column) "newcomment" 18932;;;;;; comment-padding comment-style comment-column) "newcomment"
18933;;;;;; "newcomment.el" (17939 56017)) 18933;;;;;; "newcomment.el" (17992 30877))
18934;;; Generated autoloads from newcomment.el 18934;;; Generated autoloads from newcomment.el
18935 18935
18936(defalias (quote indent-for-comment) (quote comment-indent)) 18936(defalias (quote indent-for-comment) (quote comment-indent))
@@ -19126,7 +19126,7 @@ unless optional argument SOFT is non-nil.
19126 19126
19127;;;### (autoloads (newsticker-show-news newsticker-start-ticker newsticker-start 19127;;;### (autoloads (newsticker-show-news newsticker-start-ticker newsticker-start
19128;;;;;; newsticker-ticker-running-p newsticker-running-p) "newsticker" 19128;;;;;; newsticker-ticker-running-p newsticker-running-p) "newsticker"
19129;;;;;; "net/newsticker.el" (17939 56022)) 19129;;;;;; "net/newsticker.el" (17873 44590))
19130;;; Generated autoloads from net/newsticker.el 19130;;; Generated autoloads from net/newsticker.el
19131 19131
19132(autoload (quote newsticker-running-p) "newsticker" "\ 19132(autoload (quote newsticker-running-p) "newsticker" "\
@@ -19168,7 +19168,7 @@ Switch to newsticker buffer. You may want to bind this to a key.
19168;;;*** 19168;;;***
19169 19169
19170;;;### (autoloads (nndiary-generate-nov-databases) "nndiary" "gnus/nndiary.el" 19170;;;### (autoloads (nndiary-generate-nov-databases) "nndiary" "gnus/nndiary.el"
19171;;;;;; (17988 52353)) 19171;;;;;; (17992 30878))
19172;;; Generated autoloads from gnus/nndiary.el 19172;;; Generated autoloads from gnus/nndiary.el
19173 19173
19174(autoload (quote nndiary-generate-nov-databases) "nndiary" "\ 19174(autoload (quote nndiary-generate-nov-databases) "nndiary" "\
@@ -19178,8 +19178,8 @@ Generate NOV databases in all nndiary directories.
19178 19178
19179;;;*** 19179;;;***
19180 19180
19181;;;### (autoloads (nndoc-add-type) "nndoc" "gnus/nndoc.el" (17843 19181;;;### (autoloads (nndoc-add-type) "nndoc" "gnus/nndoc.el" (17842
19182;;;;;; 45617)) 19182;;;;;; 54741))
19183;;; Generated autoloads from gnus/nndoc.el 19183;;; Generated autoloads from gnus/nndoc.el
19184 19184
19185(autoload (quote nndoc-add-type) "nndoc" "\ 19185(autoload (quote nndoc-add-type) "nndoc" "\
@@ -19194,7 +19194,7 @@ symbol in the alist.
19194;;;*** 19194;;;***
19195 19195
19196;;;### (autoloads (nnfolder-generate-active-file) "nnfolder" "gnus/nnfolder.el" 19196;;;### (autoloads (nnfolder-generate-active-file) "nnfolder" "gnus/nnfolder.el"
19197;;;;;; (17843 45617)) 19197;;;;;; (17842 54741))
19198;;; Generated autoloads from gnus/nnfolder.el 19198;;; Generated autoloads from gnus/nnfolder.el
19199 19199
19200(autoload (quote nnfolder-generate-active-file) "nnfolder" "\ 19200(autoload (quote nnfolder-generate-active-file) "nnfolder" "\
@@ -19206,7 +19206,7 @@ This command does not work if you use short group names.
19206;;;*** 19206;;;***
19207 19207
19208;;;### (autoloads (nnkiboze-generate-groups) "nnkiboze" "gnus/nnkiboze.el" 19208;;;### (autoloads (nnkiboze-generate-groups) "nnkiboze" "gnus/nnkiboze.el"
19209;;;;;; (17843 45617)) 19209;;;;;; (17842 54741))
19210;;; Generated autoloads from gnus/nnkiboze.el 19210;;; Generated autoloads from gnus/nnkiboze.el
19211 19211
19212(autoload (quote nnkiboze-generate-groups) "nnkiboze" "\ 19212(autoload (quote nnkiboze-generate-groups) "nnkiboze" "\
@@ -19218,7 +19218,7 @@ Finds out what articles are to be part of the nnkiboze groups.
19218;;;*** 19218;;;***
19219 19219
19220;;;### (autoloads (nnml-generate-nov-databases) "nnml" "gnus/nnml.el" 19220;;;### (autoloads (nnml-generate-nov-databases) "nnml" "gnus/nnml.el"
19221;;;;;; (17843 45617)) 19221;;;;;; (17842 54741))
19222;;; Generated autoloads from gnus/nnml.el 19222;;; Generated autoloads from gnus/nnml.el
19223 19223
19224(autoload (quote nnml-generate-nov-databases) "nnml" "\ 19224(autoload (quote nnml-generate-nov-databases) "nnml" "\
@@ -19229,7 +19229,7 @@ Generate NOV databases in all nnml directories.
19229;;;*** 19229;;;***
19230 19230
19231;;;### (autoloads (nnsoup-revert-variables nnsoup-set-variables nnsoup-pack-replies) 19231;;;### (autoloads (nnsoup-revert-variables nnsoup-set-variables nnsoup-pack-replies)
19232;;;;;; "nnsoup" "gnus/nnsoup.el" (17843 45617)) 19232;;;;;; "nnsoup" "gnus/nnsoup.el" (17842 54741))
19233;;; Generated autoloads from gnus/nnsoup.el 19233;;; Generated autoloads from gnus/nnsoup.el
19234 19234
19235(autoload (quote nnsoup-pack-replies) "nnsoup" "\ 19235(autoload (quote nnsoup-pack-replies) "nnsoup" "\
@@ -19250,7 +19250,7 @@ Revert posting and mailing methods to the standard Emacs methods.
19250;;;*** 19250;;;***
19251 19251
19252;;;### (autoloads (disable-command enable-command disabled-command-function) 19252;;;### (autoloads (disable-command enable-command disabled-command-function)
19253;;;;;; "novice" "novice.el" (17843 45611)) 19253;;;;;; "novice" "novice.el" (17842 58279))
19254;;; Generated autoloads from novice.el 19254;;; Generated autoloads from novice.el
19255 19255
19256(defvar disabled-command-function (quote disabled-command-function) "\ 19256(defvar disabled-command-function (quote disabled-command-function) "\
@@ -19283,7 +19283,7 @@ to future sessions.
19283;;;*** 19283;;;***
19284 19284
19285;;;### (autoloads (nroff-mode) "nroff-mode" "textmodes/nroff-mode.el" 19285;;;### (autoloads (nroff-mode) "nroff-mode" "textmodes/nroff-mode.el"
19286;;;;;; (17843 45630)) 19286;;;;;; (17842 58277))
19287;;; Generated autoloads from textmodes/nroff-mode.el 19287;;; Generated autoloads from textmodes/nroff-mode.el
19288 19288
19289(autoload (quote nroff-mode) "nroff-mode" "\ 19289(autoload (quote nroff-mode) "nroff-mode" "\
@@ -19298,7 +19298,7 @@ closing requests for requests that are used in matched pairs.
19298;;;*** 19298;;;***
19299 19299
19300;;;### (autoloads (octave-help) "octave-hlp" "progmodes/octave-hlp.el" 19300;;;### (autoloads (octave-help) "octave-hlp" "progmodes/octave-hlp.el"
19301;;;;;; (17843 45629)) 19301;;;;;; (17842 56332))
19302;;; Generated autoloads from progmodes/octave-hlp.el 19302;;; Generated autoloads from progmodes/octave-hlp.el
19303 19303
19304(autoload (quote octave-help) "octave-hlp" "\ 19304(autoload (quote octave-help) "octave-hlp" "\
@@ -19312,7 +19312,7 @@ If KEY is not a string, prompt for it with completion.
19312;;;*** 19312;;;***
19313 19313
19314;;;### (autoloads (inferior-octave) "octave-inf" "progmodes/octave-inf.el" 19314;;;### (autoloads (inferior-octave) "octave-inf" "progmodes/octave-inf.el"
19315;;;;;; (17843 45629)) 19315;;;;;; (17842 56332))
19316;;; Generated autoloads from progmodes/octave-inf.el 19316;;; Generated autoloads from progmodes/octave-inf.el
19317 19317
19318(autoload (quote inferior-octave) "octave-inf" "\ 19318(autoload (quote inferior-octave) "octave-inf" "\
@@ -19335,7 +19335,7 @@ startup file, `~/.emacs-octave'.
19335;;;*** 19335;;;***
19336 19336
19337;;;### (autoloads (octave-mode) "octave-mod" "progmodes/octave-mod.el" 19337;;;### (autoloads (octave-mode) "octave-mod" "progmodes/octave-mod.el"
19338;;;;;; (17843 45629)) 19338;;;;;; (17842 56332))
19339;;; Generated autoloads from progmodes/octave-mod.el 19339;;; Generated autoloads from progmodes/octave-mod.el
19340 19340
19341(autoload (quote octave-mode) "octave-mod" "\ 19341(autoload (quote octave-mode) "octave-mod" "\
@@ -19439,7 +19439,7 @@ including a reproducible test case and send the message.
19439;;;;;; org-remember-handler org-remember org-remember-apply-template 19439;;;;;; org-remember-handler org-remember org-remember-apply-template
19440;;;;;; org-remember-annotation org-store-link orgtbl-mode turn-on-orgtbl 19440;;;;;; org-remember-annotation org-store-link orgtbl-mode turn-on-orgtbl
19441;;;;;; org-global-cycle org-cycle org-mode) "org" "textmodes/org.el" 19441;;;;;; org-global-cycle org-cycle org-mode) "org" "textmodes/org.el"
19442;;;;;; (17939 56024)) 19442;;;;;; (17922 37459))
19443;;; Generated autoloads from textmodes/org.el 19443;;; Generated autoloads from textmodes/org.el
19444 19444
19445(autoload (quote org-mode) "org" "\ 19445(autoload (quote org-mode) "org" "\
@@ -19714,7 +19714,7 @@ The file is stored under the name `org-combined-agenda-icalendar-file'.
19714;;;*** 19714;;;***
19715 19715
19716;;;### (autoloads (outline-minor-mode outline-mode) "outline" "outline.el" 19716;;;### (autoloads (outline-minor-mode outline-mode) "outline" "outline.el"
19717;;;;;; (17950 55946)) 19717;;;;;; (17952 11093))
19718;;; Generated autoloads from outline.el 19718;;; Generated autoloads from outline.el
19719(put 'outline-regexp 'safe-local-variable 'string-or-null-p) 19719(put 'outline-regexp 'safe-local-variable 'string-or-null-p)
19720 19720
@@ -19770,8 +19770,8 @@ See the command `outline-mode' for more information on this mode.
19770 19770
19771;;;*** 19771;;;***
19772 19772
19773;;;### (autoloads nil "paragraphs" "textmodes/paragraphs.el" (17843 19773;;;### (autoloads nil "paragraphs" "textmodes/paragraphs.el" (17842
19774;;;;;; 45630)) 19774;;;;;; 58277))
19775;;; Generated autoloads from textmodes/paragraphs.el 19775;;; Generated autoloads from textmodes/paragraphs.el
19776(put 'paragraph-start 'safe-local-variable 'stringp) 19776(put 'paragraph-start 'safe-local-variable 'stringp)
19777(put 'paragraph-separate 'safe-local-variable 'stringp) 19777(put 'paragraph-separate 'safe-local-variable 'stringp)
@@ -19785,7 +19785,7 @@ See the command `outline-mode' for more information on this mode.
19785 19785
19786;;;*** 19786;;;***
19787 19787
19788;;;### (autoloads (show-paren-mode) "paren" "paren.el" (17960 56195)) 19788;;;### (autoloads (show-paren-mode) "paren" "paren.el" (18016 8765))
19789;;; Generated autoloads from paren.el 19789;;; Generated autoloads from paren.el
19790 19790
19791(defvar show-paren-mode nil "\ 19791(defvar show-paren-mode nil "\
@@ -19810,7 +19810,7 @@ in `show-paren-style' after `show-paren-delay' seconds of Emacs idle time.
19810;;;*** 19810;;;***
19811 19811
19812;;;### (autoloads (parse-time-string) "parse-time" "calendar/parse-time.el" 19812;;;### (autoloads (parse-time-string) "parse-time" "calendar/parse-time.el"
19813;;;;;; (17958 15315)) 19813;;;;;; (17957 43164))
19814;;; Generated autoloads from calendar/parse-time.el 19814;;; Generated autoloads from calendar/parse-time.el
19815 19815
19816(autoload (quote parse-time-string) "parse-time" "\ 19816(autoload (quote parse-time-string) "parse-time" "\
@@ -19822,8 +19822,8 @@ unknown are returned as nil.
19822 19822
19823;;;*** 19823;;;***
19824 19824
19825;;;### (autoloads (pascal-mode) "pascal" "progmodes/pascal.el" (17843 19825;;;### (autoloads (pascal-mode) "pascal" "progmodes/pascal.el" (17842
19826;;;;;; 45629)) 19826;;;;;; 56332))
19827;;; Generated autoloads from progmodes/pascal.el 19827;;; Generated autoloads from progmodes/pascal.el
19828 19828
19829(autoload (quote pascal-mode) "pascal" "\ 19829(autoload (quote pascal-mode) "pascal" "\
@@ -19876,7 +19876,7 @@ no args, if that value is non-nil.
19876;;;*** 19876;;;***
19877 19877
19878;;;### (autoloads (pc-bindings-mode) "pc-mode" "emulation/pc-mode.el" 19878;;;### (autoloads (pc-bindings-mode) "pc-mode" "emulation/pc-mode.el"
19879;;;;;; (17843 45615)) 19879;;;;;; (17842 54264))
19880;;; Generated autoloads from emulation/pc-mode.el 19880;;; Generated autoloads from emulation/pc-mode.el
19881 19881
19882(autoload (quote pc-bindings-mode) "pc-mode" "\ 19882(autoload (quote pc-bindings-mode) "pc-mode" "\
@@ -19894,12 +19894,12 @@ C-Escape does list-buffers.
19894;;;*** 19894;;;***
19895 19895
19896;;;### (autoloads (pc-selection-mode pc-selection-mode) "pc-select" 19896;;;### (autoloads (pc-selection-mode pc-selection-mode) "pc-select"
19897;;;;;; "emulation/pc-select.el" (17843 45615)) 19897;;;;;; "emulation/pc-select.el" (17842 54264))
19898;;; Generated autoloads from emulation/pc-select.el 19898;;; Generated autoloads from emulation/pc-select.el
19899 19899
19900(defvar pc-selection-mode nil "\ 19900(defvar pc-selection-mode nil "\
19901Non-nil if Pc-Selection mode is enabled. 19901Non-nil if Pc-Selection mode is enabled.
19902See the command `pc-selection-mode' for a description of this minor-mode. 19902See the command `pc-selection-mode' for a description of this minor mode.
19903Setting this variable directly does not take effect; 19903Setting this variable directly does not take effect;
19904either customize it (see the info node `Easy Customization') 19904either customize it (see the info node `Easy Customization')
19905or call the function `pc-selection-mode'.") 19905or call the function `pc-selection-mode'.")
@@ -19970,8 +19970,8 @@ you must modify it using \\[customize] or \\[pc-selection-mode].")
19970 19970
19971;;;*** 19971;;;***
19972 19972
19973;;;### (autoloads (pcomplete/cvs) "pcmpl-cvs" "pcmpl-cvs.el" (17843 19973;;;### (autoloads (pcomplete/cvs) "pcmpl-cvs" "pcmpl-cvs.el" (17842
19974;;;;;; 45611)) 19974;;;;;; 58279))
19975;;; Generated autoloads from pcmpl-cvs.el 19975;;; Generated autoloads from pcmpl-cvs.el
19976 19976
19977(autoload (quote pcomplete/cvs) "pcmpl-cvs" "\ 19977(autoload (quote pcomplete/cvs) "pcmpl-cvs" "\
@@ -19982,7 +19982,7 @@ Completion rules for the `cvs' command.
19982;;;*** 19982;;;***
19983 19983
19984;;;### (autoloads (pcomplete/tar pcomplete/make pcomplete/bzip2 pcomplete/gzip) 19984;;;### (autoloads (pcomplete/tar pcomplete/make pcomplete/bzip2 pcomplete/gzip)
19985;;;;;; "pcmpl-gnu" "pcmpl-gnu.el" (17843 45611)) 19985;;;;;; "pcmpl-gnu" "pcmpl-gnu.el" (17842 58279))
19986;;; Generated autoloads from pcmpl-gnu.el 19986;;; Generated autoloads from pcmpl-gnu.el
19987 19987
19988(autoload (quote pcomplete/gzip) "pcmpl-gnu" "\ 19988(autoload (quote pcomplete/gzip) "pcmpl-gnu" "\
@@ -20010,7 +20010,7 @@ Completion for the GNU tar utility.
20010;;;*** 20010;;;***
20011 20011
20012;;;### (autoloads (pcomplete/mount pcomplete/umount pcomplete/kill) 20012;;;### (autoloads (pcomplete/mount pcomplete/umount pcomplete/kill)
20013;;;;;; "pcmpl-linux" "pcmpl-linux.el" (17843 45611)) 20013;;;;;; "pcmpl-linux" "pcmpl-linux.el" (17842 58279))
20014;;; Generated autoloads from pcmpl-linux.el 20014;;; Generated autoloads from pcmpl-linux.el
20015 20015
20016(autoload (quote pcomplete/kill) "pcmpl-linux" "\ 20016(autoload (quote pcomplete/kill) "pcmpl-linux" "\
@@ -20030,8 +20030,8 @@ Completion for GNU/Linux `mount'.
20030 20030
20031;;;*** 20031;;;***
20032 20032
20033;;;### (autoloads (pcomplete/rpm) "pcmpl-rpm" "pcmpl-rpm.el" (17843 20033;;;### (autoloads (pcomplete/rpm) "pcmpl-rpm" "pcmpl-rpm.el" (17842
20034;;;;;; 45611)) 20034;;;;;; 58279))
20035;;; Generated autoloads from pcmpl-rpm.el 20035;;; Generated autoloads from pcmpl-rpm.el
20036 20036
20037(autoload (quote pcomplete/rpm) "pcmpl-rpm" "\ 20037(autoload (quote pcomplete/rpm) "pcmpl-rpm" "\
@@ -20047,7 +20047,7 @@ You can use \\[eshell-report-bug] to do so.
20047 20047
20048;;;### (autoloads (pcomplete/chgrp pcomplete/chown pcomplete/which 20048;;;### (autoloads (pcomplete/chgrp pcomplete/chown pcomplete/which
20049;;;;;; pcomplete/xargs pcomplete/rm pcomplete/rmdir pcomplete/cd) 20049;;;;;; pcomplete/xargs pcomplete/rm pcomplete/rmdir pcomplete/cd)
20050;;;;;; "pcmpl-unix" "pcmpl-unix.el" (17843 45611)) 20050;;;;;; "pcmpl-unix" "pcmpl-unix.el" (17842 58279))
20051;;; Generated autoloads from pcmpl-unix.el 20051;;; Generated autoloads from pcmpl-unix.el
20052 20052
20053(autoload (quote pcomplete/cd) "pcmpl-unix" "\ 20053(autoload (quote pcomplete/cd) "pcmpl-unix" "\
@@ -20093,8 +20093,8 @@ Completion for the `chgrp' command.
20093 20093
20094;;;### (autoloads (pcomplete-shell-setup pcomplete-comint-setup pcomplete-list 20094;;;### (autoloads (pcomplete-shell-setup pcomplete-comint-setup pcomplete-list
20095;;;;;; pcomplete-help pcomplete-expand pcomplete-continue pcomplete-expand-and-complete 20095;;;;;; pcomplete-help pcomplete-expand pcomplete-continue pcomplete-expand-and-complete
20096;;;;;; pcomplete-reverse pcomplete) "pcomplete" "pcomplete.el" (17946 20096;;;;;; pcomplete-reverse pcomplete) "pcomplete" "pcomplete.el" (17944
20097;;;;;; 23918)) 20097;;;;;; 62194))
20098;;; Generated autoloads from pcomplete.el 20098;;; Generated autoloads from pcomplete.el
20099 20099
20100(autoload (quote pcomplete) "pcomplete" "\ 20100(autoload (quote pcomplete) "pcomplete" "\
@@ -20153,7 +20153,7 @@ Setup shell-mode to use pcomplete.
20153 20153
20154;;;### (autoloads (cvs-dired-use-hook cvs-dired-action cvs-status 20154;;;### (autoloads (cvs-dired-use-hook cvs-dired-action cvs-status
20155;;;;;; cvs-update cvs-examine cvs-quickdir cvs-checkout) "pcvs" 20155;;;;;; cvs-update cvs-examine cvs-quickdir cvs-checkout) "pcvs"
20156;;;;;; "pcvs.el" (17995 6542)) 20156;;;;;; "pcvs.el" (18006 55796))
20157;;; Generated autoloads from pcvs.el 20157;;; Generated autoloads from pcvs.el
20158 20158
20159(autoload (quote cvs-checkout) "pcvs" "\ 20159(autoload (quote cvs-checkout) "pcvs" "\
@@ -20230,7 +20230,7 @@ The exact behavior is determined also by `cvs-dired-use-hook'." (when (stringp d
20230 20230
20231;;;*** 20231;;;***
20232 20232
20233;;;### (autoloads nil "pcvs-defs" "pcvs-defs.el" (17843 45611)) 20233;;;### (autoloads nil "pcvs-defs" "pcvs-defs.el" (17842 58279))
20234;;; Generated autoloads from pcvs-defs.el 20234;;; Generated autoloads from pcvs-defs.el
20235 20235
20236(defvar cvs-global-menu (let ((m (make-sparse-keymap "PCL-CVS"))) (define-key m [status] (quote (menu-item "Directory Status" cvs-status :help "A more verbose status of a workarea"))) (define-key m [checkout] (quote (menu-item "Checkout Module" cvs-checkout :help "Check out a module from the repository"))) (define-key m [update] (quote (menu-item "Update Directory" cvs-update :help "Fetch updates from the repository"))) (define-key m [examine] (quote (menu-item "Examine Directory" cvs-examine :help "Examine the current state of a workarea"))) (fset (quote cvs-global-menu) m))) 20236(defvar cvs-global-menu (let ((m (make-sparse-keymap "PCL-CVS"))) (define-key m [status] (quote (menu-item "Directory Status" cvs-status :help "A more verbose status of a workarea"))) (define-key m [checkout] (quote (menu-item "Checkout Module" cvs-checkout :help "Check out a module from the repository"))) (define-key m [update] (quote (menu-item "Update Directory" cvs-update :help "Fetch updates from the repository"))) (define-key m [examine] (quote (menu-item "Examine Directory" cvs-examine :help "Examine the current state of a workarea"))) (fset (quote cvs-global-menu) m)))
@@ -20238,7 +20238,7 @@ The exact behavior is determined also by `cvs-dired-use-hook'." (when (stringp d
20238;;;*** 20238;;;***
20239 20239
20240;;;### (autoloads (perl-mode) "perl-mode" "progmodes/perl-mode.el" 20240;;;### (autoloads (perl-mode) "perl-mode" "progmodes/perl-mode.el"
20241;;;;;; (17966 9916)) 20241;;;;;; (17962 28280))
20242;;; Generated autoloads from progmodes/perl-mode.el 20242;;; Generated autoloads from progmodes/perl-mode.el
20243 20243
20244(autoload (quote perl-mode) "perl-mode" "\ 20244(autoload (quote perl-mode) "perl-mode" "\
@@ -20296,7 +20296,7 @@ Turning on Perl mode runs the normal hook `perl-mode-hook'.
20296;;;### (autoloads (pgg-snarf-keys pgg-snarf-keys-region pgg-insert-key 20296;;;### (autoloads (pgg-snarf-keys pgg-snarf-keys-region pgg-insert-key
20297;;;;;; pgg-verify pgg-verify-region pgg-sign pgg-sign-region pgg-decrypt 20297;;;;;; pgg-verify pgg-verify-region pgg-sign pgg-sign-region pgg-decrypt
20298;;;;;; pgg-decrypt-region pgg-encrypt pgg-encrypt-symmetric pgg-encrypt-symmetric-region 20298;;;;;; pgg-decrypt-region pgg-encrypt pgg-encrypt-symmetric pgg-encrypt-symmetric-region
20299;;;;;; pgg-encrypt-region) "pgg" "pgg.el" (17843 45612)) 20299;;;;;; pgg-encrypt-region) "pgg" "pgg.el" (17842 58279))
20300;;; Generated autoloads from pgg.el 20300;;; Generated autoloads from pgg.el
20301 20301
20302(autoload (quote pgg-encrypt-region) "pgg" "\ 20302(autoload (quote pgg-encrypt-region) "pgg" "\
@@ -20430,7 +20430,7 @@ Import public keys in the current buffer.
20430;;;*** 20430;;;***
20431 20431
20432;;;### (autoloads (pgg-gpg-symmetric-key-p) "pgg-gpg" "pgg-gpg.el" 20432;;;### (autoloads (pgg-gpg-symmetric-key-p) "pgg-gpg" "pgg-gpg.el"
20433;;;;;; (17939 56017)) 20433;;;;;; (17887 33207))
20434;;; Generated autoloads from pgg-gpg.el 20434;;; Generated autoloads from pgg-gpg.el
20435 20435
20436(autoload (quote pgg-gpg-symmetric-key-p) "pgg-gpg" "\ 20436(autoload (quote pgg-gpg-symmetric-key-p) "pgg-gpg" "\
@@ -20441,7 +20441,7 @@ True if decoded armor MESSAGE-KEYS has symmetric encryption indicator.
20441;;;*** 20441;;;***
20442 20442
20443;;;### (autoloads (picture-mode) "picture" "textmodes/picture.el" 20443;;;### (autoloads (picture-mode) "picture" "textmodes/picture.el"
20444;;;;;; (17843 45630)) 20444;;;;;; (17842 58277))
20445;;; Generated autoloads from textmodes/picture.el 20445;;; Generated autoloads from textmodes/picture.el
20446 20446
20447(autoload (quote picture-mode) "picture" "\ 20447(autoload (quote picture-mode) "picture" "\
@@ -20522,7 +20522,7 @@ they are not defaultly assigned to keys.
20522;;;*** 20522;;;***
20523 20523
20524;;;### (autoloads (po-find-file-coding-system) "po" "textmodes/po.el" 20524;;;### (autoloads (po-find-file-coding-system) "po" "textmodes/po.el"
20525;;;;;; (17843 45630)) 20525;;;;;; (17842 58277))
20526;;; Generated autoloads from textmodes/po.el 20526;;; Generated autoloads from textmodes/po.el
20527 20527
20528(autoload (quote po-find-file-coding-system) "po" "\ 20528(autoload (quote po-find-file-coding-system) "po" "\
@@ -20533,7 +20533,7 @@ Called through `file-coding-system-alist', before the file is visited for real.
20533 20533
20534;;;*** 20534;;;***
20535 20535
20536;;;### (autoloads (pong) "pong" "play/pong.el" (17843 45626)) 20536;;;### (autoloads (pong) "pong" "play/pong.el" (17842 55395))
20537;;; Generated autoloads from play/pong.el 20537;;; Generated autoloads from play/pong.el
20538 20538
20539(autoload (quote pong) "pong" "\ 20539(autoload (quote pong) "pong" "\
@@ -20550,7 +20550,7 @@ pong-mode keybindings:\\<pong-mode-map>
20550;;;*** 20550;;;***
20551 20551
20552;;;### (autoloads (pp-eval-last-sexp pp-eval-expression pp pp-buffer 20552;;;### (autoloads (pp-eval-last-sexp pp-eval-expression pp pp-buffer
20553;;;;;; pp-to-string) "pp" "emacs-lisp/pp.el" (17939 56021)) 20553;;;;;; pp-to-string) "pp" "emacs-lisp/pp.el" (17852 19612))
20554;;; Generated autoloads from emacs-lisp/pp.el 20554;;; Generated autoloads from emacs-lisp/pp.el
20555 20555
20556(autoload (quote pp-to-string) "pp" "\ 20556(autoload (quote pp-to-string) "pp" "\
@@ -20606,7 +20606,7 @@ Ignores leading comment characters.
20606;;;;;; pr-ps-buffer-print pr-ps-buffer-using-ghostscript pr-ps-buffer-preview 20606;;;;;; pr-ps-buffer-print pr-ps-buffer-using-ghostscript pr-ps-buffer-preview
20607;;;;;; pr-ps-directory-ps-print pr-ps-directory-print pr-ps-directory-using-ghostscript 20607;;;;;; pr-ps-directory-ps-print pr-ps-directory-print pr-ps-directory-using-ghostscript
20608;;;;;; pr-ps-directory-preview pr-interface) "printing" "printing.el" 20608;;;;;; pr-ps-directory-preview pr-interface) "printing" "printing.el"
20609;;;;;; (17995 6542)) 20609;;;;;; (18006 55796))
20610;;; Generated autoloads from printing.el 20610;;; Generated autoloads from printing.el
20611 20611
20612(autoload (quote pr-interface) "printing" "\ 20612(autoload (quote pr-interface) "printing" "\
@@ -21194,7 +21194,7 @@ are both set to t.
21194;;;*** 21194;;;***
21195 21195
21196;;;### (autoloads (switch-to-prolog prolog-mode) "prolog" "progmodes/prolog.el" 21196;;;### (autoloads (switch-to-prolog prolog-mode) "prolog" "progmodes/prolog.el"
21197;;;;;; (17843 45629)) 21197;;;;;; (17842 56332))
21198;;; Generated autoloads from progmodes/prolog.el 21198;;; Generated autoloads from progmodes/prolog.el
21199 21199
21200(autoload (quote prolog-mode) "prolog" "\ 21200(autoload (quote prolog-mode) "prolog" "\
@@ -21217,7 +21217,7 @@ With prefix argument \\[universal-prefix], prompt for the program to use.
21217 21217
21218;;;*** 21218;;;***
21219 21219
21220;;;### (autoloads nil "ps-bdf" "ps-bdf.el" (17843 45612)) 21220;;;### (autoloads nil "ps-bdf" "ps-bdf.el" (17842 58279))
21221;;; Generated autoloads from ps-bdf.el 21221;;; Generated autoloads from ps-bdf.el
21222 21222
21223(defvar bdf-directory-list (if (memq system-type (quote (ms-dos windows-nt))) (list (expand-file-name "fonts/bdf" installation-directory)) (quote ("/usr/local/share/emacs/fonts/bdf"))) "\ 21223(defvar bdf-directory-list (if (memq system-type (quote (ms-dos windows-nt))) (list (expand-file-name "fonts/bdf" installation-directory)) (quote ("/usr/local/share/emacs/fonts/bdf"))) "\
@@ -21226,8 +21226,8 @@ The default value is '(\"/usr/local/share/emacs/fonts/bdf\").")
21226 21226
21227;;;*** 21227;;;***
21228 21228
21229;;;### (autoloads (ps-mode) "ps-mode" "progmodes/ps-mode.el" (17843 21229;;;### (autoloads (ps-mode) "ps-mode" "progmodes/ps-mode.el" (17842
21230;;;;;; 45629)) 21230;;;;;; 56332))
21231;;; Generated autoloads from progmodes/ps-mode.el 21231;;; Generated autoloads from progmodes/ps-mode.el
21232 21232
21233(autoload (quote ps-mode) "ps-mode" "\ 21233(autoload (quote ps-mode) "ps-mode" "\
@@ -21276,7 +21276,7 @@ Typing \\<ps-run-mode-map>\\[ps-run-goto-error] when the cursor is at the number
21276;;;### (autoloads (ps-mule-begin-page ps-mule-begin-job ps-mule-encode-header-string 21276;;;### (autoloads (ps-mule-begin-page ps-mule-begin-job ps-mule-encode-header-string
21277;;;;;; ps-mule-initialize ps-mule-plot-composition ps-mule-plot-string 21277;;;;;; ps-mule-initialize ps-mule-plot-composition ps-mule-plot-string
21278;;;;;; ps-mule-set-ascii-font ps-mule-prepare-ascii-font ps-multibyte-buffer) 21278;;;;;; ps-mule-set-ascii-font ps-mule-prepare-ascii-font ps-multibyte-buffer)
21279;;;;;; "ps-mule" "ps-mule.el" (17843 45612)) 21279;;;;;; "ps-mule" "ps-mule.el" (17842 58279))
21280;;; Generated autoloads from ps-mule.el 21280;;; Generated autoloads from ps-mule.el
21281 21281
21282(defvar ps-multibyte-buffer nil "\ 21282(defvar ps-multibyte-buffer nil "\
@@ -21397,8 +21397,8 @@ Not documented
21397;;;;;; ps-spool-region ps-spool-buffer-with-faces ps-spool-buffer 21397;;;;;; ps-spool-region ps-spool-buffer-with-faces ps-spool-buffer
21398;;;;;; ps-print-region-with-faces ps-print-region ps-print-buffer-with-faces 21398;;;;;; ps-print-region-with-faces ps-print-region ps-print-buffer-with-faces
21399;;;;;; ps-print-buffer ps-print-customize ps-print-color-p ps-paper-type 21399;;;;;; ps-print-buffer ps-print-customize ps-print-color-p ps-paper-type
21400;;;;;; ps-page-dimensions-database) "ps-print" "ps-print.el" (17939 21400;;;;;; ps-page-dimensions-database) "ps-print" "ps-print.el" (18006
21401;;;;;; 56017)) 21401;;;;;; 55796))
21402;;; Generated autoloads from ps-print.el 21402;;; Generated autoloads from ps-print.el
21403 21403
21404(defvar ps-page-dimensions-database (list (list (quote a4) (/ (* 72 21.0) 2.54) (/ (* 72 29.7) 2.54) "A4") (list (quote a3) (/ (* 72 29.7) 2.54) (/ (* 72 42.0) 2.54) "A3") (list (quote letter) (* 72 8.5) (* 72 11.0) "Letter") (list (quote legal) (* 72 8.5) (* 72 14.0) "Legal") (list (quote letter-small) (* 72 7.68) (* 72 10.16) "LetterSmall") (list (quote tabloid) (* 72 11.0) (* 72 17.0) "Tabloid") (list (quote ledger) (* 72 17.0) (* 72 11.0) "Ledger") (list (quote statement) (* 72 5.5) (* 72 8.5) "Statement") (list (quote executive) (* 72 7.5) (* 72 10.0) "Executive") (list (quote a4small) (* 72 7.47) (* 72 10.85) "A4Small") (list (quote b4) (* 72 10.125) (* 72 14.33) "B4") (list (quote b5) (* 72 7.16) (* 72 10.125) "B5")) "\ 21404(defvar ps-page-dimensions-database (list (list (quote a4) (/ (* 72 21.0) 2.54) (/ (* 72 29.7) 2.54) "A4") (list (quote a3) (/ (* 72 29.7) 2.54) (/ (* 72 42.0) 2.54) "A3") (list (quote letter) (* 72 8.5) (* 72 11.0) "Letter") (list (quote legal) (* 72 8.5) (* 72 14.0) "Legal") (list (quote letter-small) (* 72 7.68) (* 72 10.16) "LetterSmall") (list (quote tabloid) (* 72 11.0) (* 72 17.0) "Tabloid") (list (quote ledger) (* 72 17.0) (* 72 11.0) "Ledger") (list (quote statement) (* 72 5.5) (* 72 8.5) "Statement") (list (quote executive) (* 72 7.5) (* 72 10.0) "Executive") (list (quote a4small) (* 72 7.47) (* 72 10.85) "A4Small") (list (quote b4) (* 72 10.125) (* 72 14.33) "B4") (list (quote b5) (* 72 7.16) (* 72 10.125) "B5")) "\
@@ -21595,7 +21595,7 @@ If EXTENSION is any other symbol, it is ignored.
21595;;;*** 21595;;;***
21596 21596
21597;;;### (autoloads (jython-mode python-mode run-python) "python" "progmodes/python.el" 21597;;;### (autoloads (jython-mode python-mode run-python) "python" "progmodes/python.el"
21598;;;;;; (17988 52600)) 21598;;;;;; (17992 30878))
21599;;; Generated autoloads from progmodes/python.el 21599;;; Generated autoloads from progmodes/python.el
21600 21600
21601(add-to-list (quote interpreter-mode-alist) (quote ("jython" . jython-mode))) 21601(add-to-list (quote interpreter-mode-alist) (quote ("jython" . jython-mode)))
@@ -21670,7 +21670,7 @@ Runs `jython-mode-hook' after `python-mode-hook'.
21670;;;*** 21670;;;***
21671 21671
21672;;;### (autoloads (quoted-printable-decode-region) "qp" "gnus/qp.el" 21672;;;### (autoloads (quoted-printable-decode-region) "qp" "gnus/qp.el"
21673;;;;;; (17843 45617)) 21673;;;;;; (17842 54741))
21674;;; Generated autoloads from gnus/qp.el 21674;;; Generated autoloads from gnus/qp.el
21675 21675
21676(autoload (quote quoted-printable-decode-region) "qp" "\ 21676(autoload (quote quoted-printable-decode-region) "qp" "\
@@ -21693,7 +21693,7 @@ them into characters should be done separately.
21693;;;;;; quail-defrule quail-install-decode-map quail-install-map 21693;;;;;; quail-defrule quail-install-decode-map quail-install-map
21694;;;;;; quail-define-rules quail-show-keyboard-layout quail-set-keyboard-layout 21694;;;;;; quail-define-rules quail-show-keyboard-layout quail-set-keyboard-layout
21695;;;;;; quail-define-package quail-use-package quail-title) "quail" 21695;;;;;; quail-define-package quail-use-package quail-title) "quail"
21696;;;;;; "international/quail.el" (17939 56022)) 21696;;;;;; "international/quail.el" (17921 16827))
21697;;; Generated autoloads from international/quail.el 21697;;; Generated autoloads from international/quail.el
21698 21698
21699(autoload (quote quail-title) "quail" "\ 21699(autoload (quote quail-title) "quail" "\
@@ -21924,8 +21924,8 @@ of each directory.
21924 21924
21925;;;### (autoloads (quickurl-list quickurl-list-mode quickurl-edit-urls 21925;;;### (autoloads (quickurl-list quickurl-list-mode quickurl-edit-urls
21926;;;;;; quickurl-browse-url-ask quickurl-browse-url quickurl-add-url 21926;;;;;; quickurl-browse-url-ask quickurl-browse-url quickurl-add-url
21927;;;;;; quickurl-ask quickurl) "quickurl" "net/quickurl.el" (17843 21927;;;;;; quickurl-ask quickurl) "quickurl" "net/quickurl.el" (17842
21928;;;;;; 45624)) 21928;;;;;; 55218))
21929;;; Generated autoloads from net/quickurl.el 21929;;; Generated autoloads from net/quickurl.el
21930 21930
21931(defconst quickurl-reread-hook-postfix "\n;; Local Variables:\n;; eval: (progn (require 'quickurl) (add-hook 'local-write-file-hooks (lambda () (quickurl-read) nil)))\n;; End:\n" "\ 21931(defconst quickurl-reread-hook-postfix "\n;; Local Variables:\n;; eval: (progn (require 'quickurl) (add-hook 'local-write-file-hooks (lambda () (quickurl-read) nil)))\n;; End:\n" "\
@@ -21997,7 +21997,7 @@ Display `quickurl-list' as a formatted list using `quickurl-list-mode'.
21997;;;*** 21997;;;***
21998 21998
21999;;;### (autoloads (rcirc-track-minor-mode rcirc-connect rcirc) "rcirc" 21999;;;### (autoloads (rcirc-track-minor-mode rcirc-connect rcirc) "rcirc"
22000;;;;;; "net/rcirc.el" (17988 52353)) 22000;;;;;; "net/rcirc.el" (18006 55797))
22001;;; Generated autoloads from net/rcirc.el 22001;;; Generated autoloads from net/rcirc.el
22002 22002
22003(autoload (quote rcirc) "rcirc" "\ 22003(autoload (quote rcirc) "rcirc" "\
@@ -22029,8 +22029,8 @@ Global minor mode for tracking activity in rcirc buffers.
22029 22029
22030;;;*** 22030;;;***
22031 22031
22032;;;### (autoloads (remote-compile) "rcompile" "net/rcompile.el" (17843 22032;;;### (autoloads (remote-compile) "rcompile" "net/rcompile.el" (17842
22033;;;;;; 45624)) 22033;;;;;; 55218))
22034;;; Generated autoloads from net/rcompile.el 22034;;; Generated autoloads from net/rcompile.el
22035 22035
22036(autoload (quote remote-compile) "rcompile" "\ 22036(autoload (quote remote-compile) "rcompile" "\
@@ -22042,7 +22042,7 @@ See \\[compile].
22042;;;*** 22042;;;***
22043 22043
22044;;;### (autoloads (re-builder) "re-builder" "emacs-lisp/re-builder.el" 22044;;;### (autoloads (re-builder) "re-builder" "emacs-lisp/re-builder.el"
22045;;;;;; (17939 56021)) 22045;;;;;; (17917 37732))
22046;;; Generated autoloads from emacs-lisp/re-builder.el 22046;;; Generated autoloads from emacs-lisp/re-builder.el
22047 22047
22048(defalias (quote regexp-builder) (quote re-builder)) 22048(defalias (quote regexp-builder) (quote re-builder))
@@ -22054,12 +22054,12 @@ Construct a regexp interactively.
22054 22054
22055;;;*** 22055;;;***
22056 22056
22057;;;### (autoloads (recentf-mode) "recentf" "recentf.el" (17939 56017)) 22057;;;### (autoloads (recentf-mode) "recentf" "recentf.el" (17930 34071))
22058;;; Generated autoloads from recentf.el 22058;;; Generated autoloads from recentf.el
22059 22059
22060(defvar recentf-mode nil "\ 22060(defvar recentf-mode nil "\
22061Non-nil if Recentf mode is enabled. 22061Non-nil if Recentf mode is enabled.
22062See the command `recentf-mode' for a description of this minor-mode. 22062See the command `recentf-mode' for a description of this minor mode.
22063Setting this variable directly does not take effect; 22063Setting this variable directly does not take effect;
22064either customize it (see the info node `Easy Customization') 22064either customize it (see the info node `Easy Customization')
22065or call the function `recentf-mode'.") 22065or call the function `recentf-mode'.")
@@ -22081,8 +22081,8 @@ that were operated on recently.
22081;;;### (autoloads (clear-rectangle string-insert-rectangle string-rectangle 22081;;;### (autoloads (clear-rectangle string-insert-rectangle string-rectangle
22082;;;;;; delete-whitespace-rectangle open-rectangle insert-rectangle 22082;;;;;; delete-whitespace-rectangle open-rectangle insert-rectangle
22083;;;;;; yank-rectangle kill-rectangle extract-rectangle delete-extract-rectangle 22083;;;;;; yank-rectangle kill-rectangle extract-rectangle delete-extract-rectangle
22084;;;;;; delete-rectangle move-to-column-force) "rect" "rect.el" (17843 22084;;;;;; delete-rectangle move-to-column-force) "rect" "rect.el" (17842
22085;;;;;; 45612)) 22085;;;;;; 58279))
22086;;; Generated autoloads from rect.el 22086;;; Generated autoloads from rect.el
22087 22087
22088(autoload (quote move-to-column-force) "rect" "\ 22088(autoload (quote move-to-column-force) "rect" "\
@@ -22210,8 +22210,8 @@ rectangle which were empty.
22210 22210
22211;;;*** 22211;;;***
22212 22212
22213;;;### (autoloads (refill-mode) "refill" "textmodes/refill.el" (17843 22213;;;### (autoloads (refill-mode) "refill" "textmodes/refill.el" (17842
22214;;;;;; 45630)) 22214;;;;;; 58277))
22215;;; Generated autoloads from textmodes/refill.el 22215;;; Generated autoloads from textmodes/refill.el
22216 22216
22217(autoload (quote refill-mode) "refill" "\ 22217(autoload (quote refill-mode) "refill" "\
@@ -22227,7 +22227,7 @@ refilling if they would cause auto-filling.
22227;;;*** 22227;;;***
22228 22228
22229;;;### (autoloads (reftex-reset-scanning-information reftex-mode 22229;;;### (autoloads (reftex-reset-scanning-information reftex-mode
22230;;;;;; turn-on-reftex) "reftex" "textmodes/reftex.el" (17939 56024)) 22230;;;;;; turn-on-reftex) "reftex" "textmodes/reftex.el" (17923 8784))
22231;;; Generated autoloads from textmodes/reftex.el 22231;;; Generated autoloads from textmodes/reftex.el
22232 22232
22233(autoload (quote turn-on-reftex) "reftex" "\ 22233(autoload (quote turn-on-reftex) "reftex" "\
@@ -22277,7 +22277,7 @@ This enforces rescanning the buffer on next use.
22277;;;*** 22277;;;***
22278 22278
22279;;;### (autoloads (reftex-citation) "reftex-cite" "textmodes/reftex-cite.el" 22279;;;### (autoloads (reftex-citation) "reftex-cite" "textmodes/reftex-cite.el"
22280;;;;;; (17939 56024)) 22280;;;;;; (17923 8784))
22281;;; Generated autoloads from textmodes/reftex-cite.el 22281;;; Generated autoloads from textmodes/reftex-cite.el
22282 22282
22283(autoload (quote reftex-citation) "reftex-cite" "\ 22283(autoload (quote reftex-citation) "reftex-cite" "\
@@ -22307,7 +22307,7 @@ While entering the regexp, completion on knows citation keys is possible.
22307;;;*** 22307;;;***
22308 22308
22309;;;### (autoloads (reftex-isearch-minor-mode) "reftex-global" "textmodes/reftex-global.el" 22309;;;### (autoloads (reftex-isearch-minor-mode) "reftex-global" "textmodes/reftex-global.el"
22310;;;;;; (17939 56024)) 22310;;;;;; (17923 8784))
22311;;; Generated autoloads from textmodes/reftex-global.el 22311;;; Generated autoloads from textmodes/reftex-global.el
22312 22312
22313(autoload (quote reftex-isearch-minor-mode) "reftex-global" "\ 22313(autoload (quote reftex-isearch-minor-mode) "reftex-global" "\
@@ -22324,7 +22324,7 @@ With no argument, this command toggles
22324;;;*** 22324;;;***
22325 22325
22326;;;### (autoloads (reftex-index-phrases-mode) "reftex-index" "textmodes/reftex-index.el" 22326;;;### (autoloads (reftex-index-phrases-mode) "reftex-index" "textmodes/reftex-index.el"
22327;;;;;; (17939 56024)) 22327;;;;;; (17923 8784))
22328;;; Generated autoloads from textmodes/reftex-index.el 22328;;; Generated autoloads from textmodes/reftex-index.el
22329 22329
22330(autoload (quote reftex-index-phrases-mode) "reftex-index" "\ 22330(autoload (quote reftex-index-phrases-mode) "reftex-index" "\
@@ -22357,7 +22357,7 @@ Here are all local bindings.
22357;;;*** 22357;;;***
22358 22358
22359;;;### (autoloads (reftex-all-document-files) "reftex-parse" "textmodes/reftex-parse.el" 22359;;;### (autoloads (reftex-all-document-files) "reftex-parse" "textmodes/reftex-parse.el"
22360;;;;;; (17939 56024)) 22360;;;;;; (17923 8784))
22361;;; Generated autoloads from textmodes/reftex-parse.el 22361;;; Generated autoloads from textmodes/reftex-parse.el
22362 22362
22363(autoload (quote reftex-all-document-files) "reftex-parse" "\ 22363(autoload (quote reftex-all-document-files) "reftex-parse" "\
@@ -22369,8 +22369,8 @@ of master file.
22369 22369
22370;;;*** 22370;;;***
22371 22371
22372;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (17939 22372;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (17923
22373;;;;;; 56024)) 22373;;;;;; 8784))
22374;;; Generated autoloads from textmodes/reftex-vars.el 22374;;; Generated autoloads from textmodes/reftex-vars.el
22375(put 'reftex-vref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x)))) 22375(put 'reftex-vref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x))))
22376(put 'reftex-fref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x)))) 22376(put 'reftex-fref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x))))
@@ -22380,7 +22380,7 @@ of master file.
22380;;;*** 22380;;;***
22381 22381
22382;;;### (autoloads (regexp-opt-depth regexp-opt) "regexp-opt" "emacs-lisp/regexp-opt.el" 22382;;;### (autoloads (regexp-opt-depth regexp-opt) "regexp-opt" "emacs-lisp/regexp-opt.el"
22383;;;;;; (17843 45615)) 22383;;;;;; (17842 54152))
22384;;; Generated autoloads from emacs-lisp/regexp-opt.el 22384;;; Generated autoloads from emacs-lisp/regexp-opt.el
22385 22385
22386(autoload (quote regexp-opt) "regexp-opt" "\ 22386(autoload (quote regexp-opt) "regexp-opt" "\
@@ -22407,7 +22407,7 @@ This means the number of non-shy regexp grouping constructs
22407 22407
22408;;;*** 22408;;;***
22409 22409
22410;;;### (autoloads (repeat) "repeat" "repeat.el" (17843 45612)) 22410;;;### (autoloads (repeat) "repeat" "repeat.el" (17842 58279))
22411;;; Generated autoloads from repeat.el 22411;;; Generated autoloads from repeat.el
22412 22412
22413(autoload (quote repeat) "repeat" "\ 22413(autoload (quote repeat) "repeat" "\
@@ -22425,7 +22425,7 @@ can be modified by the global variable `repeat-on-final-keystroke'.
22425;;;*** 22425;;;***
22426 22426
22427;;;### (autoloads (reporter-submit-bug-report) "reporter" "mail/reporter.el" 22427;;;### (autoloads (reporter-submit-bug-report) "reporter" "mail/reporter.el"
22428;;;;;; (17843 45622)) 22428;;;;;; (17842 55035))
22429;;; Generated autoloads from mail/reporter.el 22429;;; Generated autoloads from mail/reporter.el
22430 22430
22431(autoload (quote reporter-submit-bug-report) "reporter" "\ 22431(autoload (quote reporter-submit-bug-report) "reporter" "\
@@ -22457,7 +22457,7 @@ mail-sending package is used for editing and sending the message.
22457;;;*** 22457;;;***
22458 22458
22459;;;### (autoloads (reposition-window) "reposition" "reposition.el" 22459;;;### (autoloads (reposition-window) "reposition" "reposition.el"
22460;;;;;; (17843 45612)) 22460;;;;;; (17842 58279))
22461;;; Generated autoloads from reposition.el 22461;;; Generated autoloads from reposition.el
22462 22462
22463(autoload (quote reposition-window) "reposition" "\ 22463(autoload (quote reposition-window) "reposition" "\
@@ -22484,8 +22484,8 @@ first comment line visible (if point is in a comment).
22484 22484
22485;;;*** 22485;;;***
22486 22486
22487;;;### (autoloads (resume-suspend-hook) "resume" "resume.el" (17843 22487;;;### (autoloads (resume-suspend-hook) "resume" "resume.el" (17842
22488;;;;;; 45612)) 22488;;;;;; 58279))
22489;;; Generated autoloads from resume.el 22489;;; Generated autoloads from resume.el
22490 22490
22491(autoload (quote resume-suspend-hook) "resume" "\ 22491(autoload (quote resume-suspend-hook) "resume" "\
@@ -22496,7 +22496,7 @@ Clear out the file used for transmitting args when Emacs resumes.
22496;;;*** 22496;;;***
22497 22497
22498;;;### (autoloads (global-reveal-mode reveal-mode) "reveal" "reveal.el" 22498;;;### (autoloads (global-reveal-mode reveal-mode) "reveal" "reveal.el"
22499;;;;;; (17843 45612)) 22499;;;;;; (17842 58279))
22500;;; Generated autoloads from reveal.el 22500;;; Generated autoloads from reveal.el
22501 22501
22502(autoload (quote reveal-mode) "reveal" "\ 22502(autoload (quote reveal-mode) "reveal" "\
@@ -22511,7 +22511,7 @@ With zero or negative ARG turn mode off.
22511 22511
22512(defvar global-reveal-mode nil "\ 22512(defvar global-reveal-mode nil "\
22513Non-nil if Global-Reveal mode is enabled. 22513Non-nil if Global-Reveal mode is enabled.
22514See the command `global-reveal-mode' for a description of this minor-mode. 22514See the command `global-reveal-mode' for a description of this minor mode.
22515Setting this variable directly does not take effect; 22515Setting this variable directly does not take effect;
22516either customize it (see the info node `Easy Customization') 22516either customize it (see the info node `Easy Customization')
22517or call the function `global-reveal-mode'.") 22517or call the function `global-reveal-mode'.")
@@ -22531,7 +22531,7 @@ With zero or negative ARG turn mode off.
22531;;;*** 22531;;;***
22532 22532
22533;;;### (autoloads (make-ring ring-p) "ring" "emacs-lisp/ring.el" 22533;;;### (autoloads (make-ring ring-p) "ring" "emacs-lisp/ring.el"
22534;;;;;; (17843 45615)) 22534;;;;;; (17842 54152))
22535;;; Generated autoloads from emacs-lisp/ring.el 22535;;; Generated autoloads from emacs-lisp/ring.el
22536 22536
22537(autoload (quote ring-p) "ring" "\ 22537(autoload (quote ring-p) "ring" "\
@@ -22546,7 +22546,7 @@ Make a ring that can contain SIZE elements.
22546 22546
22547;;;*** 22547;;;***
22548 22548
22549;;;### (autoloads (rlogin) "rlogin" "net/rlogin.el" (17843 45624)) 22549;;;### (autoloads (rlogin) "rlogin" "net/rlogin.el" (17842 55218))
22550;;; Generated autoloads from net/rlogin.el 22550;;; Generated autoloads from net/rlogin.el
22551 (add-hook 'same-window-regexps "^\\*rlogin-.*\\*\\(\\|<[0-9]+>\\)") 22551 (add-hook 'same-window-regexps "^\\*rlogin-.*\\*\\(\\|<[0-9]+>\\)")
22552 22552
@@ -22597,8 +22597,8 @@ variable.
22597;;;;;; rmail-mail-new-frame rmail-primary-inbox-list rmail-delete-after-output 22597;;;;;; rmail-mail-new-frame rmail-primary-inbox-list rmail-delete-after-output
22598;;;;;; rmail-highlight-face rmail-highlighted-headers rmail-retry-ignored-headers 22598;;;;;; rmail-highlight-face rmail-highlighted-headers rmail-retry-ignored-headers
22599;;;;;; rmail-displayed-headers rmail-ignored-headers rmail-dont-reply-to-names 22599;;;;;; rmail-displayed-headers rmail-ignored-headers rmail-dont-reply-to-names
22600;;;;;; rmail-movemail-variant-p) "rmail" "mail/rmail.el" (17995 22600;;;;;; rmail-movemail-variant-p) "rmail" "mail/rmail.el" (18006
22601;;;;;; 6542)) 22601;;;;;; 55797))
22602;;; Generated autoloads from mail/rmail.el 22602;;; Generated autoloads from mail/rmail.el
22603 22603
22604(autoload (quote rmail-movemail-variant-p) "rmail" "\ 22604(autoload (quote rmail-movemail-variant-p) "rmail" "\
@@ -22863,7 +22863,7 @@ Set PASSWORD to be used for retrieving mail from a POP or IMAP server.
22863;;;*** 22863;;;***
22864 22864
22865;;;### (autoloads (rmail-edit-current-message) "rmailedit" "mail/rmailedit.el" 22865;;;### (autoloads (rmail-edit-current-message) "rmailedit" "mail/rmailedit.el"
22866;;;;;; (17939 56022)) 22866;;;;;; (17887 18399))
22867;;; Generated autoloads from mail/rmailedit.el 22867;;; Generated autoloads from mail/rmailedit.el
22868 22868
22869(autoload (quote rmail-edit-current-message) "rmailedit" "\ 22869(autoload (quote rmail-edit-current-message) "rmailedit" "\
@@ -22875,7 +22875,7 @@ Edit the contents of this message.
22875 22875
22876;;;### (autoloads (rmail-next-labeled-message rmail-previous-labeled-message 22876;;;### (autoloads (rmail-next-labeled-message rmail-previous-labeled-message
22877;;;;;; rmail-read-label rmail-kill-label rmail-add-label) "rmailkwd" 22877;;;;;; rmail-read-label rmail-kill-label rmail-add-label) "rmailkwd"
22878;;;;;; "mail/rmailkwd.el" (17843 45622)) 22878;;;;;; "mail/rmailkwd.el" (17842 55035))
22879;;; Generated autoloads from mail/rmailkwd.el 22879;;; Generated autoloads from mail/rmailkwd.el
22880 22880
22881(autoload (quote rmail-add-label) "rmailkwd" "\ 22881(autoload (quote rmail-add-label) "rmailkwd" "\
@@ -22914,7 +22914,7 @@ With prefix argument N moves forward N messages with these labels.
22914;;;*** 22914;;;***
22915 22915
22916;;;### (autoloads (set-rmail-inbox-list) "rmailmsc" "mail/rmailmsc.el" 22916;;;### (autoloads (set-rmail-inbox-list) "rmailmsc" "mail/rmailmsc.el"
22917;;;;;; (17843 45622)) 22917;;;;;; (17842 55035))
22918;;; Generated autoloads from mail/rmailmsc.el 22918;;; Generated autoloads from mail/rmailmsc.el
22919 22919
22920(autoload (quote set-rmail-inbox-list) "rmailmsc" "\ 22920(autoload (quote set-rmail-inbox-list) "rmailmsc" "\
@@ -22928,7 +22928,7 @@ If FILE-NAME is empty, remove any existing inbox list.
22928 22928
22929;;;### (autoloads (rmail-output-body-to-file rmail-output rmail-fields-not-to-output 22929;;;### (autoloads (rmail-output-body-to-file rmail-output rmail-fields-not-to-output
22930;;;;;; rmail-output-to-rmail-file rmail-output-file-alist) "rmailout" 22930;;;;;; rmail-output-to-rmail-file rmail-output-file-alist) "rmailout"
22931;;;;;; "mail/rmailout.el" (17843 45622)) 22931;;;;;; "mail/rmailout.el" (17842 55035))
22932;;; Generated autoloads from mail/rmailout.el 22932;;; Generated autoloads from mail/rmailout.el
22933 22933
22934(defvar rmail-output-file-alist nil "\ 22934(defvar rmail-output-file-alist nil "\
@@ -22995,8 +22995,8 @@ FILE-NAME defaults, interactively, from the Subject field of the message.
22995 22995
22996;;;### (autoloads (rmail-sort-by-labels rmail-sort-by-lines rmail-sort-by-correspondent 22996;;;### (autoloads (rmail-sort-by-labels rmail-sort-by-lines rmail-sort-by-correspondent
22997;;;;;; rmail-sort-by-recipient rmail-sort-by-author rmail-sort-by-subject 22997;;;;;; rmail-sort-by-recipient rmail-sort-by-author rmail-sort-by-subject
22998;;;;;; rmail-sort-by-date) "rmailsort" "mail/rmailsort.el" (17843 22998;;;;;; rmail-sort-by-date) "rmailsort" "mail/rmailsort.el" (17842
22999;;;;;; 45622)) 22999;;;;;; 55035))
23000;;; Generated autoloads from mail/rmailsort.el 23000;;; Generated autoloads from mail/rmailsort.el
23001 23001
23002(autoload (quote rmail-sort-by-date) "rmailsort" "\ 23002(autoload (quote rmail-sort-by-date) "rmailsort" "\
@@ -23048,7 +23048,7 @@ KEYWORDS is a comma-separated list of labels.
23048;;;;;; rmail-summary-by-senders rmail-summary-by-topic rmail-summary-by-regexp 23048;;;;;; rmail-summary-by-senders rmail-summary-by-topic rmail-summary-by-regexp
23049;;;;;; rmail-summary-by-recipients rmail-summary-by-labels rmail-summary 23049;;;;;; rmail-summary-by-recipients rmail-summary-by-labels rmail-summary
23050;;;;;; rmail-summary-line-count-flag rmail-summary-scroll-between-messages) 23050;;;;;; rmail-summary-line-count-flag rmail-summary-scroll-between-messages)
23051;;;;;; "rmailsum" "mail/rmailsum.el" (17843 45622)) 23051;;;;;; "rmailsum" "mail/rmailsum.el" (17842 55035))
23052;;; Generated autoloads from mail/rmailsum.el 23052;;; Generated autoloads from mail/rmailsum.el
23053 23053
23054(defvar rmail-summary-scroll-between-messages t "\ 23054(defvar rmail-summary-scroll-between-messages t "\
@@ -23130,7 +23130,7 @@ Setting this variable has an effect only before reading a mail.")
23130;;;*** 23130;;;***
23131 23131
23132;;;### (autoloads (toggle-rot13-mode rot13-other-window rot13-region 23132;;;### (autoloads (toggle-rot13-mode rot13-other-window rot13-region
23133;;;;;; rot13-string rot13) "rot13" "rot13.el" (17843 45612)) 23133;;;;;; rot13-string rot13) "rot13" "rot13.el" (17842 58279))
23134;;; Generated autoloads from rot13.el 23134;;; Generated autoloads from rot13.el
23135 23135
23136(autoload (quote rot13) "rot13" "\ 23136(autoload (quote rot13) "rot13" "\
@@ -23167,8 +23167,8 @@ Toggle the use of ROT13 encoding for the current window.
23167 23167
23168;;;*** 23168;;;***
23169 23169
23170;;;### (autoloads (ruler-mode) "ruler-mode" "ruler-mode.el" (17838 23170;;;### (autoloads (ruler-mode) "ruler-mode" "ruler-mode.el" (17833
23171;;;;;; 18033)) 23171;;;;;; 43069))
23172;;; Generated autoloads from ruler-mode.el 23172;;; Generated autoloads from ruler-mode.el
23173 23173
23174(autoload (quote ruler-mode) "ruler-mode" "\ 23174(autoload (quote ruler-mode) "ruler-mode" "\
@@ -23178,8 +23178,8 @@ Display a ruler in the header line if ARG > 0.
23178 23178
23179;;;*** 23179;;;***
23180 23180
23181;;;### (autoloads (rx rx-to-string) "rx" "emacs-lisp/rx.el" (17843 23181;;;### (autoloads (rx rx-to-string) "rx" "emacs-lisp/rx.el" (18011
23182;;;;;; 45615)) 23182;;;;;; 44080))
23183;;; Generated autoloads from emacs-lisp/rx.el 23183;;; Generated autoloads from emacs-lisp/rx.el
23184 23184
23185(autoload (quote rx-to-string) "rx" "\ 23185(autoload (quote rx-to-string) "rx" "\
@@ -23251,8 +23251,7 @@ CHAR
23251 matches the empty string, but only at point. 23251 matches the empty string, but only at point.
23252 23252
23253`word-start', `bow' 23253`word-start', `bow'
23254 matches the empty string, but only at the beginning or end of a 23254 matches the empty string, but only at the beginning of a word.
23255 word.
23256 23255
23257`word-end', `eow' 23256`word-end', `eow'
23258 matches the empty string, but only at the end of a word. 23257 matches the empty string, but only at the end of a word.
@@ -23266,6 +23265,12 @@ CHAR
23266 matches the empty string, but not at the beginning or end of a 23265 matches the empty string, but not at the beginning or end of a
23267 word. 23266 word.
23268 23267
23268`symbol-start'
23269 matches the empty string, but only at the beginning of a symbol.
23270
23271`symbol-end'
23272 matches the empty string, but only at the end of a symbol.
23273
23269`digit', `numeric', `num' 23274`digit', `numeric', `num'
23270 matches 0 through 9. 23275 matches 0 through 9.
23271 23276
@@ -23487,7 +23492,7 @@ enclosed in `(and ...)'.
23487;;;*** 23492;;;***
23488 23493
23489;;;### (autoloads (savehist-mode savehist-mode) "savehist" "savehist.el" 23494;;;### (autoloads (savehist-mode savehist-mode) "savehist" "savehist.el"
23490;;;;;; (17843 45612)) 23495;;;;;; (17842 58279))
23491;;; Generated autoloads from savehist.el 23496;;; Generated autoloads from savehist.el
23492 23497
23493(defvar savehist-mode nil "\ 23498(defvar savehist-mode nil "\
@@ -23513,7 +23518,7 @@ which is probably undesirable.
23513;;;*** 23518;;;***
23514 23519
23515;;;### (autoloads (dsssl-mode scheme-mode) "scheme" "progmodes/scheme.el" 23520;;;### (autoloads (dsssl-mode scheme-mode) "scheme" "progmodes/scheme.el"
23516;;;;;; (17843 45629)) 23521;;;;;; (17842 56332))
23517;;; Generated autoloads from progmodes/scheme.el 23522;;; Generated autoloads from progmodes/scheme.el
23518 23523
23519(autoload (quote scheme-mode) "scheme" "\ 23524(autoload (quote scheme-mode) "scheme" "\
@@ -23555,7 +23560,7 @@ that variable's value is a string.
23555;;;*** 23560;;;***
23556 23561
23557;;;### (autoloads (gnus-score-mode) "score-mode" "gnus/score-mode.el" 23562;;;### (autoloads (gnus-score-mode) "score-mode" "gnus/score-mode.el"
23558;;;;;; (17843 45617)) 23563;;;;;; (17842 54741))
23559;;; Generated autoloads from gnus/score-mode.el 23564;;; Generated autoloads from gnus/score-mode.el
23560 23565
23561(autoload (quote gnus-score-mode) "score-mode" "\ 23566(autoload (quote gnus-score-mode) "score-mode" "\
@@ -23569,12 +23574,12 @@ This mode is an extended emacs-lisp mode.
23569;;;*** 23574;;;***
23570 23575
23571;;;### (autoloads (scroll-all-mode) "scroll-all" "scroll-all.el" 23576;;;### (autoloads (scroll-all-mode) "scroll-all" "scroll-all.el"
23572;;;;;; (17843 45612)) 23577;;;;;; (17842 58278))
23573;;; Generated autoloads from scroll-all.el 23578;;; Generated autoloads from scroll-all.el
23574 23579
23575(defvar scroll-all-mode nil "\ 23580(defvar scroll-all-mode nil "\
23576Non-nil if Scroll-All mode is enabled. 23581Non-nil if Scroll-All mode is enabled.
23577See the command `scroll-all-mode' for a description of this minor-mode. 23582See the command `scroll-all-mode' for a description of this minor mode.
23578Setting this variable directly does not take effect; 23583Setting this variable directly does not take effect;
23579either customize it (see the info node `Easy Customization') 23584either customize it (see the info node `Easy Customization')
23580or call the function `scroll-all-mode'.") 23585or call the function `scroll-all-mode'.")
@@ -23592,7 +23597,7 @@ apply to all visible windows in the same frame.
23592;;;*** 23597;;;***
23593 23598
23594;;;### (autoloads (scroll-lock-mode) "scroll-lock" "scroll-lock.el" 23599;;;### (autoloads (scroll-lock-mode) "scroll-lock" "scroll-lock.el"
23595;;;;;; (17843 45612)) 23600;;;;;; (17842 58278))
23596;;; Generated autoloads from scroll-lock.el 23601;;; Generated autoloads from scroll-lock.el
23597 23602
23598(autoload (quote scroll-lock-mode) "scroll-lock" "\ 23603(autoload (quote scroll-lock-mode) "scroll-lock" "\
@@ -23614,7 +23619,7 @@ during scrolling.
23614;;;;;; mail-alias-file mail-default-reply-to mail-archive-file-name 23619;;;;;; mail-alias-file mail-default-reply-to mail-archive-file-name
23615;;;;;; mail-header-separator send-mail-function mail-interactive 23620;;;;;; mail-header-separator send-mail-function mail-interactive
23616;;;;;; mail-self-blind mail-specify-envelope-from mail-from-style) 23621;;;;;; mail-self-blind mail-specify-envelope-from mail-from-style)
23617;;;;;; "sendmail" "mail/sendmail.el" (17942 35726)) 23622;;;;;; "sendmail" "mail/sendmail.el" (17942 63381))
23618;;; Generated autoloads from mail/sendmail.el 23623;;; Generated autoloads from mail/sendmail.el
23619 23624
23620(defvar mail-from-style (quote angles) "\ 23625(defvar mail-from-style (quote angles) "\
@@ -23915,7 +23920,7 @@ Like `mail' command, but display mail buffer in another frame.
23915;;;*** 23920;;;***
23916 23921
23917;;;### (autoloads (server-mode server-start) "server" "server.el" 23922;;;### (autoloads (server-mode server-start) "server" "server.el"
23918;;;;;; (17939 56017)) 23923;;;;;; (17921 16827))
23919;;; Generated autoloads from server.el 23924;;; Generated autoloads from server.el
23920 23925
23921(autoload (quote server-start) "server" "\ 23926(autoload (quote server-start) "server" "\
@@ -23932,7 +23937,7 @@ kill any existing server communications subprocess.
23932 23937
23933(defvar server-mode nil "\ 23938(defvar server-mode nil "\
23934Non-nil if Server mode is enabled. 23939Non-nil if Server mode is enabled.
23935See the command `server-mode' for a description of this minor-mode. 23940See the command `server-mode' for a description of this minor mode.
23936Setting this variable directly does not take effect; 23941Setting this variable directly does not take effect;
23937either customize it (see the info node `Easy Customization') 23942either customize it (see the info node `Easy Customization')
23938or call the function `server-mode'.") 23943or call the function `server-mode'.")
@@ -23949,7 +23954,7 @@ Server mode runs a process that accepts commands from the
23949 23954
23950;;;*** 23955;;;***
23951 23956
23952;;;### (autoloads (ses-mode) "ses" "ses.el" (17939 56017)) 23957;;;### (autoloads (ses-mode) "ses" "ses.el" (17902 31690))
23953;;; Generated autoloads from ses.el 23958;;; Generated autoloads from ses.el
23954 23959
23955(autoload (quote ses-mode) "ses" "\ 23960(autoload (quote ses-mode) "ses" "\
@@ -23968,7 +23973,7 @@ These are active only in the minibuffer, when entering or editing a formula:
23968;;;*** 23973;;;***
23969 23974
23970;;;### (autoloads (html-mode sgml-mode) "sgml-mode" "textmodes/sgml-mode.el" 23975;;;### (autoloads (html-mode sgml-mode) "sgml-mode" "textmodes/sgml-mode.el"
23971;;;;;; (17939 56024)) 23976;;;;;; (18010 58080))
23972;;; Generated autoloads from textmodes/sgml-mode.el 23977;;; Generated autoloads from textmodes/sgml-mode.el
23973 23978
23974(autoload (quote sgml-mode) "sgml-mode" "\ 23979(autoload (quote sgml-mode) "sgml-mode" "\
@@ -24036,7 +24041,7 @@ To work around that, do:
24036;;;*** 24041;;;***
24037 24042
24038;;;### (autoloads (sh-mode) "sh-script" "progmodes/sh-script.el" 24043;;;### (autoloads (sh-mode) "sh-script" "progmodes/sh-script.el"
24039;;;;;; (17988 52354)) 24044;;;;;; (17992 30878))
24040;;; Generated autoloads from progmodes/sh-script.el 24045;;; Generated autoloads from progmodes/sh-script.el
24041(put 'sh-shell 'safe-local-variable 'symbolp) 24046(put 'sh-shell 'safe-local-variable 'symbolp)
24042 24047
@@ -24100,7 +24105,7 @@ with your script for an edit-interpret-debug cycle.
24100 24105
24101;;;*** 24106;;;***
24102 24107
24103;;;### (autoloads (sha1) "sha1" "gnus/sha1.el" (17843 45617)) 24108;;;### (autoloads (sha1) "sha1" "gnus/sha1.el" (17842 54741))
24104;;; Generated autoloads from gnus/sha1.el 24109;;; Generated autoloads from gnus/sha1.el
24105 24110
24106(autoload (quote sha1) "sha1" "\ 24111(autoload (quote sha1) "sha1" "\
@@ -24115,7 +24120,7 @@ If BINARY is non-nil, return a string in binary form.
24115;;;*** 24120;;;***
24116 24121
24117;;;### (autoloads (list-load-path-shadows) "shadow" "emacs-lisp/shadow.el" 24122;;;### (autoloads (list-load-path-shadows) "shadow" "emacs-lisp/shadow.el"
24118;;;;;; (17939 56021)) 24123;;;;;; (17853 57352))
24119;;; Generated autoloads from emacs-lisp/shadow.el 24124;;; Generated autoloads from emacs-lisp/shadow.el
24120 24125
24121(autoload (quote list-load-path-shadows) "shadow" "\ 24126(autoload (quote list-load-path-shadows) "shadow" "\
@@ -24162,8 +24167,8 @@ buffer called `*Shadows*'. Shadowings are located by calling the
24162;;;*** 24167;;;***
24163 24168
24164;;;### (autoloads (shadow-initialize shadow-define-regexp-group shadow-define-literal-group 24169;;;### (autoloads (shadow-initialize shadow-define-regexp-group shadow-define-literal-group
24165;;;;;; shadow-define-cluster) "shadowfile" "shadowfile.el" (17843 24170;;;;;; shadow-define-cluster) "shadowfile" "shadowfile.el" (17842
24166;;;;;; 45612)) 24171;;;;;; 58278))
24167;;; Generated autoloads from shadowfile.el 24172;;; Generated autoloads from shadowfile.el
24168 24173
24169(autoload (quote shadow-define-cluster) "shadowfile" "\ 24174(autoload (quote shadow-define-cluster) "shadowfile" "\
@@ -24202,7 +24207,7 @@ Set up file shadowing.
24202;;;*** 24207;;;***
24203 24208
24204;;;### (autoloads (shell shell-dumb-shell-regexp) "shell" "shell.el" 24209;;;### (autoloads (shell shell-dumb-shell-regexp) "shell" "shell.el"
24205;;;;;; (17939 56017)) 24210;;;;;; (17899 1575))
24206;;; Generated autoloads from shell.el 24211;;; Generated autoloads from shell.el
24207 24212
24208(defvar shell-dumb-shell-regexp "cmd\\(proxy\\)?\\.exe" "\ 24213(defvar shell-dumb-shell-regexp "cmd\\(proxy\\)?\\.exe" "\
@@ -24249,7 +24254,7 @@ Otherwise, one argument `-i' is passed to the shell.
24249;;;*** 24254;;;***
24250 24255
24251;;;### (autoloads (sieve-upload-and-bury sieve-upload sieve-manage) 24256;;;### (autoloads (sieve-upload-and-bury sieve-upload sieve-manage)
24252;;;;;; "sieve" "gnus/sieve.el" (17843 45617)) 24257;;;;;; "sieve" "gnus/sieve.el" (17842 54741))
24253;;; Generated autoloads from gnus/sieve.el 24258;;; Generated autoloads from gnus/sieve.el
24254 24259
24255(autoload (quote sieve-manage) "sieve" "\ 24260(autoload (quote sieve-manage) "sieve" "\
@@ -24270,7 +24275,7 @@ Not documented
24270;;;*** 24275;;;***
24271 24276
24272;;;### (autoloads (sieve-mode) "sieve-mode" "gnus/sieve-mode.el" 24277;;;### (autoloads (sieve-mode) "sieve-mode" "gnus/sieve-mode.el"
24273;;;;;; (17843 45617)) 24278;;;;;; (17842 54741))
24274;;; Generated autoloads from gnus/sieve-mode.el 24279;;; Generated autoloads from gnus/sieve-mode.el
24275 24280
24276(autoload (quote sieve-mode) "sieve-mode" "\ 24281(autoload (quote sieve-mode) "sieve-mode" "\
@@ -24285,14 +24290,14 @@ Turning on Sieve mode runs `sieve-mode-hook'.
24285 24290
24286;;;*** 24291;;;***
24287 24292
24288;;;### (autoloads nil "simple" "simple.el" (17995 6542)) 24293;;;### (autoloads nil "simple" "simple.el" (18009 38727))
24289;;; Generated autoloads from simple.el 24294;;; Generated autoloads from simple.el
24290(put 'fill-prefix 'safe-local-variable 'string-or-null-p) 24295(put 'fill-prefix 'safe-local-variable 'string-or-null-p)
24291 24296
24292;;;*** 24297;;;***
24293 24298
24294;;;### (autoloads (simula-mode) "simula" "progmodes/simula.el" (17843 24299;;;### (autoloads (simula-mode) "simula" "progmodes/simula.el" (17842
24295;;;;;; 45629)) 24300;;;;;; 56332))
24296;;; Generated autoloads from progmodes/simula.el 24301;;; Generated autoloads from progmodes/simula.el
24297 24302
24298(autoload (quote simula-mode) "simula" "\ 24303(autoload (quote simula-mode) "simula" "\
@@ -24341,7 +24346,7 @@ with no arguments, if that value is non-nil.
24341;;;*** 24346;;;***
24342 24347
24343;;;### (autoloads (skeleton-pair-insert-maybe skeleton-insert skeleton-proxy-new 24348;;;### (autoloads (skeleton-pair-insert-maybe skeleton-insert skeleton-proxy-new
24344;;;;;; define-skeleton) "skeleton" "skeleton.el" (17843 45612)) 24349;;;;;; define-skeleton) "skeleton" "skeleton.el" (17842 58278))
24345;;; Generated autoloads from skeleton.el 24350;;; Generated autoloads from skeleton.el
24346 24351
24347(defvar skeleton-filter-function (quote identity) "\ 24352(defvar skeleton-filter-function (quote identity) "\
@@ -24451,7 +24456,7 @@ symmetrical ones, and the same character twice for the others.
24451;;;*** 24456;;;***
24452 24457
24453;;;### (autoloads (smerge-mode smerge-ediff) "smerge-mode" "smerge-mode.el" 24458;;;### (autoloads (smerge-mode smerge-ediff) "smerge-mode" "smerge-mode.el"
24454;;;;;; (17939 56017)) 24459;;;;;; (17904 28230))
24455;;; Generated autoloads from smerge-mode.el 24460;;; Generated autoloads from smerge-mode.el
24456 24461
24457(autoload (quote smerge-ediff) "smerge-mode" "\ 24462(autoload (quote smerge-ediff) "smerge-mode" "\
@@ -24470,7 +24475,7 @@ Minor mode to simplify editing output from the diff3 program.
24470;;;*** 24475;;;***
24471 24476
24472;;;### (autoloads (smiley-buffer smiley-region) "smiley" "gnus/smiley.el" 24477;;;### (autoloads (smiley-buffer smiley-region) "smiley" "gnus/smiley.el"
24473;;;;;; (17939 56021)) 24478;;;;;; (17875 18370))
24474;;; Generated autoloads from gnus/smiley.el 24479;;; Generated autoloads from gnus/smiley.el
24475 24480
24476(autoload (quote smiley-region) "smiley" "\ 24481(autoload (quote smiley-region) "smiley" "\
@@ -24488,7 +24493,7 @@ interactively. If there's no argument, do it at the current buffer
24488;;;*** 24493;;;***
24489 24494
24490;;;### (autoloads (smtpmail-send-queued-mail smtpmail-send-it) "smtpmail" 24495;;;### (autoloads (smtpmail-send-queued-mail smtpmail-send-it) "smtpmail"
24491;;;;;; "mail/smtpmail.el" (17939 56022)) 24496;;;;;; "mail/smtpmail.el" (17939 50716))
24492;;; Generated autoloads from mail/smtpmail.el 24497;;; Generated autoloads from mail/smtpmail.el
24493 24498
24494(autoload (quote smtpmail-send-it) "smtpmail" "\ 24499(autoload (quote smtpmail-send-it) "smtpmail" "\
@@ -24503,7 +24508,7 @@ Send mail that was queued as a result of setting `smtpmail-queue-mail'.
24503 24508
24504;;;*** 24509;;;***
24505 24510
24506;;;### (autoloads (snake) "snake" "play/snake.el" (17843 45626)) 24511;;;### (autoloads (snake) "snake" "play/snake.el" (17842 55395))
24507;;; Generated autoloads from play/snake.el 24512;;; Generated autoloads from play/snake.el
24508 24513
24509(autoload (quote snake) "snake" "\ 24514(autoload (quote snake) "snake" "\
@@ -24527,7 +24532,7 @@ Snake mode keybindings:
24527;;;*** 24532;;;***
24528 24533
24529;;;### (autoloads (snmpv2-mode snmp-mode) "snmp-mode" "net/snmp-mode.el" 24534;;;### (autoloads (snmpv2-mode snmp-mode) "snmp-mode" "net/snmp-mode.el"
24530;;;;;; (17843 45624)) 24535;;;;;; (17842 55218))
24531;;; Generated autoloads from net/snmp-mode.el 24536;;; Generated autoloads from net/snmp-mode.el
24532 24537
24533(autoload (quote snmp-mode) "snmp-mode" "\ 24538(autoload (quote snmp-mode) "snmp-mode" "\
@@ -24558,7 +24563,7 @@ then `snmpv2-mode-hook'.
24558 24563
24559;;;### (autoloads (solar-equinoxes-solstices sunrise-sunset calendar-location-name 24564;;;### (autoloads (solar-equinoxes-solstices sunrise-sunset calendar-location-name
24560;;;;;; calendar-longitude calendar-latitude calendar-time-display-form) 24565;;;;;; calendar-longitude calendar-latitude calendar-time-display-form)
24561;;;;;; "solar" "calendar/solar.el" (17956 60684)) 24566;;;;;; "solar" "calendar/solar.el" (17956 13479))
24562;;; Generated autoloads from calendar/solar.el 24567;;; Generated autoloads from calendar/solar.el
24563 24568
24564(defvar calendar-time-display-form (quote (12-hours ":" minutes am-pm (if time-zone " (") time-zone (if time-zone ")"))) "\ 24569(defvar calendar-time-display-form (quote (12-hours ":" minutes am-pm (if time-zone " (") time-zone (if time-zone ")"))) "\
@@ -24629,8 +24634,8 @@ Requires floating point.
24629 24634
24630;;;*** 24635;;;***
24631 24636
24632;;;### (autoloads (solitaire) "solitaire" "play/solitaire.el" (17843 24637;;;### (autoloads (solitaire) "solitaire" "play/solitaire.el" (17842
24633;;;;;; 45626)) 24638;;;;;; 55395))
24634;;; Generated autoloads from play/solitaire.el 24639;;; Generated autoloads from play/solitaire.el
24635 24640
24636(autoload (quote solitaire) "solitaire" "\ 24641(autoload (quote solitaire) "solitaire" "\
@@ -24707,7 +24712,7 @@ Pick your favourite shortcuts:
24707 24712
24708;;;### (autoloads (reverse-region sort-columns sort-regexp-fields 24713;;;### (autoloads (reverse-region sort-columns sort-regexp-fields
24709;;;;;; sort-fields sort-numeric-fields sort-pages sort-paragraphs 24714;;;;;; sort-fields sort-numeric-fields sort-pages sort-paragraphs
24710;;;;;; sort-lines sort-subr) "sort" "sort.el" (17843 45612)) 24715;;;;;; sort-lines sort-subr) "sort" "sort.el" (17842 58278))
24711;;; Generated autoloads from sort.el 24716;;; Generated autoloads from sort.el
24712 24717
24713(autoload (quote sort-subr) "sort" "\ 24718(autoload (quote sort-subr) "sort" "\
@@ -24849,8 +24854,8 @@ From a program takes two point or marker arguments, BEG and END.
24849 24854
24850;;;*** 24855;;;***
24851 24856
24852;;;### (autoloads (spam-initialize) "spam" "gnus/spam.el" (17843 24857;;;### (autoloads (spam-initialize) "spam" "gnus/spam.el" (17842
24853;;;;;; 45617)) 24858;;;;;; 54741))
24854;;; Generated autoloads from gnus/spam.el 24859;;; Generated autoloads from gnus/spam.el
24855 24860
24856(autoload (quote spam-initialize) "spam" "\ 24861(autoload (quote spam-initialize) "spam" "\
@@ -24862,7 +24867,7 @@ Install the spam.el hooks and do other initialization
24862 24867
24863;;;### (autoloads (spam-report-deagentize spam-report-agentize spam-report-url-to-file 24868;;;### (autoloads (spam-report-deagentize spam-report-agentize spam-report-url-to-file
24864;;;;;; spam-report-url-ping-mm-url spam-report-process-queue) "spam-report" 24869;;;;;; spam-report-url-ping-mm-url spam-report-process-queue) "spam-report"
24865;;;;;; "gnus/spam-report.el" (17843 45617)) 24870;;;;;; "gnus/spam-report.el" (17842 54741))
24866;;; Generated autoloads from gnus/spam-report.el 24871;;; Generated autoloads from gnus/spam-report.el
24867 24872
24868(autoload (quote spam-report-process-queue) "spam-report" "\ 24873(autoload (quote spam-report-process-queue) "spam-report" "\
@@ -24905,7 +24910,7 @@ Spam reports will be queued with the method used when
24905;;;*** 24910;;;***
24906 24911
24907;;;### (autoloads (speedbar-get-focus speedbar-frame-mode) "speedbar" 24912;;;### (autoloads (speedbar-get-focus speedbar-frame-mode) "speedbar"
24908;;;;;; "speedbar.el" (17939 56017)) 24913;;;;;; "speedbar.el" (17881 43027))
24909;;; Generated autoloads from speedbar.el 24914;;; Generated autoloads from speedbar.el
24910 24915
24911(defalias (quote speedbar) (quote speedbar-frame-mode)) 24916(defalias (quote speedbar) (quote speedbar-frame-mode))
@@ -24930,7 +24935,7 @@ selected. If the speedbar frame is active, then select the attached frame.
24930;;;*** 24935;;;***
24931 24936
24932;;;### (autoloads (spell-string spell-region spell-word spell-buffer) 24937;;;### (autoloads (spell-string spell-region spell-word spell-buffer)
24933;;;;;; "spell" "textmodes/spell.el" (17843 45630)) 24938;;;;;; "spell" "textmodes/spell.el" (17842 58276))
24934;;; Generated autoloads from textmodes/spell.el 24939;;; Generated autoloads from textmodes/spell.el
24935 24940
24936(put (quote spell-filter) (quote risky-local-variable) t) 24941(put (quote spell-filter) (quote risky-local-variable) t)
@@ -24966,8 +24971,8 @@ Check spelling of string supplied as argument.
24966 24971
24967;;;*** 24972;;;***
24968 24973
24969;;;### (autoloads (snarf-spooks spook) "spook" "play/spook.el" (17843 24974;;;### (autoloads (snarf-spooks spook) "spook" "play/spook.el" (17842
24970;;;;;; 45626)) 24975;;;;;; 55395))
24971;;; Generated autoloads from play/spook.el 24976;;; Generated autoloads from play/spook.el
24972 24977
24973(autoload (quote spook) "spook" "\ 24978(autoload (quote spook) "spook" "\
@@ -24985,8 +24990,8 @@ Return a vector containing the lines from `spook-phrases-file'.
24985;;;### (autoloads (sql-linter sql-db2 sql-interbase sql-postgres 24990;;;### (autoloads (sql-linter sql-db2 sql-interbase sql-postgres
24986;;;;;; sql-ms sql-ingres sql-solid sql-mysql sql-sqlite sql-informix 24991;;;;;; sql-ms sql-ingres sql-solid sql-mysql sql-sqlite sql-informix
24987;;;;;; sql-sybase sql-oracle sql-product-interactive sql-mode sql-help 24992;;;;;; sql-sybase sql-oracle sql-product-interactive sql-mode sql-help
24988;;;;;; sql-add-product-keywords) "sql" "progmodes/sql.el" (17843 24993;;;;;; sql-add-product-keywords) "sql" "progmodes/sql.el" (17842
24989;;;;;; 45629)) 24994;;;;;; 56332))
24990;;; Generated autoloads from progmodes/sql.el 24995;;; Generated autoloads from progmodes/sql.el
24991 24996
24992(autoload (quote sql-add-product-keywords) "sql" "\ 24997(autoload (quote sql-add-product-keywords) "sql" "\
@@ -25417,8 +25422,8 @@ input. See `sql-interactive-mode'.
25417;;;;;; strokes-mode strokes-list-strokes strokes-load-user-strokes 25422;;;;;; strokes-mode strokes-list-strokes strokes-load-user-strokes
25418;;;;;; strokes-help strokes-describe-stroke strokes-do-complex-stroke 25423;;;;;; strokes-help strokes-describe-stroke strokes-do-complex-stroke
25419;;;;;; strokes-do-stroke strokes-read-complex-stroke strokes-read-stroke 25424;;;;;; strokes-do-stroke strokes-read-complex-stroke strokes-read-stroke
25420;;;;;; strokes-global-set-stroke) "strokes" "strokes.el" (17843 25425;;;;;; strokes-global-set-stroke) "strokes" "strokes.el" (17842
25421;;;;;; 45612)) 25426;;;;;; 58278))
25422;;; Generated autoloads from strokes.el 25427;;; Generated autoloads from strokes.el
25423 25428
25424(autoload (quote strokes-global-set-stroke) "strokes" "\ 25429(autoload (quote strokes-global-set-stroke) "strokes" "\
@@ -25489,7 +25494,7 @@ If STROKES-MAP is not given, `strokes-global-map' will be used instead.
25489 25494
25490(defvar strokes-mode nil "\ 25495(defvar strokes-mode nil "\
25491Non-nil if Strokes mode is enabled. 25496Non-nil if Strokes mode is enabled.
25492See the command `strokes-mode' for a description of this minor-mode. 25497See the command `strokes-mode' for a description of this minor mode.
25493Setting this variable directly does not take effect; 25498Setting this variable directly does not take effect;
25494either customize it (see the info node `Easy Customization') 25499either customize it (see the info node `Easy Customization')
25495or call the function `strokes-mode'.") 25500or call the function `strokes-mode'.")
@@ -25548,7 +25553,7 @@ Studlify-case the current buffer.
25548 25553
25549;;;*** 25554;;;***
25550 25555
25551;;;### (autoloads (locate-library) "subr" "subr.el" (17966 9915)) 25556;;;### (autoloads (locate-library) "subr" "subr.el" (17964 48351))
25552;;; Generated autoloads from subr.el 25557;;; Generated autoloads from subr.el
25553 25558
25554(autoload (quote locate-library) "subr" "\ 25559(autoload (quote locate-library) "subr" "\
@@ -25570,7 +25575,7 @@ and the file name is displayed in the echo area.
25570;;;*** 25575;;;***
25571 25576
25572;;;### (autoloads (sc-cite-original) "supercite" "mail/supercite.el" 25577;;;### (autoloads (sc-cite-original) "supercite" "mail/supercite.el"
25573;;;;;; (17939 56022)) 25578;;;;;; (17854 7564))
25574;;; Generated autoloads from mail/supercite.el 25579;;; Generated autoloads from mail/supercite.el
25575 25580
25576(autoload (quote sc-cite-original) "supercite" "\ 25581(autoload (quote sc-cite-original) "supercite" "\
@@ -25602,7 +25607,7 @@ before, and `sc-post-hook' is run after the guts of this function.
25602 25607
25603;;;*** 25608;;;***
25604 25609
25605;;;### (autoloads (t-mouse-mode) "t-mouse" "t-mouse.el" (17966 9915)) 25610;;;### (autoloads (t-mouse-mode) "t-mouse" "t-mouse.el" (18006 55796))
25606;;; Generated autoloads from t-mouse.el 25611;;; Generated autoloads from t-mouse.el
25607 25612
25608(defvar t-mouse-mode nil "\ 25613(defvar t-mouse-mode nil "\
@@ -25615,16 +25620,18 @@ or call the function `t-mouse-mode'.")
25615(custom-autoload (quote t-mouse-mode) "t-mouse" nil) 25620(custom-autoload (quote t-mouse-mode) "t-mouse" nil)
25616 25621
25617(autoload (quote t-mouse-mode) "t-mouse" "\ 25622(autoload (quote t-mouse-mode) "t-mouse" "\
25618Toggle t-mouse mode. 25623Toggle t-mouse mode to use the mouse in Linux consoles.
25619With prefix arg, turn t-mouse mode on iff arg is positive. 25624With prefix arg, turn t-mouse mode on iff arg is positive.
25620 25625
25621Turn it on to use Emacs mouse commands, and off to use t-mouse commands. 25626This allows the use of the mouse when operating on a Linux console, in the
25627same way as you can use the mouse under X11.
25628It requires the `mev' program, part of the `gpm' utilities.
25622 25629
25623\(fn &optional ARG)" t nil) 25630\(fn &optional ARG)" t nil)
25624 25631
25625;;;*** 25632;;;***
25626 25633
25627;;;### (autoloads (tabify untabify) "tabify" "tabify.el" (17843 45612)) 25634;;;### (autoloads (tabify untabify) "tabify" "tabify.el" (17842 58278))
25628;;; Generated autoloads from tabify.el 25635;;; Generated autoloads from tabify.el
25629 25636
25630(autoload (quote untabify) "tabify" "\ 25637(autoload (quote untabify) "tabify" "\
@@ -25659,7 +25666,7 @@ The variable `tab-width' controls the spacing of tab stops.
25659;;;;;; table-recognize table-insert-row-column table-insert-column 25666;;;;;; table-recognize table-insert-row-column table-insert-column
25660;;;;;; table-insert-row table-insert table-point-left-cell-hook 25667;;;;;; table-insert-row table-insert table-point-left-cell-hook
25661;;;;;; table-point-entered-cell-hook table-load-hook table-cell-map-hook) 25668;;;;;; table-point-entered-cell-hook table-load-hook table-cell-map-hook)
25662;;;;;; "table" "textmodes/table.el" (17843 45630)) 25669;;;;;; "table" "textmodes/table.el" (18012 17784))
25663;;; Generated autoloads from textmodes/table.el 25670;;; Generated autoloads from textmodes/table.el
25664 25671
25665(defvar table-cell-map-hook nil "\ 25672(defvar table-cell-map-hook nil "\
@@ -26247,7 +26254,7 @@ converts a table into plain text without frames. It is a companion to
26247 26254
26248;;;*** 26255;;;***
26249 26256
26250;;;### (autoloads (talk-connect) "talk" "talk.el" (17843 45612)) 26257;;;### (autoloads (talk-connect) "talk" "talk.el" (17842 58278))
26251;;; Generated autoloads from talk.el 26258;;; Generated autoloads from talk.el
26252 26259
26253(autoload (quote talk-connect) "talk" "\ 26260(autoload (quote talk-connect) "talk" "\
@@ -26257,7 +26264,7 @@ Connect to display DISPLAY for the Emacs talk group.
26257 26264
26258;;;*** 26265;;;***
26259 26266
26260;;;### (autoloads (tar-mode) "tar-mode" "tar-mode.el" (17843 45612)) 26267;;;### (autoloads (tar-mode) "tar-mode" "tar-mode.el" (18010 5426))
26261;;; Generated autoloads from tar-mode.el 26268;;; Generated autoloads from tar-mode.el
26262 26269
26263(autoload (quote tar-mode) "tar-mode" "\ 26270(autoload (quote tar-mode) "tar-mode" "\
@@ -26281,7 +26288,7 @@ See also: variables `tar-update-datestamp' and `tar-anal-blocksize'.
26281;;;*** 26288;;;***
26282 26289
26283;;;### (autoloads (tcl-help-on-word inferior-tcl tcl-mode) "tcl" 26290;;;### (autoloads (tcl-help-on-word inferior-tcl tcl-mode) "tcl"
26284;;;;;; "progmodes/tcl.el" (17843 45629)) 26291;;;;;; "progmodes/tcl.el" (17842 56332))
26285;;; Generated autoloads from progmodes/tcl.el 26292;;; Generated autoloads from progmodes/tcl.el
26286 26293
26287(autoload (quote tcl-mode) "tcl" "\ 26294(autoload (quote tcl-mode) "tcl" "\
@@ -26332,7 +26339,7 @@ Prefix argument means invert sense of `tcl-use-smart-word-finder'.
26332 26339
26333;;;*** 26340;;;***
26334 26341
26335;;;### (autoloads (rsh telnet) "telnet" "net/telnet.el" (17843 45624)) 26342;;;### (autoloads (rsh telnet) "telnet" "net/telnet.el" (17842 55218))
26336;;; Generated autoloads from net/telnet.el 26343;;; Generated autoloads from net/telnet.el
26337 (add-hook 'same-window-regexps "\\*telnet-.*\\*\\(\\|<[0-9]+>\\)") 26344 (add-hook 'same-window-regexps "\\*telnet-.*\\*\\(\\|<[0-9]+>\\)")
26338 26345
@@ -26359,8 +26366,8 @@ Normally input is edited in Emacs and sent a line at a time.
26359 26366
26360;;;*** 26367;;;***
26361 26368
26362;;;### (autoloads (ansi-term term make-term) "term" "term.el" (17951 26369;;;### (autoloads (ansi-term term make-term) "term" "term.el" (17952
26363;;;;;; 39252)) 26370;;;;;; 11093))
26364;;; Generated autoloads from term.el 26371;;; Generated autoloads from term.el
26365 26372
26366(autoload (quote make-term) "term" "\ 26373(autoload (quote make-term) "term" "\
@@ -26388,8 +26395,8 @@ Start a terminal-emulator in a new buffer.
26388 26395
26389;;;*** 26396;;;***
26390 26397
26391;;;### (autoloads (terminal-emulator) "terminal" "terminal.el" (17843 26398;;;### (autoloads (terminal-emulator) "terminal" "terminal.el" (17842
26392;;;;;; 45612)) 26399;;;;;; 58278))
26393;;; Generated autoloads from terminal.el 26400;;; Generated autoloads from terminal.el
26394 26401
26395(autoload (quote terminal-emulator) "terminal" "\ 26402(autoload (quote terminal-emulator) "terminal" "\
@@ -26426,7 +26433,7 @@ subprocess started.
26426;;;*** 26433;;;***
26427 26434
26428;;;### (autoloads (testcover-this-defun) "testcover" "emacs-lisp/testcover.el" 26435;;;### (autoloads (testcover-this-defun) "testcover" "emacs-lisp/testcover.el"
26429;;;;;; (17939 56021)) 26436;;;;;; (17925 52793))
26430;;; Generated autoloads from emacs-lisp/testcover.el 26437;;; Generated autoloads from emacs-lisp/testcover.el
26431 26438
26432(autoload (quote testcover-this-defun) "testcover" "\ 26439(autoload (quote testcover-this-defun) "testcover" "\
@@ -26436,7 +26443,7 @@ Start coverage on function under point.
26436 26443
26437;;;*** 26444;;;***
26438 26445
26439;;;### (autoloads (tetris) "tetris" "play/tetris.el" (17941 5494)) 26446;;;### (autoloads (tetris) "tetris" "play/tetris.el" (17941 38806))
26440;;; Generated autoloads from play/tetris.el 26447;;; Generated autoloads from play/tetris.el
26441 26448
26442(autoload (quote tetris) "tetris" "\ 26449(autoload (quote tetris) "tetris" "\
@@ -26467,7 +26474,7 @@ tetris-mode keybindings:
26467;;;;;; tex-start-commands tex-start-options slitex-run-command latex-run-command 26474;;;;;; tex-start-commands tex-start-options slitex-run-command latex-run-command
26468;;;;;; tex-run-command tex-offer-save tex-main-file tex-first-line-header-regexp 26475;;;;;; tex-run-command tex-offer-save tex-main-file tex-first-line-header-regexp
26469;;;;;; tex-directory tex-shell-file-name) "tex-mode" "textmodes/tex-mode.el" 26476;;;;;; tex-directory tex-shell-file-name) "tex-mode" "textmodes/tex-mode.el"
26470;;;;;; (17843 45630)) 26477;;;;;; (17992 30878))
26471;;; Generated autoloads from textmodes/tex-mode.el 26478;;; Generated autoloads from textmodes/tex-mode.el
26472 26479
26473(defvar tex-shell-file-name nil "\ 26480(defvar tex-shell-file-name nil "\
@@ -26769,7 +26776,7 @@ Major mode to edit DocTeX files.
26769;;;*** 26776;;;***
26770 26777
26771;;;### (autoloads (texi2info texinfo-format-region texinfo-format-buffer) 26778;;;### (autoloads (texi2info texinfo-format-region texinfo-format-buffer)
26772;;;;;; "texinfmt" "textmodes/texinfmt.el" (17843 45630)) 26779;;;;;; "texinfmt" "textmodes/texinfmt.el" (17842 58276))
26773;;; Generated autoloads from textmodes/texinfmt.el 26780;;; Generated autoloads from textmodes/texinfmt.el
26774 26781
26775(autoload (quote texinfo-format-buffer) "texinfmt" "\ 26782(autoload (quote texinfo-format-buffer) "texinfmt" "\
@@ -26809,7 +26816,7 @@ if large. You can use Info-split to do this manually.
26809;;;*** 26816;;;***
26810 26817
26811;;;### (autoloads (texinfo-mode texinfo-close-quote texinfo-open-quote) 26818;;;### (autoloads (texinfo-mode texinfo-close-quote texinfo-open-quote)
26812;;;;;; "texinfo" "textmodes/texinfo.el" (17843 45630)) 26819;;;;;; "texinfo" "textmodes/texinfo.el" (17842 58276))
26813;;; Generated autoloads from textmodes/texinfo.el 26820;;; Generated autoloads from textmodes/texinfo.el
26814 26821
26815(defvar texinfo-open-quote "``" "\ 26822(defvar texinfo-open-quote "``" "\
@@ -26896,7 +26903,7 @@ value of `texinfo-mode-hook'.
26896;;;### (autoloads (thai-auto-composition-mode thai-composition-function 26903;;;### (autoloads (thai-auto-composition-mode thai-composition-function
26897;;;;;; thai-post-read-conversion thai-compose-buffer thai-compose-string 26904;;;;;; thai-post-read-conversion thai-compose-buffer thai-compose-string
26898;;;;;; thai-compose-region) "thai-util" "language/thai-util.el" 26905;;;;;; thai-compose-region) "thai-util" "language/thai-util.el"
26899;;;;;; (17843 45621)) 26906;;;;;; (17842 58278))
26900;;; Generated autoloads from language/thai-util.el 26907;;; Generated autoloads from language/thai-util.el
26901 26908
26902(autoload (quote thai-compose-region) "thai-util" "\ 26909(autoload (quote thai-compose-region) "thai-util" "\
@@ -26940,7 +26947,7 @@ Minor mode for automatically correct Thai character composition.
26940 26947
26941;;;### (autoloads (list-at-point number-at-point symbol-at-point 26948;;;### (autoloads (list-at-point number-at-point symbol-at-point
26942;;;;;; sexp-at-point thing-at-point bounds-of-thing-at-point forward-thing) 26949;;;;;; sexp-at-point thing-at-point bounds-of-thing-at-point forward-thing)
26943;;;;;; "thingatpt" "thingatpt.el" (17843 45612)) 26950;;;;;; "thingatpt" "thingatpt.el" (17842 58278))
26944;;; Generated autoloads from thingatpt.el 26951;;; Generated autoloads from thingatpt.el
26945 26952
26946(autoload (quote forward-thing) "thingatpt" "\ 26953(autoload (quote forward-thing) "thingatpt" "\
@@ -26997,7 +27004,7 @@ Not documented
26997 27004
26998;;;### (autoloads (thumbs-dired-setroot thumbs-dired-show thumbs-dired-show-marked 27005;;;### (autoloads (thumbs-dired-setroot thumbs-dired-show thumbs-dired-show-marked
26999;;;;;; thumbs-show-from-dir thumbs-find-thumb) "thumbs" "thumbs.el" 27006;;;;;; thumbs-show-from-dir thumbs-find-thumb) "thumbs" "thumbs.el"
27000;;;;;; (17966 9916)) 27007;;;;;; (17963 26308))
27001;;; Generated autoloads from thumbs.el 27008;;; Generated autoloads from thumbs.el
27002 27009
27003(autoload (quote thumbs-find-thumb) "thumbs" "\ 27010(autoload (quote thumbs-find-thumb) "thumbs" "\
@@ -27036,7 +27043,7 @@ In dired, call the setroot program on the image at point.
27036;;;;;; tibetan-composition-function tibetan-decompose-string tibetan-decompose-region 27043;;;;;; tibetan-composition-function tibetan-decompose-string tibetan-decompose-region
27037;;;;;; tibetan-compose-region tibetan-compose-string tibetan-transcription-to-tibetan 27044;;;;;; tibetan-compose-region tibetan-compose-string tibetan-transcription-to-tibetan
27038;;;;;; tibetan-tibetan-to-transcription tibetan-char-p) "tibet-util" 27045;;;;;; tibetan-tibetan-to-transcription tibetan-char-p) "tibet-util"
27039;;;;;; "language/tibet-util.el" (17843 45621)) 27046;;;;;; "language/tibet-util.el" (17842 58278))
27040;;; Generated autoloads from language/tibet-util.el 27047;;; Generated autoloads from language/tibet-util.el
27041 27048
27042(autoload (quote tibetan-char-p) "tibet-util" "\ 27049(autoload (quote tibetan-char-p) "tibet-util" "\
@@ -27115,7 +27122,7 @@ Not documented
27115;;;*** 27122;;;***
27116 27123
27117;;;### (autoloads (tildify-buffer tildify-region) "tildify" "textmodes/tildify.el" 27124;;;### (autoloads (tildify-buffer tildify-region) "tildify" "textmodes/tildify.el"
27118;;;;;; (17843 45630)) 27125;;;;;; (17842 58276))
27119;;; Generated autoloads from textmodes/tildify.el 27126;;; Generated autoloads from textmodes/tildify.el
27120 27127
27121(autoload (quote tildify-region) "tildify" "\ 27128(autoload (quote tildify-region) "tildify" "\
@@ -27139,7 +27146,7 @@ This function performs no refilling of the changed text.
27139;;;*** 27146;;;***
27140 27147
27141;;;### (autoloads (display-time-mode display-time display-time-day-and-date) 27148;;;### (autoloads (display-time-mode display-time display-time-day-and-date)
27142;;;;;; "time" "time.el" (17995 6542)) 27149;;;;;; "time" "time.el" (18006 55796))
27143;;; Generated autoloads from time.el 27150;;; Generated autoloads from time.el
27144 27151
27145(defvar display-time-day-and-date nil "\ 27152(defvar display-time-day-and-date nil "\
@@ -27181,8 +27188,8 @@ This runs the normal hook `display-time-hook' after each update.
27181;;;### (autoloads (safe-date-to-time time-to-days time-to-day-in-year 27188;;;### (autoloads (safe-date-to-time time-to-days time-to-day-in-year
27182;;;;;; date-leap-year-p days-between date-to-day time-add time-subtract 27189;;;;;; date-leap-year-p days-between date-to-day time-add time-subtract
27183;;;;;; time-since days-to-time time-less-p seconds-to-time time-to-seconds 27190;;;;;; time-since days-to-time time-less-p seconds-to-time time-to-seconds
27184;;;;;; date-to-time) "time-date" "calendar/time-date.el" (17843 27191;;;;;; date-to-time) "time-date" "calendar/time-date.el" (17842
27185;;;;;; 45615)) 27192;;;;;; 53792))
27186;;; Generated autoloads from calendar/time-date.el 27193;;; Generated autoloads from calendar/time-date.el
27187 27194
27188(autoload (quote date-to-time) "time-date" "\ 27195(autoload (quote date-to-time) "time-date" "\
@@ -27268,7 +27275,7 @@ If DATE is malformed, return a time value of zeros.
27268;;;*** 27275;;;***
27269 27276
27270;;;### (autoloads (time-stamp-toggle-active time-stamp) "time-stamp" 27277;;;### (autoloads (time-stamp-toggle-active time-stamp) "time-stamp"
27271;;;;;; "time-stamp.el" (17843 45612)) 27278;;;;;; "time-stamp.el" (17842 58278))
27272;;; Generated autoloads from time-stamp.el 27279;;; Generated autoloads from time-stamp.el
27273(put 'time-stamp-format 'safe-local-variable 'stringp) 27280(put 'time-stamp-format 'safe-local-variable 'stringp)
27274(put 'time-stamp-line-limit 'safe-local-variable 'integerp) 27281(put 'time-stamp-line-limit 'safe-local-variable 'integerp)
@@ -27311,7 +27318,7 @@ With ARG, turn time stamping on if and only if arg is positive.
27311;;;;;; timeclock-workday-remaining-string timeclock-reread-log timeclock-query-out 27318;;;;;; timeclock-workday-remaining-string timeclock-reread-log timeclock-query-out
27312;;;;;; timeclock-change timeclock-status-string timeclock-out timeclock-in 27319;;;;;; timeclock-change timeclock-status-string timeclock-out timeclock-in
27313;;;;;; timeclock-modeline-display) "timeclock" "calendar/timeclock.el" 27320;;;;;; timeclock-modeline-display) "timeclock" "calendar/timeclock.el"
27314;;;;;; (17988 52353)) 27321;;;;;; (17992 30878))
27315;;; Generated autoloads from calendar/timeclock.el 27322;;; Generated autoloads from calendar/timeclock.el
27316 27323
27317(autoload (quote timeclock-modeline-display) "timeclock" "\ 27324(autoload (quote timeclock-modeline-display) "timeclock" "\
@@ -27412,7 +27419,7 @@ relative only to the time worked today, and not to past time.
27412 27419
27413;;;### (autoloads (with-timeout run-with-idle-timer add-timeout run-with-timer 27420;;;### (autoloads (with-timeout run-with-idle-timer add-timeout run-with-timer
27414;;;;;; run-at-time cancel-function-timers cancel-timer) "timer" 27421;;;;;; run-at-time cancel-function-timers cancel-timer) "timer"
27415;;;;;; "emacs-lisp/timer.el" (17939 56021)) 27422;;;;;; "emacs-lisp/timer.el" (17935 13348))
27416;;; Generated autoloads from emacs-lisp/timer.el 27423;;; Generated autoloads from emacs-lisp/timer.el
27417 27424
27418(defalias (quote disable-timeout) (quote cancel-timer)) 27425(defalias (quote disable-timeout) (quote cancel-timer))
@@ -27493,7 +27500,7 @@ be detected.
27493;;;*** 27500;;;***
27494 27501
27495;;;### (autoloads (batch-titdic-convert titdic-convert) "titdic-cnv" 27502;;;### (autoloads (batch-titdic-convert titdic-convert) "titdic-cnv"
27496;;;;;; "international/titdic-cnv.el" (17939 56022)) 27503;;;;;; "international/titdic-cnv.el" (17870 32853))
27497;;; Generated autoloads from international/titdic-cnv.el 27504;;; Generated autoloads from international/titdic-cnv.el
27498 27505
27499(autoload (quote titdic-convert) "titdic-cnv" "\ 27506(autoload (quote titdic-convert) "titdic-cnv" "\
@@ -27516,8 +27523,8 @@ To get complete usage, invoke \"emacs -batch -f batch-titdic-convert -h\".
27516;;;*** 27523;;;***
27517 27524
27518;;;### (autoloads (tamil-composition-function tamil-post-read-conversion 27525;;;### (autoloads (tamil-composition-function tamil-post-read-conversion
27519;;;;;; tamil-compose-region) "tml-util" "language/tml-util.el" (17843 27526;;;;;; tamil-compose-region) "tml-util" "language/tml-util.el" (17842
27520;;;;;; 45621)) 27527;;;;;; 58278))
27521;;; Generated autoloads from language/tml-util.el 27528;;; Generated autoloads from language/tml-util.el
27522 27529
27523(autoload (quote tamil-compose-region) "tml-util" "\ 27530(autoload (quote tamil-compose-region) "tml-util" "\
@@ -27540,7 +27547,7 @@ PATTERN regexp.
27540;;;*** 27547;;;***
27541 27548
27542;;;### (autoloads (tmm-prompt tmm-menubar-mouse tmm-menubar) "tmm" 27549;;;### (autoloads (tmm-prompt tmm-menubar-mouse tmm-menubar) "tmm"
27543;;;;;; "tmm.el" (17953 11485)) 27550;;;;;; "tmm.el" (17952 58711))
27544;;; Generated autoloads from tmm.el 27551;;; Generated autoloads from tmm.el
27545 (define-key global-map "\M-`" 'tmm-menubar) 27552 (define-key global-map "\M-`" 'tmm-menubar)
27546 (define-key global-map [f10] 'tmm-menubar) 27553 (define-key global-map [f10] 'tmm-menubar)
@@ -27581,7 +27588,7 @@ Its value should be an event that has a binding in MENU.
27581 27588
27582;;;### (autoloads (todo-show todo-cp todo-mode todo-print todo-top-priorities 27589;;;### (autoloads (todo-show todo-cp todo-mode todo-print todo-top-priorities
27583;;;;;; todo-insert-item todo-add-item-non-interactively todo-add-category) 27590;;;;;; todo-insert-item todo-add-item-non-interactively todo-add-category)
27584;;;;;; "todo-mode" "calendar/todo-mode.el" (17966 9916)) 27591;;;;;; "todo-mode" "calendar/todo-mode.el" (17962 52848))
27585;;; Generated autoloads from calendar/todo-mode.el 27592;;; Generated autoloads from calendar/todo-mode.el
27586 27593
27587(autoload (quote todo-add-category) "todo-mode" "\ 27594(autoload (quote todo-add-category) "todo-mode" "\
@@ -27642,7 +27649,7 @@ Show TODO list.
27642 27649
27643;;;### (autoloads (tool-bar-local-item-from-menu tool-bar-add-item-from-menu 27650;;;### (autoloads (tool-bar-local-item-from-menu tool-bar-add-item-from-menu
27644;;;;;; tool-bar-local-item tool-bar-add-item) "tool-bar" "tool-bar.el" 27651;;;;;; tool-bar-local-item tool-bar-add-item) "tool-bar" "tool-bar.el"
27645;;;;;; (17843 45612)) 27652;;;;;; (17842 58278))
27646;;; Generated autoloads from tool-bar.el 27653;;; Generated autoloads from tool-bar.el
27647 27654
27648(put (quote tool-bar-mode) (quote standard-value) (quote (t))) 27655(put (quote tool-bar-mode) (quote standard-value) (quote (t)))
@@ -27709,12 +27716,12 @@ holds a keymap.
27709;;;*** 27716;;;***
27710 27717
27711;;;### (autoloads (tpu-edt-on tpu-edt-mode) "tpu-edt" "emulation/tpu-edt.el" 27718;;;### (autoloads (tpu-edt-on tpu-edt-mode) "tpu-edt" "emulation/tpu-edt.el"
27712;;;;;; (17843 45615)) 27719;;;;;; (18006 55796))
27713;;; Generated autoloads from emulation/tpu-edt.el 27720;;; Generated autoloads from emulation/tpu-edt.el
27714 27721
27715(defvar tpu-edt-mode nil "\ 27722(defvar tpu-edt-mode nil "\
27716Non-nil if Tpu-Edt mode is enabled. 27723Non-nil if Tpu-Edt mode is enabled.
27717See the command `tpu-edt-mode' for a description of this minor-mode. 27724See the command `tpu-edt-mode' for a description of this minor mode.
27718Setting this variable directly does not take effect; 27725Setting this variable directly does not take effect;
27719either customize it (see the info node `Easy Customization') 27726either customize it (see the info node `Easy Customization')
27720or call the function `tpu-edt-mode'.") 27727or call the function `tpu-edt-mode'.")
@@ -27736,7 +27743,7 @@ Turn on TPU/edt emulation.
27736;;;*** 27743;;;***
27737 27744
27738;;;### (autoloads (tpu-set-cursor-bound tpu-set-cursor-free tpu-set-scroll-margins) 27745;;;### (autoloads (tpu-set-cursor-bound tpu-set-cursor-free tpu-set-scroll-margins)
27739;;;;;; "tpu-extras" "emulation/tpu-extras.el" (17843 45615)) 27746;;;;;; "tpu-extras" "emulation/tpu-extras.el" (17842 54264))
27740;;; Generated autoloads from emulation/tpu-extras.el 27747;;; Generated autoloads from emulation/tpu-extras.el
27741 27748
27742(autoload (quote tpu-set-scroll-margins) "tpu-extras" "\ 27749(autoload (quote tpu-set-scroll-margins) "tpu-extras" "\
@@ -27756,7 +27763,7 @@ Constrain the cursor to the flow of the text.
27756 27763
27757;;;*** 27764;;;***
27758 27765
27759;;;### (autoloads (tq-create) "tq" "emacs-lisp/tq.el" (17843 45615)) 27766;;;### (autoloads (tq-create) "tq" "emacs-lisp/tq.el" (17842 54152))
27760;;; Generated autoloads from emacs-lisp/tq.el 27767;;; Generated autoloads from emacs-lisp/tq.el
27761 27768
27762(autoload (quote tq-create) "tq" "\ 27769(autoload (quote tq-create) "tq" "\
@@ -27770,7 +27777,7 @@ to a tcp server on another machine.
27770;;;*** 27777;;;***
27771 27778
27772;;;### (autoloads (trace-function-background trace-function trace-buffer) 27779;;;### (autoloads (trace-function-background trace-function trace-buffer)
27773;;;;;; "trace" "emacs-lisp/trace.el" (17843 45615)) 27780;;;;;; "trace" "emacs-lisp/trace.el" (17842 54152))
27774;;; Generated autoloads from emacs-lisp/trace.el 27781;;; Generated autoloads from emacs-lisp/trace.el
27775 27782
27776(defvar trace-buffer "*trace-output*" "\ 27783(defvar trace-buffer "*trace-output*" "\
@@ -27807,7 +27814,7 @@ BUFFER defaults to `trace-buffer'.
27807;;;### (autoloads (tramp-unload-tramp tramp-completion-handle-file-name-completion 27814;;;### (autoloads (tramp-unload-tramp tramp-completion-handle-file-name-completion
27808;;;;;; tramp-completion-handle-file-name-all-completions tramp-unload-file-name-handlers 27815;;;;;; tramp-completion-handle-file-name-all-completions tramp-unload-file-name-handlers
27809;;;;;; tramp-file-name-handler tramp-completion-file-name-regexp 27816;;;;;; tramp-file-name-handler tramp-completion-file-name-regexp
27810;;;;;; tramp-file-name-regexp) "tramp" "net/tramp.el" (17939 56022)) 27817;;;;;; tramp-file-name-regexp) "tramp" "net/tramp.el" (17934 45069))
27811;;; Generated autoloads from net/tramp.el 27818;;; Generated autoloads from net/tramp.el
27812 27819
27813(defvar tramp-unified-filenames (not (featurep (quote xemacs))) "\ 27820(defvar tramp-unified-filenames (not (featurep (quote xemacs))) "\
@@ -27924,7 +27931,7 @@ Discard Tramp from loading remote files.
27924;;;*** 27931;;;***
27925 27932
27926;;;### (autoloads (tramp-ftp-enable-ange-ftp) "tramp-ftp" "net/tramp-ftp.el" 27933;;;### (autoloads (tramp-ftp-enable-ange-ftp) "tramp-ftp" "net/tramp-ftp.el"
27927;;;;;; (17843 45624)) 27934;;;;;; (17842 55218))
27928;;; Generated autoloads from net/tramp-ftp.el 27935;;; Generated autoloads from net/tramp-ftp.el
27929 27936
27930(autoload (quote tramp-ftp-enable-ange-ftp) "tramp-ftp" "\ 27937(autoload (quote tramp-ftp-enable-ange-ftp) "tramp-ftp" "\
@@ -27934,8 +27941,8 @@ Not documented
27934 27941
27935;;;*** 27942;;;***
27936 27943
27937;;;### (autoloads (help-with-tutorial) "tutorial" "tutorial.el" (17995 27944;;;### (autoloads (help-with-tutorial) "tutorial" "tutorial.el" (18006
27938;;;;;; 6542)) 27945;;;;;; 55796))
27939;;; Generated autoloads from tutorial.el 27946;;; Generated autoloads from tutorial.el
27940 27947
27941(autoload (quote help-with-tutorial) "tutorial" "\ 27948(autoload (quote help-with-tutorial) "tutorial" "\
@@ -27960,7 +27967,7 @@ resumed later.
27960;;;*** 27967;;;***
27961 27968
27962;;;### (autoloads (2C-split 2C-associate-buffer 2C-two-columns) "two-column" 27969;;;### (autoloads (2C-split 2C-associate-buffer 2C-two-columns) "two-column"
27963;;;;;; "textmodes/two-column.el" (17843 45630)) 27970;;;;;; "textmodes/two-column.el" (17842 58276))
27964;;; Generated autoloads from textmodes/two-column.el 27971;;; Generated autoloads from textmodes/two-column.el
27965 (autoload '2C-command "two-column" () t 'keymap) 27972 (autoload '2C-command "two-column" () t 'keymap)
27966 (global-set-key "\C-x6" '2C-command) 27973 (global-set-key "\C-x6" '2C-command)
@@ -28011,7 +28018,7 @@ First column's text sSs Second column's text
28011;;;;;; type-break type-break-mode type-break-keystroke-threshold 28018;;;;;; type-break type-break-mode type-break-keystroke-threshold
28012;;;;;; type-break-good-break-interval type-break-good-rest-interval 28019;;;;;; type-break-good-break-interval type-break-good-rest-interval
28013;;;;;; type-break-interval type-break-mode) "type-break" "type-break.el" 28020;;;;;; type-break-interval type-break-mode) "type-break" "type-break.el"
28014;;;;;; (17939 56017)) 28021;;;;;; (17908 29123))
28015;;; Generated autoloads from type-break.el 28022;;; Generated autoloads from type-break.el
28016 28023
28017(defvar type-break-mode nil "\ 28024(defvar type-break-mode nil "\
@@ -28194,7 +28201,7 @@ FRAC should be the inverse of the fractional value; for example, a value of
28194;;;*** 28201;;;***
28195 28202
28196;;;### (autoloads (ununderline-region underline-region) "underline" 28203;;;### (autoloads (ununderline-region underline-region) "underline"
28197;;;;;; "textmodes/underline.el" (17843 45630)) 28204;;;;;; "textmodes/underline.el" (17842 58276))
28198;;; Generated autoloads from textmodes/underline.el 28205;;; Generated autoloads from textmodes/underline.el
28199 28206
28200(autoload (quote underline-region) "underline" "\ 28207(autoload (quote underline-region) "underline" "\
@@ -28215,7 +28222,7 @@ which specify the range to operate on.
28215;;;*** 28222;;;***
28216 28223
28217;;;### (autoloads (unforward-rmail-message undigestify-rmail-message) 28224;;;### (autoloads (unforward-rmail-message undigestify-rmail-message)
28218;;;;;; "undigest" "mail/undigest.el" (17843 45622)) 28225;;;;;; "undigest" "mail/undigest.el" (17842 55035))
28219;;; Generated autoloads from mail/undigest.el 28226;;; Generated autoloads from mail/undigest.el
28220 28227
28221(autoload (quote undigestify-rmail-message) "undigest" "\ 28228(autoload (quote undigestify-rmail-message) "undigest" "\
@@ -28234,7 +28241,7 @@ following the containing message.
28234;;;*** 28241;;;***
28235 28242
28236;;;### (autoloads (unrmail batch-unrmail) "unrmail" "mail/unrmail.el" 28243;;;### (autoloads (unrmail batch-unrmail) "unrmail" "mail/unrmail.el"
28237;;;;;; (17843 45622)) 28244;;;;;; (17842 55035))
28238;;; Generated autoloads from mail/unrmail.el 28245;;; Generated autoloads from mail/unrmail.el
28239 28246
28240(autoload (quote batch-unrmail) "unrmail" "\ 28247(autoload (quote batch-unrmail) "unrmail" "\
@@ -28253,8 +28260,8 @@ Convert Rmail file FILE to system inbox format file TO-FILE.
28253 28260
28254;;;*** 28261;;;***
28255 28262
28256;;;### (autoloads (unsafep) "unsafep" "emacs-lisp/unsafep.el" (17843 28263;;;### (autoloads (unsafep) "unsafep" "emacs-lisp/unsafep.el" (17842
28257;;;;;; 45615)) 28264;;;;;; 54152))
28258;;; Generated autoloads from emacs-lisp/unsafep.el 28265;;; Generated autoloads from emacs-lisp/unsafep.el
28259 28266
28260(autoload (quote unsafep) "unsafep" "\ 28267(autoload (quote unsafep) "unsafep" "\
@@ -28267,7 +28274,7 @@ of symbols with local bindings.
28267;;;*** 28274;;;***
28268 28275
28269;;;### (autoloads (url-retrieve-synchronously url-retrieve) "url" 28276;;;### (autoloads (url-retrieve-synchronously url-retrieve) "url"
28270;;;;;; "url/url.el" (17843 45630)) 28277;;;;;; "url/url.el" (17842 56569))
28271;;; Generated autoloads from url/url.el 28278;;; Generated autoloads from url/url.el
28272 28279
28273(autoload (quote url-retrieve) "url" "\ 28280(autoload (quote url-retrieve) "url" "\
@@ -28307,7 +28314,7 @@ no further processing). URL is either a string or a parsed URL.
28307;;;*** 28314;;;***
28308 28315
28309;;;### (autoloads (url-register-auth-scheme url-get-authentication) 28316;;;### (autoloads (url-register-auth-scheme url-get-authentication)
28310;;;;;; "url-auth" "url/url-auth.el" (17939 56024)) 28317;;;;;; "url-auth" "url/url-auth.el" (17854 10173))
28311;;; Generated autoloads from url/url-auth.el 28318;;; Generated autoloads from url/url-auth.el
28312 28319
28313(autoload (quote url-get-authentication) "url-auth" "\ 28320(autoload (quote url-get-authentication) "url-auth" "\
@@ -28349,8 +28356,8 @@ RATING a rating between 1 and 10 of the strength of the authentication.
28349;;;*** 28356;;;***
28350 28357
28351;;;### (autoloads (url-cache-expired url-cache-extract url-is-cached 28358;;;### (autoloads (url-cache-expired url-cache-extract url-is-cached
28352;;;;;; url-store-in-cache) "url-cache" "url/url-cache.el" (17843 28359;;;;;; url-store-in-cache) "url-cache" "url/url-cache.el" (17842
28353;;;;;; 45630)) 28360;;;;;; 56569))
28354;;; Generated autoloads from url/url-cache.el 28361;;; Generated autoloads from url/url-cache.el
28355 28362
28356(autoload (quote url-store-in-cache) "url-cache" "\ 28363(autoload (quote url-store-in-cache) "url-cache" "\
@@ -28375,7 +28382,7 @@ Return t iff a cached file has expired.
28375 28382
28376;;;*** 28383;;;***
28377 28384
28378;;;### (autoloads (url-cid) "url-cid" "url/url-cid.el" (17843 45630)) 28385;;;### (autoloads (url-cid) "url-cid" "url/url-cid.el" (17842 56569))
28379;;; Generated autoloads from url/url-cid.el 28386;;; Generated autoloads from url/url-cid.el
28380 28387
28381(autoload (quote url-cid) "url-cid" "\ 28388(autoload (quote url-cid) "url-cid" "\
@@ -28386,7 +28393,7 @@ Not documented
28386;;;*** 28393;;;***
28387 28394
28388;;;### (autoloads (url-dav-vc-registered url-dav-supported-p) "url-dav" 28395;;;### (autoloads (url-dav-vc-registered url-dav-supported-p) "url-dav"
28389;;;;;; "url/url-dav.el" (17843 45630)) 28396;;;;;; "url/url-dav.el" (17842 56569))
28390;;; Generated autoloads from url/url-dav.el 28397;;; Generated autoloads from url/url-dav.el
28391 28398
28392(autoload (quote url-dav-supported-p) "url-dav" "\ 28399(autoload (quote url-dav-supported-p) "url-dav" "\
@@ -28401,8 +28408,8 @@ Not documented
28401 28408
28402;;;*** 28409;;;***
28403 28410
28404;;;### (autoloads (url-file) "url-file" "url/url-file.el" (17843 28411;;;### (autoloads (url-file) "url-file" "url/url-file.el" (17842
28405;;;;;; 45630)) 28412;;;;;; 56569))
28406;;; Generated autoloads from url/url-file.el 28413;;; Generated autoloads from url/url-file.el
28407 28414
28408(autoload (quote url-file) "url-file" "\ 28415(autoload (quote url-file) "url-file" "\
@@ -28413,7 +28420,7 @@ Handle file: and ftp: URLs.
28413;;;*** 28420;;;***
28414 28421
28415;;;### (autoloads (url-open-stream url-gateway-nslookup-host) "url-gw" 28422;;;### (autoloads (url-open-stream url-gateway-nslookup-host) "url-gw"
28416;;;;;; "url/url-gw.el" (17843 45630)) 28423;;;;;; "url/url-gw.el" (17842 56569))
28417;;; Generated autoloads from url/url-gw.el 28424;;; Generated autoloads from url/url-gw.el
28418 28425
28419(autoload (quote url-gateway-nslookup-host) "url-gw" "\ 28426(autoload (quote url-gateway-nslookup-host) "url-gw" "\
@@ -28432,13 +28439,13 @@ Might do a non-blocking connection; use `process-status' to check.
28432;;;*** 28439;;;***
28433 28440
28434;;;### (autoloads (url-insert-file-contents url-file-local-copy url-copy-file 28441;;;### (autoloads (url-insert-file-contents url-file-local-copy url-copy-file
28435;;;;;; url-handler-mode) "url-handlers" "url/url-handlers.el" (17843 28442;;;;;; url-handler-mode) "url-handlers" "url/url-handlers.el" (17842
28436;;;;;; 45630)) 28443;;;;;; 56569))
28437;;; Generated autoloads from url/url-handlers.el 28444;;; Generated autoloads from url/url-handlers.el
28438 28445
28439(defvar url-handler-mode nil "\ 28446(defvar url-handler-mode nil "\
28440Non-nil if Url-Handler mode is enabled. 28447Non-nil if Url-Handler mode is enabled.
28441See the command `url-handler-mode' for a description of this minor-mode. 28448See the command `url-handler-mode' for a description of this minor mode.
28442Setting this variable directly does not take effect; 28449Setting this variable directly does not take effect;
28443either customize it (see the info node `Easy Customization') 28450either customize it (see the info node `Easy Customization')
28444or call the function `url-handler-mode'.") 28451or call the function `url-handler-mode'.")
@@ -28477,7 +28484,7 @@ Not documented
28477;;;*** 28484;;;***
28478 28485
28479;;;### (autoloads (url-http-options url-http-file-attributes url-http-file-exists-p 28486;;;### (autoloads (url-http-options url-http-file-attributes url-http-file-exists-p
28480;;;;;; url-http) "url-http" "url/url-http.el" (17951 39666)) 28487;;;;;; url-http) "url-http" "url/url-http.el" (17952 11683))
28481;;; Generated autoloads from url/url-http.el 28488;;; Generated autoloads from url/url-http.el
28482 28489
28483(autoload (quote url-http) "url-http" "\ 28490(autoload (quote url-http) "url-http" "\
@@ -28542,7 +28549,7 @@ HTTPS retrievals are asynchronous.")
28542 28549
28543;;;*** 28550;;;***
28544 28551
28545;;;### (autoloads (url-irc) "url-irc" "url/url-irc.el" (17843 45630)) 28552;;;### (autoloads (url-irc) "url-irc" "url/url-irc.el" (17842 56569))
28546;;; Generated autoloads from url/url-irc.el 28553;;; Generated autoloads from url/url-irc.el
28547 28554
28548(autoload (quote url-irc) "url-irc" "\ 28555(autoload (quote url-irc) "url-irc" "\
@@ -28552,8 +28559,8 @@ Not documented
28552 28559
28553;;;*** 28560;;;***
28554 28561
28555;;;### (autoloads (url-ldap) "url-ldap" "url/url-ldap.el" (17843 28562;;;### (autoloads (url-ldap) "url-ldap" "url/url-ldap.el" (17842
28556;;;;;; 45630)) 28563;;;;;; 56569))
28557;;; Generated autoloads from url/url-ldap.el 28564;;; Generated autoloads from url/url-ldap.el
28558 28565
28559(autoload (quote url-ldap) "url-ldap" "\ 28566(autoload (quote url-ldap) "url-ldap" "\
@@ -28567,7 +28574,7 @@ URL can be a URL string, or a URL vector of the type returned by
28567;;;*** 28574;;;***
28568 28575
28569;;;### (autoloads (url-mailto url-mail) "url-mailto" "url/url-mailto.el" 28576;;;### (autoloads (url-mailto url-mail) "url-mailto" "url/url-mailto.el"
28570;;;;;; (17843 45630)) 28577;;;;;; (18012 18089))
28571;;; Generated autoloads from url/url-mailto.el 28578;;; Generated autoloads from url/url-mailto.el
28572 28579
28573(autoload (quote url-mail) "url-mailto" "\ 28580(autoload (quote url-mail) "url-mailto" "\
@@ -28583,7 +28590,7 @@ Handle the mailto: URL syntax.
28583;;;*** 28590;;;***
28584 28591
28585;;;### (autoloads (url-data url-generic-emulator-loader url-info 28592;;;### (autoloads (url-data url-generic-emulator-loader url-info
28586;;;;;; url-man) "url-misc" "url/url-misc.el" (17843 45630)) 28593;;;;;; url-man) "url-misc" "url/url-misc.el" (17842 56569))
28587;;; Generated autoloads from url/url-misc.el 28594;;; Generated autoloads from url/url-misc.el
28588 28595
28589(autoload (quote url-man) "url-misc" "\ 28596(autoload (quote url-man) "url-misc" "\
@@ -28615,7 +28622,7 @@ Fetch a data URL (RFC 2397).
28615;;;*** 28622;;;***
28616 28623
28617;;;### (autoloads (url-snews url-news) "url-news" "url/url-news.el" 28624;;;### (autoloads (url-snews url-news) "url-news" "url/url-news.el"
28618;;;;;; (17843 45630)) 28625;;;;;; (17842 56569))
28619;;; Generated autoloads from url/url-news.el 28626;;; Generated autoloads from url/url-news.el
28620 28627
28621(autoload (quote url-news) "url-news" "\ 28628(autoload (quote url-news) "url-news" "\
@@ -28632,7 +28639,7 @@ Not documented
28632 28639
28633;;;### (autoloads (url-ns-user-pref url-ns-prefs isInNet isResolvable 28640;;;### (autoloads (url-ns-user-pref url-ns-prefs isInNet isResolvable
28634;;;;;; dnsResolve dnsDomainIs isPlainHostName) "url-ns" "url/url-ns.el" 28641;;;;;; dnsResolve dnsDomainIs isPlainHostName) "url-ns" "url/url-ns.el"
28635;;;;;; (17843 45630)) 28642;;;;;; (17842 56569))
28636;;; Generated autoloads from url/url-ns.el 28643;;; Generated autoloads from url/url-ns.el
28637 28644
28638(autoload (quote isPlainHostName) "url-ns" "\ 28645(autoload (quote isPlainHostName) "url-ns" "\
@@ -28673,7 +28680,7 @@ Not documented
28673;;;*** 28680;;;***
28674 28681
28675;;;### (autoloads (url-generic-parse-url url-recreate-url) "url-parse" 28682;;;### (autoloads (url-generic-parse-url url-recreate-url) "url-parse"
28676;;;;;; "url/url-parse.el" (17955 48758)) 28683;;;;;; "url/url-parse.el" (17954 22157))
28677;;; Generated autoloads from url/url-parse.el 28684;;; Generated autoloads from url/url-parse.el
28678 28685
28679(autoload (quote url-recreate-url) "url-parse" "\ 28686(autoload (quote url-recreate-url) "url-parse" "\
@@ -28691,7 +28698,7 @@ Format is:
28691;;;*** 28698;;;***
28692 28699
28693;;;### (autoloads (url-setup-privacy-info) "url-privacy" "url/url-privacy.el" 28700;;;### (autoloads (url-setup-privacy-info) "url-privacy" "url/url-privacy.el"
28694;;;;;; (17843 45630)) 28701;;;;;; (17842 56569))
28695;;; Generated autoloads from url/url-privacy.el 28702;;; Generated autoloads from url/url-privacy.el
28696 28703
28697(autoload (quote url-setup-privacy-info) "url-privacy" "\ 28704(autoload (quote url-setup-privacy-info) "url-privacy" "\
@@ -28707,7 +28714,7 @@ Setup variables that expose info about you and your system.
28707;;;;;; url-strip-leading-spaces url-eat-trailing-space url-get-normalized-date 28714;;;;;; url-strip-leading-spaces url-eat-trailing-space url-get-normalized-date
28708;;;;;; url-lazy-message url-normalize-url url-insert-entities-in-string 28715;;;;;; url-lazy-message url-normalize-url url-insert-entities-in-string
28709;;;;;; url-parse-args url-debug url-debug) "url-util" "url/url-util.el" 28716;;;;;; url-parse-args url-debug url-debug) "url-util" "url/url-util.el"
28710;;;;;; (17843 45630)) 28717;;;;;; (17842 56569))
28711;;; Generated autoloads from url/url-util.el 28718;;; Generated autoloads from url/url-util.el
28712 28719
28713(defvar url-debug nil "\ 28720(defvar url-debug nil "\
@@ -28836,7 +28843,7 @@ This uses `url-current-object', set locally to the buffer.
28836;;;*** 28843;;;***
28837 28844
28838;;;### (autoloads (ask-user-about-supersession-threat ask-user-about-lock) 28845;;;### (autoloads (ask-user-about-supersession-threat ask-user-about-lock)
28839;;;;;; "userlock" "userlock.el" (17843 45612)) 28846;;;;;; "userlock" "userlock.el" (17842 58278))
28840;;; Generated autoloads from userlock.el 28847;;; Generated autoloads from userlock.el
28841 28848
28842(autoload (quote ask-user-about-lock) "userlock" "\ 28849(autoload (quote ask-user-about-lock) "userlock" "\
@@ -28866,7 +28873,7 @@ The buffer in question is current when this function is called.
28866 28873
28867;;;### (autoloads (uudecode-decode-region uudecode-decode-region-internal 28874;;;### (autoloads (uudecode-decode-region uudecode-decode-region-internal
28868;;;;;; uudecode-decode-region-external) "uudecode" "gnus/uudecode.el" 28875;;;;;; uudecode-decode-region-external) "uudecode" "gnus/uudecode.el"
28869;;;;;; (17939 56022)) 28876;;;;;; (17855 50203))
28870;;; Generated autoloads from gnus/uudecode.el 28877;;; Generated autoloads from gnus/uudecode.el
28871 28878
28872(autoload (quote uudecode-decode-region-external) "uudecode" "\ 28879(autoload (quote uudecode-decode-region-external) "uudecode" "\
@@ -28896,7 +28903,7 @@ If FILE-NAME is non-nil, save the result to FILE-NAME.
28896;;;;;; vc-directory vc-merge vc-insert-headers vc-version-other-window 28903;;;;;; vc-directory vc-merge vc-insert-headers vc-version-other-window
28897;;;;;; vc-diff vc-register vc-next-action vc-do-command edit-vc-file 28904;;;;;; vc-diff vc-register vc-next-action vc-do-command edit-vc-file
28898;;;;;; with-vc-file vc-branch-part vc-trunk-p vc-before-checkin-hook 28905;;;;;; with-vc-file vc-branch-part vc-trunk-p vc-before-checkin-hook
28899;;;;;; vc-checkin-hook vc-checkout-hook) "vc" "vc.el" (17843 45612)) 28906;;;;;; vc-checkin-hook vc-checkout-hook) "vc" "vc.el" (17992 30877))
28900;;; Generated autoloads from vc.el 28907;;; Generated autoloads from vc.el
28901 28908
28902(defvar vc-checkout-hook nil "\ 28909(defvar vc-checkout-hook nil "\
@@ -29184,7 +29191,7 @@ colors. `vc-annotate-background' specifies the background color.
29184 29191
29185;;;*** 29192;;;***
29186 29193
29187;;;### (autoloads nil "vc-arch" "vc-arch.el" (17939 56017)) 29194;;;### (autoloads nil "vc-arch" "vc-arch.el" (17930 34221))
29188;;; Generated autoloads from vc-arch.el 29195;;; Generated autoloads from vc-arch.el
29189 (defun vc-arch-registered (file) 29196 (defun vc-arch-registered (file)
29190 (if (vc-find-root file "{arch}/=tagging-method") 29197 (if (vc-find-root file "{arch}/=tagging-method")
@@ -29194,7 +29201,7 @@ colors. `vc-annotate-background' specifies the background color.
29194 29201
29195;;;*** 29202;;;***
29196 29203
29197;;;### (autoloads nil "vc-cvs" "vc-cvs.el" (17843 45612)) 29204;;;### (autoloads nil "vc-cvs" "vc-cvs.el" (17842 58278))
29198;;; Generated autoloads from vc-cvs.el 29205;;; Generated autoloads from vc-cvs.el
29199 (defun vc-cvs-registered (f) 29206 (defun vc-cvs-registered (f)
29200 (when (file-readable-p (expand-file-name 29207 (when (file-readable-p (expand-file-name
@@ -29204,7 +29211,7 @@ colors. `vc-annotate-background' specifies the background color.
29204 29211
29205;;;*** 29212;;;***
29206 29213
29207;;;### (autoloads nil "vc-mcvs" "vc-mcvs.el" (17843 45612)) 29214;;;### (autoloads nil "vc-mcvs" "vc-mcvs.el" (17842 58278))
29208;;; Generated autoloads from vc-mcvs.el 29215;;; Generated autoloads from vc-mcvs.el
29209 (defun vc-mcvs-registered (file) 29216 (defun vc-mcvs-registered (file)
29210 (if (vc-find-root file "MCVS/CVS") 29217 (if (vc-find-root file "MCVS/CVS")
@@ -29215,7 +29222,7 @@ colors. `vc-annotate-background' specifies the background color.
29215;;;*** 29222;;;***
29216 29223
29217;;;### (autoloads (vc-rcs-master-templates) "vc-rcs" "vc-rcs.el" 29224;;;### (autoloads (vc-rcs-master-templates) "vc-rcs" "vc-rcs.el"
29218;;;;;; (17939 56017)) 29225;;;;;; (17925 15266))
29219;;; Generated autoloads from vc-rcs.el 29226;;; Generated autoloads from vc-rcs.el
29220 29227
29221(defvar vc-rcs-master-templates (quote ("%sRCS/%s,v" "%s%s,v" "%sRCS/%s")) "\ 29228(defvar vc-rcs-master-templates (quote ("%sRCS/%s,v" "%s%s,v" "%sRCS/%s")) "\
@@ -29228,7 +29235,7 @@ For a description of possible values, see `vc-check-master-templates'.")
29228;;;*** 29235;;;***
29229 29236
29230;;;### (autoloads (vc-sccs-master-templates) "vc-sccs" "vc-sccs.el" 29237;;;### (autoloads (vc-sccs-master-templates) "vc-sccs" "vc-sccs.el"
29231;;;;;; (17843 45612)) 29238;;;;;; (17842 58278))
29232;;; Generated autoloads from vc-sccs.el 29239;;; Generated autoloads from vc-sccs.el
29233 29240
29234(defvar vc-sccs-master-templates (quote ("%sSCCS/s.%s" "%ss.%s" vc-sccs-search-project-dir)) "\ 29241(defvar vc-sccs-master-templates (quote ("%sSCCS/s.%s" "%ss.%s" vc-sccs-search-project-dir)) "\
@@ -29245,7 +29252,7 @@ find any project directory." (let ((project-dir (getenv "PROJECTDIR")) dirs dir)
29245 29252
29246;;;*** 29253;;;***
29247 29254
29248;;;### (autoloads nil "vc-svn" "vc-svn.el" (17939 56018)) 29255;;;### (autoloads nil "vc-svn" "vc-svn.el" (17881 64914))
29249;;; Generated autoloads from vc-svn.el 29256;;; Generated autoloads from vc-svn.el
29250 (defun vc-svn-registered (f) 29257 (defun vc-svn-registered (f)
29251 (let ((admin-dir (cond ((and (eq system-type 'windows-nt) 29258 (let ((admin-dir (cond ((and (eq system-type 'windows-nt)
@@ -29263,7 +29270,7 @@ find any project directory." (let ((project-dir (getenv "PROJECTDIR")) dirs dir)
29263;;;*** 29270;;;***
29264 29271
29265;;;### (autoloads (vhdl-mode) "vhdl-mode" "progmodes/vhdl-mode.el" 29272;;;### (autoloads (vhdl-mode) "vhdl-mode" "progmodes/vhdl-mode.el"
29266;;;;;; (17966 9917)) 29273;;;;;; (17962 27361))
29267;;; Generated autoloads from progmodes/vhdl-mode.el 29274;;; Generated autoloads from progmodes/vhdl-mode.el
29268 29275
29269(autoload (quote vhdl-mode) "vhdl-mode" "\ 29276(autoload (quote vhdl-mode) "vhdl-mode" "\
@@ -29804,7 +29811,7 @@ Key bindings:
29804 29811
29805;;;*** 29812;;;***
29806 29813
29807;;;### (autoloads (vi-mode) "vi" "emulation/vi.el" (17789 35159)) 29814;;;### (autoloads (vi-mode) "vi" "emulation/vi.el" (17788 40208))
29808;;; Generated autoloads from emulation/vi.el 29815;;; Generated autoloads from emulation/vi.el
29809 29816
29810(autoload (quote vi-mode) "vi" "\ 29817(autoload (quote vi-mode) "vi" "\
@@ -29859,7 +29866,7 @@ Syntax table and abbrevs while in vi mode remain as they were in Emacs.
29859;;;### (autoloads (viqr-pre-write-conversion viqr-post-read-conversion 29866;;;### (autoloads (viqr-pre-write-conversion viqr-post-read-conversion
29860;;;;;; viet-encode-viqr-buffer viet-encode-viqr-region viet-decode-viqr-buffer 29867;;;;;; viet-encode-viqr-buffer viet-encode-viqr-region viet-decode-viqr-buffer
29861;;;;;; viet-decode-viqr-region viet-encode-viscii-char) "viet-util" 29868;;;;;; viet-decode-viqr-region viet-encode-viscii-char) "viet-util"
29862;;;;;; "language/viet-util.el" (17843 45621)) 29869;;;;;; "language/viet-util.el" (17842 58278))
29863;;; Generated autoloads from language/viet-util.el 29870;;; Generated autoloads from language/viet-util.el
29864 29871
29865(autoload (quote viet-encode-viscii-char) "viet-util" "\ 29872(autoload (quote viet-encode-viscii-char) "viet-util" "\
@@ -29905,8 +29912,8 @@ Not documented
29905 29912
29906;;;### (autoloads (View-exit-and-edit view-mode-enter view-mode view-buffer-other-frame 29913;;;### (autoloads (View-exit-and-edit view-mode-enter view-mode view-buffer-other-frame
29907;;;;;; view-buffer-other-window view-buffer view-file-other-frame 29914;;;;;; view-buffer-other-window view-buffer view-file-other-frame
29908;;;;;; view-file-other-window view-file) "view" "view.el" (17995 29915;;;;;; view-file-other-window view-file) "view" "view.el" (18006
29909;;;;;; 6542)) 29916;;;;;; 55796))
29910;;; Generated autoloads from view.el 29917;;; Generated autoloads from view.el
29911 29918
29912(defvar view-mode nil "\ 29919(defvar view-mode nil "\
@@ -30115,8 +30122,8 @@ Exit View mode and make the current buffer editable.
30115 30122
30116;;;*** 30123;;;***
30117 30124
30118;;;### (autoloads (vip-mode vip-setup) "vip" "emulation/vip.el" (17843 30125;;;### (autoloads (vip-mode vip-setup) "vip" "emulation/vip.el" (17842
30119;;;;;; 45615)) 30126;;;;;; 54264))
30120;;; Generated autoloads from emulation/vip.el 30127;;; Generated autoloads from emulation/vip.el
30121 30128
30122(autoload (quote vip-setup) "vip" "\ 30129(autoload (quote vip-setup) "vip" "\
@@ -30132,7 +30139,7 @@ Turn on VIP emulation of VI.
30132;;;*** 30139;;;***
30133 30140
30134;;;### (autoloads (viper-mode toggle-viper-mode) "viper" "emulation/viper.el" 30141;;;### (autoloads (viper-mode toggle-viper-mode) "viper" "emulation/viper.el"
30135;;;;;; (17939 56021)) 30142;;;;;; (17921 23052))
30136;;; Generated autoloads from emulation/viper.el 30143;;; Generated autoloads from emulation/viper.el
30137 30144
30138(autoload (quote toggle-viper-mode) "viper" "\ 30145(autoload (quote toggle-viper-mode) "viper" "\
@@ -30149,7 +30156,7 @@ Turn on Viper emulation of Vi in Emacs. See Info node `(viper)Top'.
30149;;;*** 30156;;;***
30150 30157
30151;;;### (autoloads (warn lwarn display-warning) "warnings" "emacs-lisp/warnings.el" 30158;;;### (autoloads (warn lwarn display-warning) "warnings" "emacs-lisp/warnings.el"
30152;;;;;; (17939 56021)) 30159;;;;;; (17935 13348))
30153;;; Generated autoloads from emacs-lisp/warnings.el 30160;;; Generated autoloads from emacs-lisp/warnings.el
30154 30161
30155(defvar warning-prefix-function nil "\ 30162(defvar warning-prefix-function nil "\
@@ -30239,7 +30246,7 @@ this is equivalent to `display-warning', using
30239;;;*** 30246;;;***
30240 30247
30241;;;### (autoloads (wdired-change-to-wdired-mode) "wdired" "wdired.el" 30248;;;### (autoloads (wdired-change-to-wdired-mode) "wdired" "wdired.el"
30242;;;;;; (17843 45612)) 30249;;;;;; (17842 58278))
30243;;; Generated autoloads from wdired.el 30250;;; Generated autoloads from wdired.el
30244 30251
30245(autoload (quote wdired-change-to-wdired-mode) "wdired" "\ 30252(autoload (quote wdired-change-to-wdired-mode) "wdired" "\
@@ -30255,7 +30262,7 @@ See `wdired-mode'.
30255 30262
30256;;;*** 30263;;;***
30257 30264
30258;;;### (autoloads (webjump) "webjump" "net/webjump.el" (17843 45625)) 30265;;;### (autoloads (webjump) "webjump" "net/webjump.el" (17842 55218))
30259;;; Generated autoloads from net/webjump.el 30266;;; Generated autoloads from net/webjump.el
30260 30267
30261(autoload (quote webjump) "webjump" "\ 30268(autoload (quote webjump) "webjump" "\
@@ -30272,7 +30279,7 @@ Please submit bug reports and other feedback to the author, Neil W. Van Dyke
30272;;;*** 30279;;;***
30273 30280
30274;;;### (autoloads (which-function-mode) "which-func" "progmodes/which-func.el" 30281;;;### (autoloads (which-function-mode) "which-func" "progmodes/which-func.el"
30275;;;;;; (17843 45629)) 30282;;;;;; (17842 56332))
30276;;; Generated autoloads from progmodes/which-func.el 30283;;; Generated autoloads from progmodes/which-func.el
30277 (put 'which-func-format 'risky-local-variable t) 30284 (put 'which-func-format 'risky-local-variable t)
30278 (put 'which-func-current 'risky-local-variable t) 30285 (put 'which-func-current 'risky-local-variable t)
@@ -30281,7 +30288,7 @@ Please submit bug reports and other feedback to the author, Neil W. Van Dyke
30281 30288
30282(defvar which-function-mode nil "\ 30289(defvar which-function-mode nil "\
30283Non-nil if Which-Function mode is enabled. 30290Non-nil if Which-Function mode is enabled.
30284See the command `which-function-mode' for a description of this minor-mode. 30291See the command `which-function-mode' for a description of this minor mode.
30285Setting this variable directly does not take effect; 30292Setting this variable directly does not take effect;
30286either customize it (see the info node `Easy Customization') 30293either customize it (see the info node `Easy Customization')
30287or call the function `which-function-mode'.") 30294or call the function `which-function-mode'.")
@@ -30305,7 +30312,7 @@ and off otherwise.
30305;;;;;; whitespace-buffer whitespace-toggle-ateol-check whitespace-toggle-spacetab-check 30312;;;;;; whitespace-buffer whitespace-toggle-ateol-check whitespace-toggle-spacetab-check
30306;;;;;; whitespace-toggle-indent-check whitespace-toggle-trailing-check 30313;;;;;; whitespace-toggle-indent-check whitespace-toggle-trailing-check
30307;;;;;; whitespace-toggle-leading-check) "whitespace" "whitespace.el" 30314;;;;;; whitespace-toggle-leading-check) "whitespace" "whitespace.el"
30308;;;;;; (17939 56018)) 30315;;;;;; (17925 15266))
30309;;; Generated autoloads from whitespace.el 30316;;; Generated autoloads from whitespace.el
30310 30317
30311(autoload (quote whitespace-toggle-leading-check) "whitespace" "\ 30318(autoload (quote whitespace-toggle-leading-check) "whitespace" "\
@@ -30371,7 +30378,7 @@ Whitespace cleanup on the region.
30371 30378
30372(defvar whitespace-global-mode nil "\ 30379(defvar whitespace-global-mode nil "\
30373Non-nil if Whitespace-Global mode is enabled. 30380Non-nil if Whitespace-Global mode is enabled.
30374See the command `whitespace-global-mode' for a description of this minor-mode. 30381See the command `whitespace-global-mode' for a description of this minor mode.
30375Setting this variable directly does not take effect; 30382Setting this variable directly does not take effect;
30376either customize it (see the info node `Easy Customization') 30383either customize it (see the info node `Easy Customization')
30377or call the function `whitespace-global-mode'.") 30384or call the function `whitespace-global-mode'.")
@@ -30396,7 +30403,7 @@ This is meant to be added buffer-locally to `write-file-functions'.
30396;;;*** 30403;;;***
30397 30404
30398;;;### (autoloads (widget-minor-mode widget-browse-other-window widget-browse 30405;;;### (autoloads (widget-minor-mode widget-browse-other-window widget-browse
30399;;;;;; widget-browse-at) "wid-browse" "wid-browse.el" (17843 45612)) 30406;;;;;; widget-browse-at) "wid-browse" "wid-browse.el" (17842 58278))
30400;;; Generated autoloads from wid-browse.el 30407;;; Generated autoloads from wid-browse.el
30401 30408
30402(autoload (quote widget-browse-at) "wid-browse" "\ 30409(autoload (quote widget-browse-at) "wid-browse" "\
@@ -30423,8 +30430,8 @@ With arg, turn widget mode on if and only if arg is positive.
30423;;;*** 30430;;;***
30424 30431
30425;;;### (autoloads (widget-setup widget-insert widget-delete widget-create 30432;;;### (autoloads (widget-setup widget-insert widget-delete widget-create
30426;;;;;; widget-prompt-value widgetp) "wid-edit" "wid-edit.el" (17951 30433;;;;;; widget-prompt-value widgetp) "wid-edit" "wid-edit.el" (17952
30427;;;;;; 39252)) 30434;;;;;; 11093))
30428;;; Generated autoloads from wid-edit.el 30435;;; Generated autoloads from wid-edit.el
30429 30436
30430(autoload (quote widgetp) "wid-edit" "\ 30437(autoload (quote widgetp) "wid-edit" "\
@@ -30468,8 +30475,8 @@ Setup current buffer so editing string widgets works.
30468;;;*** 30475;;;***
30469 30476
30470;;;### (autoloads (windmove-default-keybindings windmove-down windmove-right 30477;;;### (autoloads (windmove-default-keybindings windmove-down windmove-right
30471;;;;;; windmove-up windmove-left) "windmove" "windmove.el" (17843 30478;;;;;; windmove-up windmove-left) "windmove" "windmove.el" (17842
30472;;;;;; 45612)) 30479;;;;;; 58278))
30473;;; Generated autoloads from windmove.el 30480;;; Generated autoloads from windmove.el
30474 30481
30475(autoload (quote windmove-left) "windmove" "\ 30482(autoload (quote windmove-left) "windmove" "\
@@ -30522,7 +30529,7 @@ Default MODIFIER is 'shift.
30522;;;*** 30529;;;***
30523 30530
30524;;;### (autoloads (winner-mode winner-mode) "winner" "winner.el" 30531;;;### (autoloads (winner-mode winner-mode) "winner" "winner.el"
30525;;;;;; (17843 45613)) 30532;;;;;; (17842 58278))
30526;;; Generated autoloads from winner.el 30533;;; Generated autoloads from winner.el
30527 30534
30528(defvar winner-mode nil "\ 30535(defvar winner-mode nil "\
@@ -30541,7 +30548,7 @@ With arg, turn Winner mode on if and only if arg is positive.
30541;;;*** 30548;;;***
30542 30549
30543;;;### (autoloads (woman-find-file woman-dired-find-file woman) "woman" 30550;;;### (autoloads (woman-find-file woman-dired-find-file woman) "woman"
30544;;;;;; "woman.el" (17947 59257)) 30551;;;;;; "woman.el" (17949 41467))
30545;;; Generated autoloads from woman.el 30552;;; Generated autoloads from woman.el
30546 30553
30547(autoload (quote woman) "woman" "\ 30554(autoload (quote woman) "woman" "\
@@ -30577,7 +30584,7 @@ decompress the file if appropriate. See the documentation for the
30577;;;*** 30584;;;***
30578 30585
30579;;;### (autoloads (wordstar-mode) "ws-mode" "emulation/ws-mode.el" 30586;;;### (autoloads (wordstar-mode) "ws-mode" "emulation/ws-mode.el"
30580;;;;;; (17843 45616)) 30587;;;;;; (17842 54264))
30581;;; Generated autoloads from emulation/ws-mode.el 30588;;; Generated autoloads from emulation/ws-mode.el
30582 30589
30583(autoload (quote wordstar-mode) "ws-mode" "\ 30590(autoload (quote wordstar-mode) "ws-mode" "\
@@ -30690,7 +30697,7 @@ The key bindings are:
30690;;;*** 30697;;;***
30691 30698
30692;;;### (autoloads (xml-parse-region xml-parse-file) "xml" "xml.el" 30699;;;### (autoloads (xml-parse-region xml-parse-file) "xml" "xml.el"
30693;;;;;; (17939 56018)) 30700;;;;;; (17916 14776))
30694;;; Generated autoloads from xml.el 30701;;; Generated autoloads from xml.el
30695 30702
30696(autoload (quote xml-parse-file) "xml" "\ 30703(autoload (quote xml-parse-file) "xml" "\
@@ -30715,13 +30722,13 @@ If PARSE-NS is non-nil, then QNAMES are expanded.
30715 30722
30716;;;*** 30723;;;***
30717 30724
30718;;;### (autoloads (xterm-mouse-mode) "xt-mouse" "xt-mouse.el" (17939 30725;;;### (autoloads (xterm-mouse-mode) "xt-mouse" "xt-mouse.el" (18007
30719;;;;;; 56019)) 30726;;;;;; 39657))
30720;;; Generated autoloads from xt-mouse.el 30727;;; Generated autoloads from xt-mouse.el
30721 30728
30722(defvar xterm-mouse-mode nil "\ 30729(defvar xterm-mouse-mode nil "\
30723Non-nil if Xterm-Mouse mode is enabled. 30730Non-nil if Xterm-Mouse mode is enabled.
30724See the command `xterm-mouse-mode' for a description of this minor-mode. 30731See the command `xterm-mouse-mode' for a description of this minor mode.
30725Setting this variable directly does not take effect; 30732Setting this variable directly does not take effect;
30726either customize it (see the info node `Easy Customization') 30733either customize it (see the info node `Easy Customization')
30727or call the function `xterm-mouse-mode'.") 30734or call the function `xterm-mouse-mode'.")
@@ -30744,7 +30751,7 @@ down the SHIFT key while pressing the mouse button.
30744;;;*** 30751;;;***
30745 30752
30746;;;### (autoloads (yenc-extract-filename yenc-decode-region) "yenc" 30753;;;### (autoloads (yenc-extract-filename yenc-decode-region) "yenc"
30747;;;;;; "gnus/yenc.el" (17843 45618)) 30754;;;;;; "gnus/yenc.el" (17842 54741))
30748;;; Generated autoloads from gnus/yenc.el 30755;;; Generated autoloads from gnus/yenc.el
30749 30756
30750(autoload (quote yenc-decode-region) "yenc" "\ 30757(autoload (quote yenc-decode-region) "yenc" "\
@@ -30760,7 +30767,7 @@ Extract file name from an yenc header.
30760;;;*** 30767;;;***
30761 30768
30762;;;### (autoloads (psychoanalyze-pinhead apropos-zippy insert-zippyism 30769;;;### (autoloads (psychoanalyze-pinhead apropos-zippy insert-zippyism
30763;;;;;; yow) "yow" "play/yow.el" (17843 45626)) 30770;;;;;; yow) "yow" "play/yow.el" (17842 55395))
30764;;; Generated autoloads from play/yow.el 30771;;; Generated autoloads from play/yow.el
30765 30772
30766(autoload (quote yow) "yow" "\ 30773(autoload (quote yow) "yow" "\
@@ -30786,7 +30793,7 @@ Zippy goes to the analyst.
30786 30793
30787;;;*** 30794;;;***
30788 30795
30789;;;### (autoloads (zone) "zone" "play/zone.el" (17941 5494)) 30796;;;### (autoloads (zone) "zone" "play/zone.el" (17941 38806))
30790;;; Generated autoloads from play/zone.el 30797;;; Generated autoloads from play/zone.el
30791 30798
30792(autoload (quote zone) "zone" "\ 30799(autoload (quote zone) "zone" "\
@@ -30926,7 +30933,7 @@ Zone out, completely.
30926;;;;;; "url/url-vars.el" "url/vc-dav.el" "vc-hooks.el" "vcursor.el" 30933;;;;;; "url/url-vars.el" "url/vc-dav.el" "vc-hooks.el" "vcursor.el"
30927;;;;;; "version.el" "vms-patch.el" "vmsproc.el" "vt-control.el" 30934;;;;;; "version.el" "vms-patch.el" "vmsproc.el" "vt-control.el"
30928;;;;;; "vt100-led.el" "w32-fns.el" "w32-vars.el" "widget.el" "window.el" 30935;;;;;; "vt100-led.el" "w32-fns.el" "w32-vars.el" "widget.el" "window.el"
30929;;;;;; "x-dnd.el") (17996 40125 700465)) 30936;;;;;; "x-dnd.el") (18016 62249 573562))
30930 30937
30931;;;*** 30938;;;***
30932 30939
diff --git a/lisp/longlines.el b/lisp/longlines.el
index f39d31e69f0..149f69c9f26 100644
--- a/lisp/longlines.el
+++ b/lisp/longlines.el
@@ -368,10 +368,10 @@ Hard newlines are left intact."
368With optional argument ARG, turn on line wrapping if and only if ARG is positive. 368With optional argument ARG, turn on line wrapping if and only if ARG is positive.
369If automatic line wrapping is turned on, wrap the entire buffer." 369If automatic line wrapping is turned on, wrap the entire buffer."
370 (interactive "P") 370 (interactive "P")
371 (and (null arg) 371 (setq arg (if arg
372 (null longlines-auto-wrap) 372 (> (prefix-numeric-value arg) 0)
373 (setq arg 1)) 373 (not longlines-auto-wrap)))
374 (if (> (prefix-numeric-value arg) 0) 374 (if arg
375 (let ((mod (buffer-modified-p))) 375 (let ((mod (buffer-modified-p)))
376 (setq longlines-auto-wrap t) 376 (setq longlines-auto-wrap t)
377 (longlines-wrap-region (point-min) (point-max)) 377 (longlines-wrap-region (point-min) (point-max))
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el
index 3a2e8c428b9..1334594618e 100644
--- a/lisp/mail/rmail.el
+++ b/lisp/mail/rmail.el
@@ -228,7 +228,7 @@ Otherwise, look for `movemail' in the directories in
228 `emacs' Means any implementation, compatible with the native Emacs one. 228 `emacs' Means any implementation, compatible with the native Emacs one.
229 This is the default; 229 This is the default;
230 `mailutils' Means GNU mailutils implementation, capable of handling full 230 `mailutils' Means GNU mailutils implementation, capable of handling full
231mail URLs as the source mailbox;") 231mail URLs as the source mailbox.")
232 232
233;;;###autoload 233;;;###autoload
234(defun rmail-movemail-variant-p (&rest variants) 234(defun rmail-movemail-variant-p (&rest variants)
diff --git a/lisp/mail/rmailsum.el b/lisp/mail/rmailsum.el
index 6383722a4be..288f3f24e66 100644
--- a/lisp/mail/rmailsum.el
+++ b/lisp/mail/rmailsum.el
@@ -854,6 +854,15 @@ Search, the `unseen' attribute is restored.")
854 (set-buffer rmail-buffer) 854 (set-buffer rmail-buffer)
855 (rmail-show-message msg-num t)))))) 855 (rmail-show-message msg-num t))))))
856 (rmail-summary-update-highlight nil))))) 856 (rmail-summary-update-highlight nil)))))
857
858(defun rmail-summary-save-buffer ()
859 "Save the buffer associated with this RMAIL summary."
860 (interactive)
861 (save-window-excursion
862 (save-excursion
863 (switch-to-buffer rmail-buffer)
864 (save-buffer))))
865
857 866
858(if rmail-summary-mode-map 867(if rmail-summary-mode-map
859 nil 868 nil
@@ -923,6 +932,7 @@ Search, the `unseen' attribute is restored.")
923 'rmail-summary-sort-by-lines) 932 'rmail-summary-sort-by-lines)
924 (define-key rmail-summary-mode-map "\C-c\C-s\C-k" 933 (define-key rmail-summary-mode-map "\C-c\C-s\C-k"
925 'rmail-summary-sort-by-labels) 934 'rmail-summary-sort-by-labels)
935 (define-key rmail-summary-mode-map "\C-x\C-s" 'rmail-summary-save-buffer)
926 ) 936 )
927 937
928;;; Menu bar bindings. 938;;; Menu bar bindings.
diff --git a/lisp/mh-e/ChangeLog b/lisp/mh-e/ChangeLog
index 8b122f89b49..3d3a08e0528 100644
--- a/lisp/mh-e/ChangeLog
+++ b/lisp/mh-e/ChangeLog
@@ -1,3 +1,8 @@
12007-06-06 Juanma Barranquero <lekktu@gmail.com>
2
3 * mh-mime.el (mh-mh-directive-present-p):
4 * mh-search.el (mh-index-group-by-folder): Fix typos in docstrings.
5
12006-11-14 Bill Wohler <wohler@newt.com> 62006-11-14 Bill Wohler <wohler@newt.com>
2 7
3 * mh-xface.el (mh-x-image-url-cache-canonicalize): Add `*' to 8 * mh-xface.el (mh-x-image-url-cache-canonicalize): Add `*' to
@@ -10,7 +15,7 @@
10 * mh-e.el (Version, mh-version): Update for release 8.0.3. 15 * mh-e.el (Version, mh-version): Update for release 8.0.3.
11 16
12 * mh-e.el (mh-alias-local-users): Boolean docstrings should start 17 * mh-e.el (mh-alias-local-users): Boolean docstrings should start
13 with "Non-nil means". Perhaps this option should have a -flag 18 with "Non-nil means". Perhaps this option should have a -flag
14 appended. 19 appended.
15 (mh-junk-background): Sync docstring with manual. 20 (mh-junk-background): Sync docstring with manual.
16 21
@@ -62,7 +67,7 @@
62 * mh-tool-bar.el (mh-tool-bar-define): Fix XEmacs' vector-list so 67 * mh-tool-bar.el (mh-tool-bar-define): Fix XEmacs' vector-list so
63 it refers to the icons in mh-xemacs-icon-map instead of trying to 68 it refers to the icons in mh-xemacs-icon-map instead of trying to
64 declare the icons in situ. This allows mh-tool-bar.el to be 69 declare the icons in situ. This allows mh-tool-bar.el to be
65 compiled under XEmacs. Remove initial value for 70 compiled under XEmacs. Remove initial value for
66 mh-tool-bar-folder-buttons, mh-tool-bar-show-buttons, 71 mh-tool-bar-folder-buttons, mh-tool-bar-show-buttons,
67 mh-tool-bar-letter-buttons. The MH-E icons now appear in XEmacs. 72 mh-tool-bar-letter-buttons. The MH-E icons now appear in XEmacs.
68 In mh-tool-bar-init, check for mh-xemacs-use-tool-bar-flag sooner. 73 In mh-tool-bar-init, check for mh-xemacs-use-tool-bar-flag sooner.
@@ -133,7 +138,7 @@
1332006-04-26 Eric Ding <ericding@alum.mit.edu> 1382006-04-26 Eric Ding <ericding@alum.mit.edu>
134 139
135 * mh-e.el (mh-invisible-header-fields-internal): Add entry 140 * mh-e.el (mh-invisible-header-fields-internal): Add entry
136 "X-Provags-ID:" 141 "X-Provags-ID:".
137 142
1382006-04-25 Bill Wohler <wohler@newt.com> 1432006-04-25 Bill Wohler <wohler@newt.com>
139 144
@@ -155,9 +160,9 @@
155 160
156 * mh-letter.el (mh-insert-letter): If a message number isn't 161 * mh-letter.el (mh-insert-letter): If a message number isn't
157 given, throw an error rather than using a potentially incorrect 162 given, throw an error rather than using a potentially incorrect
158 message number (closes SF #1473729). In addition, use the cur 163 message number (closes SF #1473729). In addition, use the cur
159 message if mh-sent-from-msg is nil (when sending a message, in 164 message if mh-sent-from-msg is nil (when sending a message, in
160 contrast to replying). Move conversion of int to string into 165 contrast to replying). Move conversion of int to string into
161 interactive stanza so body can assume variables are of proper 166 interactive stanza so body can assume variables are of proper
162 type. 167 type.
163 168
@@ -177,15 +182,15 @@
177 (mh-tool-bar-folder-buttons-set, mh-tool-bar-letter-buttons-set): 182 (mh-tool-bar-folder-buttons-set, mh-tool-bar-letter-buttons-set):
178 Call it (closes SF #1452718). 183 Call it (closes SF #1452718).
179 184
180 * mh-folder.el (mh-folder-buttons-init-flag): Delete. Use 185 * mh-folder.el (mh-folder-buttons-init-flag): Delete. Use
181 mh-folder-tool-bar-map instead. 186 mh-folder-tool-bar-map instead.
182 (image-load-path): Delete. No longer used. 187 (image-load-path): Delete. No longer used.
183 (mh-folder-mode): Moved setting of image-load-path into 188 (mh-folder-mode): Moved setting of image-load-path into
184 mh-tool-bar-folder-buttons-init. 189 mh-tool-bar-folder-buttons-init.
185 190
186 * mh-letter.el (mh-letter-buttons-init-flag): Delete. Use 191 * mh-letter.el (mh-letter-buttons-init-flag): Delete. Use
187 mh-letter-tool-bar-map instead. 192 mh-letter-tool-bar-map instead.
188 (image-load-path): Delete. No longer used. 193 (image-load-path): Delete. No longer used.
189 (mh-letter-mode): Moved setting of image-load-path into 194 (mh-letter-mode): Moved setting of image-load-path into
190 mh-tool-bar-letter-buttons-init. 195 mh-tool-bar-letter-buttons-init.
191 196
@@ -202,10 +207,10 @@
202 * mh-e.el (defcustom-mh, defface-mh, defgroup-mh, mh-face-data) 207 * mh-e.el (defcustom-mh, defface-mh, defgroup-mh, mh-face-data)
203 (mh-strip-package-version, mh-face-data, mh-inherit-face-flag) 208 (mh-strip-package-version, mh-face-data, mh-inherit-face-flag)
204 (mh-min-colors-defined-flag): Do not unbind these macros and 209 (mh-min-colors-defined-flag): Do not unbind these macros and
205 variables. Nice idea, but too many nasty side-effects. These 210 variables. Nice idea, but too many nasty side-effects. These
206 macros are needed by [Cc]ustom-make-dependencies when creating the 211 macros are needed by [Cc]ustom-make-dependencies when creating the
207 MH-E customization groups in mh-cus-load.el. These disappeared 212 MH-E customization groups in mh-cus-load.el. These disappeared
208 when the macros above were introduced. Besides, if a developer 213 when the macros above were introduced. Besides, if a developer
209 were to try to show the help for a macro or variable they were 214 were to try to show the help for a macro or variable they were
210 looking at and got [No match] when they did so, that would be bad. 215 looking at and got [No match] when they did so, that would be bad.
211 216
@@ -218,11 +223,11 @@
218 variables and functions with the same name are found correctly by 223 variables and functions with the same name are found correctly by
219 find-func (invoked by clicking on the filename link in the *Help* 224 find-func (invoked by clicking on the filename link in the *Help*
220 buffer). 225 buffer).
221 (mh-defmacro-compat): Rename to defmacro-mh. Ditto. 226 (mh-defmacro-compat): Rename to defmacro-mh. Ditto.
222 227
223 * mh-e.el: (mh-defgroup): Rename to defgroup-mh. Ditto. 228 * mh-e.el (mh-defgroup): Rename to defgroup-mh. Ditto.
224 (mh-defcustom): Rename to defcustom-mh. Ditto. 229 (mh-defcustom): Rename to defcustom-mh. Ditto.
225 (mh-defface): Rename to defface-mh. Ditto. 230 (mh-defface): Rename to defface-mh. Ditto.
226 (mh-font-lock-add-keywords): Make changes according to these 231 (mh-font-lock-add-keywords): Make changes according to these
227 renamings. 232 renamings.
228 233
@@ -232,11 +237,11 @@
232 * mh-utils.el (mh-sub-folders-actual): Mention that folder must 237 * mh-utils.el (mh-sub-folders-actual): Mention that folder must
233 have been processed by mh-normalize-folder-name. 238 have been processed by mh-normalize-folder-name.
234 (mh-folder-completion-function): Handle completion of folders with 239 (mh-folder-completion-function): Handle completion of folders with
235 absolute names. Also, when flag is t, display complete folder name 240 absolute names. Also, when flag is t, display complete folder name
236 to provide proper highlighting in Emacs 22 now that 241 to provide proper highlighting in Emacs 22 now that
237 minibuffer-completing-file-name is nil (closes SF #1470518). 242 minibuffer-completing-file-name is nil (closes SF #1470518).
238 (mh-folder-completing-read): No longer set 243 (mh-folder-completing-read): No longer set
239 minibuffer-completing-file-name to t. This was causing "Can't set 244 minibuffer-completing-file-name to t. This was causing "Can't set
240 current directory errors" when browsing absolute file names. 245 current directory errors" when browsing absolute file names.
241 Another benefit of this change is that SPC can be used for 246 Another benefit of this change is that SPC can be used for
242 completion again (closes SF #1470518). 247 completion again (closes SF #1470518).
@@ -256,9 +261,9 @@
256 261
257 * mh-show.el (font-lock-auto-fontify): Ditto. 262 * mh-show.el (font-lock-auto-fontify): Ditto.
258 263
259 * mh-utils.el (mh-speed-flists-cache): Ditto 264 * mh-utils.el (mh-speed-flists-cache): Ditto.
260 265
261 * mh-acros.el (struct, x, y): No need to wrap defvar with 266 * mh-acros.el (struct, x, y): No need to wrap defvar with
262 eval-when-compile when shushing compiler, even when 267 eval-when-compile when shushing compiler, even when
263 mh-do-in-xemacs or another construct is used. 268 mh-do-in-xemacs or another construct is used.
264 269
@@ -287,7 +292,7 @@
287 * mh-xface.el (default-enable-multibyte-characters): Ditto. 292 * mh-xface.el (default-enable-multibyte-characters): Ditto.
288 293
289 * mh-compat.el (mh-font-lock-add-keywords): New alias for 294 * mh-compat.el (mh-font-lock-add-keywords): New alias for
290 font-lock-add-keywords. Returns nil on XEmacs. 295 font-lock-add-keywords. Returns nil on XEmacs.
291 296
292 * mh-e.el: Add MH-E function and variable keywords such as 297 * mh-e.el: Add MH-E function and variable keywords such as
293 mh-defun-compat and mh-defcustom to font-lock-keywords. 298 mh-defun-compat and mh-defcustom to font-lock-keywords.
@@ -297,7 +302,7 @@
297 * mh-e.el (customize-package-emacs-version-alist) 302 * mh-e.el (customize-package-emacs-version-alist)
298 (mh-e, mh-alias, mh-folder, mh-folder-selection) 303 (mh-e, mh-alias, mh-folder, mh-folder-selection)
299 (mh-identity, mh-inc, mh-junk, mh-letter, mh-ranges) 304 (mh-identity, mh-inc, mh-junk, mh-letter, mh-ranges)
300 (mh-scan-line-formats, mh-search, mh-sending-mail, ) 305 (mh-scan-line-formats, mh-search, mh-sending-mail)
301 (mh-sequences, mh-show, mh-speedbar, mh-thread, mh-tool-bar) 306 (mh-sequences, mh-show, mh-speedbar, mh-thread, mh-tool-bar)
302 (mh-hooks, mh-faces, mh-alias-completion-ignore-case-flag) 307 (mh-hooks, mh-faces, mh-alias-completion-ignore-case-flag)
303 (mh-alias-expand-aliases-flag, mh-alias-flash-on-comma) 308 (mh-alias-expand-aliases-flag, mh-alias-flash-on-comma)
@@ -307,7 +312,7 @@
307 (mh-new-messages-folders, mh-ticked-messages-folders) 312 (mh-new-messages-folders, mh-ticked-messages-folders)
308 (mh-large-folder, mh-recenter-summary-flag) 313 (mh-large-folder, mh-recenter-summary-flag)
309 (mh-recursive-folders-flag, mh-sortm-args) 314 (mh-recursive-folders-flag, mh-sortm-args)
310 (mh-default-folder-for-message-function, ) 315 (mh-default-folder-for-message-function)
311 (mh-default-folder-list, mh-default-folder-must-exist-flag) 316 (mh-default-folder-list, mh-default-folder-must-exist-flag)
312 (mh-default-folder-prefix, mh-identity-list) 317 (mh-default-folder-prefix, mh-identity-list)
313 (mh-auto-fields-list, mh-auto-fields-prompt-flag) 318 (mh-auto-fields-list, mh-auto-fields-prompt-flag)
@@ -320,18 +325,18 @@
320 (mh-extract-from-attribution-verb, mh-ins-buf-prefix) 325 (mh-extract-from-attribution-verb, mh-ins-buf-prefix)
321 (mh-letter-complete-function, mh-letter-fill-column) 326 (mh-letter-complete-function, mh-letter-fill-column)
322 (mh-mml-method-default, mh-signature-file-name) 327 (mh-mml-method-default, mh-signature-file-name)
323 (mh-signature-separator-flag, mh-x-face-file, ) 328 (mh-signature-separator-flag, mh-x-face-file)
324 (mh-yank-behavior, mh-interpret-number-as-range-flag) 329 (mh-yank-behavior, mh-interpret-number-as-range-flag)
325 (mh-adaptive-cmd-note-flag, mh-scan-format-file, mh-scan-prog) 330 (mh-adaptive-cmd-note-flag, mh-scan-format-file, mh-scan-prog)
326 (mh-search-program, mh-compose-forward-as-mime-flag) 331 (mh-search-program, mh-compose-forward-as-mime-flag)
327 (mh-compose-letter-function, mh-compose-prompt-flag) 332 (mh-compose-letter-function, mh-compose-prompt-flag)
328 (mh-forward-subject-format, mh-insert-x-mailer-flag) 333 (mh-forward-subject-format, mh-insert-x-mailer-flag)
329 (mh-redist-full-contents-flag, mh-reply-default-reply-to) 334 (mh-redist-full-contents-flag, mh-reply-default-reply-to)
330 (mh-reply-show-message-flag, ) 335 (mh-reply-show-message-flag)
331 (mh-refile-preserves-sequences-flag, mh-tick-seq) 336 (mh-refile-preserves-sequences-flag, mh-tick-seq)
332 (mh-update-sequences-after-mh-show-flag) 337 (mh-update-sequences-after-mh-show-flag)
333 (mh-bury-show-buffer-flag, mh-clean-message-header-flag) 338 (mh-bury-show-buffer-flag, mh-clean-message-header-flag)
334 (mh-decode-mime-flag, ) 339 (mh-decode-mime-flag)
335 (mh-display-buttons-for-alternatives-flag) 340 (mh-display-buttons-for-alternatives-flag)
336 (mh-display-buttons-for-inline-parts-flag) 341 (mh-display-buttons-for-inline-parts-flag)
337 (mh-do-not-confirm-flag, mh-fetch-x-image-url) 342 (mh-do-not-confirm-flag, mh-fetch-x-image-url)
@@ -348,8 +353,7 @@
348 (mh-alias-reloaded-hook, mh-before-commands-processed-hook) 353 (mh-alias-reloaded-hook, mh-before-commands-processed-hook)
349 (mh-before-quit-hook, mh-before-send-letter-hook) 354 (mh-before-quit-hook, mh-before-send-letter-hook)
350 (mh-delete-msg-hook, mh-find-path-hook, mh-folder-mode-hook) 355 (mh-delete-msg-hook, mh-find-path-hook, mh-folder-mode-hook)
351 (mh-forward-hook, mh-inc-folder-hook, ) 356 (mh-forward-hook, mh-inc-folder-hook, mh-insert-signature-hook)
352 (mh-insert-signature-hook, )
353 (mh-kill-folder-suppress-prompt-hooks, mh-letter-mode-hook) 357 (mh-kill-folder-suppress-prompt-hooks, mh-letter-mode-hook)
354 (mh-mh-to-mime-hook, mh-search-mode-hook, mh-quit-hook) 358 (mh-mh-to-mime-hook, mh-search-mode-hook, mh-quit-hook)
355 (mh-refile-msg-hook, mh-show-hook, mh-show-mode-hook) 359 (mh-refile-msg-hook, mh-show-hook, mh-show-mode-hook)
@@ -361,7 +365,7 @@
361 (mh-letter-header-field, mh-search-folder, mh-show-cc) 365 (mh-letter-header-field, mh-search-folder, mh-show-cc)
362 (mh-show-date, mh-show-from, mh-show-header, mh-show-pgg-bad) 366 (mh-show-date, mh-show-from, mh-show-header, mh-show-pgg-bad)
363 (mh-show-pgg-good, mh-show-pgg-unknown, mh-show-signature) 367 (mh-show-pgg-good, mh-show-pgg-unknown, mh-show-signature)
364 (mh-show-subject, mh-show-to, mh-show-xface, ) 368 (mh-show-subject, mh-show-to, mh-show-xface)
365 (mh-speedbar-folder, mh-speedbar-folder-with-unseen-messages) 369 (mh-speedbar-folder, mh-speedbar-folder-with-unseen-messages)
366 (mh-speedbar-selected-folder) 370 (mh-speedbar-selected-folder)
367 (mh-speedbar-selected-folder-with-unseen-messages): Use dotted 371 (mh-speedbar-selected-folder-with-unseen-messages): Use dotted
@@ -375,7 +379,7 @@
3752006-03-31 Bill Wohler <wohler@newt.com> 3792006-03-31 Bill Wohler <wohler@newt.com>
376 380
377 * mh-e.el (mh-strip-package-version): Move before use to avoid 381 * mh-e.el (mh-strip-package-version): Move before use to avoid
378 compiler error. Make macro, also to avoid compiler error. 382 compiler error. Make macro, also to avoid compiler error.
379 (mh-defface-compat): Incorporate body into mh-face-data and 383 (mh-defface-compat): Incorporate body into mh-face-data and
380 delete. 384 delete.
381 385
@@ -474,7 +478,7 @@
474 MH-Letter mode, move save-buffer and mh-fully-kill-draft icons in 478 MH-Letter mode, move save-buffer and mh-fully-kill-draft icons in
475 front of mh-compose-insertion to be consistent with other mailers, 479 front of mh-compose-insertion to be consistent with other mailers,
476 such as Evolution. In MH-Folder mode, move vanilla reply icon to 480 such as Evolution. In MH-Folder mode, move vanilla reply icon to
477 the left of the other reply icons. Use mail/inbox icon instead of 481 the left of the other reply icons. Use mail/inbox icon instead of
478 mail, next-page instead of page-down, delete instead of close, 482 mail, next-page instead of page-down, delete instead of close,
479 mail/move instead of mail/refile, data-save instead of execute, 483 mail/move instead of mail/refile, data-save instead of execute,
480 mail/flag-for-followup instead of highlight, contact instead of 484 mail/flag-for-followup instead of highlight, contact instead of
@@ -513,7 +517,7 @@
5132006-03-15 Bill Wohler <wohler@newt.com> 5172006-03-15 Bill Wohler <wohler@newt.com>
514 518
515 * mh-compat.el (mh-image-load-path-for-library): Fix example by 519 * mh-compat.el (mh-image-load-path-for-library): Fix example by
516 not recommending that one binds image-load-path. Just defvar it to 520 not recommending that one binds image-load-path. Just defvar it to
517 placate compiler and only use it if previously defined. 521 placate compiler and only use it if previously defined.
518 522
519 * mh-e.el (image-load-path): Don't bind! 523 * mh-e.el (image-load-path): Don't bind!
@@ -551,11 +555,11 @@
5512006-03-10 Bill Wohler <wohler@newt.com> 5552006-03-10 Bill Wohler <wohler@newt.com>
552 556
553 * mh-compat.el (mh-replace-regexp-in-string): Pass the literal 557 * mh-compat.el (mh-replace-regexp-in-string): Pass the literal
554 flag to replace-in-string. This was badly needed by 558 flag to replace-in-string. This was badly needed by
555 mh-quote-pick-expr in order to properly quote subjects when using 559 mh-quote-pick-expr in order to properly quote subjects when using
556 / s on XEmacs (closes SF #1447598). 560 / s on XEmacs (closes SF #1447598).
557 (mh-image-load-path-for-library): Merged changes from Reiner. Add 561 (mh-image-load-path-for-library): Merged changes from Reiner. Add
558 no-error argument. If path t, just return directory. 562 no-error argument. If path t, just return directory.
559 563
560 * mh-e.el (mh-profile-component): Drop `s' from mhparam 564 * mh-e.el (mh-profile-component): Drop `s' from mhparam
561 -components for Mailutils compatibility (closes SF #1446985). 565 -components for Mailutils compatibility (closes SF #1446985).
@@ -598,11 +602,11 @@
598 (mh-sub-folders): Use new flag to mh-normalize-folder-name to make 602 (mh-sub-folders): Use new flag to mh-normalize-folder-name to make
599 this function more robust. It could too easily list the folders in /. 603 this function more robust. It could too easily list the folders in /.
600 (mh-folder-list): Fix a couple of problems pointed out by Thomas 604 (mh-folder-list): Fix a couple of problems pointed out by Thomas
601 Baumann. Set folder to nil if empty. Don't append "/" if folder nil. 605 Baumann. Set folder to nil if empty. Don't append "/" if folder nil.
602 606
6032006-03-03 Bill Wohler <wohler@newt.com> 6072006-03-03 Bill Wohler <wohler@newt.com>
604 608
605 * mh-folder.el (mh-folder-mode): Rename mh-image-load-path to 609 * mh-folder.el (mh-folder-mode): Rename mh-image-load-path to
606 mh-image-load-path-for-library. 610 mh-image-load-path-for-library.
607 611
608 * mh-letter.el (mh-letter-mode): Rename mh-image-load-path to 612 * mh-letter.el (mh-letter-mode): Rename mh-image-load-path to
@@ -689,7 +693,7 @@
6892006-02-21 Eric Ding <ericding@alum.mit.edu> 6932006-02-21 Eric Ding <ericding@alum.mit.edu>
690 694
691 * mh-e.el (mh-invisible-header-fields-internal): Add entry 695 * mh-e.el (mh-invisible-header-fields-internal): Add entry
692 "X-Sasl-enc:" 696 "X-Sasl-enc:".
693 697
6942006-02-20 Eric Ding <ericding@alum.mit.edu> 6982006-02-20 Eric Ding <ericding@alum.mit.edu>
695 699
@@ -958,7 +962,7 @@
958 962
959 * mh-comp.el (mh-send-sub): Don't find components file in current 963 * mh-comp.el (mh-send-sub): Don't find components file in current
960 directory--this seems to have been a side-effect of commenting out 964 directory--this seems to have been a side-effect of commenting out
961 the use of an old mh-etc variable. Improve error message. 965 the use of an old mh-etc variable. Improve error message.
962 966
9632006-01-31 Bill Wohler <wohler@newt.com> 9672006-01-31 Bill Wohler <wohler@newt.com>
964 968
@@ -979,7 +983,7 @@
979 (mh-display-completion-list): Move here from mh-comp.el. 983 (mh-display-completion-list): Move here from mh-comp.el.
980 (mh-face-foreground, mh-face-background): Move here from 984 (mh-face-foreground, mh-face-background): Move here from
981 mh-xface.el. 985 mh-xface.el.
982 (mh-write-file-functions): Move here from mh-folder.el 986 (mh-write-file-functions): Move here from mh-folder.el.
983 987
984 * mh-folder.el (mh-write-file-functions-compat): Move to 988 * mh-folder.el (mh-write-file-functions-compat): Move to
985 mh-compat.el and rename to mh-write-file-functions. 989 mh-compat.el and rename to mh-write-file-functions.
@@ -1042,7 +1046,7 @@
1042 mh-adaptive-cmd-note-flag. 1046 mh-adaptive-cmd-note-flag.
1043 1047
1044 * mh-comp.el (sc-cite-original): Remove autoload of "sc" with old 1048 * mh-comp.el (sc-cite-original): Remove autoload of "sc" with old
1045 docstring. sc-cite-original is autoloaded via loaddefs.el for all 1049 docstring. sc-cite-original is autoloaded via loaddefs.el for all
1046 supported versions. In addition, the package name "sc" has been 1050 supported versions. In addition, the package name "sc" has been
1047 made obsolete by "supercite since at least Emacs 21. 1051 made obsolete by "supercite since at least Emacs 21.
1048 1052
@@ -1323,7 +1327,7 @@
1323 1327
1324 * mh-exec.el: Move content into mh-e.el and remove. 1328 * mh-exec.el: Move content into mh-e.el and remove.
1325 1329
1326 * mh-folder.el: New file. Contains mh-folder-mode from mh-e.el. 1330 * mh-folder.el: New file. Contains mh-folder-mode from mh-e.el.
1327 1331
1328 * mh-funcs.el (mh-note-copied, mh-note-printed): Move to new file 1332 * mh-funcs.el (mh-note-copied, mh-note-printed): Move to new file
1329 mh-scan.el. 1333 mh-scan.el.
@@ -1368,7 +1372,7 @@
1368 1372
1369 * mh-print.el: Rearrange for consistency with other files. 1373 * mh-print.el: Rearrange for consistency with other files.
1370 1374
1371 * mh-scan.el: New file. Contains scan line constants and utilities 1375 * mh-scan.el: New file. Contains scan line constants and utilities
1372 from XXX, mh-funcs, mh-utils.el. 1376 from XXX, mh-funcs, mh-utils.el.
1373 1377
1374 * mh-search.el: Rearrange for consistency with other files. 1378 * mh-search.el: Rearrange for consistency with other files.
@@ -1565,7 +1569,7 @@
1565 * mh-comp.el (mh-pgp-support-flag): Move here from mh-utils.el; 1569 * mh-comp.el (mh-pgp-support-flag): Move here from mh-utils.el;
1566 needed to help remove dependency on mh-utils. 1570 needed to help remove dependency on mh-utils.
1567 1571
1568 * mh-exec.el: New file. Move process support routines here from 1572 * mh-exec.el: New file. Move process support routines here from
1569 mh-utils.el. 1573 mh-utils.el.
1570 1574
1571 * mh-init.el (mh-utils): Remove require. 1575 * mh-init.el (mh-utils): Remove require.
@@ -1612,7 +1616,7 @@
1612 (mh-kill-folder-suppress-prompt-hooks): Rename mh-index-p to 1616 (mh-kill-folder-suppress-prompt-hooks): Rename mh-index-p to
1613 mh-search-p. 1617 mh-search-p.
1614 (mh-search-mode-hook): Change group from mh-index to mh-search. 1618 (mh-search-mode-hook): Change group from mh-index to mh-search.
1615 (mh-index-folder): Rename to mh-search-folder. Change group from 1619 (mh-index-folder): Rename to mh-search-folder. Change group from
1616 mh-index to mh-search. 1620 mh-index to mh-search.
1617 1621
1618 * mh-e.el (mh-folder-font-lock-keywords): Rename mh-index-folder 1622 * mh-e.el (mh-folder-font-lock-keywords): Rename mh-index-folder
@@ -1667,7 +1671,7 @@
16672006-01-12 Bill Wohler <wohler@newt.com> 16712006-01-12 Bill Wohler <wohler@newt.com>
1668 1672
1669 * mh-search.el: New file containing contents of mh-index.el and 1673 * mh-search.el: New file containing contents of mh-index.el and
1670 mh-pick.el. C-c C-c launches your mh-index-program; C-c C-p runs 1674 mh-pick.el. C-c C-c launches your mh-index-program; C-c C-p runs
1671 pick. Pick no longer sets the "search" sequence. Instead, it 1675 pick. Pick no longer sets the "search" sequence. Instead, it
1672 brings up a folder view that we're accustomed to. (Closes SF 1676 brings up a folder view that we're accustomed to. (Closes SF
1673 #829207.) 1677 #829207.)
@@ -1722,13 +1726,13 @@
1722 1726
1723 * mh-utils.el (mh-x-image-url-cache-canonicalize): Use 1727 * mh-utils.el (mh-x-image-url-cache-canonicalize): Use
1724 url-hexify-string to remove special characters from filenames 1728 url-hexify-string to remove special characters from filenames
1725 (closes SF #1396499). Note that this invalidates the existing 1729 (closes SF #1396499). Note that this invalidates the existing
1726 names in your cache so you might as well remove 1730 names in your cache so you might as well remove
1727 ~/Mail/.mhe-x-image-cache/* now. 1731 ~/Mail/.mhe-x-image-cache/* now.
1728 (url-unreserved-chars, url-hexify-string): Define if not defined. 1732 (url-unreserved-chars, url-hexify-string): Define if not defined.
1729 Copied from url-util.el in Emacs22 for Emacs 21. 1733 Copied from url-util.el in Emacs22 for Emacs 21.
1730 1734
1731 * mh-buffers.el: New file. Contains constants and code from 1735 * mh-buffers.el: New file. Contains constants and code from
1732 mh-index.el and mh-utils.el. 1736 mh-index.el and mh-utils.el.
1733 1737
1734 * mh-alias.el: 1738 * mh-alias.el:
@@ -1758,7 +1762,7 @@
17582006-01-10 Bill Wohler <wohler@newt.com> 17622006-01-10 Bill Wohler <wohler@newt.com>
1759 1763
1760 * mh-comp.el (mh-insert-letter): If you choose a different folder, 1764 * mh-comp.el (mh-insert-letter): If you choose a different folder,
1761 the cur message is used. Sync docstring with manual (closes SF 1765 the cur message is used. Sync docstring with manual (closes SF
1762 #1205890). 1766 #1205890).
1763 1767
1764 * mh-mime.el (mh-compose-forward): Use standard range argument 1768 * mh-mime.el (mh-compose-forward): Use standard range argument
@@ -1776,7 +1780,7 @@
1776 use function mh-variants instead. 1780 use function mh-variants instead.
1777 (mh-variant-info, mh-variant-mh-info, mh-variant-mu-mh-info) 1781 (mh-variant-info, mh-variant-mh-info, mh-variant-mu-mh-info)
1778 (mh-variant-nmh-info): Co-locate next to mh-variants, which uses 1782 (mh-variant-nmh-info): Co-locate next to mh-variants, which uses
1779 them. Updated to use mh-file-command-p which is more accurrate 1783 them. Updated to use mh-file-command-p which is more accurrate
1780 than file-executable-p which returns t for directories. 1784 than file-executable-p which returns t for directories.
1781 (mh-file-command-p): Move here from mh-utils, since 1785 (mh-file-command-p): Move here from mh-utils, since
1782 mh-variant-*-info are the only functions to use it. 1786 mh-variant-*-info are the only functions to use it.
@@ -1962,8 +1966,8 @@
1962 1966
1963 * mh-customize.el (mh-folder-msg-number): Snow is actually 1967 * mh-customize.el (mh-folder-msg-number): Snow is actually
1964 off-white on low color displays which turns to white when bold. 1968 off-white on low color displays which turns to white when bold.
1965 This is unreadable on white backgrounds. Use snow with min-colors 1969 This is unreadable on white backgrounds. Use snow with min-colors
1966 requirement. Use cyan on low-color displays. 1970 requirement. Use cyan on low-color displays.
1967 1971
1968 * mh-init.el (mh-defface-compat): On low-color displays, delete 1972 * mh-init.el (mh-defface-compat): On low-color displays, delete
1969 the high-color display rather than simply strip the min-colors 1973 the high-color display rather than simply strip the min-colors
@@ -1976,13 +1980,13 @@
19762006-01-02 Bill Wohler <wohler@newt.com> 19802006-01-02 Bill Wohler <wohler@newt.com>
1977 1981
1978 * mh-alias.el (mh-alias-grab-from-field): Remove leading * from 1982 * mh-alias.el (mh-alias-grab-from-field): Remove leading * from
1979 docstring. Does this mean something in a defun? 1983 docstring. Does this mean something in a defun?
1980 1984
1981 * mh-customize.el (bw-new-face-to-old, bw-old-face-to-new): 1985 * mh-customize.el (bw-new-face-to-old, bw-old-face-to-new):
1982 Checkdoc fix. 1986 Checkdoc fix.
1983 1987
1984 * mh-e.el (mh-inc-folder): Rename maildrop-name argument to file 1988 * mh-e.el (mh-inc-folder): Rename maildrop-name argument to file
1985 so it reads better in docstring and manual. Sync docstring with 1989 so it reads better in docstring and manual. Sync docstring with
1986 manual. 1990 manual.
1987 1991
1988 * mh-init.el (mh-defface-compat): Remove trailing space (checkdoc). 1992 * mh-init.el (mh-defface-compat): Remove trailing space (checkdoc).
@@ -2004,7 +2008,7 @@
2004 * mh-e.el (mh-refile-or-write-again, mh-toggle-showing): Ditto. 2008 * mh-e.el (mh-refile-or-write-again, mh-toggle-showing): Ditto.
2005 2009
2006 * mh-funcs.el (mh-pipe-msg, mh-sort-folder, mh-undo-folder) 2010 * mh-funcs.el (mh-pipe-msg, mh-sort-folder, mh-undo-folder)
2007 (mh-store-msg, mh-store-buffer): Ditto 2011 (mh-store-msg, mh-store-buffer): Ditto.
2008 2012
2009 * mh-index.el (mh-index-search, mh-index-do-search) 2013 * mh-index.el (mh-index-search, mh-index-do-search)
2010 (mh-index-next-folder, mh-index-sequenced-messages): Ditto. 2014 (mh-index-next-folder, mh-index-sequenced-messages): Ditto.
@@ -2014,7 +2018,7 @@
2014 * mh-mime.el (mh-mh-compose-external-compressed-tar) 2018 * mh-mime.el (mh-mh-compose-external-compressed-tar)
2015 (mh-mh-compose-external-type, mh-mh-to-mime, mh-mh-to-mime-undo) 2019 (mh-mh-compose-external-type, mh-mh-to-mime, mh-mh-to-mime-undo)
2016 (mh-mml-secure-message-sign, mh-mml-secure-message-encrypt) 2020 (mh-mml-secure-message-sign, mh-mml-secure-message-encrypt)
2017 (mh-mml-secure-message-signencrypt): Ditto 2021 (mh-mml-secure-message-signencrypt): Ditto.
2018 2022
2019 * mh-pick.el (mh-search-folder): Ditto. 2023 * mh-pick.el (mh-search-folder): Ditto.
2020 2024
@@ -2068,7 +2072,7 @@
2068 (mh-scan-date-regexp, mh-scan-rcpt-regexp, mh-scan-body-regexp) 2072 (mh-scan-date-regexp, mh-scan-rcpt-regexp, mh-scan-body-regexp)
2069 (mh-scan-subject-regexp): Sync docstrings with manual 2073 (mh-scan-subject-regexp): Sync docstrings with manual
2070 (mh-scan-format-regexp): Rename to 2074 (mh-scan-format-regexp): Rename to
2071 mh-scan-sent-to-me-sender-regexp. Drop date parenthesized 2075 mh-scan-sent-to-me-sender-regexp. Drop date parenthesized
2072 expression. Make expression more like the others (anchored at the 2076 expression. Make expression more like the others (anchored at the
2073 beginning of line). Sync docstrings with manual. 2077 beginning of line). Sync docstrings with manual.
2074 (mh-folder-font-lock-keywords): Use faces directly rather than 2078 (mh-folder-font-lock-keywords): Use faces directly rather than
@@ -2228,7 +2232,7 @@
2228 (mh-tool-bar-define): Replace toolbar with tool-bar or tool bar 2232 (mh-tool-bar-define): Replace toolbar with tool-bar or tool bar
2229 depending on context. 2233 depending on context.
2230 (mh-toolbar-init): Rename to mh-tool-bar-init. Simplify condition 2234 (mh-toolbar-init): Rename to mh-tool-bar-init. Simplify condition
2231 for calling set-specifier. Only look at the value of 2235 for calling set-specifier. Only look at the value of
2232 mh-xemacs-use-tool-bar-flag. 2236 mh-xemacs-use-tool-bar-flag.
2233 (mh-tool-bar-folder-buttons, mh-tool-bar-letter-buttons): 2237 (mh-tool-bar-folder-buttons, mh-tool-bar-letter-buttons):
2234 Sync docstrings with manual. 2238 Sync docstrings with manual.
@@ -2501,7 +2505,7 @@
2501 msg argument to message (to make for a better docstring). 2505 msg argument to message (to make for a better docstring).
2502 2506
2503 * mh-customize.el (mh-redist-full-contents-flag): Convert defvar 2507 * mh-customize.el (mh-redist-full-contents-flag): Convert defvar
2504 to defcustom. Rename by adding -flag. 2508 to defcustom. Rename by adding -flag.
2505 (mh-compose-forward-as-mime-flag) 2509 (mh-compose-forward-as-mime-flag)
2506 (mh-compose-letter-function, mh-forward-subject-format) 2510 (mh-compose-letter-function, mh-forward-subject-format)
2507 (mh-insert-x-mailer-flag, mh-reply-default-reply-to) 2511 (mh-insert-x-mailer-flag, mh-reply-default-reply-to)
@@ -2623,10 +2627,10 @@
2623 Sync docstring with manual. 2627 Sync docstring with manual.
2624 2628
2625 * mh-identity.el (mh-assoc-ignore-case): Merge with version in 2629 * mh-identity.el (mh-assoc-ignore-case): Merge with version in
2626 mh-alias.el and move to mh-acros.el 2630 mh-alias.el and move to mh-acros.el.
2627 2631
2628 * mh-alias.el (mh-assoc-ignore-case): Merge with version in 2632 * mh-alias.el (mh-assoc-ignore-case): Merge with version in
2629 mh-identity.el and move to mh-acros.el 2633 mh-identity.el and move to mh-acros.el.
2630 2634
2631 * mh-acros.el (mh-assoc-ignore-case): Merge of function from 2635 * mh-acros.el (mh-assoc-ignore-case): Merge of function from
2632 mh-identity.el and mh-alias.el. 2636 mh-identity.el and mh-alias.el.
@@ -2667,15 +2671,15 @@
2667 mh-mhn-compose-external-compressed-tar to 2671 mh-mhn-compose-external-compressed-tar to
2668 mh-mh-compose-external-compressed-tar. Rename 2672 mh-mh-compose-external-compressed-tar. Rename
2669 mh-mhn-compose-anon-ftp to mh-mh-compose-anon-ftp. Rename 2673 mh-mhn-compose-anon-ftp to mh-mh-compose-anon-ftp. Rename
2670 mh-edit-mhn to mh-mh-to-mime. Rename mh-mhn-directive-present-p to 2674 mh-edit-mhn to mh-mh-to-mime. Rename mh-mhn-directive-present-p to
2671 mh-mh-directive-present-p. Rename mh-revert-mhn-edit to 2675 mh-mh-directive-present-p. Rename mh-revert-mhn-edit to
2672 mh-mh-to-mime-undo. Rename mh-gnus-pgp-support-flag to 2676 mh-mh-to-mime-undo. Rename mh-gnus-pgp-support-flag to
2673 mh-pgp-support-flag. Rename mh-compose-insertion value from 'mhn 2677 mh-pgp-support-flag. Rename mh-compose-insertion value from 'mhn
2674 to 'mh. 2678 to 'mh.
2675 (mh-insert-signature): Rename mh-mhn-directive-present-p to 2679 (mh-insert-signature): Rename mh-mhn-directive-present-p to
2676 mh-mh-directive-present-p. 2680 mh-mh-directive-present-p.
2677 (mh-send-letter): Rename mh-mhn-directive-present-p to 2681 (mh-send-letter): Rename mh-mhn-directive-present-p to
2678 mh-mh-directive-present-p. Rename mh-edit-mhn to mh-mh-to-mime. 2682 mh-mh-directive-present-p. Rename mh-edit-mhn to mh-mh-to-mime.
2679 (mh-letter-mode-map): Rename mh-edit-mhn to mh-mh-to-mime. Rename 2683 (mh-letter-mode-map): Rename mh-edit-mhn to mh-mh-to-mime. Rename
2680 mh-mhn-compose-anon-ftp to mh-mh-compose-anon-ftp. Rename 2684 mh-mhn-compose-anon-ftp to mh-mh-compose-anon-ftp. Rename
2681 mh-mhn-compose-external-compressed-tar to 2685 mh-mhn-compose-external-compressed-tar to
@@ -2829,7 +2833,7 @@
2829 2833
2830 * mh-e.el (Version, mh-version): Add +cvs to version. 2834 * mh-e.el (Version, mh-version): Add +cvs to version.
2831 2835
28322005-10-14 Bill Wohler <wohler@newt.com> 28362005-10-14 Bill Wohler <wohler@newt.com>
2833 2837
2834 Released MH-E version 7.85. 2838 Released MH-E version 7.85.
2835 2839
diff --git a/lisp/mh-e/mh-mime.el b/lisp/mh-e/mh-mime.el
index 0f2b7daa741..56cfc6544ce 100644
--- a/lisp/mh-e/mh-mime.el
+++ b/lisp/mh-e/mh-mime.el
@@ -1667,7 +1667,7 @@ This action can be undone by running \\[undo]."
1667(defun mh-mh-directive-present-p (&optional begin end) 1667(defun mh-mh-directive-present-p (&optional begin end)
1668 "Check if the text between BEGIN and END might be a MH-style directive. 1668 "Check if the text between BEGIN and END might be a MH-style directive.
1669The optional argument BEGIN defaults to the beginning of the 1669The optional argument BEGIN defaults to the beginning of the
1670buffer, while END defaults to the the end of the buffer." 1670buffer, while END defaults to the end of the buffer."
1671 (unless begin (setq begin (point-min))) 1671 (unless begin (setq begin (point-min)))
1672 (unless end (setq end (point-max))) 1672 (unless end (setq end (point-max)))
1673 (save-excursion 1673 (save-excursion
diff --git a/lisp/mh-e/mh-search.el b/lisp/mh-e/mh-search.el
index 715556ad16d..ebd45aef6a6 100644
--- a/lisp/mh-e/mh-search.el
+++ b/lisp/mh-e/mh-search.el
@@ -1357,7 +1357,7 @@ record is invalid return 'error."
1357;;;###mh-autoload 1357;;;###mh-autoload
1358(defun mh-index-group-by-folder () 1358(defun mh-index-group-by-folder ()
1359 "Partition the messages based on source folder. 1359 "Partition the messages based on source folder.
1360Returns an alist with the the folder names in the car and the cdr 1360Returns an alist with the folder names in the car and the cdr
1361being the list of messages originally from that folder." 1361being the list of messages originally from that folder."
1362 (save-excursion 1362 (save-excursion
1363 (goto-char (point-min)) 1363 (goto-char (point-min))
diff --git a/lisp/net/socks.el b/lisp/net/socks.el
new file mode 100644
index 00000000000..ee2bc0c1d2d
--- /dev/null
+++ b/lisp/net/socks.el
@@ -0,0 +1,650 @@
1;;; socks.el --- A Socks v5 Client for Emacs
2
3;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002,
4;; 2007 Free Software Foundation, Inc.
5
6;; Author: William M. Perry <wmperry@gnu.org>
7;; Dave Love <fx@gnu.org>
8;; Keywords: comm, firewalls
9
10;; This file is part of GNU Emacs.
11
12;; GNU Emacs is free software; you can redistribute it and/or modify
13;; it under the terms of the GNU General Public License as published by
14;; the Free Software Foundation; either version 2, or (at your option)
15;; any later version.
16
17;; GNU Emacs is distributed in the hope that it will be useful,
18;; but WITHOUT ANY WARRANTY; without even the implied warranty of
19;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20;; GNU General Public License for more details.
21
22;; You should have received a copy of the GNU General Public License
23;; along with GNU Emacs; see the file COPYING. If not, write to the
24;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
25;; Boston, MA 02110-1301, USA.
26
27;;; Commentary:
28
29;; This is an implementation of the SOCKS v5 protocol as defined in
30;; RFC 1928.
31
32;; TODO
33;; - Finish the redirection rules stuff
34;; - Implement composition of servers. Recursively evaluate the
35;; redirection rules and do SOCKS-over-HTTP and SOCKS-in-SOCKS
36
37(eval-when-compile
38 (require 'wid-edit))
39(require 'custom)
40
41(if (not (fboundp 'split-string))
42 (defun split-string (string &optional pattern)
43 "Return a list of substrings of STRING which are separated by PATTERN.
44If PATTERN is omitted, it defaults to \"[ \\f\\t\\n\\r\\v]+\"."
45 (or pattern
46 (setq pattern "[ \f\t\n\r\v]+"))
47 (let (parts (start 0))
48 (while (string-match pattern string start)
49 (setq parts (cons (substring string start (match-beginning 0)) parts)
50 start (match-end 0)))
51 (nreverse (cons (substring string start) parts)))))
52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
53;;; Custom widgets
54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
55(define-widget 'dynamic-choice 'menu-choice
56 "A pretty simple dynamic dropdown list"
57 :format "%[%t%]: %v"
58 :tag "Network"
59 :case-fold t
60 :void '(item :format "invalid (%t)\n")
61 :value-create 's5-widget-value-create
62 :value-delete 'widget-children-value-delete
63 :value-get 'widget-choice-value-get
64 :value-inline 'widget-choice-value-inline
65 :mouse-down-action 'widget-choice-mouse-down-action
66 :action 'widget-choice-action
67 :error "Make a choice"
68 :validate 'widget-choice-validate
69 :match 's5-dynamic-choice-match
70 :match-inline 's5-dynamic-choice-match-inline)
71
72(defun s5-dynamic-choice-match (widget value)
73 (let ((choices (funcall (widget-get widget :choice-function)))
74 current found)
75 (while (and choices (not found))
76 (setq current (car choices)
77 choices (cdr choices)
78 found (widget-apply current :match value)))
79 found))
80
81(defun s5-dynamic-choice-match-inline (widget value)
82 (let ((choices (funcall (widget-get widget :choice-function)))
83 current found)
84 (while (and choices (not found))
85 (setq current (car choices)
86 choices (cdr choices)
87 found (widget-match-inline current value)))
88 found))
89
90(defun s5-widget-value-create (widget)
91 (let ((choices (funcall (widget-get widget :choice-function)))
92 (value (widget-get widget :value)))
93 (if (not value)
94 (widget-put widget :value (widget-value (car choices))))
95 (widget-put widget :args choices)
96 (widget-choice-value-create widget)))
97
98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
99;;; Customization support
100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
101(defgroup socks nil
102 "SOCKS Support"
103 :prefix "socks-"
104 :group 'processes)
105
106'(defcustom socks-server-aliases nil
107 "A list of server aliases for use in access control and filtering rules."
108 :group 'socks
109 :type '(repeat (list :format "%v"
110 :value ("" "" 1080 5)
111 (string :tag "Alias")
112 (string :tag "Hostname/IP Address")
113 (integer :tag "Port #")
114 (choice :tag "SOCKS Version"
115 (integer :tag "SOCKS v4" :value 4)
116 (integer :tag "SOCKS v5" :value 5)))))
117
118'(defcustom socks-network-aliases
119 '(("Anywhere" (netmask "0.0.0.0" "0.0.0.0")))
120 "A list of network aliases for use in subsequent rules."
121 :group 'socks
122 :type '(repeat (list :format "%v"
123 :value (netmask "" "255.255.255.0")
124 (string :tag "Alias")
125 (radio-button-choice
126 :format "%v"
127 (list :tag "IP address range"
128 (const :format "" :value range)
129 (string :tag "From")
130 (string :tag "To"))
131 (list :tag "IP address/netmask"
132 (const :format "" :value netmask)
133 (string :tag "IP Address")
134 (string :tag "Netmask"))
135 (list :tag "Domain Name"
136 (const :format "" :value domain)
137 (string :tag "Domain name"))
138 (list :tag "Unique hostname/IP address"
139 (const :format "" :value exact)
140 (string :tag "Hostname/IP Address"))))))
141
142'(defun s5-servers-filter ()
143 (if socks-server-aliases
144 (mapcar (lambda (x) (list 'const :tag (car x) :value (car x))) s5-server-aliases)
145 '((const :tag "No aliases defined" :value nil))))
146
147'(defun s5-network-aliases-filter ()
148 (mapcar (lambda (x) (list 'const :tag (car x) :value (car x)))
149 socks-network-aliases))
150
151'(defcustom socks-redirection-rules
152 nil
153 "A list of redirection rules."
154 :group 'socks
155 :type '(repeat (list :format "%v"
156 :value ("Anywhere" nil)
157 (dynamic-choice :choice-function s5-network-aliases-filter
158 :tag "Destination network")
159 (radio-button-choice
160 :tag "Connection type"
161 (const :tag "Direct connection" :value nil)
162 (dynamic-choice :format "%t: %[%v%]"
163 :choice-function s5-servers-filter
164 :tag "Proxy chain via")))))
165
166(defcustom socks-server
167 (list "Default server" "socks" 1080 5)
168 ""
169 :group 'socks
170 :type '(list
171 (string :format "" :value "Default server")
172 (string :tag "Server")
173 (integer :tag "Port")
174 (radio-button-choice :tag "SOCKS Version"
175 :format "%t: %v"
176 (const :tag "SOCKS v4 " :format "%t" :value 4)
177 (const :tag "SOCKS v5" :format "%t" :value 5))))
178
179
180;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
181;;; Get down to the nitty gritty
182;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
183(defconst socks-version 5)
184(defvar socks-debug nil)
185
186;; Common socks v5 commands
187(defconst socks-connect-command 1)
188(defconst socks-bind-command 2)
189(defconst socks-udp-associate-command 3)
190
191;; Miscellaneous other socks constants
192(defconst socks-authentication-null 0)
193(defconst socks-authentication-failure 255)
194
195;; Response codes
196(defconst socks-response-success 0)
197(defconst socks-response-general-failure 1)
198(defconst socks-response-access-denied 2)
199(defconst socks-response-network-unreachable 3)
200(defconst socks-response-host-unreachable 4)
201(defconst socks-response-connection-refused 5)
202(defconst socks-response-ttl-expired 6)
203(defconst socks-response-cmd-not-supported 7)
204(defconst socks-response-address-not-supported 8)
205
206(defvar socks-errors
207 '("Succeeded"
208 "General SOCKS server failure"
209 "Connection not allowed by ruleset"
210 "Network unreachable"
211 "Host unreachable"
212 "Connection refused"
213 "Time-to-live expired"
214 "Command not supported"
215 "Address type not supported"))
216
217;; The socks v5 address types
218(defconst socks-address-type-v4 1)
219(defconst socks-address-type-name 3)
220(defconst socks-address-type-v6 4)
221
222;; Base variables
223(defvar socks-timeout 5)
224(defvar socks-connections (make-hash-table :size 13))
225
226;; Miscellaneous stuff for authentication
227(defvar socks-authentication-methods nil)
228(defvar socks-username (user-login-name))
229(defvar socks-password nil)
230
231(defun socks-register-authentication-method (id desc callback)
232 (let ((old (assq id socks-authentication-methods)))
233 (if old
234 (setcdr old (cons desc callback))
235 (setq socks-authentication-methods
236 (cons (cons id (cons desc callback))
237 socks-authentication-methods)))))
238
239(defun socks-unregister-authentication-method (id)
240 (let ((old (assq id socks-authentication-methods)))
241 (if old
242 (setq socks-authentication-methods
243 (delq old socks-authentication-methods)))))
244
245(socks-register-authentication-method 0 "No authentication" 'identity)
246
247(defun socks-build-auth-list ()
248 (let ((num 0)
249 (retval ""))
250 (mapcar
251 (function
252 (lambda (x)
253 (if (fboundp (cdr (cdr x)))
254 (setq retval (format "%s%c" retval (car x))
255 num (1+ num)))))
256 (reverse socks-authentication-methods))
257 (format "%c%s" num retval)))
258
259(defconst socks-state-waiting-for-auth 0)
260(defconst socks-state-submethod-negotiation 1)
261(defconst socks-state-authenticated 2)
262(defconst socks-state-waiting 3)
263(defconst socks-state-connected 4)
264
265(defmacro socks-wait-for-state-change (proc htable cur-state)
266 (`
267 (while (and (= (gethash 'state (, htable)) (, cur-state))
268 (memq (process-status (, proc)) '(run open)))
269 (accept-process-output (, proc) socks-timeout))))
270
271(defun socks-filter (proc string)
272 (let ((info (gethash proc socks-connections))
273 state version desired-len)
274 (or info (error "socks-filter called on non-SOCKS connection %S" proc))
275 (setq state (gethash 'state info))
276 (cond
277 ((= state socks-state-waiting-for-auth)
278 (puthash 'scratch (concat string (gethash 'scratch info)) info)
279 (setq string (gethash 'scratch info))
280 (if (< (length string) 2)
281 nil ; We need to spin some more
282 (puthash 'authtype (aref string 1) info)
283 (puthash 'scratch (substring string 2 nil) info)
284 (puthash 'state socks-state-submethod-negotiation info)))
285 ((= state socks-state-submethod-negotiation)
286 )
287 ((= state socks-state-authenticated)
288 )
289 ((= state socks-state-waiting)
290 (puthash 'scratch (concat string (gethash 'scratch info)) info)
291 (setq string (gethash 'scratch info))
292 (setq version (gethash 'server-protocol info))
293 (cond
294 ((equal version 'http)
295 (if (not (string-match "\r\n\r\n" string))
296 nil ; Need to spin some more
297 (puthash 'state socks-state-connected info)
298 (puthash 'reply 0 info)
299 (puthash 'response string info)))
300 ((equal version 4)
301 (if (< (length string) 2)
302 nil ; Can't know how much to read yet
303 (setq desired-len
304 (+ 4 ; address length
305 2 ; port
306 2 ; initial data
307 ))
308 (if (< (length string) desired-len)
309 nil ; need to spin some more
310 (let ((response (aref string 1)))
311 (if (= response 90)
312 (setq response 0))
313 (puthash 'state socks-state-connected info)
314 (puthash 'reply response info)
315 (puthash 'response string info)))))
316 ((equal version 5)
317 (if (< (length string) 4)
318 nil
319 (setq desired-len
320 (+ 6 ; Standard socks header
321 (cond
322 ((= (aref string 3) socks-address-type-v4) 4)
323 ((= (aref string 3) socks-address-type-v6) 16)
324 ((= (aref string 3) socks-address-type-name)
325 (if (< (length string) 5)
326 255
327 (+ 1 (aref string 4)))))))
328 (if (< (length string) desired-len)
329 nil ; Need to spin some more
330 (puthash 'state socks-state-connected info)
331 (puthash 'reply (aref string 1) info)
332 (puthash 'response string info))))))
333 ((= state socks-state-connected)
334 )
335 )
336 )
337 )
338
339(defun socks-open-connection (server-info)
340 (interactive)
341 (save-excursion
342 (let ((proc (socks-original-open-network-stream "socks"
343 nil
344 (nth 1 server-info)
345 (nth 2 server-info)))
346 (info (make-hash-table :size 13))
347 (authtype nil)
348 version)
349
350 ;; Initialize process and info about the process
351 (set-process-filter proc 'socks-filter)
352 (set-process-query-on-exit-flag proc nil)
353 (puthash proc info socks-connections)
354 (puthash 'state socks-state-waiting-for-auth info)
355 (puthash 'authtype socks-authentication-failure info)
356 (puthash 'server-protocol (nth 3 server-info) info)
357 (puthash 'server-name (nth 1 server-info) info)
358 (setq version (nth 3 server-info))
359 (cond
360 ((equal version 'http)
361 ;; Don't really have to do any connection setup under http
362 nil)
363 ((equal version 4)
364 ;; Don't really have to do any connection setup under v4
365 nil)
366 ((equal version 5)
367 ;; Need to handle all the authentication crap under v5
368 ;; Send what we think we can handle for authentication types
369 (process-send-string proc (format "%c%s" socks-version
370 (socks-build-auth-list)))
371
372 ;; Basically just do a select() until we change states.
373 (socks-wait-for-state-change proc info socks-state-waiting-for-auth)
374 (setq authtype (gethash 'authtype info))
375 (cond
376 ((= authtype socks-authentication-null)
377 (and socks-debug (message "No authentication necessary")))
378 ((= authtype socks-authentication-failure)
379 (error "No acceptable authentication methods found."))
380 (t
381 (let* ((auth-type (gethash 'authtype info))
382 (auth-handler (assoc auth-type socks-authentication-methods))
383 (auth-func (and auth-handler (cdr (cdr auth-handler))))
384 (auth-desc (and auth-handler (car (cdr auth-handler)))))
385 (set-process-filter proc nil)
386 (if (and auth-func (fboundp auth-func)
387 (funcall auth-func proc))
388 nil ; We succeeded!
389 (delete-process proc)
390 (error "Failed to use auth method: %s (%d)"
391 (or auth-desc "Unknown") auth-type))
392 )
393 )
394 )
395 (puthash 'state socks-state-authenticated info)
396 (set-process-filter proc 'socks-filter)))
397 proc)))
398
399(defun socks-send-command (proc command atype address port)
400 (let ((addr (cond
401 ((or (= atype socks-address-type-v4)
402 (= atype socks-address-type-v6))
403 address)
404 ((= atype socks-address-type-name)
405 (format "%c%s" (length address) address))
406 (t
407 (error "Unkown address type: %d" atype))))
408 (info (gethash proc socks-connections))
409 request version)
410 (or info (error "socks-send-command called on non-SOCKS connection %S"
411 proc))
412 (puthash 'state socks-state-waiting info)
413 (setq version (gethash 'server-protocol info))
414 (cond
415 ((equal version 'http)
416 (setq request (format (eval-when-compile
417 (concat
418 "CONNECT %s:%d HTTP/1.0\r\n"
419 "User-Agent: Emacs/SOCKS v1.0\r\n"
420 "\r\n"))
421 (cond
422 ((equal atype socks-address-type-name) address)
423 (t
424 (error "Unsupported address type for HTTP: %d" atype)))
425 port)))
426 ((equal version 4)
427 (setq request (format
428 "%c%c%c%c%s%s%c"
429 version ; version
430 command ; command
431 (lsh port -8) ; port, high byte
432 (- port (lsh (lsh port -8) 8)) ; port, low byte
433 addr ; address
434 (user-full-name) ; username
435 0 ; terminate username
436 )))
437 ((equal version 5)
438 (setq request (format
439 "%c%c%c%c%s%c%c"
440 version ; version
441 command ; command
442 0 ; reserved
443 atype ; address type
444 addr ; address
445 (lsh port -8) ; port, high byte
446 (- port (lsh (lsh port -8) 8)) ; port, low byte
447 )))
448 (t
449 (error "Unknown protocol version: %d" version)))
450 (process-send-string proc request)
451 (socks-wait-for-state-change proc info socks-state-waiting)
452 (process-status proc)
453 (if (= (or (gethash 'reply info) 1) socks-response-success)
454 nil ; Sweet sweet success!
455 (delete-process proc)
456 (error "SOCKS: %s" (nth (or (gethash 'reply info) 1) socks-errors)))
457 proc))
458
459
460;; Replacement functions for open-network-stream, etc.
461(defvar socks-noproxy nil
462 "*List of regexps matching hosts that we should not socksify connections to")
463
464(defun socks-find-route (host service)
465 (let ((route socks-server)
466 (noproxy socks-noproxy))
467 (while noproxy
468 (if (eq ?! (aref (car noproxy) 0))
469 (if (string-match (substring (car noproxy) 1) host)
470 (setq noproxy nil))
471 (if (string-match (car noproxy) host)
472 (setq route nil
473 noproxy nil)))
474 (setq noproxy (cdr noproxy)))
475 route))
476
477(defvar socks-override-functions nil
478 "*Whether to overwrite the open-network-stream function with the SOCKSified
479version.")
480
481(if (fboundp 'socks-original-open-network-stream)
482 nil ; Do nothing, we've been here already
483 (defalias 'socks-original-open-network-stream
484 (symbol-function 'open-network-stream))
485 (if socks-override-functions
486 (defalias 'open-network-stream 'socks-open-network-stream)))
487
488(defvar socks-services-file "/etc/services")
489(defvar socks-tcp-services (make-hash-table :size 13 :test 'equal))
490(defvar socks-udp-services (make-hash-table :size 13 :test 'equal))
491
492(defun socks-parse-services ()
493 (if (not (and (file-exists-p socks-services-file)
494 (file-readable-p socks-services-file)))
495 (error "Could not find services file: %s" socks-services-file))
496 (save-excursion
497 (clrhash socks-tcp-services)
498 (clrhash socks-udp-services)
499 (set-buffer (get-buffer-create " *socks-tmp*"))
500 (erase-buffer)
501 (insert-file-contents socks-services-file)
502 ;; Nuke comments
503 (goto-char (point-min))
504 (while (re-search-forward "#.*" nil t)
505 (replace-match ""))
506 ;; Nuke empty lines
507 (goto-char (point-min))
508 (while (re-search-forward "^[ \t\n]+" nil t)
509 (replace-match ""))
510 ;; Now find all the lines
511 (goto-char (point-min))
512 (let (name port type)
513 (while (re-search-forward "^\\([^ \t]+\\)[ \t]+\\([0-9]+\\)/\\([a-z]+\\)"
514 nil t)
515 (setq name (downcase (match-string 1))
516 port (string-to-number (match-string 2))
517 type (downcase (match-string 3)))
518 (puthash name port (if (equal type "udp")
519 socks-udp-services
520 socks-tcp-services))))))
521
522(defun socks-find-services-entry (service &optional udp)
523 "Return the port # associated with SERVICE"
524 (if (= (hash-table-count socks-tcp-services) 0)
525 (socks-parse-services))
526 (gethash (downcase service)
527 (if udp socks-udp-services socks-tcp-services)))
528
529(defun socks-open-network-stream (name buffer host service)
530 (let* ((route (socks-find-route host service))
531 proc info version atype)
532 (if (not route)
533 (socks-original-open-network-stream name buffer host service)
534 (setq proc (socks-open-connection route)
535 info (gethash proc socks-connections)
536 version (gethash 'server-protocol info))
537 (cond
538 ((equal version 4)
539 (setq host (socks-nslookup-host host))
540 (if (not (listp host))
541 (error "Could not get IP address for: %s" host))
542 (setq host (apply 'format "%c%c%c%c" host))
543 (setq atype socks-address-type-v4))
544 (t
545 (setq atype socks-address-type-name)))
546 (socks-send-command proc
547 socks-connect-command
548 atype
549 host
550 (if (stringp service)
551 (socks-find-services-entry service)
552 service))
553 (puthash 'buffer buffer info)
554 (puthash 'host host info)
555 (puthash 'service host info)
556 (set-process-filter proc nil)
557 (set-process-buffer proc (if buffer (get-buffer-create buffer)))
558 proc)))
559
560;; Authentication modules go here
561
562;; Basic username/password authentication, ala RFC 1929
563(socks-register-authentication-method 2 "Username/Password"
564 'socks-username/password-auth)
565
566(defconst socks-username/password-auth-version 1)
567
568(defun socks-username/password-auth-filter (proc str)
569 (let ((info (gethash proc socks-connections))
570 state desired-len)
571 (or info (error "socks-filter called on non-SOCKS connection %S" proc))
572 (setq state (gethash 'state info))
573 (puthash 'scratch (concat (gethash 'scratch info) str) info)
574 (if (< (length (gethash 'scratch info)) 2)
575 nil
576 (puthash 'password-auth-status (aref (gethash 'scratch info) 1) info)
577 (puthash 'state socks-state-authenticated info))))
578
579(defun socks-username/password-auth (proc)
580 (let* ((info (gethash proc socks-connections))
581 (state (gethash 'state info)))
582 (if (not socks-password)
583 (setq socks-password (read-passwd
584 (format "Password for %s@%s: "
585 socks-username
586 (gethash 'server-name info)))))
587 (puthash 'scratch "" info)
588 (set-process-filter proc 'socks-username/password-auth-filter)
589 (process-send-string proc
590 (format "%c%c%s%c%s"
591 socks-username/password-auth-version
592 (length socks-username)
593 socks-username
594 (length socks-password)
595 socks-password))
596 (socks-wait-for-state-change proc info state)
597 (= (gethash 'password-auth-status info) 0)))
598
599
600;; More advanced GSS/API stuff, not yet implemented - volunteers?
601;; (socks-register-authentication-method 1 "GSS/API" 'socks-gssapi-auth)
602
603(defun socks-gssapi-auth (proc)
604 nil)
605
606
607;; CHAP stuff
608;; (socks-register-authentication-method 3 "CHAP" 'socks-chap-auth)
609(defun socks-chap-auth (proc)
610 nil)
611
612
613;; CRAM stuff
614;; (socks-register-authentication-method 5 "CRAM" 'socks-cram-auth)
615(defun socks-cram-auth (proc)
616 nil)
617
618
619(defcustom socks-nslookup-program "nslookup"
620 "*If non-NIL then a string naming the nslookup program."
621 :type '(choice (const :tag "None" :value nil) string)
622 :group 'socks)
623
624(defun socks-nslookup-host (host)
625 "Attempt to resolve the given HOSTNAME using nslookup if possible."
626 (interactive "sHost: ")
627 (if socks-nslookup-program
628 (let ((proc (start-process " *nslookup*" " *nslookup*"
629 socks-nslookup-program host))
630 (res host))
631 (set-process-query-on-exit-flag proc nil)
632 (save-excursion
633 (set-buffer (process-buffer proc))
634 (while (progn
635 (accept-process-output proc)
636 (memq (process-status proc) '(run open))))
637 (goto-char (point-min))
638 (if (re-search-forward "Name:.*\nAddress\\(es\\)?: *\\([0-9.]+\\)$" nil t)
639 (progn
640 (setq res (buffer-substring (match-beginning 2)
641 (match-end 2))
642 res (mapcar 'string-to-int (split-string res "\\.")))))
643 (kill-buffer (current-buffer)))
644 res)
645 host))
646
647(provide 'socks)
648
649;; arch-tag: 67aef0d9-f4f7-4056-89c3-b4c9bf93ce7f
650;;; socks.el ends here
diff --git a/lisp/pgg.el b/lisp/pgg.el
index f6a5a96d2b8..eabc4f47408 100644
--- a/lisp/pgg.el
+++ b/lisp/pgg.el
@@ -332,7 +332,7 @@ cache or user."
332 (interactive "r") 332 (interactive "r")
333 (let ((status 333 (let ((status
334 (pgg-save-coding-system start end 334 (pgg-save-coding-system start end
335 (pgg-invoke "encrypt-symmetric-region" 335 (pgg-invoke "encrypt-symmetric-region"
336 (or pgg-scheme pgg-default-scheme) 336 (or pgg-scheme pgg-default-scheme)
337 (point-min) (point-max) passphrase)))) 337 (point-min) (point-max) passphrase))))
338 (when (interactive-p) 338 (when (interactive-p)
@@ -416,7 +416,7 @@ If the optional 3rd argument CLEARTEXT is non-nil, it does not create
416a detached signature. 416a detached signature.
417 417
418If this function is called interactively, CLEARTEXT is enabled 418If this function is called interactively, CLEARTEXT is enabled
419and the the output is displayed. 419and the output is displayed.
420 420
421If optional PASSPHRASE is not specified, it will be obtained from the 421If optional PASSPHRASE is not specified, it will be obtained from the
422passphrase cache or user." 422passphrase cache or user."
@@ -441,7 +441,7 @@ If optional arguments START and END are specified, only sign data
441within the region. 441within the region.
442 442
443If this function is called interactively, CLEARTEXT is enabled 443If this function is called interactively, CLEARTEXT is enabled
444and the the output is displayed. 444and the output is displayed.
445 445
446If optional PASSPHRASE is not specified, it will be obtained from the 446If optional PASSPHRASE is not specified, it will be obtained from the
447passphrase cache or user." 447passphrase cache or user."
@@ -485,7 +485,7 @@ signer's public key from `pgg-default-keyserver-address'."
485 (or (cdr (assq 'preferred-key-server packet)) 485 (or (cdr (assq 'preferred-key-server packet))
486 pgg-default-keyserver-address)) 486 pgg-default-keyserver-address))
487 (pgg-fetch-key keyserver key)) 487 (pgg-fetch-key keyserver key))
488 (setq status 488 (setq status
489 (pgg-save-coding-system start end 489 (pgg-save-coding-system start end
490 (pgg-invoke "verify-region" (or pgg-scheme pgg-default-scheme) 490 (pgg-invoke "verify-region" (or pgg-scheme pgg-default-scheme)
491 (point-min) (point-max) signature))) 491 (point-min) (point-max) signature)))
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index 7701809463d..a9f5f77c126 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -38,11 +38,14 @@
38;; LINE will be nil for a message that doesn't contain them. Then the 38;; LINE will be nil for a message that doesn't contain them. Then the
39;; location refers to a indented beginning of line or beginning of file. 39;; location refers to a indented beginning of line or beginning of file.
40;; Once any location in some file has been jumped to, the list is extended to 40;; Once any location in some file has been jumped to, the list is extended to
41;; (COLUMN LINE FILE-STRUCTURE MARKER . VISITED) for all LOCs pertaining to 41;; (COLUMN LINE FILE-STRUCTURE MARKER TIMESTAMP . VISITED)
42;; that file. 42;; for all LOCs pertaining to that file.
43;; MARKER initially points to LINE and COLUMN in a buffer visiting that file. 43;; MARKER initially points to LINE and COLUMN in a buffer visiting that file.
44;; Being a marker it sticks to some text, when the buffer grows or shrinks 44;; Being a marker it sticks to some text, when the buffer grows or shrinks
45;; before that point. VISITED is t if we have jumped there, else nil. 45;; before that point. VISITED is t if we have jumped there, else nil.
46;; TIMESTAMP is necessary because of "incremental compilation": `omake -P'
47;; polls filesystem for changes and recompiles when a file is modified
48;; using the same *compilation* buffer. this necessitates re-parsing markers.
46 49
47;; FILE-STRUCTURE is a list of 50;; FILE-STRUCTURE is a list of
48;; ((FILENAME . DIRECTORY) FORMATS (LINE LOC ...) ...) 51;; ((FILENAME . DIRECTORY) FORMATS (LINE LOC ...) ...)
@@ -117,7 +120,7 @@ bound to the compilation buffer and window, respectively.")
117 "Function to compute the name of a compilation buffer. 120 "Function to compute the name of a compilation buffer.
118The function receives one argument, the name of the major mode of the 121The function receives one argument, the name of the major mode of the
119compilation buffer. It should return a string. 122compilation buffer. It should return a string.
120nil means compute the name with `(concat \"*\" (downcase major-mode) \"*\")'.") 123If nil, compute the name with `(concat \"*\" (downcase major-mode) \"*\")'.")
121 124
122;;;###autoload 125;;;###autoload
123(defvar compilation-finish-function nil 126(defvar compilation-finish-function nil
@@ -126,7 +129,7 @@ It is called with two arguments: the compilation buffer, and a string
126describing how the process finished.") 129describing how the process finished.")
127 130
128(make-obsolete-variable 'compilation-finish-function 131(make-obsolete-variable 'compilation-finish-function
129 "Use `compilation-finish-functions', but it works a little differently." 132 "use `compilation-finish-functions', but it works a little differently."
130 "22.1") 133 "22.1")
131 134
132;;;###autoload 135;;;###autoload
@@ -466,7 +469,7 @@ Otherwise, it saves all modified buffers without asking."
466(defcustom compilation-search-path '(nil) 469(defcustom compilation-search-path '(nil)
467 "*List of directories to search for source files named in error messages. 470 "*List of directories to search for source files named in error messages.
468Elements should be directory names, not file names of directories. 471Elements should be directory names, not file names of directories.
469nil as an element means to try the default directory." 472The value nil as an element means to try the default directory."
470 :type '(repeat (choice (const :tag "Default" nil) 473 :type '(repeat (choice (const :tag "Default" nil)
471 (string :tag "Directory"))) 474 (string :tag "Directory")))
472 :group 'compilation) 475 :group 'compilation)
@@ -1419,7 +1422,7 @@ Turning the mode on runs the normal hook `compilation-minor-mode-hook'."
1419 (font-lock-fontify-buffer))) 1422 (font-lock-fontify-buffer)))
1420 1423
1421(defun compilation-handle-exit (process-status exit-status msg) 1424(defun compilation-handle-exit (process-status exit-status msg)
1422 "Write MSG in the current buffer and hack its mode-line-process." 1425 "Write MSG in the current buffer and hack its `mode-line-process'."
1423 (let ((inhibit-read-only t) 1426 (let ((inhibit-read-only t)
1424 (status (if compilation-exit-message-function 1427 (status (if compilation-exit-message-function
1425 (funcall compilation-exit-message-function 1428 (funcall compilation-exit-message-function
@@ -1516,7 +1519,7 @@ Just inserts the text, but uses `insert-before-markers'."
1516 (eq (prog1 last (setq last (nth 2 (car msg)))) 1519 (eq (prog1 last (setq last (nth 2 (car msg))))
1517 last)) 1520 last))
1518 (if compilation-skip-visited 1521 (if compilation-skip-visited
1519 (nthcdr 4 (car msg))) 1522 (nthcdr 5 (car msg)))
1520 (if compilation-skip-to-next-location 1523 (if compilation-skip-to-next-location
1521 (eq (car msg) loc)) 1524 (eq (car msg) loc))
1522 ;; count this message only if none of the above are true 1525 ;; count this message only if none of the above are true
@@ -1619,7 +1622,7 @@ This is the value of `next-error-function' in Compilation buffers."
1619 (when reset 1622 (when reset
1620 (setq compilation-current-error nil)) 1623 (setq compilation-current-error nil))
1621 (let* ((columns compilation-error-screen-columns) ; buffer's local value 1624 (let* ((columns compilation-error-screen-columns) ; buffer's local value
1622 (last 1) 1625 (last 1) timestamp
1623 (loc (compilation-next-error (or n 1) nil 1626 (loc (compilation-next-error (or n 1) nil
1624 (or compilation-current-error 1627 (or compilation-current-error
1625 compilation-messages-start 1628 compilation-messages-start
@@ -1632,10 +1635,17 @@ This is the value of `next-error-function' in Compilation buffers."
1632 compilation-current-error 1635 compilation-current-error
1633 (copy-marker (line-beginning-position))) 1636 (copy-marker (line-beginning-position)))
1634 loc (car loc)) 1637 loc (car loc))
1635 ;; If loc contains no marker, no error in that file has been visited. If 1638 ;; If loc contains no marker, no error in that file has been visited.
1636 ;; the marker is invalid the buffer has been killed. So, recalculate all 1639 ;; If the marker is invalid the buffer has been killed.
1637 ;; markers for that file. 1640 ;; If the file is newer than the timestamp, it has been modified
1638 (unless (and (nth 3 loc) (marker-buffer (nth 3 loc))) 1641 ;; (`omake -P' polls filesystem for changes and recompiles when needed
1642 ;; in the same process and buffer).
1643 ;; So, recalculate all markers for that file.
1644 (unless (and (nth 3 loc) (marker-buffer (nth 3 loc))
1645 (equal (nth 4 loc)
1646 (setq timestamp
1647 (with-current-buffer (marker-buffer (nth 3 loc))
1648 (visited-file-modtime)))))
1639 (with-current-buffer (compilation-find-file marker (caar (nth 2 loc)) 1649 (with-current-buffer (compilation-find-file marker (caar (nth 2 loc))
1640 (cadr (car (nth 2 loc)))) 1650 (cadr (car (nth 2 loc))))
1641 (save-restriction 1651 (save-restriction
@@ -1658,7 +1668,8 @@ This is the value of `next-error-function' in Compilation buffers."
1658 (set-marker (nth 3 col) (point)) 1668 (set-marker (nth 3 col) (point))
1659 (setcdr (nthcdr 2 col) `(,(point-marker))))))))) 1669 (setcdr (nthcdr 2 col) `(,(point-marker)))))))))
1660 (compilation-goto-locus marker (nth 3 loc) (nth 3 end-loc)) 1670 (compilation-goto-locus marker (nth 3 loc) (nth 3 end-loc))
1661 (setcdr (nthcdr 3 loc) t))) ; Set this one as visited. 1671 (setcdr (nthcdr 3 loc) (list timestamp))
1672 (setcdr (nthcdr 4 loc) t))) ; Set this one as visited.
1662 1673
1663(defvar compilation-gcpro nil 1674(defvar compilation-gcpro nil
1664 "Internal variable used to keep some values from being GC'd.") 1675 "Internal variable used to keep some values from being GC'd.")
@@ -1825,8 +1836,8 @@ and overlay is highlighted between MK and END-MK."
1825Search the directories in `compilation-search-path'. 1836Search the directories in `compilation-search-path'.
1826A nil in `compilation-search-path' means to try the 1837A nil in `compilation-search-path' means to try the
1827\"current\" directory, which is passed in DIRECTORY. 1838\"current\" directory, which is passed in DIRECTORY.
1828If DIRECTORY. is relative, it is combined with `default-directory'. 1839If DIRECTORY is relative, it is combined with `default-directory'.
1829If DIRECTORY. is nil, that means use `default-directory'. 1840If DIRECTORY is nil, that means use `default-directory'.
1830If FILENAME is not found at all, ask the user where to find it. 1841If FILENAME is not found at all, ask the user where to find it.
1831Pop up the buffer containing MARKER and scroll to MARKER if we ask the user." 1842Pop up the buffer containing MARKER and scroll to MARKER if we ask the user."
1832 (or formats (setq formats '("%s"))) 1843 (or formats (setq formats '("%s")))
@@ -1867,7 +1878,7 @@ Pop up the buffer containing MARKER and scroll to MARKER if we ask the user."
1867 ;; restrictive otherwise, since it also prevents the 1878 ;; restrictive otherwise, since it also prevents the
1868 ;; user from completing "fo" to "foo/" when she 1879 ;; user from completing "fo" to "foo/" when she
1869 ;; wants to enter "foo/bar". 1880 ;; wants to enter "foo/bar".
1870 ;; 1881 ;;
1871 ;; Try to make sure the user can only select 1882 ;; Try to make sure the user can only select
1872 ;; a valid answer. This predicate may be ignored, 1883 ;; a valid answer. This predicate may be ignored,
1873 ;; tho, so we still have to double-check afterwards. 1884 ;; tho, so we still have to double-check afterwards.
diff --git a/lisp/progmodes/ebrowse.el b/lisp/progmodes/ebrowse.el
index d8385141177..5ccd6238208 100644
--- a/lisp/progmodes/ebrowse.el
+++ b/lisp/progmodes/ebrowse.el
@@ -1003,7 +1003,7 @@ type `ebrowse-hs' is set to the resulting obarray."
1003 1003
1004 1004
1005(defun ebrowse-member-table (header) 1005(defun ebrowse-member-table (header)
1006 "Return the member obarray. Build it it hasn't been set up yet. 1006 "Return the member obarray. Build it if it hasn't been set up yet.
1007HEADER is the tree header structure of the class tree." 1007HEADER is the tree header structure of the class tree."
1008 (when (null (ebrowse-hs-member-table header)) 1008 (when (null (ebrowse-hs-member-table header))
1009 (loop for buffer in (ebrowse-browser-buffer-list) 1009 (loop for buffer in (ebrowse-browser-buffer-list)
@@ -3598,7 +3598,7 @@ The file name is read from the minibuffer."
3598 3598
3599 3599
3600(defun* ebrowse-draw-file-member-info (info &optional (kind "")) 3600(defun* ebrowse-draw-file-member-info (info &optional (kind ""))
3601 "Display a line in an the members per file info buffer. 3601 "Display a line in the members info buffer.
3602INFO describes the member. It has the form (TREE ACCESSOR MEMBER). 3602INFO describes the member. It has the form (TREE ACCESSOR MEMBER).
3603TREE is the class of the member to display. 3603TREE is the class of the member to display.
3604ACCESSOR is the accessor symbol of its member list. 3604ACCESSOR is the accessor symbol of its member list.
diff --git a/lisp/progmodes/idlwave.el b/lisp/progmodes/idlwave.el
index cf518b17d94..4c58919ec1f 100644
--- a/lisp/progmodes/idlwave.el
+++ b/lisp/progmodes/idlwave.el
@@ -7095,7 +7095,7 @@ sort the list before displaying"
7095 "Make the user select an element from the alist in the variable SYM. 7095 "Make the user select an element from the alist in the variable SYM.
7096The keys of the alist are expected to be strings. The function returns the 7096The keys of the alist are expected to be strings. The function returns the
7097car of the selected association. 7097car of the selected association.
7098To do this, PROMPT is displayed and and the user must hit a letter key to 7098To do this, PROMPT is displayed and the user must hit a letter key to
7099select an entry. If the user does not reply within DELAY seconds, a help 7099select an entry. If the user does not reply within DELAY seconds, a help
7100window with the options is displayed automatically. 7100window with the options is displayed automatically.
7101The key which is associated with each option is generated automatically. 7101The key which is associated with each option is generated automatically.
diff --git a/lisp/progmodes/mixal-mode.el b/lisp/progmodes/mixal-mode.el
index d2b78b1d143..146b228453e 100644
--- a/lisp/progmodes/mixal-mode.el
+++ b/lisp/progmodes/mixal-mode.el
@@ -1017,7 +1017,7 @@ The converted character representation is stored in rAX."
1017 "Alist that contains all the possible operation codes for mix. 1017 "Alist that contains all the possible operation codes for mix.
1018Each elt has the form 1018Each elt has the form
1019 (OP-CODE GROUP FULL-NAME C-BYTE F-BYTE DESCRIPTION EXECUTION-TIME) 1019 (OP-CODE GROUP FULL-NAME C-BYTE F-BYTE DESCRIPTION EXECUTION-TIME)
1020Where OP-CODE is the text of the opcode as an symbol, 1020Where OP-CODE is the text of the opcode as a symbol,
1021FULL-NAME is the human readable name as a string, 1021FULL-NAME is the human readable name as a string,
1022C-BYTE is the operation code telling what operation is to be performed, 1022C-BYTE is the operation code telling what operation is to be performed,
1023F-BYTE holds a modification of the operation code which can be a symbol 1023F-BYTE holds a modification of the operation code which can be a symbol
diff --git a/lisp/ses.el b/lisp/ses.el
index 2eec1b68e47..4f51c803de1 100644
--- a/lisp/ses.el
+++ b/lisp/ses.el
@@ -878,9 +878,9 @@ preceding cell has spilled over."
878 878
879(defun ses-call-printer (printer &optional value) 879(defun ses-call-printer (printer &optional value)
880 "Invokes PRINTER (a string or parenthesized string or function-symbol or 880 "Invokes PRINTER (a string or parenthesized string or function-symbol or
881lambda of one argument) on VALUE. Result is the the printed cell as a 881lambda of one argument) on VALUE. Result is the printed cell as a string.
882string. The variable `ses-call-printer-return' is set to t if the printer 882The variable `ses-call-printer-return' is set to t if the printer used
883used parenthesis to request left-justification, or the error-signal if the 883parenthesis to request left-justification, or the error-signal if the
884printer signaled one (and \"%s\" is used as the default printer), else nil." 884printer signaled one (and \"%s\" is used as the default printer), else nil."
885 (setq ses-call-printer-return nil) 885 (setq ses-call-printer-return nil)
886 (unless value 886 (unless value
diff --git a/lisp/startup.el b/lisp/startup.el
index bac964326a3..c128b24551c 100644
--- a/lisp/startup.el
+++ b/lisp/startup.el
@@ -1315,7 +1315,7 @@ using the mouse.\n\n")
1315 (emacs-version) 1315 (emacs-version)
1316 "\n" 1316 "\n"
1317 :face '(variable-pitch :height 0.5) 1317 :face '(variable-pitch :height 0.5)
1318 "Copyright (C) 2007 Free Software Foundation, Inc.") 1318 emacs-copyright)
1319 (and auto-save-list-file-prefix 1319 (and auto-save-list-file-prefix
1320 ;; Don't signal an error if the 1320 ;; Don't signal an error if the
1321 ;; directory for auto-save-list files 1321 ;; directory for auto-save-list files
diff --git a/lisp/tar-mode.el b/lisp/tar-mode.el
index 49b2e3c2bbd..5f30a1e8117 100644
--- a/lisp/tar-mode.el
+++ b/lisp/tar-mode.el
@@ -663,15 +663,15 @@ appear on disk when you save the tar-file's buffer."
663 (size (tar-header-size tokens)) 663 (size (tar-header-size tokens))
664 (link-p (tar-header-link-type tokens))) 664 (link-p (tar-header-link-type tokens)))
665 (if link-p 665 (if link-p
666 (error "This is a%s, not a real file" 666 (error "This is %s, not a real file"
667 (cond ((eq link-p 5) " directory") 667 (cond ((eq link-p 5) "a directory")
668 ((eq link-p 20) " tar directory header") 668 ((eq link-p 20) "a tar directory header")
669 ((eq link-p 28) " next has longname") 669 ((eq link-p 28) "a next has longname")
670 ((eq link-p 29) " multivolume-continuation") 670 ((eq link-p 29) "a multivolume-continuation")
671 ((eq link-p 35) " sparse entry") 671 ((eq link-p 35) "a sparse entry")
672 ((eq link-p 38) " volume header") 672 ((eq link-p 38) "a volume header")
673 ((eq link-p 55) "n extended pax header") 673 ((eq link-p 55) "an extended pax header")
674 (t "link")))) 674 (t "a link"))))
675 (if (zerop size) (error "This is a zero-length file")) 675 (if (zerop size) (error "This is a zero-length file"))
676 descriptor)) 676 descriptor))
677 677
diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el
new file mode 100644
index 00000000000..00a438a3e95
--- /dev/null
+++ b/lisp/textmodes/css-mode.el
@@ -0,0 +1,469 @@
1;;; css-mode.el --- Major mode to edit CSS files
2
3;; Copyright (C) 2006, 2007 Free Software Foundation, Inc.
4
5;; Author: Stefan Monnier <monnier@iro.umontreal.ca>
6;; Keywords: hypermedia
7
8;; This file is free software; you can redistribute it and/or modify
9;; it under the terms of the GNU General Public License as published by
10;; the Free Software Foundation; either version 2, or (at your option)
11;; any later version.
12
13;; This file is distributed in the hope that it will be useful,
14;; but WITHOUT ANY WARRANTY; without even the implied warranty of
15;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16;; GNU General Public License for more details.
17
18;; You should have received a copy of the GNU General Public License
19;; along with GNU Emacs; see the file COPYING. If not, write to
20;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21;; Boston, MA 02110-1301, USA.
22
23;;; Commentary:
24
25;; Yet another CSS mode.
26
27;;; Todo:
28
29;; - electric ; and }
30;; - filling code with auto-fill-mode
31;; - completion
32;; - fix font-lock errors with multi-line selectors
33
34;;; Code:
35
36(defun css-extract-keyword-list (res)
37 (with-temp-buffer
38 (url-insert-file-contents "http://www.w3.org/TR/REC-CSS2/css2.txt")
39 (goto-char (point-max))
40 (search-backward "Appendix H. Index")
41 (forward-line)
42 (delete-region (point-min) (point))
43 (let ((result nil)
44 keys)
45 (dolist (re res)
46 (goto-char (point-min))
47 (setq keys nil)
48 (while (re-search-forward (cdr re) nil t)
49 (push (match-string 1) keys))
50 (push (cons (car re) (sort keys 'string-lessp)) result))
51 (nreverse result))))
52
53(defun css-extract-parse-val-grammar (string env)
54 (let ((start 0)
55 (elems ())
56 name)
57 (while (string-match
58 (concat "\\(?:"
59 (concat "<a [^>]+><span [^>]+>\\(?:"
60 "&lt;\\([^&]+\\)&gt;\\|'\\([^']+\\)'"
61 "\\)</span></a>")
62 "\\|" "\\(\\[\\)"
63 "\\|" "\\(]\\)"
64 "\\|" "\\(||\\)"
65 "\\|" "\\(|\\)"
66 "\\|" "\\([*+?]\\)"
67 "\\|" "\\({[^}]+}\\)"
68 "\\|" "\\(\\w+\\(?:-\\w+\\)*\\)"
69 "\\)[ \t\n]*")
70 string start)
71 ;; (assert (eq start (match-beginning 0)))
72 (setq start (match-end 0))
73 (cond
74 ;; Reference to a type of value.
75 ((setq name (match-string-no-properties 1 string))
76 (push (intern name) elems))
77 ;; Reference to another property's values.
78 ((setq name (match-string-no-properties 2 string))
79 (setq elems (delete-dups (append (cdr (assoc name env)) elems))))
80 ;; A literal
81 ((setq name (match-string-no-properties 9 string))
82 (push name elems))
83 ;; We just ignore the rest. I.e. we ignore the structure because
84 ;; it's too difficult to exploit anyway (it would allow us to only
85 ;; complete top/center/bottom after one of left/center/right and
86 ;; vice-versa).
87 (t nil)))
88 elems))
89
90
91(defun css-extract-props-and-vals ()
92 (with-temp-buffer
93 (url-insert-file-contents "http://www.w3.org/TR/CSS21/propidx.html")
94 (goto-char (point-min))
95 (let ((props ()))
96 (while (re-search-forward "#propdef-\\([^\"]+\\)\"><span class=\"propinst-\\1 xref\">'\\1'</span></a>" nil t)
97 (let ((prop (match-string-no-properties 1)))
98 (save-excursion
99 (goto-char (match-end 0))
100 (search-forward "<td>")
101 (let ((vals-string (buffer-substring (point)
102 (progn
103 (re-search-forward "[ \t\n]+|[ \t\n]+<a href=\"cascade.html#value-def-inherit\" class=\"noxref\"><span class=\"value-inst-inherit\">inherit</span></a>")
104 (match-beginning 0)))))
105 ;;
106 (push (cons prop (css-extract-parse-val-grammar vals-string props))
107 props)))))
108 props)))
109
110;; Extraction was done with:
111;; (css-extract-keyword-list
112;; '((pseudo . "^ +\\* :\\([^ \n,]+\\)")
113;; (at . "^ +\\* @\\([^ \n,]+\\)")
114;; (descriptor . "^ +\\* '\\([^ '\n]+\\)' (descriptor)")
115;; (media . "^ +\\* '\\([^ '\n]+\\)' media group")
116;; (property . "^ +\\* '\\([^ '\n]+\\)',")))
117
118(defconst css-pseudo-ids
119 '("active" "after" "before" "first" "first-child" "first-letter" "first-line"
120 "focus" "hover" "lang" "left" "link" "right" "visited")
121 "Identifiers for pseudo-elements and pseudo-classes.")
122
123(defconst css-at-ids
124 '("charset" "font-face" "import" "media" "page")
125 "Identifiers that appear in the form @foo.")
126
127(defconst css-descriptor-ids
128 '("ascent" "baseline" "bbox" "cap-height" "centerline" "definition-src"
129 "descent" "font-family" "font-size" "font-stretch" "font-style"
130 "font-variant" "font-weight" "mathline" "panose-1" "slope" "src" "stemh"
131 "stemv" "topline" "unicode-range" "units-per-em" "widths" "x-height")
132 "Identifiers for font descriptors.")
133
134(defconst css-media-ids
135 '("all" "aural" "bitmap" "continuous" "grid" "paged" "static" "tactile"
136 "visual")
137 "Identifiers for types of media.")
138
139(defconst css-property-ids
140 '("azimuth" "background" "background-attachment" "background-color"
141 "background-image" "background-position" "background-repeat" "block"
142 "border" "border-bottom" "border-bottom-color" "border-bottom-style"
143 "border-bottom-width" "border-collapse" "border-color" "border-left"
144 "border-left-color" "border-left-style" "border-left-width" "border-right"
145 "border-right-color" "border-right-style" "border-right-width"
146 "border-spacing" "border-style" "border-top" "border-top-color"
147 "border-top-style" "border-top-width" "border-width" "bottom"
148 "caption-side" "clear" "clip" "color" "compact" "content"
149 "counter-increment" "counter-reset" "cue" "cue-after" "cue-before"
150 "cursor" "dashed" "direction" "display" "dotted" "double" "elevation"
151 "empty-cells" "float" "font" "font-family" "font-size" "font-size-adjust"
152 "font-stretch" "font-style" "font-variant" "font-weight" "groove" "height"
153 "hidden" "inline" "inline-table" "inset" "left" "letter-spacing"
154 "line-height" "list-item" "list-style" "list-style-image"
155 "list-style-position" "list-style-type" "margin" "margin-bottom"
156 "margin-left" "margin-right" "margin-top" "marker-offset" "marks"
157 "max-height" "max-width" "min-height" "min-width" "orphans" "outline"
158 "outline-color" "outline-style" "outline-width" "outset" "overflow"
159 "padding" "padding-bottom" "padding-left" "padding-right" "padding-top"
160 "page" "page-break-after" "page-break-before" "page-break-inside" "pause"
161 "pause-after" "pause-before" "pitch" "pitch-range" "play-during" "position"
162 "quotes" "richness" "ridge" "right" "run-in" "size" "solid" "speak"
163 "speak-header" "speak-numeral" "speak-punctuation" "speech-rate" "stress"
164 "table" "table-caption" "table-cell" "table-column" "table-column-group"
165 "table-footer-group" "table-header-group" "table-layout" "table-row"
166 "table-row-group" "text-align" "text-decoration" "text-indent"
167 "text-shadow" "text-transform" "top" "unicode-bidi" "vertical-align"
168 "visibility" "voice-family" "volume" "white-space" "widows" "width"
169 "word-spacing" "z-index")
170 "Identifiers for properties.")
171
172(defcustom css-electrick-keys '(?\} ?\;) ;; '()
173 "Self inserting keys which should trigger re-indentation."
174 :type '(repeat character)
175 :options '((?\} ?\;)))
176
177(defvar css-mode-syntax-table
178 (let ((st (make-syntax-table)))
179 ;; C-style comments.
180 (modify-syntax-entry ?/ ". 14" st)
181 (modify-syntax-entry ?* ". 23" st)
182 ;; Strings.
183 (modify-syntax-entry ?\" "\"" st)
184 (modify-syntax-entry ?\' "\"" st)
185 ;; Blocks.
186 (modify-syntax-entry ?\{ "(}" st)
187 (modify-syntax-entry ?\} "){" st)
188 ;; Args in url(...) thingies and other "function calls".
189 (modify-syntax-entry ?\( "()" st)
190 (modify-syntax-entry ?\) ")(" st)
191 ;; To match attributes in selectors.
192 (modify-syntax-entry ?\[ "(]" st)
193 (modify-syntax-entry ?\] ")[" st)
194 ;; Special chars that sometimes come at the beginning of words.
195 (modify-syntax-entry ?@ "'" st)
196 ;; (modify-syntax-entry ?: "'" st)
197 (modify-syntax-entry ?# "'" st)
198 ;; Distinction between words and symbols.
199 (modify-syntax-entry ?- "_" st)
200 st))
201
202(defconst css-escapes-re
203 "\\\\\\(?:[^\000-\037\177]\\|[0-9a-fA-F]+[ \n\t\r\f]?\\)")
204(defconst css-nmchar-re (concat "\\(?:[-[:alnum:]]\\|" css-escapes-re "\\)"))
205(defconst css-nmstart-re (concat "\\(?:[[:alpha:]]\\|" css-escapes-re "\\)"))
206(defconst css-ident-re (concat css-nmstart-re css-nmchar-re "*"))
207(defconst css-name-re (concat css-nmchar-re "+"))
208
209(defface css-selector '((t :inherit font-lock-function-name-face))
210 "Face to use for selectors.")
211(defface css-property '((t :inherit font-lock-variable-name-face))
212 "Face to use for properties.")
213
214(defvar css-font-lock-keywords
215 `(("!\\s-*important" . font-lock-builtin-face)
216 ;; Atrules keywords. IDs not in css-at-ids are valid (ignored).
217 ;; In fact the regexp should probably be
218 ;; (,(concat "\\(@" css-ident-re "\\)\\([ \t\n][^;{]*\\)[;{]")
219 ;; (1 font-lock-builtin-face))
220 ;; Since "An at-rule consists of everything up to and including the next
221 ;; semicolon (;) or the next block, whichever comes first."
222 (,(concat "@" css-ident-re) . font-lock-builtin-face)
223 ;; Selectors.
224 ;; FIXME: attribute selectors don't work well because they may contain
225 ;; strings which have already been highlighted as f-l-string-face and
226 ;; thus prevent this highlighting from being applied (actually now that
227 ;; I use `append' this should work better). But really the part of hte
228 ;; selector between [...] should simply not be highlighted.
229 (,(concat "^\\([ \t]*[^@:{\n][^:{\n]+\\(?::" (regexp-opt css-pseudo-ids t)
230 "\\(?:([^)]+)\\)?[^:{\n]*\\)*\\)\\(?:\n[ \t]*\\)*{")
231 (1 'css-selector append))
232 ;; In the above rule, we allow the open-brace to be on some subsequent
233 ;; line. This will only work if we properly mark the intervening text
234 ;; as being part of a multiline element (and even then, this only
235 ;; ensures proper refontification, but not proper discovery).
236 ("^[ \t]*{" (0 (save-excursion
237 (goto-char (match-beginning 0))
238 (skip-chars-backward " \n\t")
239 (put-text-property (point) (match-end 0)
240 'font-lock-multiline t)
241 ;; No face.
242 nil)))
243 ;; Properties. Again, we don't limit ourselves to css-property-ids.
244 (,(concat "\\(?:[{;]\\|^\\)[ \t]*\\(" css-ident-re "\\)\\s-*:")
245 (1 'css-property))))
246
247(defvar css-font-lock-defaults
248 '(css-font-lock-keywords nil t))
249
250(unless (fboundp 'prog-mode) (defalias 'prog-mode 'fundamental-mode))
251
252;;;###autoload (add-to-list 'auto-mode-alist '("\\.css\\'" . css-mode))
253;;;###autoload
254(define-derived-mode css-mode prog-mode "CSS"
255 "Major mode to edit Cascading Style Sheets."
256 (set (make-local-variable 'font-lock-defaults) css-font-lock-defaults)
257 (set (make-local-variable 'comment-start) "/*")
258 (set (make-local-variable 'comment-start-skip) "/\\*+[ \t]*")
259 (set (make-local-variable 'comment-end) "*/")
260 (set (make-local-variable 'comment-end-skip) "[ \t]*\\*+/")
261 (set (make-local-variable 'forward-sexp-function) 'css-forward-sexp)
262 (set (make-local-variable 'parse-sexp-ignore-comments) t)
263 (set (make-local-variable 'indent-line-function) 'css-indent-line)
264 (set (make-local-variable 'fill-paragraph-function)
265 'css-fill-paragraph)
266 (when css-electrick-keys
267 (let ((fc (make-char-table 'auto-fill-chars)))
268 (set-char-table-parent fc auto-fill-chars)
269 (dolist (c css-electrick-keys)
270 (aset fc c 'indent-according-to-mode))
271 (set (make-local-variable 'auto-fill-chars) fc))))
272
273(defun css-fill-paragraph (&optional justify)
274 (save-excursion
275 (let ((ppss (syntax-ppss))
276 (eol (line-end-position)))
277 (cond
278 ((and (nth 4 ppss)
279 (save-excursion
280 (goto-char (nth 8 ppss))
281 (forward-comment 1)
282 (prog1 (not (bolp))
283 (setq eol (point)))))
284 ;; Filling inside a comment whose comment-end marker is not \n.
285 ;; This code is meant to be generic, so that it works not only for
286 ;; css-mode but for all modes.
287 (save-restriction
288 (narrow-to-region (nth 8 ppss) eol)
289 (comment-normalize-vars)
290 (let ((fill-paragraph-function nil)
291 (paragraph-separate
292 (if (and comment-continue
293 (string-match "[^ \t]" comment-continue))
294 (concat "\\(?:[ \t]*" (regexp-quote comment-continue)
295 "\\)?\\(?:" paragraph-separate "\\)")
296 paragraph-separate))
297 (paragraph-start
298 (if (and comment-continue
299 (string-match "[^ \t]" comment-continue))
300 (concat "\\(?:[ \t]*" (regexp-quote comment-continue)
301 "\\)?\\(?:" paragraph-start "\\)")
302 paragraph-start)))
303 (fill-paragraph justify)
304 ;; Don't try filling again.
305 t)))
306
307 ((and (null (nth 8 ppss))
308 (or (nth 1 ppss)
309 (and (ignore-errors
310 (down-list 1)
311 (when (<= (point) eol)
312 (setq ppss (syntax-ppss)))))))
313 (goto-char (nth 1 ppss))
314 (let ((end (save-excursion
315 (ignore-errors (forward-sexp 1) (copy-marker (point) t)))))
316 (when end
317 (while (re-search-forward "[{;}]" end t)
318 (cond
319 ;; This is a false positive inside a string or comment.
320 ((nth 8 (syntax-ppss)) nil)
321 ((eq (char-before) ?\})
322 (save-excursion
323 (forward-char -1)
324 (skip-chars-backward " \t")
325 (unless (bolp) (newline))))
326 (t
327 (while
328 (progn
329 (setq eol (line-end-position))
330 (and (forward-comment 1)
331 (> (point) eol)
332 ;; A multi-line comment should be on its own line.
333 (save-excursion (forward-comment -1)
334 (when (< (point) eol)
335 (newline)
336 t)))))
337 (if (< (point) eol) (newline)))))
338 (goto-char (nth 1 ppss))
339 (indent-region (line-beginning-position 2) end)
340 ;; Don't use the default filling code.
341 t)))))))
342
343;;; Navigation and indentation.
344
345(defconst css-navigation-syntax-table
346 (let ((st (make-syntax-table css-mode-syntax-table)))
347 (map-char-table (lambda (c v)
348 ;; Turn punctuation (code = 1) into symbol (code = 1).
349 (if (eq (car-safe v) 1)
350 (set-char-table-range st c (cons 3 (cdr v)))))
351 st)
352 st))
353
354(defun css-backward-sexp (n)
355 (let ((forward-sexp-function nil))
356 (if (< n 0) (css-forward-sexp (- n))
357 (while (> n 0)
358 (setq n (1- n))
359 (forward-comment (- (point-max)))
360 (if (not (eq (char-before) ?\;))
361 (backward-sexp 1)
362 (while (progn (backward-sexp 1)
363 (save-excursion
364 (forward-comment (- (point-max)))
365 ;; FIXME: We should also skip punctuation.
366 (not (memq (char-before) '(?\; ?\{)))))))))))
367
368(defun css-forward-sexp (n)
369 (let ((forward-sexp-function nil))
370 (if (< n 0) (css-backward-sexp (- n))
371 (while (> n 0)
372 (setq n (1- n))
373 (forward-comment (point-max))
374 (if (not (eq (char-after) ?\;))
375 (forward-sexp 1)
376 (while (progn (forward-sexp 1)
377 (save-excursion
378 (forward-comment (point-max))
379 ;; FIXME: We should also skip punctuation.
380 (not (memq (char-after) '(?\; ?\})))))))))))
381
382(defun css-indent-calculate-virtual ()
383 (if (or (save-excursion (skip-chars-backward " \t") (bolp))
384 (if (looking-at "\\s(")
385 (save-excursion
386 (forward-char 1) (skip-chars-forward " \t")
387 (not (or (eolp) (looking-at comment-start-skip))))))
388 (current-column)
389 (css-indent-calculate)))
390
391(defcustom css-indent-offset 4
392 "Basic size of one indentation step."
393 :type 'integer)
394
395(defun css-indent-calculate ()
396 (let ((ppss (syntax-ppss))
397 pos)
398 (with-syntax-table css-navigation-syntax-table
399 (save-excursion
400 (cond
401 ;; Inside a string.
402 ((nth 3 ppss) 'noindent)
403 ;; Inside a comment.
404 ((nth 4 ppss)
405 (setq pos (point))
406 (forward-line -1)
407 (skip-chars-forward " \t")
408 (if (>= (nth 8 ppss) (point))
409 (progn
410 (goto-char (nth 8 ppss))
411 (if (eq (char-after pos) ?*)
412 (forward-char 1)
413 (if (not (looking-at comment-start-skip))
414 (error "Internal css-mode error")
415 (goto-char (match-end 0))))
416 (current-column))
417 (if (and (eq (char-after pos) ?*) (eq (char-after) ?*))
418 (current-column)
419 ;; 'noindent
420 (current-column)
421 )))
422 ;; In normal code.
423 (t
424 (or
425 (when (looking-at "\\s)")
426 (forward-char 1)
427 (backward-sexp 1)
428 (css-indent-calculate-virtual))
429 (when (looking-at comment-start-skip)
430 (forward-comment (point-max))
431 (css-indent-calculate))
432 (when (save-excursion (forward-comment (- (point-max)))
433 (setq pos (point))
434 (eq (char-syntax (preceding-char)) ?\())
435 (goto-char (1- pos))
436 (if (not (looking-at "\\s([ \t]*"))
437 (error "Internal css-mode error")
438 (if (or (memq (char-after (match-end 0)) '(?\n nil))
439 (save-excursion (goto-char (match-end 0))
440 (looking-at comment-start-skip)))
441 (+ (css-indent-calculate-virtual) css-indent-offset)
442 (progn (goto-char (match-end 0)) (current-column)))))
443 (progn
444 (css-backward-sexp 1)
445 (if (looking-at "\\s(")
446 (css-indent-calculate)
447 (css-indent-calculate-virtual))))))))))
448
449
450(defun css-indent-line ()
451 "Indent current line according to CSS indentation rules."
452 (interactive)
453 (let* ((savep (point))
454 (forward-sexp-function nil)
455 (indent (condition-case nil
456 (save-excursion
457 (forward-line 0)
458 (skip-chars-forward " \t")
459 (if (>= (point) savep) (setq savep nil))
460 (css-indent-calculate))
461 (error nil))))
462 (if (not (numberp indent)) 'noindent
463 (if savep
464 (save-excursion (indent-line-to indent))
465 (indent-line-to indent)))))
466
467(provide 'css-mode)
468;; arch-tag: b4d8b8e2-b130-4e74-b3aa-cd8f1ab659d0
469;;; css-mode.el ends here
diff --git a/lisp/textmodes/org-publish.el b/lisp/textmodes/org-publish.el
new file mode 100644
index 00000000000..74cd7096935
--- /dev/null
+++ b/lisp/textmodes/org-publish.el
@@ -0,0 +1,603 @@
1;;; org-publish.el --- publish related org-mode files as a website
2
3;; Copyright (C) 2006, 2007 Free Software Foundation, Inc.
4
5;; Author: David O'Toole <dto@gnu.org>
6;; Keywords: hypermedia, outlines
7;; Version: 1.80
8
9;; $Id: org-publish.el,v 1.2 2007/06/07 02:04:17 miles Exp $
10
11;; This file is free software; you can redistribute it and/or modify
12;; it under the terms of the GNU General Public License as published by
13;; the Free Software Foundation; either version 2, or (at your option)
14;; any later version.
15
16;; This file is distributed in the hope that it will be useful,
17;; but WITHOUT ANY WARRANTY; without even the implied warranty of
18;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19;; GNU General Public License for more details.
20
21;; You should have received a copy of the GNU General Public License
22;; along with GNU Emacs; see the file COPYING. If not, write to
23;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
24;; Boston, MA 02110-1301, USA.
25
26;; This file is part of GNU Emacs.
27
28;;; Commentary:
29
30;; Requires at least version 4.27 of org.el
31;;
32;; The official org-mode website:
33;; http://staff.science.uva.nl/~dominik/Tools/org/
34;;
35;; Home page for org-publish.el:
36;; http://dto.freeshell.org/notebook/OrgMode.html
37
38;; This program extends the HTML publishing support of Emacs Org-mode
39;; to allow configurable publishing of related sets of files as a
40;; complete website.
41;;
42;; org-publish.el can do the following:
43;;
44;; + Publish all one's org-files to html
45;; + Upload html, images, attachments and other files to a web server
46;; + Exclude selected private pages from publishing
47;; + Publish a clickable index of pages
48;; + Manage local timestamps, for publishing only changed files
49;; + Accept plugin functions to extend range of publishable content
50;;
51;; Special thanks to the org-mode maintainer Carsten Dominik for his
52;; ideas, enthusiasm, and cooperation.
53
54;;; Installation:
55
56;; Put org-publish.el in your load path, byte-compile it, and then add
57;; the following lines to your emacs initialization file:
58
59;; (autoload 'org-publish "org-publish" nil t)
60;; (autoload 'org-publish "org-publish-all" nil t)
61;; (autoload 'org-publish "org-publish-current-file" nil t)
62;; (autoload 'org-publish "org-publish-current-project" nil t)
63
64;; NOTE: When org-publish.el is included with org.el, those forms are
65;; already in the file org-install.el, and hence don't need to be put
66;; in your emacs initialization file in this case.
67
68;;; Usage:
69;;
70;; The program's main configuration variable is
71;; `org-publish-project-alist'. See below for example configurations
72;; with commentary.
73
74;; The main interactive functions are:
75;;
76;; M-x org-publish
77;; M-x org-publish-all
78;; M-x org-publish-current-file
79;; M-x org-publish-current-project
80
81;;;; Simple example configuration:
82
83;; (setq org-publish-project-alist
84;; (list
85;; '("org" . (:base-directory "~/org/"
86;; :base-extension "org"
87;; :publishing-directory "~/public_html"
88;; :with-section-numbers nil
89;; :table-of-contents nil
90;; :style "<link rel=stylesheet href=\"../other/mystyle.css\" type=\"text/css\">")))
91
92;;;; More complex example configuration:
93
94;; Imagine your *.org files are kept in ~/org, your images in
95;; ~/images, and stylesheets in ~/other. Now imagine you want to
96;; publish the files through an ssh connection to a remote host, via
97;; Tramp-mode. To maintain relative links from *.org files to /images
98;; and /other, we should replicate the same directory structure in
99;; your web server account's designated html root (in this case,
100;; assumed to be ~/html)
101
102;; Once you've done created the proper directories, you can adapt the
103;; following example configuration to your specific paths, run M-x
104;; org-publish-all, and it should publish the files to the correct
105;; directories on the web server, transforming the *.org files into
106;; HTML, and leaving other files alone.
107
108;; (setq org-publish-project-alist
109;; (list
110;; '("orgfiles" :base-directory "~/org/"
111;; :base-extension "org"
112;; :publishing-directory "/ssh:user@host:~/html/notebook/"
113;; :publishing-function org-publish-org-to-html
114;; :exclude "PrivatePage.org" ;; regexp
115;; :headline-levels 3
116;; :with-section-numbers nil
117;; :table-of-contents nil
118;; :style "<link rel=stylesheet href=\"../other/mystyle.css\" type=\"text/css\">"
119;; :auto-preamble t
120;; :auto-postamble nil)
121;;
122;; ("images" :base-directory "~/images/"
123;; :base-extension "jpg\\|gif\\|png"
124;; :publishing-directory "/ssh:user@host:~/html/images/"
125;; :publishing-function org-publish-attachment)
126;;
127;; ("other" :base-directory "~/other/"
128;; :base-extension "css"
129;; :publishing-directory "/ssh:user@host:~/html/other/"
130;; :publishing-function org-publish-attachment)
131;; ("website" :components ("orgfiles" "images" "other"))))
132
133;; For more information, see the documentation for the variable
134;; `org-publish-project-alist'.
135
136;; Of course, you don't have to publish to remote directories from
137;; within emacs. You can always just publish to local folders, and
138;; then use the synchronization/upload tool of your choice.
139
140
141;;; List of user-visible changes since version 1.27
142
143;; 1.78: Allow list-valued :publishing-function
144;; 1.77: Added :preparation-function, this allows you to use GNU Make etc.
145;; 1.65: Remove old "composite projects". They're redundant.
146;; 1.64: Allow meta-projects with :components
147;; 1.57: Timestamps flag is now called "org-publish-use-timestamps-flag"
148;; 1.52: Properly set default for :index-filename
149;; 1.48: Composite projects allowed.
150;; :include keyword allowed.
151;; 1.43: Index no longer includes itself in the index.
152;; 1.42: Fix "function definition is void" error
153;; when :publishing-function not set in org-publish-current-file.
154;; 1.41: Fixed bug where index isn't published on first try.
155;; 1.37: Added interactive function "org-publish". Prompts for particular
156;; project name to publish.
157;; 1.34: Added force-publish option to all interactive functions.
158;; 1.32: Fixed "index.org has changed on disk" error during index publishing.
159;; 1.30: Fixed startup error caused by (require 'em-unix)
160
161;;; Code:
162
163
164(eval-when-compile
165 (require 'cl))
166
167
168(defgroup org-publish nil
169 "Options for publishing a set of Org-mode and related files."
170 :tag "Org Publishing"
171 :group 'org)
172
173
174(defcustom org-publish-project-alist nil
175 "Association list to control publishing behavior.
176Each element of the alist is a publishing 'project.' The CAR of
177each element is a string, uniquely identifying the project. The
178CDR of each element is in one of the following forms:
179
180 (:property value :property value ... )
181
182OR,
183
184 (:components (\"project-1\" \"project-2\" ...))
185
186When the CDR of an element of org-publish-project-alist is in
187this second form, the elements of the list after :components are
188taken to be components of the project, which group together files
189requiring different publishing options. When you publish such a
190project with M-x org-publish, the components all publish.
191
192When a property is given a value in org-publish-project-alist, its
193setting overrides the value of the corresponding user variable
194 (if any) during publishing. However, options set within a file
195override everything.
196
197Most properties are optional, but some should always be set:
198
199 :base-directory Directory containing publishing source files
200 :base-extension Extension (without the dot!) of source files.
201 This can be a regular expression.
202 :publishing-directory Directory (possibly remote) where output
203 files will be published
204
205The :exclude property may be used to prevent certain files from
206being published. Its value may be a string or regexp matching
207file names you don't want to be published.
208
209The :include property may be used to include extra files. Its
210value may be a list of filenames to include. The filenames are
211considered relative to the publishing directory.
212
213When both :include and :exclude properties are given values, the
214exclusion step happens first.
215
216One special property controls which back-end function to use for
217publishing files in the project. This can be used to extend the
218set of file types publishable by org-publish, as well as the set
219of output formats.
220
221 :publishing-function Function to publish file. The default is
222 org-publish-org-to-html, but other
223 values are possible. May also be a
224 list of functions, in which case
225 each function in the list is invoked
226 in turn.
227
228Another property allows you to insert code that prepares a
229project for publishing. For example, you could call GNU Make on a
230certain makefile, to ensure published files are built up to date.
231
232 :preparation-function Function to be called before publishing
233 this project.
234
235Some properties control details of the Org publishing process,
236and are equivalent to the corresponding user variables listed in
237the right column. See the documentation for those variables to
238learn more about their use and default values.
239
240 :language org-export-default-language
241 :headline-levels org-export-headline-levels
242 :section-numbers org-export-with-section-numbers
243 :table-of-contents org-export-with-toc
244 :emphasize org-export-with-emphasize
245 :sub-superscript org-export-with-sub-superscripts
246 :TeX-macros org-export-with-TeX-macros
247 :fixed-width org-export-with-fixed-width
248 :tables org-export-with-tables
249 :table-auto-headline org-export-highlight-first-table-line
250 :style org-export-html-style
251 :convert-org-links org-export-html-link-org-files-as-html
252 :inline-images org-export-html-inline-images
253 :expand-quoted-html org-export-html-expand
254 :timestamp org-export-html-with-timestamp
255 :publishing-directory org-export-publishing-directory
256 :preamble org-export-html-preamble
257 :postamble org-export-html-postamble
258 :auto-preamble org-export-html-auto-preamble
259 :auto-postamble org-export-html-auto-postamble
260 :author user-full-name
261 :email user-mail-address
262
263The following properties may be used to control publishing of an
264index of files or summary page for a given project.
265
266 :auto-index Whether to publish an index during
267 org-publish-current-project or org-publish-all.
268 :index-filename Filename for output of index. Defaults
269 to 'index.org' (which becomes 'index.html')
270 :index-title Title of index page. Defaults to name of file.
271 :index-function Plugin function to use for generation of index.
272 Defaults to 'org-publish-org-index', which
273 generates a plain list of links to all files
274 in the project.
275"
276 :group 'org-publish
277 :type 'alist)
278
279
280(defcustom org-publish-use-timestamps-flag t
281 "When non-nil, use timestamp checking to publish only changed files.
282When nil, do no timestamp checking and always publish all
283files."
284 :group 'org-publish
285 :type 'boolean)
286
287
288(defcustom org-publish-timestamp-directory "~/.org-timestamps/"
289 "Name of directory in which to store publishing timestamps."
290 :group 'org-publish
291 :type 'string)
292
293
294;;;; Timestamp-related functions
295
296
297(defun org-publish-timestamp-filename (filename)
298 "Return path to timestamp file for filename FILENAME."
299 (while (string-match "~\\|/" filename)
300 (setq filename (replace-match "_" nil t filename)))
301 (concat org-publish-timestamp-directory filename ".timestamp"))
302
303
304(defun org-publish-needed-p (filename)
305 "Check whether file should be published.
306If org-publish-use-timestamps-flag is set to nil, this function always
307returns t. Otherwise, check the timestamps folder to determine
308whether file should be published."
309 (if org-publish-use-timestamps-flag
310 (progn
311 ;;
312 ;; create folder if needed
313 (if (not (file-exists-p org-publish-timestamp-directory))
314 (make-directory org-publish-timestamp-directory)
315 (if (not (file-directory-p org-publish-timestamp-directory))
316 (error "org-publish-timestamp-directory must be a directory.")))
317 ;;
318 ;; check timestamp. ok if timestamp file doesn't exist
319 (let* ((timestamp (org-publish-timestamp-filename filename))
320 (rtn (file-newer-than-file-p filename timestamp)))
321 (if rtn
322 ;; handle new timestamps
323 (if (not (file-exists-p timestamp))
324 ;; create file
325 (with-temp-buffer
326 (make-directory (file-name-directory timestamp) :parents)
327 (write-file timestamp)
328 (kill-buffer (current-buffer)))))
329 rtn))
330 t))
331
332
333(defun org-publish-update-timestamp (filename)
334 "Update publishing timestamp for file FILENAME."
335 (let ((timestamp (org-publish-timestamp-filename filename)))
336 ;; Emacs 21 doesn't have set-file-times
337 (if (fboundp 'set-file-times)
338 (set-file-times timestamp)
339 (call-process "touch" nil 0 nil timestamp))))
340
341
342;;;; A hash mapping files to project names
343
344
345(defvar org-publish-files (make-hash-table :test 'equal) "Hash
346table mapping file names to project names.")
347
348
349;;;; Checking filenames against this hash
350
351
352(defun org-publish-validate-link (link &optional directory)
353 (gethash (file-truename (expand-file-name link directory))
354 org-publish-files))
355
356
357;;;; Getting project information out of org-publish-project-alist
358
359
360(defun org-publish-get-plists (&optional project-name)
361 "Return a list of property lists for project PROJECT-NAME.
362When argument is not given, return all property lists for all projects."
363 (let ((alist (if project-name
364 (list (assoc project-name org-publish-project-alist))
365 org-publish-project-alist))
366 (project nil)
367 (plists nil)
368 (single nil)
369 (components nil))
370
371 ;;
372 ;;
373 (while (setq project (pop alist))
374 ;; what kind of project is it?
375 (if (setq components (plist-get (cdr project) :components))
376 ;; meta project. annotate each plist with name of enclosing project
377 (setq single
378 (apply 'append
379 (mapcar 'org-publish-get-plists components)))
380 ;; normal project
381 (setq single (list (cdr project))))
382 ;;
383 (setq plists (append plists single))
384 (dolist (p single)
385 (let* ((exclude (plist-get p :exclude))
386 (files (org-publish-get-base-files p exclude)))
387 (dolist (f files)
388 (puthash (file-truename f) (car project) org-publish-files)))))
389 plists))
390
391
392
393(defun org-publish-get-base-files (plist &optional exclude-regexp)
394 "Return a list of all files in project defined by PLIST.
395If EXCLUDE-REGEXP is set, this will be used to filter out
396matching filenames."
397 (let* ((dir (file-name-as-directory (plist-get plist :base-directory)))
398 (include-list (plist-get plist :include))
399 (extension (or (plist-get plist :base-extension) "org"))
400 (regexp (concat "^[^\\.].*\\.\\(" extension "\\)$"))
401 (allfiles (directory-files dir t regexp)))
402 ;;
403 ;; exclude files
404 (setq allfiles
405 (if (not exclude-regexp)
406 allfiles
407 (delq nil
408 (mapcar (lambda (x)
409 (if (string-match exclude-regexp x) nil x))
410 allfiles))))
411 ;;
412 ;; include extra files
413 (let ((inc nil))
414 (while (setq inc (pop include-list))
415 (setq allfiles (cons (expand-file-name inc dir) allfiles))))
416
417 allfiles))
418
419
420(defun org-publish-get-project-from-filename (filename)
421 "Figure out which project a given FILENAME belongs to, if any.
422Filename should contain full path. Returns name of project, or
423nil if not found."
424 (org-publish-get-plists)
425 (gethash (file-truename filename) org-publish-files))
426
427
428(defun org-publish-get-plist-from-filename (filename)
429 "Return publishing configuration plist for file FILENAME."
430 (let ((found nil))
431 (mapcar
432 (lambda (plist)
433 (let ((files (org-publish-get-base-files plist)))
434 (if (member (expand-file-name filename) files)
435 (setq found plist))))
436 (org-publish-get-plists))
437 found))
438
439
440
441;;;; Pluggable publishing back-end functions
442
443
444(defun org-publish-org-to-html (plist filename)
445 "Publish an org file to HTML.
446PLIST is the property list for the given project.
447FILENAME is the filename of the org file to be published."
448 (require 'org)
449 (let* ((arg (plist-get plist :headline-levels)))
450 (progn
451 (find-file filename)
452 (org-export-as-html arg nil plist)
453 ;; get rid of HTML buffer
454 (kill-buffer (current-buffer)))))
455
456
457(defun org-publish-attachment (plist filename)
458 "Publish a file with no transformation of any kind.
459PLIST is the property list for the given project.
460FILENAME is the filename of the file to be published."
461 ;; make sure eshell/cp code is loaded
462 (require 'eshell)
463 (require 'esh-maint)
464 (require 'em-unix)
465 (let ((destination (file-name-as-directory (plist-get plist :publishing-directory))))
466 (eshell/cp filename destination)))
467
468
469;;;; Publishing files, sets of files, and indices
470
471
472(defun org-publish-file (filename)
473 "Publish file FILENAME."
474 (let* ((project-name (org-publish-get-project-from-filename filename))
475 (plist (org-publish-get-plist-from-filename filename))
476 (publishing-function (or (plist-get plist :publishing-function) 'org-publish-org-to-html)))
477 (if (not project-name)
478 (error (format "File %s is not part of any known project." filename)))
479 (when (org-publish-needed-p filename)
480 (if (listp publishing-function)
481 ;; allow chain of publishing functions
482 (mapc (lambda (f)
483 (funcall f plist filename))
484 publishing-function)
485 (funcall publishing-function plist filename))
486 (org-publish-update-timestamp filename))))
487
488
489(defun org-publish-plist (plist)
490 "Publish all files in set defined by PLIST.
491 If :auto-index is set, publish the index too."
492 (let* ((exclude-regexp (plist-get plist :exclude))
493 (publishing-function (or (plist-get plist :publishing-function) 'org-publish-org-to-html))
494 (index-p (plist-get plist :auto-index))
495 (index-filename (or (plist-get plist :index-filename) "index.org"))
496 (index-function (or (plist-get plist :index-function) 'org-publish-org-index))
497 (preparation-function (plist-get plist :preparation-function))
498 (f nil))
499 ;;
500 (when preparation-function
501 (funcall preparation-function))
502 (if index-p
503 (funcall index-function plist index-filename))
504 (let ((files (org-publish-get-base-files plist exclude-regexp)))
505 (while (setq f (pop files))
506 ;; check timestamps
507 (when (org-publish-needed-p f)
508 (if (listp publishing-function)
509 ;; allow chain of publishing functions
510 (mapc (lambda (func)
511 (funcall func plist f))
512 publishing-function)
513 (funcall publishing-function plist f))
514 (org-publish-update-timestamp f))))))
515
516
517(defun org-publish-org-index (plist &optional index-filename)
518 "Create an index of pages in set defined by PLIST.
519Optionally set the filename of the index with INDEX-FILENAME;
520default is 'index.org'."
521 (let* ((dir (file-name-as-directory (plist-get plist :base-directory)))
522 (exclude-regexp (plist-get plist :exclude))
523 (files (org-publish-get-base-files plist exclude-regexp))
524 (index-filename (concat dir (or index-filename "index.org")))
525 (index-buffer (find-buffer-visiting index-filename))
526 (ifn (file-name-nondirectory index-filename))
527 (f nil))
528 ;;
529 ;; if buffer is already open, kill it to prevent error message
530 (if index-buffer
531 (kill-buffer index-buffer))
532 (with-temp-buffer
533 (while (setq f (pop files))
534 (let ((fn (file-name-nondirectory f)))
535 (unless (string= fn ifn) ;; index shouldn't index itself
536 (insert (concat " + [[file:" fn "]["
537 (file-name-sans-extension fn)
538 "]]\n")))))
539 (write-file index-filename)
540 (kill-buffer (current-buffer)))))
541
542
543;(defun org-publish-meta-index (meta-plist &optional index-filename)
544; "Create an index for a metaproject."
545; (let* ((plists (
546
547
548;;;; Interactive publishing functions
549
550
551;;;###autoload
552(defun org-publish (project-name &optional force)
553 "Publish the project PROJECT-NAME."
554 (interactive (list (completing-read "Project name: " org-publish-project-alist
555 nil t)
556 current-prefix-arg))
557 (save-window-excursion
558 (let ((org-publish-use-timestamps-flag (if force nil t))
559 (plists (org-publish-get-plists project-name)))
560 (mapcar 'org-publish-plist plists))))
561
562
563;;;###autoload
564(defun org-publish-current-project (&optional force)
565 "Publish the project associated with the current file.
566With prefix argument, force publishing all files in project."
567 (interactive "P")
568 (save-window-excursion
569 (let* ((project-name (org-publish-get-project-from-filename (buffer-file-name)))
570 (org-publish-use-timestamps-flag (if force nil t)))
571 (if (not project-name)
572 (error (format "File %s is not part of any known project." (buffer-file-name))))
573 (org-publish project-name))))
574
575
576;;;###autoload
577(defun org-publish-current-file (&optional force)
578 "Publish the current file.
579With prefix argument, force publish the file."
580 (interactive "P")
581 (save-window-excursion
582 (let ((org-publish-use-timestamps-flag
583 (if force nil t)))
584 (org-publish-file (buffer-file-name)))))
585
586
587;;;###autoload
588(defun org-publish-all (&optional force)
589 "Publish all projects.
590With prefix argument, force publish all files."
591 (interactive "P")
592 (save-window-excursion
593 (let ((org-publish-use-timestamps-flag
594 (if force nil t))
595 (plists (org-publish-get-plists)))
596 (mapcar 'org-publish-plist plists))))
597
598
599
600(provide 'org-publish)
601
602;; arch-tag: 72807f3c-8af0-4a6b-8dca-c3376eb25adb
603;;; org-publish.el ends here
diff --git a/lisp/textmodes/org.el b/lisp/textmodes/org.el
index 8ee12638dee..d669ebe586c 100644
--- a/lisp/textmodes/org.el
+++ b/lisp/textmodes/org.el
@@ -1,11 +1,11 @@
1;;;; org.el --- Outline-based notes management and organize 1;;; org.el --- Outline-based notes management and organizer
2;; Carstens outline-mode for keeping track of everything. 2;; Carstens outline-mode for keeping track of everything.
3;; Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc. 3;; Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
4;; 4;;
5;; Author: Carsten Dominik <dominik at science dot uva dot nl> 5;; Author: Carsten Dominik <dominik at science dot uva dot nl>
6;; Keywords: outlines, hypermedia, calendar, wp 6;; Keywords: outlines, hypermedia, calendar, wp
7;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/ 7;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/
8;; Version: 4.67d 8;; Version: 4.77
9;; 9;;
10;; This file is part of GNU Emacs. 10;; This file is part of GNU Emacs.
11;; 11;;
@@ -83,7 +83,7 @@
83 83
84;;; Version 84;;; Version
85 85
86(defvar org-version "4.67c" 86(defconst org-version "4.77"
87 "The version number of the file org.el.") 87 "The version number of the file org.el.")
88(defun org-version () 88(defun org-version ()
89 (interactive) 89 (interactive)
@@ -153,21 +153,13 @@ has been set."
153 :group 'org-startup 153 :group 'org-startup
154 :type 'boolean) 154 :type 'boolean)
155 155
156(defcustom org-CUA-compatible nil 156(defcustom org-replace-disputed-keys nil
157 "Non-nil means use alternative key bindings for S-<cursor movement>. 157 "Non-nil means use alternative key bindings for some keys.
158Org-mode used S-<cursor movement> for changing timestamps and priorities. 158Org-mode uses S-<cursor> keys for changing timestamps and priorities.
159S-<cursor movement> is also used for example by `CUA-mode' to select text. 159These keys are also used by other packages like `CUA-mode' or `windmove.el'.
160If you want to use Org-mode together with `CUA-mode', Org-mode needs to use 160If you want to use Org-mode together with one of these other modes,
161alternative bindings. Setting this variable to t will replace the following 161or more generally if you would like to move some Org-mode commands to
162keys both in Org-mode and in the Org-agenda buffer. 162other keys, set this variable and configure the keys with the variable
163
164S-RET -> C-S-RET
165S-up -> M-p
166S-down -> M-n
167S-left -> M--
168S-right -> M-+
169
170If you do not like the alternative keys, take a look at the variable
171`org-disputed-keys'. 163`org-disputed-keys'.
172 164
173This option is only relevant at load-time of Org-mode, and must be set 165This option is only relevant at load-time of Org-mode, and must be set
@@ -176,21 +168,47 @@ become effective."
176 :group 'org-startup 168 :group 'org-startup
177 :type 'boolean) 169 :type 'boolean)
178 170
179(defvar org-disputed-keys 171(if (fboundp 'defvaralias)
180 '((S-up [(shift up)] [(meta ?p)]) 172 (defvaralias 'org-CUA-compatible 'org-replace-disputed-keys))
181 (S-down [(shift down)] [(meta ?n)]) 173
182 (S-left [(shift left)] [(meta ?-)]) 174(defcustom org-disputed-keys
183 (S-right [(shift right)] [(meta ?+)]) 175 '(([(shift up)] . [(meta p)])
184 (S-return [(shift return)] [(control shift return)])) 176 ([(shift down)] . [(meta n)])
177 ([(shift left)] . [(meta -)])
178 ([(shift right)] . [(meta +)])
179 ([(control shift right)] . [(meta shift +)])
180 ([(control shift left)] . [(meta shift -)]))
185 "Keys for which Org-mode and other modes compete. 181 "Keys for which Org-mode and other modes compete.
186This is an alist, cars are symbols for lookup, 1st element is the default key, 182This is an alist, cars are the default keys, second element specifies
187second element will be used when `org-CUA-compatible' is t.") 183the alternative to use when `org-replace-disputed-keys' is t.
184
185Keys can be specified in any syntax supported by `define-key'.
186The value of this option takes effect only at Org-mode's startup,
187therefore you'll have to restart Emacs to apply it after changing."
188 :group 'org-startup
189 :type 'alist)
188 190
189(defun org-key (key) 191(defun org-key (key)
190 "Select a key according to `org-CUA-compatible'." 192 "Select key according to `org-replace-disputed-keys' and `org-disputed-keys'.
191 (nth (if org-CUA-compatible 2 1) 193Or return the original if not disputed."
192 (or (assq key org-disputed-keys) 194 (if org-replace-disputed-keys
193 (error "Invalid Key %s in `org-key'" key)))) 195 (let* ((nkey (key-description key))
196 (x (org-find-if (lambda (x)
197 (equal (key-description (car x)) nkey))
198 org-disputed-keys)))
199 (if x (cdr x) key))
200 key))
201
202(defun org-find-if (predicate seq)
203 (catch 'exit
204 (while seq
205 (if (funcall predicate (car seq))
206 (throw 'exit (car seq))
207 (pop seq)))))
208
209(defun org-defkey (keymap key def)
210 "Define a key, possibly translated, as returned by `org-key'."
211 (define-key keymap (org-key key) def))
194 212
195(defcustom org-ellipsis nil 213(defcustom org-ellipsis nil
196 "The ellipsis to use in the Org-mode outline. 214 "The ellipsis to use in the Org-mode outline.
@@ -255,7 +273,9 @@ An entry can be toggled between QUOTE and normal with
255 :group 'org-keywords 273 :group 'org-keywords
256 :type 'string) 274 :type 'string)
257 275
258(defvar org-repeat-re "\\<REPEAT(\\([-+ 0-9dwmy]+\\))" 276(defconst org-repeat-re
277 (concat "\\(?:\\<\\(?:" org-scheduled-string "\\|" org-deadline-string "\\)"
278 " +<[0-9]\\{4\\}-[0-9][0-9]-[0-9][0-9] [^>\n]*\\)\\(\\+[0-9]+[dwmy]\\)")
259 "Regular expression for specifying repeated events. 279 "Regular expression for specifying repeated events.
260After a match, group 1 contains the repeat expression.") 280After a match, group 1 contains the repeat expression.")
261 281
@@ -304,7 +324,7 @@ contexts. Valid contexts are
304 (const default)) 324 (const default))
305 (boolean))))) 325 (boolean)))))
306 326
307(defcustom org-show-following-heading '((default . t)) 327(defcustom org-show-following-heading '((default . nil))
308 "Non-nil means, show following heading when revealing a location. 328 "Non-nil means, show following heading when revealing a location.
309Org-mode often shows locations in an org-mode file which might have 329Org-mode often shows locations in an org-mode file which might have
310been invisible before. When this is set, the heading following the 330been invisible before. When this is set, the heading following the
@@ -386,6 +406,7 @@ nil Never
386white Only in completely white lines 406white Only in completely white lines
387whitestart Only at the beginning of lines, before the first non-white char. 407whitestart Only at the beginning of lines, before the first non-white char.
388t Everywhere except in headlines 408t Everywhere except in headlines
409exc-hl-bol Everywhere except at the start of a headline
389If TAB is used in a place where it does not emulate TAB, the current subtree 410If TAB is used in a place where it does not emulate TAB, the current subtree
390visibility is cycled." 411visibility is cycled."
391 :group 'org-cycle 412 :group 'org-cycle
@@ -393,9 +414,25 @@ visibility is cycled."
393 (const :tag "Only in completely white lines" white) 414 (const :tag "Only in completely white lines" white)
394 (const :tag "Before first char in a line" whitestart) 415 (const :tag "Before first char in a line" whitestart)
395 (const :tag "Everywhere except in headlines" t) 416 (const :tag "Everywhere except in headlines" t)
417 (const :tag "Everywhere except at bol in headlines" exc-hl-bol)
396 )) 418 ))
397 419
420(defcustom org-cycle-separator-lines 2
421 "Number of empty lines needed to keep an empty line between collapsed trees.
422If you leave an empty line between the end of a subtree and the following
423headline, this empty line is hidden when the subtree is folded.
424Org-mode will leave (exactly) one empty line visible if the number of
425empty lines is equal or larger to the number given in this variable.
426So the default 2 means, at least 2 empty lines after the end of a subtree
427are needed to produce free space between a collapsed subtree and the
428following headline.
429
430Special case: when 0, never leave empty lines in collapsed view."
431 :group 'org-cycle
432 :type 'integer)
433
398(defcustom org-cycle-hook '(org-cycle-hide-archived-subtrees 434(defcustom org-cycle-hook '(org-cycle-hide-archived-subtrees
435 org-cycle-show-empty-lines
399 org-optimize-window-after-visibility-change) 436 org-optimize-window-after-visibility-change)
400 "Hook that is run after `org-cycle' has changed the buffer visibility. 437 "Hook that is run after `org-cycle' has changed the buffer visibility.
401The function(s) in this hook must accept a single argument which indicates 438The function(s) in this hook must accept a single argument which indicates
@@ -406,12 +443,20 @@ the values `folded', `children', or `subtree'."
406 :group 'org-cycle 443 :group 'org-cycle
407 :type 'hook) 444 :type 'hook)
408 445
409
410(defgroup org-edit-structure nil 446(defgroup org-edit-structure nil
411 "Options concerning structure editing in Org-mode." 447 "Options concerning structure editing in Org-mode."
412 :tag "Org Edit Structure" 448 :tag "Org Edit Structure"
413 :group 'org-structure) 449 :group 'org-structure)
414 450
451(defcustom org-special-ctrl-a nil
452 "Non-nil means `C-a' behaves specially in headlines.
453When set, `C-a' will bring back the cursor to the beginning of the
454headline text, i.e. after the stars and after a possible TODO keyword.
455When the cursor is already at that position, another `C-a' will bring
456it to the beginning of the line."
457 :group 'org-edit-structure
458 :type 'boolean)
459
415(defcustom org-odd-levels-only nil 460(defcustom org-odd-levels-only nil
416 "Non-nil means, skip even levels and only use odd levels for the outline. 461 "Non-nil means, skip even levels and only use odd levels for the outline.
417This has the effect that two stars are being added/taken away in 462This has the effect that two stars are being added/taken away in
@@ -783,6 +828,18 @@ calls `table-recognize-table'."
783 :tag "Org Table Calculation" 828 :tag "Org Table Calculation"
784 :group 'org-table) 829 :group 'org-table)
785 830
831(defcustom org-table-use-standard-references t
832 "Should org-mode work with table refrences like B3 instead of @3$2?
833Possible values are:
834nil never use them
835from accept as input, do not present for editing
836t: accept as input and present for editing"
837 :group 'org-table-calculation
838 :type '(choice
839 (const :tag "Never, don't even check unser input for them" nil)
840 (const :tag "Always, both as user input, and when editing" t)
841 (const :tag "Convert user input, don't offer during editing" 'from)))
842
786(defcustom org-table-copy-increment t 843(defcustom org-table-copy-increment t
787 "Non-nil means, increment when copying current field with \\[org-table-copy-down]." 844 "Non-nil means, increment when copying current field with \\[org-table-copy-down]."
788 :group 'org-table-calculation 845 :group 'org-table-calculation
@@ -815,9 +872,6 @@ the command \\[org-table-eval-formula]."
815 :group 'org-table-calculation 872 :group 'org-table-calculation
816 :type 'boolean) 873 :type 'boolean)
817 874
818;; FIXME this is also a variable that makes Org-mode files non-portable
819;; Maybe I should have a #+ options for constants?
820;; How about the SI/cgs issue?
821(defcustom org-table-formula-use-constants t 875(defcustom org-table-formula-use-constants t
822 "Non-nil means, interpret constants in formulas in tables. 876 "Non-nil means, interpret constants in formulas in tables.
823A constant looks like `$c' or `$Grav' and will be replaced before evaluation 877A constant looks like `$c' or `$Grav' and will be replaced before evaluation
@@ -826,6 +880,8 @@ from the `constants.el' package."
826 :group 'org-table-calculation 880 :group 'org-table-calculation
827 :type 'boolean) 881 :type 'boolean)
828 882
883;; FIXME this is also a variable that makes Org-mode files non-portable
884;; Maybe I should have a #+ options for constants?
829(defcustom org-table-formula-constants nil 885(defcustom org-table-formula-constants nil
830 "Alist with constant names and values, for use in table formulas. 886 "Alist with constant names and values, for use in table formulas.
831The car of each element is a name of a constant, without the `$' before it. 887The car of each element is a name of a constant, without the `$' before it.
@@ -852,7 +908,7 @@ Automatically means, when TAB or RET or C-c C-c are pressed in the line."
852 :group 'org) 908 :group 'org)
853 909
854(defvar org-link-abbrev-alist-local nil 910(defvar org-link-abbrev-alist-local nil
855 "buffer-local version of `org-link-abbrev-alist', which see. 911 "Buffer-local version of `org-link-abbrev-alist', which see.
856The value of this is taken from the #+LINK lines.") 912The value of this is taken from the #+LINK lines.")
857(make-variable-buffer-local 'org-link-abbrev-alist-local) 913(make-variable-buffer-local 'org-link-abbrev-alist-local)
858 914
@@ -1318,30 +1374,64 @@ When nil, new notes will be filed to the end of a file or entry."
1318 :tag "Org Progress" 1374 :tag "Org Progress"
1319 :group 'org-time) 1375 :group 'org-time)
1320 1376
1321(defcustom org-todo-keywords '("TODO" "DONE") 1377(defcustom org-todo-keywords '((sequence "TODO" "DONE"))
1322 "List of TODO entry keywords. 1378 "List of TODO entry keyword sequences and their interpretation.
1323\\<org-mode-map>By default, this is '(\"TODO\" \"DONE\"). The last entry in the list is 1379\\<org-mode-map>This is a list of sequences.
1324considered to mean that the entry is \"done\". All the other mean that 1380
1325action is required, and will make the entry show up in todo lists, diaries 1381Each sequence starts with a symbol, either `sequence' or `type',
1326etc. 1382indicating if the keywords should be interpreted as a sequence of
1327The command \\[org-todo] cycles an entry through these states, and an 1383action steps, or as different types of TODO items. The first
1384keywords are states requiring action - these states will select a headline
1385for inclusion into the global TODO list Org-mode produces. If one of
1386the \"keywords\" is the vertical bat \"|\" the remaining keywords
1387signify that no further action is necessary. If \"|\" is not found,
1388the last keyword is treated as the only DONE state of the sequence.
1389
1390The command \\[org-todo] cycles an entry through these states, and one
1328additional state where no keyword is present. For details about this 1391additional state where no keyword is present. For details about this
1329cycling, see also the variable `org-todo-interpretation' 1392cycling, see the manual.
1330Changes become only effective after restarting Emacs." 1393
1394TODO keywords and interpretation can also be set on a per-file basis with
1395the special #+SEQ_TODO and #+TYP_TODO lines.
1396
1397For backward compatibility, this variable may also be just a list
1398of keywords - in this case the interptetation (sequence or type) will be
1399taken from the (otherwise obsolete) variable `org-todo-interpretation'."
1331 :group 'org-todo 1400 :group 'org-todo
1332 :group 'org-keywords 1401 :group 'org-keywords
1333 :type '(repeat (string :tag "Keyword"))) 1402 :type '(choice
1403 (repeat :tag "Old syntax, just keywords"
1404 (string :tag "Keyword"))
1405 (repeat :tag "New syntax"
1406 (cons
1407 (choice
1408 :tag "Interpretation"
1409 (const :tag "Sequence (cycling hits every state)" sequence)
1410 (const :tag "Type (cycling directly to DONE)" type))
1411 (repeat
1412 (string :tag "Keyword"))))))
1413
1414(defvar org-todo-keywords-1 nil)
1415(make-variable-buffer-local 'org-todo-keywords-1)
1416(defvar org-todo-keywords-for-agenda nil)
1417(defvar org-done-keywords-for-agenda nil)
1418(defvar org-not-done-keywords nil)
1419(make-variable-buffer-local 'org-not-done-keywords)
1420(defvar org-done-keywords nil)
1421(make-variable-buffer-local 'org-done-keywords)
1422(defvar org-todo-heads nil)
1423(make-variable-buffer-local 'org-todo-heads)
1424(defvar org-todo-sets nil)
1425(make-variable-buffer-local 'org-todo-sets)
1426(defvar org-todo-kwd-alist nil)
1427(make-variable-buffer-local 'org-todo-kwd-alist)
1334 1428
1335(defcustom org-todo-interpretation 'sequence 1429(defcustom org-todo-interpretation 'sequence
1336 "Controls how TODO keywords are interpreted. 1430 "Controls how TODO keywords are interpreted.
1337This variable is only relevant if `org-todo-keywords' contains more than two 1431This variable is in principle obsolete and is only used for
1338states. \\<org-mode-map>Possible values are `sequence' and `type'. 1432backward compatibility, if the interpretation of todo keywords is
1339 1433not given already in `org-todo-keywords'. See that variable for
1340When `sequence', \\[org-todo] will always switch to the next state in the 1434more information."
1341`org-todo-keywords' list. When `type', \\[org-todo] only cycles from state
1342to state when executed several times in direct succession. Otherwise, it
1343switches directly to DONE from any state.
1344See the manual for more information."
1345 :group 'org-todo 1435 :group 'org-todo
1346 :group 'org-keywords 1436 :group 'org-keywords
1347 :type '(choice (const sequence) 1437 :type '(choice (const sequence)
@@ -1393,6 +1483,12 @@ the following lines anywhere in the buffer:
1393 (const :tag "when TODO state changes" state) 1483 (const :tag "when TODO state changes" state)
1394 (const :tag "when clocking out" clock-out)))) 1484 (const :tag "when clocking out" clock-out))))
1395 1485
1486(defcustom org-log-done-with-time t
1487 "Non-nil means, the CLOSED time stamp will contain date and time.
1488When nil, only the date will be recorded."
1489 :group 'org-progress
1490 :type 'boolean)
1491
1396(defcustom org-log-note-headings 1492(defcustom org-log-note-headings
1397 '((done . "CLOSING NOTE %t") 1493 '((done . "CLOSING NOTE %t")
1398 (state . "State %-12s %t") 1494 (state . "State %-12s %t")
@@ -1414,11 +1510,9 @@ empty string.
1414 state) string) 1510 state) string)
1415 (cons (const :tag "Heading when clocking out" clock-out) string))) 1511 (cons (const :tag "Heading when clocking out" clock-out) string)))
1416 1512
1417(defcustom org-allow-auto-repeat t 1513(defcustom org-log-repeat t
1418 "Non-nil means, find REPEAT cookies in entries and apply them. 1514 "Non-nil means, prompt for a note when REPEAT is resetting a TODO entry.
1419A repeat cookie looks like REPEAT(+1m) and causes deadlines and schedules 1515When nil, no note will be taken."
1420to repeat themselves shifted by a certain amount of time, each time an
1421entry is marked DONE."
1422 :group 'org-todo 1516 :group 'org-todo
1423 :group 'org-progress 1517 :group 'org-progress
1424 :type 'boolean) 1518 :type 'boolean)
@@ -1428,14 +1522,21 @@ entry is marked DONE."
1428 :tag "Org Priorities" 1522 :tag "Org Priorities"
1429 :group 'org-todo) 1523 :group 'org-todo)
1430 1524
1431(defcustom org-default-priority ?B 1525(defcustom org-highest-priority ?A
1432 "The default priority of TODO items. 1526 "The highest priority of TODO items. A character like ?A, ?B etc.
1433This is the priority an item get if no explicit priority is given." 1527Must have a smaller ASCII number than `org-lowest-priority'."
1434 :group 'org-priorities 1528 :group 'org-priorities
1435 :type 'character) 1529 :type 'character)
1436 1530
1437(defcustom org-lowest-priority ?C 1531(defcustom org-lowest-priority ?C
1438 "The lowest priority of TODO items. A character like ?A, ?B etc." 1532 "The lowest priority of TODO items. A character like ?A, ?B etc.
1533Must have a larger ASCII number than `org-highest-priority'."
1534 :group 'org-priorities
1535 :type 'character)
1536
1537(defcustom org-default-priority ?B
1538 "The default priority of TODO items.
1539This is the priority an item get if no explicit priority is given."
1439 :group 'org-priorities 1540 :group 'org-priorities
1440 :type 'character) 1541 :type 'character)
1441 1542
@@ -1612,7 +1713,7 @@ make sure all corresponding TODO items find their way into the list."
1612 "Variable used by org files to set a category for agenda display. 1713 "Variable used by org files to set a category for agenda display.
1613Such files should use a file variable to set it, for example 1714Such files should use a file variable to set it, for example
1614 1715
1615 -*- mode: org; org-category: \"ELisp\" 1716# -*- mode: org; org-category: \"ELisp\"
1616 1717
1617or contain a special line 1718or contain a special line
1618 1719
@@ -1654,17 +1755,75 @@ forth between agenda and calendar."
1654 :group 'org-agenda 1755 :group 'org-agenda
1655 :type 'sexp) 1756 :type 'sexp)
1656 1757
1758(defgroup org-agenda-export nil
1759 "Options concerning exporting agenda views in Org-mode."
1760 :tag "Org Agenda Export"
1761 :group 'org-agenda)
1762
1763(defcustom org-agenda-with-colors t
1764 "Non-nil means, use colors in agenda views."
1765 :group 'org-agenda-export
1766 :type 'boolean)
1767
1768(defcustom org-agenda-exporter-settings nil
1769 "Alist of variable/value pairs that should be active during agenda export.
1770This is a good place to set uptions for ps-print and for htmlize."
1771 :group 'org-agenda-export
1772 :type '(repeat
1773 (list
1774 (variable)
1775 (sexp :tag "Value"))))
1776
1777(defcustom org-agenda-export-html-style ""
1778 "The style specification for exported HTML Agenda files.
1779If this variable contains a string, it will replace the default <style>
1780section as produced by `htmlize'.
1781Since there are different ways of setting style information, this variable
1782needs to contain the full HTML structure to provide a style, including the
1783surrounding HTML tags. The style specifications should include definitions
1784the fonts used by the agenda, here is an example:
1785
1786 <style type=\"text/css\">
1787 p { font-weight: normal; color: gray; }
1788 .org-agenda-structure {
1789 font-size: 110%;
1790 color: #003399;
1791 font-weight: 600;
1792 }
1793 .org-todo {
1794 color: #cc6666;Week-agenda:
1795 font-weight: bold;
1796 }
1797 .org-done {
1798 color: #339933;
1799 }
1800 .title { text-align: center; }
1801 .todo, .deadline { color: red; }
1802 .done { color: green; }
1803 </style>
1804
1805or, if you want to keep the style in a file,
1806
1807 <link rel=\"stylesheet\" type=\"text/css\" href=\"mystyles.css\">
1808
1809As the value of this option simply gets inserted into the HTML <head> header,
1810you can \"misuse\" it to also add other text to the header. However,
1811<style>...</style> is required, if not present the variable will be ignored."
1812 :group 'org-agenda-export
1813 :group 'org-export-html
1814 :type 'string)
1815
1657(defgroup org-agenda-custom-commands nil 1816(defgroup org-agenda-custom-commands nil
1658 "Options concerning agenda views in Org-mode." 1817 "Options concerning agenda views in Org-mode."
1659 :tag "Org Agenda Custom Commands" 1818 :tag "Org Agenda Custom Commands"
1660 :group 'org-agenda) 1819 :group 'org-agenda)
1661 1820
1662(defcustom org-agenda-custom-commands '(("w" todo "WAITING")) 1821(defcustom org-agenda-custom-commands nil
1663 "Custom commands for the agenda. 1822 "Custom commands for the agenda.
1664These commands will be offered on the splash screen displayed by the 1823These commands will be offered on the splash screen displayed by the
1665agenda dispatcher \\[org-agenda]. Each entry is a list like this: 1824agenda dispatcher \\[org-agenda]. Each entry is a list like this:
1666 1825
1667 (key type match options) 1826 (key type match options files)
1668 1827
1669key The key (a single char as a string) to be associated with the command. 1828key The key (a single char as a string) to be associated with the command.
1670type The command type, any of the following symbols: 1829type The command type, any of the following symbols:
@@ -1680,11 +1839,16 @@ match What to search for:
1680 - a regular expression for occur searches 1839 - a regular expression for occur searches
1681options A list of option setttings, similar to that in a let form, so like 1840options A list of option setttings, similar to that in a let form, so like
1682 this: ((opt1 val1) (opt2 val2) ...) 1841 this: ((opt1 val1) (opt2 val2) ...)
1842files A list of files file to write the produced agenda buffer to
1843 with the command `org-store-agenda-views'.
1844 If a file name ends in \".html\", an HTML version of the buffer
1845 is written out. If it ends in \".ps\", a postscript version is
1846 produced. Otherwide, only the plain text is written to the file.
1683 1847
1684You can also define a set of commands, to create a composite agenda buffer. 1848You can also define a set of commands, to create a composite agenda buffer.
1685In this case, an entry looks like this: 1849In this case, an entry looks like this:
1686 1850
1687 (key desc (cmd1 cmd2 ...) general-options) 1851 (key desc (cmd1 cmd2 ...) general-options file)
1688 1852
1689where 1853where
1690 1854
@@ -1695,19 +1859,22 @@ cmd An agenda command, similar to the above. However, tree commands
1695 (agenda) 1859 (agenda)
1696 (alltodo) 1860 (alltodo)
1697 (stuck) 1861 (stuck)
1698 (todo \"match\" options) 1862 (todo \"match\" options files)
1699 (tags \"match\" options ) 1863 (tags \"match\" options files)
1700 (tags-todo \"match\" options) 1864 (tags-todo \"match\" options files)
1701 1865
1702Each command can carry a list of options, and another set of options can be 1866Each command can carry a list of options, and another set of options can be
1703given for the whole set of commands. Individual command options take 1867given for the whole set of commands. Individual command options take
1704precedence over the general options." 1868precedence over the general options."
1705 :group 'org-agenda-custom-commands 1869 :group 'org-agenda-custom-commands
1706 :type '(repeat 1870 :type '(repeat
1707 (choice 1871 (choice :value ("a" tags "" nil)
1708 (list :tag "Single command" 1872 (list :tag "Single command"
1709 (string :tag "Key") 1873 (string :tag "Key")
1710 (choice 1874 (choice
1875 (const :tag "Agenda" agenda)
1876 (const :tag "TODO list" alltodo)
1877 (const :tag "Stuck projects" stuck)
1711 (const :tag "Tags search (all agenda files)" tags) 1878 (const :tag "Tags search (all agenda files)" tags)
1712 (const :tag "Tags search of TODO entries (all agenda files)" tags-todo) 1879 (const :tag "Tags search of TODO entries (all agenda files)" tags-todo)
1713 (const :tag "TODO keyword search (all agenda files)" todo) 1880 (const :tag "TODO keyword search (all agenda files)" todo)
@@ -1717,7 +1884,8 @@ precedence over the general options."
1717 (symbol :tag "Other, user-defined function")) 1884 (symbol :tag "Other, user-defined function"))
1718 (string :tag "Match") 1885 (string :tag "Match")
1719 (repeat :tag "Local options" 1886 (repeat :tag "Local options"
1720 (list (variable :tag "Option") (sexp :tag "Value")))) 1887 (list (variable :tag "Option") (sexp :tag "Value")))
1888 (option (repeat :tag "Export" (file :tag "Export to"))))
1721 (list :tag "Command series, all agenda files" 1889 (list :tag "Command series, all agenda files"
1722 (string :tag "Key") 1890 (string :tag "Key")
1723 (string :tag "Description") 1891 (string :tag "Description")
@@ -1756,20 +1924,24 @@ precedence over the general options."
1756 1924
1757 (repeat :tag "General options" 1925 (repeat :tag "General options"
1758 (list (variable :tag "Option") 1926 (list (variable :tag "Option")
1759 (sexp :tag "Value"))))))) 1927 (sexp :tag "Value")))
1928 (option (repeat :tag "Export" (file :tag "Export to")))))))
1760 1929
1761(defcustom org-stuck-projects 1930(defcustom org-stuck-projects
1762 '("+LEVEL=2/-DONE" ("TODO" "NEXT" "NEXTACTION") nil) 1931 '("+LEVEL=2/-DONE" ("TODO" "NEXT" "NEXTACTION") nil "")
1763 "How to identify stuck projects. 1932 "How to identify stuck projects.
1764This is a list of three items: 1933This is a list of four items:
17651. A tags/todo matcher string that is used to identify a project. 19341. A tags/todo matcher string that is used to identify a project.
1766 The entire tree below a headline matched by this is considered a project. 1935 The entire tree below a headline matched by this is considered one project.
17672. A list of TODO keywords itentifying non-stuck projects. 19362. A list of TODO keywords identifying non-stuck projects.
1768 If the project subtree contains any headline with one of these todo 1937 If the project subtree contains any headline with one of these todo
1769 keywords, the project is consitered to be not stuck. 1938 keywords, the project is considered to be not stuck. If you specify
1939 \"*\" as a keyword, any TODO keyword will mark the project unstuck.
17703. A list of tags identifying non-stuck projects. 19403. A list of tags identifying non-stuck projects.
1771 If the project subtree contains any headline with one of these tags, 1941 If the project subtree contains any headline with one of these tags,
1772 the project is consitered to be not stuck. 1942 the project is considered to be not stuck. If you specify \"*\" as
1943 a tag, any tag will mark the project unstuck.
19444. An arbitrary regular expression matching non-stuck projects.
1773 1945
1774After defining this variable, you may use \\[org-agenda-list-stuck-projects] 1946After defining this variable, you may use \\[org-agenda-list-stuck-projects]
1775or `C-c a #' to produce the list." 1947or `C-c a #' to produce the list."
@@ -1777,7 +1949,8 @@ or `C-c a #' to produce the list."
1777 :type '(list 1949 :type '(list
1778 (string :tag "Tags/TODO match to identify a project") 1950 (string :tag "Tags/TODO match to identify a project")
1779 (repeat :tag "Projects are *not* stuck if they have an entry with TODO keyword any of" (string)) 1951 (repeat :tag "Projects are *not* stuck if they have an entry with TODO keyword any of" (string))
1780 (repeat :tag "Projects are *not* stuck if they have an entry with TAG being any of" (string)))) 1952 (repeat :tag "Projects are *not* stuck if they have an entry with TAG being any of" (string))
1953 (regexp :tag "Projects are *not* stuck if this regexp matches\ninside the subtree")))
1781 1954
1782 1955
1783(defgroup org-agenda-skip nil 1956(defgroup org-agenda-skip nil
@@ -1815,6 +1988,14 @@ This is relevant for the daily/weekly agenda, not for the TODO list."
1815 :group 'org-agenda-skip 1988 :group 'org-agenda-skip
1816 :type 'boolean) 1989 :type 'boolean)
1817 1990
1991(defcustom org-agenda-skip-deadline-if-done nil
1992 "Non-nil means don't show deadines when the corresponding item is done.
1993When nil, the deadline is still shown and should give you a happy feeling.
1994
1995This is relevant for the daily/weekly agenda."
1996 :group 'org-agenda-skip
1997 :type 'boolean)
1998
1818(defcustom org-timeline-show-empty-dates 3 1999(defcustom org-timeline-show-empty-dates 3
1819 "Non-nil means, `org-timeline' also shows dates without an entry. 2000 "Non-nil means, `org-timeline' also shows dates without an entry.
1820When nil, only the days which actually have entries are shown. 2001When nil, only the days which actually have entries are shown.
@@ -1846,7 +2027,7 @@ Needs to be set before org.el is loaded."
1846 :type 'boolean) 2027 :type 'boolean)
1847 2028
1848(defcustom org-agenda-start-with-follow-mode nil 2029(defcustom org-agenda-start-with-follow-mode nil
1849 "The initial value of follwo-mode in a newly created agenda window." 2030 "The initial value of follow-mode in a newly created agenda window."
1850 :group 'org-agenda-startup 2031 :group 'org-agenda-startup
1851 :type 'boolean) 2032 :type 'boolean)
1852 2033
@@ -1931,7 +2112,7 @@ a format string understood by `format-time-string'.
1931FIXME: Not used currently, because of timezone problem." 2112FIXME: Not used currently, because of timezone problem."
1932 :group 'org-agenda-daily/weekly 2113 :group 'org-agenda-daily/weekly
1933 :type 'string) 2114 :type 'string)
1934 2115
1935(defcustom org-agenda-include-diary nil 2116(defcustom org-agenda-include-diary nil
1936 "If non-nil, include in the agenda entries from the Emacs Calendar's diary." 2117 "If non-nil, include in the agenda entries from the Emacs Calendar's diary."
1937 :group 'org-agenda-daily/weekly 2118 :group 'org-agenda-daily/weekly
@@ -2006,7 +2187,7 @@ a grid line."
2006 (defcustom org-agenda-sorting-strategy 2187 (defcustom org-agenda-sorting-strategy
2007 '((agenda time-up category-keep priority-down) 2188 '((agenda time-up category-keep priority-down)
2008 (todo category-keep priority-down) 2189 (todo category-keep priority-down)
2009 (tags category-keep)) 2190 (tags category-keep priority-down))
2010 "Sorting structure for the agenda items of a single day. 2191 "Sorting structure for the agenda items of a single day.
2011This is a list of symbols which will be used in sequence to determine 2192This is a list of symbols which will be used in sequence to determine
2012if an entry should be listed before another entry. The following 2193if an entry should be listed before another entry. The following
@@ -2113,7 +2294,7 @@ the prefix, you could use:
2113 (setq org-agenda-prefix-format \" %-11:c% s\") 2294 (setq org-agenda-prefix-format \" %-11:c% s\")
2114 2295
2115See also the variables `org-agenda-remove-times-when-in-prefix' and 2296See also the variables `org-agenda-remove-times-when-in-prefix' and
2116`org-agenda-remove-tags-when-in-prefix'." 2297`org-agenda-remove-tags'."
2117 :type '(choice 2298 :type '(choice
2118 (string :tag "General format") 2299 (string :tag "General format")
2119 (list :greedy t :tag "View dependent" 2300 (list :greedy t :tag "View dependent"
@@ -2144,7 +2325,7 @@ the headline/diary entry."
2144 (const :tag "Never" nil) 2325 (const :tag "Never" nil)
2145 (const :tag "When at beginning of entry" beg))) 2326 (const :tag "When at beginning of entry" beg)))
2146 2327
2147(defcustom org-agenda-remove-tags-when-in-prefix nil 2328(defcustom org-agenda-remove-tags nil
2148 "Non-nil means, remove the tags from the headline copy in the agenda. 2329 "Non-nil means, remove the tags from the headline copy in the agenda.
2149When this is the symbol `prefix', only remove tags when 2330When this is the symbol `prefix', only remove tags when
2150`org-agenda-prefix-format' contains a `%T' specifier." 2331`org-agenda-prefix-format' contains a `%T' specifier."
@@ -2154,6 +2335,10 @@ When this is the symbol `prefix', only remove tags when
2154 (const :tag "Never" nil) 2335 (const :tag "Never" nil)
2155 (const :tag "When prefix format contains %T" prefix))) 2336 (const :tag "When prefix format contains %T" prefix)))
2156 2337
2338(if (fboundp 'defvaralias)
2339 (defvaralias 'org-agenda-remove-tags-when-in-prefix
2340 'org-agenda-remove-tags))
2341
2157(defcustom org-agenda-align-tags-to-column 65 2342(defcustom org-agenda-align-tags-to-column 65
2158 "Shift tags in agenda items to this column." 2343 "Shift tags in agenda items to this column."
2159 :group 'org-agenda-prefix 2344 :group 'org-agenda-prefix
@@ -2165,13 +2350,18 @@ When this is the symbol `prefix', only remove tags when
2165 :group 'org) 2350 :group 'org)
2166 2351
2167(defcustom org-format-latex-options 2352(defcustom org-format-latex-options
2168 '(:foreground "Black" :background "Transparent" :scale 1.0 2353 '(:foreground default :background default :scale 1.0
2169 :matchers ("begin" "$" "$$" "\\(" "\\[")) 2354 :html-foreground "Black" :html-background "Transparent" :html-scale 1.0
2355 :matchers ("begin" "$" "$$" "\\(" "\\["))
2170 "Options for creating images from LaTeX fragments. 2356 "Options for creating images from LaTeX fragments.
2171This is a property list with the following properties: 2357This is a property list with the following properties:
2172:foreground the foreground color, for example \"Black\". 2358:foreground the foreground color for images embedded in emacs, e.g. \"Black\".
2359 `default' means use the forground of the default face.
2173:background the background color, or \"Transparent\". 2360:background the background color, or \"Transparent\".
2361 `default' means use the background of the default face.
2174:scale a scaling factor for the size of the images 2362:scale a scaling factor for the size of the images
2363:html-foreground, :html-background, :html-scale
2364 The same numbers for HTML export.
2175:matchers a list indicating which matchers should be used to 2365:matchers a list indicating which matchers should be used to
2176 find LaTeX fragments. Valid members of this list are: 2366 find LaTeX fragments. Valid members of this list are:
2177 \"begin\" find environments 2367 \"begin\" find environments
@@ -2182,6 +2372,18 @@ This is a property list with the following properties:
2182 :group 'org-latex 2372 :group 'org-latex
2183 :type 'plist) 2373 :type 'plist)
2184 2374
2375(defcustom org-format-latex-header "\\documentclass{article}
2376\\usepackage{fullpage} % do not remove
2377\\usepackage{amssymb}
2378\\usepackage[usenames]{color}
2379\\usepackage{amsmath}
2380\\usepackage{latexsym}
2381\\usepackage[mathscr]{eucal}
2382\\pagestyle{empty} % do not remove"
2383 "The document header used for processing LaTeX fragments."
2384 :group 'org-latex
2385 :type 'string)
2386
2185(defgroup org-export nil 2387(defgroup org-export nil
2186 "Options for exporting org-listings." 2388 "Options for exporting org-listings."
2187 :tag "Org Export" 2389 :tag "Org Export"
@@ -2237,6 +2439,12 @@ This should have an association in `org-export-language-setup'."
2237 :group 'org-export-general 2439 :group 'org-export-general
2238 :type 'string) 2440 :type 'string)
2239 2441
2442(defcustom org-export-skip-text-before-1st-heading t
2443 "Non-nil means, skip all text before the first headline when exporting.
2444When nil, that text is exported as well."
2445 :group 'org-export-general
2446 :type 'boolean)
2447
2240(defcustom org-export-headline-levels 3 2448(defcustom org-export-headline-levels 3
2241 "The last level which is still exported as a headline. 2449 "The last level which is still exported as a headline.
2242Inferior levels will produce itemize lists when exported. 2450Inferior levels will produce itemize lists when exported.
@@ -2354,12 +2562,19 @@ sub- or superscripts.
2354 x_{i^2} or x^(2-i) braces or parenthesis do grouping. 2562 x_{i^2} or x^(2-i) braces or parenthesis do grouping.
2355 2563
2356Still, ambiguity is possible - so when in doubt use {} to enclose the 2564Still, ambiguity is possible - so when in doubt use {} to enclose the
2357sub/superscript. 2565sub/superscript. If you set this variable to the symbol `{}',
2566the braces are *required* in order to trigger interpretations as
2567sub/superscript. This can be helpful in documents that need \"_\"
2568frequently in plain text.
2569
2358Not all export backends support this, but HTML does. 2570Not all export backends support this, but HTML does.
2359 2571
2360This option can also be set with the +OPTIONS line, e.g. \"^:nil\"." 2572This option can also be set with the +OPTIONS line, e.g. \"^:nil\"."
2361 :group 'org-export-translation 2573 :group 'org-export-translation
2362 :type 'boolean) 2574 :type '(choice
2575 (const :tag "Always interpret" t)
2576 (const :tag "Only with braces" {})
2577 (const :tag "Never interpret" nil)))
2363 2578
2364(defcustom org-export-with-TeX-macros t 2579(defcustom org-export-with-TeX-macros t
2365 "Non-nil means, interpret simple TeX-like macros when exporting. 2580 "Non-nil means, interpret simple TeX-like macros when exporting.
@@ -2467,7 +2682,7 @@ In the given sequence, these characters will be used for level 1, 2, ..."
2467 2682
2468(defcustom org-export-ascii-bullets '(?* ?+ ?-) 2683(defcustom org-export-ascii-bullets '(?* ?+ ?-)
2469 "Bullet characters for headlines converted to lists in ASCII export. 2684 "Bullet characters for headlines converted to lists in ASCII export.
2470The first character is is used for the first lest level generated in this 2685The first character is used for the first lest level generated in this
2471way, and so on. If there are more levels than characters given here, 2686way, and so on. If there are more levels than characters given here,
2472the list will be repeated. 2687the list will be repeated.
2473Note that plain lists will keep the same bullets as the have in the 2688Note that plain lists will keep the same bullets as the have in the
@@ -2534,6 +2749,7 @@ you can \"misuse\" it to add arbitrary text to the header."
2534 :group 'org-export-html 2749 :group 'org-export-html
2535 :type 'string) 2750 :type 'string)
2536 2751
2752
2537(defcustom org-export-html-title-format "<h1 class=\"title\">%s</h1>\n" 2753(defcustom org-export-html-title-format "<h1 class=\"title\">%s</h1>\n"
2538 "Format for typesetting the document title in HTML export." 2754 "Format for typesetting the document title in HTML export."
2539 :group 'org-export-html 2755 :group 'org-export-html
@@ -2567,7 +2783,7 @@ be linked only."
2567 (const :tag "Always" t) 2783 (const :tag "Always" t)
2568 (const :tag "When there is no description" maybe))) 2784 (const :tag "When there is no description" maybe)))
2569 2785
2570;; FIXME: rename 2786;; FIXME: rename
2571(defcustom org-export-html-expand t 2787(defcustom org-export-html-expand t
2572 "Non-nil means, for HTML export, treat @<...> as HTML tag. 2788 "Non-nil means, for HTML export, treat @<...> as HTML tag.
2573When nil, these tags will be exported as plain text and therefore 2789When nil, these tags will be exported as plain text and therefore
@@ -2579,12 +2795,24 @@ This option can also be set with the +OPTIONS line, e.g. \"@:nil\"."
2579 2795
2580(defcustom org-export-html-table-tag 2796(defcustom org-export-html-table-tag
2581 "<table border=\"2\" cellspacing=\"0\" cellpadding=\"6\" rules=\"groups\" frame=\"hsides\">" 2797 "<table border=\"2\" cellspacing=\"0\" cellpadding=\"6\" rules=\"groups\" frame=\"hsides\">"
2582 "The HTML tag used to start a table. 2798 "The HTML tag that is used to start a table.
2583This must be a <table> tag, but you may change the options like 2799This must be a <table> tag, but you may change the options like
2584borders and spacing." 2800borders and spacing."
2585 :group 'org-export-html 2801 :group 'org-export-html
2586 :type 'string) 2802 :type 'string)
2587 2803
2804(defcustom org-export-table-header-tags '("<th>" . "</th>")
2805 "The opening tag for table header fields.
2806This is customizable so that alignment options can be specified."
2807 :group 'org-export-tables
2808 :type '(cons (string :tag "Opening tag") (string :tag "Closing tag")))
2809
2810(defcustom org-export-table-data-tags '("<td>" . "</td>")
2811 "The opening tag for table data fields.
2812This is customizable so that alignment options can be specified."
2813 :group 'org-export-tables
2814 :type '(cons (string :tag "Opening tag") (string :tag "Closing tag")))
2815
2588(defcustom org-export-html-with-timestamp nil 2816(defcustom org-export-html-with-timestamp nil
2589 "If non-nil, write `org-export-html-html-helper-timestamp' 2817 "If non-nil, write `org-export-html-html-helper-timestamp'
2590into the exported HTML text. Otherwise, the buffer will just be saved 2818into the exported HTML text. Otherwise, the buffer will just be saved
@@ -2618,6 +2846,12 @@ The file name should be absolute."
2618 (const :tag "Unfinished" t) 2846 (const :tag "Unfinished" t)
2619 (const :tag "All" all))) 2847 (const :tag "All" all)))
2620 2848
2849(defcustom org-icalendar-include-sexps t
2850 "Non-nil means, export to iCalendar files should also cover sexp entries.
2851These are entries like in the diary, but directly in an Org-mode file."
2852 :group 'org-export-icalendar
2853 :type 'boolean)
2854
2621(defcustom org-icalendar-combined-name "OrgMode" 2855(defcustom org-icalendar-combined-name "OrgMode"
2622 "Calendar name for the combined iCalendar representing all agenda files." 2856 "Calendar name for the combined iCalendar representing all agenda files."
2623 :group 'org-export-icalendar 2857 :group 'org-export-icalendar
@@ -2690,8 +2924,6 @@ Changing this variable requires a restart of Emacs to take effect."
2690 (setq markers (concat (replace-match "" t t markers) "^"))) 2924 (setq markers (concat (replace-match "" t t markers) "^")))
2691 (if (string-match "-" markers) 2925 (if (string-match "-" markers)
2692 (setq markers (concat (replace-match "" t t markers) "-"))) 2926 (setq markers (concat (replace-match "" t t markers) "-")))
2693; (while (>= (setq nl (1- nl)) 0) (setq body1 (concat body1 "\n?" body "*?")))
2694; (while (>= (setq nl (1- nl)) 0) (setq body1 (concat body1 "\\(?:\n?" body "*?\\)?")))
2695 (if (> nl 0) 2927 (if (> nl 0)
2696 (setq body1 (concat body1 "\\(?:\n" body "*?\\)\\{0," 2928 (setq body1 (concat body1 "\\(?:\n" body "*?\\)\\{0,"
2697 (int-to-string nl) "\\}"))) 2929 (int-to-string nl) "\\}")))
@@ -2701,15 +2933,15 @@ Changing this variable requires a restart of Emacs to take effect."
2701 "\\(" 2933 "\\("
2702 "\\([" markers "]\\)" 2934 "\\([" markers "]\\)"
2703 "\\(" 2935 "\\("
2704 "[^" border markers "]" 2936 "[^" border (if (and nil stacked) markers) "]"
2705 body1 2937 body1
2706 "[^" border markers "]" 2938 "[^" border (if (and nil stacked) markers) "]"
2707 "\\)" 2939 "\\)"
2708 "\\3\\)" 2940 "\\3\\)"
2709 "\\([" post (if stacked markers) "]\\|$\\)"))))) 2941 "\\([" post (if stacked markers) "]\\|$\\)")))))
2710 2942
2711(defcustom org-emphasis-regexp-components 2943(defcustom org-emphasis-regexp-components
2712 '(" \t('\"" " \t.,?;'\")" " \t\r\n," "." 1 nil) 2944 '(" \t('\"" "- \t.,:?;'\")" " \t\r\n,\"'" "." 1 nil)
2713 "Components used to build the reqular expression for emphasis. 2945 "Components used to build the reqular expression for emphasis.
2714This is a list with 6 entries. Terminology: In an emphasis string 2946This is a list with 6 entries. Terminology: In an emphasis string
2715like \" *strong word* \", we call the initial space PREMATCH, the final 2947like \" *strong word* \", we call the initial space PREMATCH, the final
@@ -2719,8 +2951,7 @@ specify what is allowed/forbidden in each part:
2719 2951
2720pre Chars allowed as prematch. Beginning of line will be allowed too. 2952pre Chars allowed as prematch. Beginning of line will be allowed too.
2721post Chars allowed as postmatch. End of line will be allowed too. 2953post Chars allowed as postmatch. End of line will be allowed too.
2722border The chars *forbidden* as border characters. In addition to the 2954border The chars *forbidden* as border characters.
2723 characters given here, all marker characters are forbidden too.
2724body-regexp A regexp like \".\" to match a body character. Don't use 2955body-regexp A regexp like \".\" to match a body character. Don't use
2725 non-shy groups here, and don't allow newline here. 2956 non-shy groups here, and don't allow newline here.
2726newline The maximum number of newlines allowed in an emphasis exp. 2957newline The maximum number of newlines allowed in an emphasis exp.
@@ -2745,11 +2976,11 @@ Use customize to modify this, or restart Emacs after changing it."
2745 ("_" underline "<u>" "</u>") 2976 ("_" underline "<u>" "</u>")
2746 ("=" shadow "<code>" "</code>") 2977 ("=" shadow "<code>" "</code>")
2747 ("+" (:strike-through t) "<del>" "</del>") 2978 ("+" (:strike-through t) "<del>" "</del>")
2748) 2979 )
2749"Special syntax for emphasized text. 2980"Special syntax for emphasized text.
2750Text starting and ending with a special character will be emphasized, for 2981Text starting and ending with a special character will be emphasized, for
2751example *bold*, _underlined_ and /italic/. This variable sets the marker 2982example *bold*, _underlined_ and /italic/. This variable sets the marker
2752characters, the face to bbe used by font-lock for highlighting in Org-mode 2983characters, the face to be used by font-lock for highlighting in Org-mode
2753Emacs buffers, and the HTML tags to be used for this. 2984Emacs buffers, and the HTML tags to be used for this.
2754Use customize to modify this, or restart Emacs after changing it." 2985Use customize to modify this, or restart Emacs after changing it."
2755 :group 'org-font-lock 2986 :group 'org-font-lock
@@ -2894,15 +3125,6 @@ color of the frame."
2894 "Face for deadlines and TODO keywords." 3125 "Face for deadlines and TODO keywords."
2895 :group 'org-faces) 3126 :group 'org-faces)
2896 3127
2897(defface org-headline-done ;; font-lock-string-face
2898 (org-compatible-face
2899 '((((class color) (min-colors 16) (background light)) (:foreground "RosyBrown"))
2900 (((class color) (min-colors 16) (background dark)) (:foreground "LightSalmon"))
2901 (((class color) (min-colors 8) (background light)) (:bold nil))))
2902 "Face used to indicate that a headline is DONE.
2903This face is only used if `org-fontify-done-headline' is set."
2904 :group 'org-faces)
2905
2906(defface org-archived ; similar to shadow 3128(defface org-archived ; similar to shadow
2907 (org-compatible-face 3129 (org-compatible-face
2908 '((((class color grayscale) (min-colors 88) (background light)) 3130 '((((class color grayscale) (min-colors 88) (background light))
@@ -2930,6 +3152,13 @@ This face is only used if `org-fontify-done-headline' is set."
2930 "Face for links." 3152 "Face for links."
2931 :group 'org-faces) 3153 :group 'org-faces)
2932 3154
3155(defface org-sexp-date
3156 '((((class color) (background light)) (:foreground "Purple"))
3157 (((class color) (background dark)) (:foreground "Cyan"))
3158 (t (:underline t)))
3159 "Face for links."
3160 :group 'org-faces)
3161
2933(defface org-tag 3162(defface org-tag
2934 '((t (:bold t))) 3163 '((t (:bold t)))
2935 "Face for tags." 3164 "Face for tags."
@@ -2951,7 +3180,17 @@ This face is only used if `org-fontify-done-headline' is set."
2951 (((class color) (min-colors 16) (background dark)) (:foreground "PaleGreen" :bold t)) 3180 (((class color) (min-colors 16) (background dark)) (:foreground "PaleGreen" :bold t))
2952 (((class color) (min-colors 8)) (:foreground "green")) 3181 (((class color) (min-colors 8)) (:foreground "green"))
2953 (t (:bold t)))) 3182 (t (:bold t))))
2954 "Face used for DONE." 3183 "Face used for todo keywords that indicate DONE items."
3184 :group 'org-faces)
3185
3186(defface org-headline-done ;; font-lock-string-face
3187 (org-compatible-face
3188 '((((class color) (min-colors 16) (background light)) (:foreground "RosyBrown"))
3189 (((class color) (min-colors 16) (background dark)) (:foreground "LightSalmon"))
3190 (((class color) (min-colors 8) (background light)) (:bold nil))))
3191 "Face used to indicate that a headline is DONE.
3192This face is only used if `org-fontify-done-headline' is set. If applies
3193to the part of the headline after the DONE keyword."
2955 :group 'org-faces) 3194 :group 'org-faces)
2956 3195
2957(defface org-table ;; font-lock-function-name-face 3196(defface org-table ;; font-lock-function-name-face
@@ -2975,6 +3214,17 @@ This face is only used if `org-fontify-done-headline' is set."
2975 "Face for formulas." 3214 "Face for formulas."
2976 :group 'org-faces) 3215 :group 'org-faces)
2977 3216
3217(defface org-agenda-structure ;; font-lock-function-name-face
3218 (org-compatible-face
3219 '((((class color) (min-colors 88) (background light)) (:foreground "Blue1"))
3220 (((class color) (min-colors 88) (background dark)) (:foreground "LightSkyBlue"))
3221 (((class color) (min-colors 16) (background light)) (:foreground "Blue"))
3222 (((class color) (min-colors 16) (background dark)) (:foreground "LightSkyBlue"))
3223 (((class color) (min-colors 8)) (:foreground "blue" :bold t))
3224 (t (:bold t))))
3225 "Face used in agenda for captions and dates."
3226 :group 'org-faces)
3227
2978(defface org-scheduled-today 3228(defface org-scheduled-today
2979 (org-compatible-face 3229 (org-compatible-face
2980 '((((class color) (min-colors 88) (background light)) (:foreground "DarkGreen")) 3230 '((((class color) (min-colors 88) (background light)) (:foreground "DarkGreen"))
@@ -3021,9 +3271,6 @@ This face is only used if `org-fontify-done-headline' is set."
3021 3271
3022;;; Variables for pre-computed regular expressions, all buffer local 3272;;; Variables for pre-computed regular expressions, all buffer local
3023 3273
3024(defvar org-done-string nil
3025 "The last string in `org-todo-keywords', indicating an item is DONE.")
3026(make-variable-buffer-local 'org-done-string)
3027(defvar org-todo-regexp nil 3274(defvar org-todo-regexp nil
3028 "Matches any of the TODO state keywords.") 3275 "Matches any of the TODO state keywords.")
3029(make-variable-buffer-local 'org-todo-regexp) 3276(make-variable-buffer-local 'org-todo-regexp)
@@ -3043,12 +3290,6 @@ Also put tags into group 4 if tags are present.")
3043(defvar org-looking-at-done-regexp nil 3290(defvar org-looking-at-done-regexp nil
3044 "Matches the DONE keyword a point.") 3291 "Matches the DONE keyword a point.")
3045(make-variable-buffer-local 'org-looking-at-done-regexp) 3292(make-variable-buffer-local 'org-looking-at-done-regexp)
3046(defvar org-todo-kwd-priority-p nil
3047 "Do TODO items have priorities?")
3048(make-variable-buffer-local 'org-todo-kwd-priority-p)
3049(defvar org-todo-kwd-max-priority nil
3050 "Maximum priority of TODO items.")
3051(make-variable-buffer-local 'org-todo-kwd-max-priority)
3052(defvar org-ds-keyword-length 12 3293(defvar org-ds-keyword-length 12
3053 "Maximum length of the Deadline and SCHEDULED keywords.") 3294 "Maximum length of the Deadline and SCHEDULED keywords.")
3054(make-variable-buffer-local 'org-ds-keyword-length) 3295(make-variable-buffer-local 'org-ds-keyword-length)
@@ -3080,6 +3321,9 @@ Also put tags into group 4 if tags are present.")
3080(defvar org-maybe-keyword-time-regexp nil 3321(defvar org-maybe-keyword-time-regexp nil
3081 "Matches a timestamp, possibly preceeded by a keyword.") 3322 "Matches a timestamp, possibly preceeded by a keyword.")
3082(make-variable-buffer-local 'org-maybe-keyword-time-regexp) 3323(make-variable-buffer-local 'org-maybe-keyword-time-regexp)
3324(defvar org-planning-or-clock-line-re nil
3325 "Matches a line with planning or clock info.")
3326(make-variable-buffer-local 'org-planning-or-clock-line-re)
3083 3327
3084(defconst org-rm-props '(invisible t face t keymap t intangible t mouse-face t 3328(defconst org-rm-props '(invisible t face t keymap t intangible t mouse-face t
3085 rear-nonsticky t mouse-map t fontified t) 3329 rear-nonsticky t mouse-map t fontified t)
@@ -3102,6 +3346,12 @@ Also put tags into group 4 if tags are present.")
3102 ((assoc key option) (cdr (assoc key option))) 3346 ((assoc key option) (cdr (assoc key option)))
3103 (t (cdr (assq 'default option))))) 3347 (t (cdr (assq 'default option)))))
3104 3348
3349(defsubst org-inhibit-invisibility ()
3350 "Modified `buffer-invisibility-spec' for Emacs 21.
3351Some ops with invisible text do not work correctly on Emacs 21. For these
3352we turn off invisibility temporarily. Use this in a `let' form."
3353 (if (< emacs-major-version 22) nil buffer-invisibility-spec))
3354
3105(defsubst org-set-local (var value) 3355(defsubst org-set-local (var value)
3106 "Make VAR local in current buffer and set it to VALUE." 3356 "Make VAR local in current buffer and set it to VALUE."
3107 (set (make-variable-buffer-local var) value)) 3357 (set (make-variable-buffer-local var) value))
@@ -3139,7 +3389,11 @@ Also put tags into group 4 if tags are present.")
3139 ("nologging" org-log-done nil) 3389 ("nologging" org-log-done nil)
3140 ("lognotedone" org-log-done done push) 3390 ("lognotedone" org-log-done done push)
3141 ("lognotestate" org-log-done state push) 3391 ("lognotestate" org-log-done state push)
3142 ("lognoteclock-out" org-log-done clock-out push)) 3392 ("lognoteclock-out" org-log-done clock-out push)
3393 ("logrepeat" org-log-repeat t)
3394 ("nologrepeat" org-log-repeat nil)
3395 ("constcgs" constants-unit-system cgs)
3396 ("constSI" constants-unit-system SI))
3143 "Variable associated with STARTUP options for org-mode. 3397 "Variable associated with STARTUP options for org-mode.
3144Each element is a list of three items: The startup options as written 3398Each element is a list of three items: The startup options as written
3145in the #+STARTUP line, the corresponding variable, and the value to 3399in the #+STARTUP line, the corresponding variable, and the value to
@@ -3149,11 +3403,16 @@ means to push this value onto the list in the variable.")
3149(defun org-set-regexps-and-options () 3403(defun org-set-regexps-and-options ()
3150 "Precompute regular expressions for current buffer." 3404 "Precompute regular expressions for current buffer."
3151 (when (org-mode-p) 3405 (when (org-mode-p)
3406 (org-set-local 'org-todo-kwd-alist nil)
3407 (org-set-local 'org-todo-keywords-1 nil)
3408 (org-set-local 'org-done-keywords nil)
3409 (org-set-local 'org-todo-heads nil)
3410 (org-set-local 'org-todo-sets nil)
3152 (let ((re (org-make-options-regexp 3411 (let ((re (org-make-options-regexp
3153 '("CATEGORY" "SEQ_TODO" "PRI_TODO" "TYP_TODO" 3412 '("CATEGORY" "SEQ_TODO" "PRI_TODO" "TYP_TODO"
3154 "STARTUP" "ARCHIVE" "TAGS" "LINK"))) 3413 "STARTUP" "ARCHIVE" "TAGS" "LINK" "PRIORITIES")))
3155 (splitre "[ \t]+") 3414 (splitre "[ \t]+")
3156 kwds int key value cat arch tags links) 3415 kwds key value cat arch tags links hw dws tail sep kws1 prio)
3157 (save-excursion 3416 (save-excursion
3158 (save-restriction 3417 (save-restriction
3159 (widen) 3418 (widen)
@@ -3166,14 +3425,9 @@ means to push this value onto the list in the variable.")
3166 (setq value (replace-match "" t t value))) 3425 (setq value (replace-match "" t t value)))
3167 (setq cat (intern value))) 3426 (setq cat (intern value)))
3168 ((equal key "SEQ_TODO") 3427 ((equal key "SEQ_TODO")
3169 (setq int 'sequence 3428 (push (cons 'sequence (org-split-string value splitre)) kwds))
3170 kwds (append kwds (org-split-string value splitre))))
3171 ((equal key "PRI_TODO")
3172 (setq int 'priority
3173 kwds (append kwds (org-split-string value splitre))))
3174 ((equal key "TYP_TODO") 3429 ((equal key "TYP_TODO")
3175 (setq int 'type 3430 (push (cons 'type (org-split-string value splitre)) kwds))
3176 kwds (append kwds (org-split-string value splitre))))
3177 ((equal key "TAGS") 3431 ((equal key "TAGS")
3178 (setq tags (append tags (org-split-string value splitre)))) 3432 (setq tags (append tags (org-split-string value splitre))))
3179 ((equal key "LINK") 3433 ((equal key "LINK")
@@ -3181,17 +3435,20 @@ means to push this value onto the list in the variable.")
3181 (push (cons (match-string 1 value) 3435 (push (cons (match-string 1 value)
3182 (org-trim (match-string 2 value))) 3436 (org-trim (match-string 2 value)))
3183 links))) 3437 links)))
3438 ((equal key "PRIORITIES")
3439 (setq prio (org-split-string value " +")))
3184 ((equal key "STARTUP") 3440 ((equal key "STARTUP")
3185 (let ((opts (org-split-string value splitre)) 3441 (let ((opts (org-split-string value splitre))
3186 l var val) 3442 l var val)
3187 (while (setq l (assoc (pop opts) org-startup-options)) 3443 (while (setq l (pop opts))
3188 (setq var (nth 1 l) val (nth 2 l)) 3444 (when (setq l (assoc l org-startup-options))
3189 (if (not (nth 3 l)) 3445 (setq var (nth 1 l) val (nth 2 l))
3190 (set (make-local-variable var) val) 3446 (if (not (nth 3 l))
3191 (if (not (listp (symbol-value var))) 3447 (set (make-local-variable var) val)
3192 (set (make-local-variable var) nil)) 3448 (if (not (listp (symbol-value var)))
3193 (set (make-local-variable var) (symbol-value var)) 3449 (set (make-local-variable var) nil))
3194 (add-to-list var val))))) 3450 (set (make-local-variable var) (symbol-value var))
3451 (add-to-list var val))))))
3195 ((equal key "ARCHIVE") 3452 ((equal key "ARCHIVE")
3196 (string-match " *$" value) 3453 (string-match " *$" value)
3197 (setq arch (replace-match "" t t value)) 3454 (setq arch (replace-match "" t t value))
@@ -3199,10 +3456,38 @@ means to push this value onto the list in the variable.")
3199 '(face t fontified t) arch))) 3456 '(face t fontified t) arch)))
3200 ))) 3457 )))
3201 (and cat (org-set-local 'org-category cat)) 3458 (and cat (org-set-local 'org-category cat))
3202 (and kwds (org-set-local 'org-todo-keywords kwds)) 3459 (when prio
3460 (if (< (length prio) 3) (setq prio '("A" "C" "B")))
3461 (setq prio (mapcar 'string-to-char prio))
3462 (org-set-local 'org-highest-priority (nth 0 prio))
3463 (org-set-local 'org-lowest-priority (nth 1 prio))
3464 (org-set-local 'org-default-priority (nth 2 prio)))
3203 (and arch (org-set-local 'org-archive-location arch)) 3465 (and arch (org-set-local 'org-archive-location arch))
3204 (and int (org-set-local 'org-todo-interpretation int))
3205 (and links (setq org-link-abbrev-alist-local (nreverse links))) 3466 (and links (setq org-link-abbrev-alist-local (nreverse links)))
3467 ;; Process the TODO keywords
3468 (unless kwds
3469 ;; Use the global values as if they had been given locally.
3470 (setq kwds (default-value 'org-todo-keywords))
3471 (if (stringp (car kwds))
3472 (setq kwds (list (cons org-todo-interpretation
3473 (default-value 'org-todo-keywords)))))
3474 (setq kwds (reverse kwds)))
3475 (setq kwds (nreverse kwds))
3476 (let (inter kws)
3477 (while (setq kws (pop kwds))
3478 (setq inter (pop kws) sep (member "|" kws)
3479 kws1 (delete "|" (copy-sequence kws))
3480 hw (car kws1)
3481 dws (if sep (cdr sep) (last kws1))
3482 tail (list inter hw (car dws) (org-last dws)))
3483 (add-to-list 'org-todo-heads hw 'append)
3484 (push kws1 org-todo-sets)
3485 (setq org-done-keywords (append org-done-keywords dws nil))
3486 (mapc (lambda (x) (push (cons x tail) org-todo-kwd-alist)) kws1)
3487 (setq org-todo-keywords-1 (append org-todo-keywords-1 kws1 nil)))
3488 (setq org-todo-sets (nreverse org-todo-sets)
3489 org-todo-kwd-alist (nreverse org-todo-kwd-alist)))
3490 ;; Process the tags.
3206 (when tags 3491 (when tags
3207 (let (e tgs) 3492 (let (e tgs)
3208 (while (setq e (pop tags)) 3493 (while (setq e (pop tags))
@@ -3221,32 +3506,35 @@ means to push this value onto the list in the variable.")
3221 (push e org-tag-alist)))))) 3506 (push e org-tag-alist))))))
3222 3507
3223 ;; Compute the regular expressions and other local variables 3508 ;; Compute the regular expressions and other local variables
3224 (setq org-todo-kwd-priority-p (equal org-todo-interpretation 'priority) 3509 (if (not org-done-keywords)
3225 org-todo-kwd-max-priority (1- (length org-todo-keywords)) 3510 (setq org-done-keywords (list (org-last org-todo-keywords-1))))
3226 org-ds-keyword-length (+ 2 (max (length org-deadline-string) 3511 (setq org-ds-keyword-length (+ 2 (max (length org-deadline-string)
3227 (length org-scheduled-string))) 3512 (length org-scheduled-string)))
3228 org-done-string 3513 org-not-done-keywords
3229 (nth (1- (length org-todo-keywords)) org-todo-keywords) 3514 (org-delete-all org-done-keywords (copy-sequence org-todo-keywords-1))
3230 org-todo-regexp 3515 org-todo-regexp
3231 (concat "\\<\\(" (mapconcat 'regexp-quote org-todo-keywords 3516 (concat "\\<\\(" (mapconcat 'regexp-quote org-todo-keywords-1
3232 "\\|") "\\)\\>") 3517 "\\|") "\\)\\>")
3233 org-not-done-regexp 3518 org-not-done-regexp
3234 (concat "\\<\\(" 3519 (concat "\\<\\("
3235 (mapconcat 'regexp-quote 3520 (mapconcat 'regexp-quote org-not-done-keywords "\\|")
3236 (nreverse (cdr (reverse org-todo-keywords)))
3237 "\\|")
3238 "\\)\\>") 3521 "\\)\\>")
3239 org-todo-line-regexp 3522 org-todo-line-regexp
3240 (concat "^\\(\\*+\\)[ \t]*\\(?:\\(" 3523 (concat "^\\(\\*+\\)[ \t]*\\(?:\\("
3241 (mapconcat 'regexp-quote org-todo-keywords "\\|") 3524 (mapconcat 'regexp-quote org-todo-keywords-1 "\\|")
3242 "\\)\\>\\)? *\\(.*\\)") 3525 "\\)\\>\\)? *\\(.*\\)")
3243 org-nl-done-regexp 3526 org-nl-done-regexp
3244 (concat "[\r\n]\\*+[ \t]+" org-done-string "\\>") 3527 (concat "[\r\n]\\*+[ \t]+"
3528 "\\(?:" (mapconcat 'regexp-quote org-done-keywords "\\|")
3529 "\\)" "\\>")
3245 org-todo-line-tags-regexp 3530 org-todo-line-tags-regexp
3246 (concat "^\\(\\*+\\)[ \t]*\\(?:\\(" 3531 (concat "^\\(\\*+\\)[ \t]*\\(?:\\("
3247 (mapconcat 'regexp-quote org-todo-keywords "\\|") 3532 (mapconcat 'regexp-quote org-todo-keywords-1 "\\|")
3248 "\\)\\>\\)? *\\(.*?\\([ \t]:[a-zA-Z0-9:_@]+:[ \t]*\\)?$\\)") 3533 "\\)\\>\\)? *\\(.*?\\([ \t]:[a-zA-Z0-9:_@]+:[ \t]*\\)?$\\)")
3249 org-looking-at-done-regexp (concat "^" org-done-string "\\>") 3534 org-looking-at-done-regexp
3535 (concat "^" "\\(?:"
3536 (mapconcat 'regexp-quote org-done-keywords "\\|") "\\)"
3537 "\\>")
3250 org-deadline-regexp (concat "\\<" org-deadline-string) 3538 org-deadline-regexp (concat "\\<" org-deadline-string)
3251 org-deadline-time-regexp 3539 org-deadline-time-regexp
3252 (concat "\\<" org-deadline-string " *<\\([^>]+\\)>") 3540 (concat "\\<" org-deadline-string " *<\\([^>]+\\)>")
@@ -3274,7 +3562,12 @@ means to push this value onto the list in the variable.")
3274 "\\|" org-deadline-string 3562 "\\|" org-deadline-string
3275 "\\|" org-closed-string 3563 "\\|" org-closed-string
3276 "\\|" org-clock-string "\\)\\)?" 3564 "\\|" org-clock-string "\\)\\)?"
3277 " *\\([[<][0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}[^]\r\n>]*?[]>]\\)")) 3565 " *\\([[<][0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} [^]\r\n>]*?[]>]\\|<%%([^\r\n>]*>\\)")
3566 org-planning-or-clock-line-re
3567 (concat "\\(?:^[ \t]*\\(" org-scheduled-string
3568 "\\|" org-deadline-string
3569 "\\|" org-closed-string "\\|" org-clock-string "\\)\\>\\)")
3570 )
3278 3571
3279 (org-set-font-lock-defaults))) 3572 (org-set-font-lock-defaults)))
3280 3573
@@ -3325,6 +3618,7 @@ This is for getting out of special buffers like remember.")
3325(defvar annotation) ; from remember.el, dynamically scoped in `remember-mode' 3618(defvar annotation) ; from remember.el, dynamically scoped in `remember-mode'
3326(defvar initial) ; from remember.el, dynamically scoped in `remember-mode' 3619(defvar initial) ; from remember.el, dynamically scoped in `remember-mode'
3327(defvar org-latex-regexps) 3620(defvar org-latex-regexps)
3621(defvar constants-unit-system)
3328 3622
3329(defvar original-date) ; dynamically scoped in calendar.el does scope this 3623(defvar original-date) ; dynamically scoped in calendar.el does scope this
3330 3624
@@ -3394,6 +3688,7 @@ This is for getting out of special buffers like remember.")
3394 (overlay-get ovl prop))) 3688 (overlay-get ovl prop)))
3395(defun org-overlays-at (pos) 3689(defun org-overlays-at (pos)
3396 (if (featurep 'xemacs) (extents-at pos) (overlays-at pos))) 3690 (if (featurep 'xemacs) (extents-at pos) (overlays-at pos)))
3691;; FIXME: this is currently not used
3397(defun org-overlays-in (&optional start end) 3692(defun org-overlays-in (&optional start end)
3398 (if (featurep 'xemacs) 3693 (if (featurep 'xemacs)
3399 (extent-list nil start end) 3694 (extent-list nil start end)
@@ -3402,6 +3697,7 @@ This is for getting out of special buffers like remember.")
3402 (if (featurep 'xemacs) (extent-start-position o) (overlay-start o))) 3697 (if (featurep 'xemacs) (extent-start-position o) (overlay-start o)))
3403(defun org-overlay-end (o) 3698(defun org-overlay-end (o)
3404 (if (featurep 'xemacs) (extent-end-position o) (overlay-end o))) 3699 (if (featurep 'xemacs) (extent-end-position o) (overlay-end o)))
3700;; FIXME: this is currently not used
3405(defun org-find-overlays (prop &optional pos delete) 3701(defun org-find-overlays (prop &optional pos delete)
3406 "Find all overlays specifying PROP at POS or point. 3702 "Find all overlays specifying PROP at POS or point.
3407If DELETE is non-nil, delete all those overlays." 3703If DELETE is non-nil, delete all those overlays."
@@ -3455,6 +3751,7 @@ that can be added."
3455 (setq buffer-invisibility-spec 3751 (setq buffer-invisibility-spec
3456 (delete arg buffer-invisibility-spec))))) 3752 (delete arg buffer-invisibility-spec)))))
3457 3753
3754;; FIXME: this is currently not used
3458(defun org-in-invisibility-spec-p (arg) 3755(defun org-in-invisibility-spec-p (arg)
3459 "Is ARG a member of `buffer-invisibility-spec'?" 3756 "Is ARG a member of `buffer-invisibility-spec'?"
3460 (if (consp buffer-invisibility-spec) 3757 (if (consp buffer-invisibility-spec)
@@ -3477,6 +3774,7 @@ This variable is set by `org-before-change-function'.
3477(defvar org-mode-hook nil) 3774(defvar org-mode-hook nil)
3478(defvar org-inhibit-startup nil) ; Dynamically-scoped param. 3775(defvar org-inhibit-startup nil) ; Dynamically-scoped param.
3479(defvar org-agenda-keep-modes nil) ; Dynamically-scoped param. 3776(defvar org-agenda-keep-modes nil) ; Dynamically-scoped param.
3777(defvar org-table-buffer-is-an nil)
3480 3778
3481 3779
3482;;;###autoload 3780;;;###autoload
@@ -3521,7 +3819,6 @@ The following commands are available:
3521 (when (featurep 'xemacs) 3819 (when (featurep 'xemacs)
3522 (org-set-local 'line-move-ignore-invisible t)) 3820 (org-set-local 'line-move-ignore-invisible t))
3523 (setq outline-regexp "\\*+") 3821 (setq outline-regexp "\\*+")
3524 ;;(setq outline-regexp "\\(?:\\*+\\|[ \t]*\\(?:[-+*]\\|[0-9]+[.)]\\) \\)")
3525 (setq outline-level 'org-outline-level) 3822 (setq outline-level 'org-outline-level)
3526 (when (and org-ellipsis (stringp org-ellipsis) 3823 (when (and org-ellipsis (stringp org-ellipsis)
3527 (fboundp 'set-display-table-slot) (boundp 'buffer-display-table)) 3824 (fboundp 'set-display-table-slot) (boundp 'buffer-display-table))
@@ -3534,6 +3831,7 @@ The following commands are available:
3534 ;; Calc embedded 3831 ;; Calc embedded
3535 (org-set-local 'calc-embedded-open-mode "# ") 3832 (org-set-local 'calc-embedded-open-mode "# ")
3536 (modify-syntax-entry ?# "<") 3833 (modify-syntax-entry ?# "<")
3834 (modify-syntax-entry ?@ "w")
3537 (if org-startup-truncated (setq truncate-lines t)) 3835 (if org-startup-truncated (setq truncate-lines t))
3538 (org-set-local 'font-lock-unfontify-region-function 3836 (org-set-local 'font-lock-unfontify-region-function
3539 'org-unfontify-region) 3837 'org-unfontify-region)
@@ -3545,6 +3843,7 @@ The following commands are available:
3545 (org-add-hook 'kill-buffer-hook 'org-check-running-clock nil 'local) 3843 (org-add-hook 'kill-buffer-hook 'org-check-running-clock nil 'local)
3546 ;; Paragraphs and auto-filling 3844 ;; Paragraphs and auto-filling
3547 (org-set-autofill-regexps) 3845 (org-set-autofill-regexps)
3846 (setq indent-line-function 'org-indent-line-function)
3548 (org-update-radio-target-regexp) 3847 (org-update-radio-target-regexp)
3549 3848
3550 ;; Comment characters 3849 ;; Comment characters
@@ -3564,7 +3863,7 @@ The following commands are available:
3564 (if (and org-insert-mode-line-in-empty-file 3863 (if (and org-insert-mode-line-in-empty-file
3565 (interactive-p) 3864 (interactive-p)
3566 (= (point-min) (point-max))) 3865 (= (point-min) (point-max)))
3567 (insert " -*- mode: org -*-\n\n")) 3866 (insert "# -*- mode: org -*-\n\n"))
3568 3867
3569 (unless org-inhibit-startup 3868 (unless org-inhibit-startup
3570 (when org-startup-align-all-tables 3869 (when org-startup-align-all-tables
@@ -3578,6 +3877,8 @@ The following commands are available:
3578 (let ((this-command 'org-cycle) (last-command 'org-cycle)) 3877 (let ((this-command 'org-cycle) (last-command 'org-cycle))
3579 (org-cycle '(4)) (org-cycle '(4))))))) 3878 (org-cycle '(4)) (org-cycle '(4)))))))
3580 3879
3880(put 'org-mode 'flyspell-mode-predicate 'org-mode-flyspell-verify)
3881
3581(defsubst org-call-with-arg (command arg) 3882(defsubst org-call-with-arg (command arg)
3582 "Call COMMAND interactively, but pretend prefix are was ARG." 3883 "Call COMMAND interactively, but pretend prefix are was ARG."
3583 (let ((current-prefix-arg arg)) (call-interactively command))) 3884 (let ((current-prefix-arg arg)) (call-interactively command)))
@@ -3610,23 +3911,23 @@ that will be added to PLIST. Returns the string that was modified."
3610;;;; Font-Lock stuff, including the activators 3911;;;; Font-Lock stuff, including the activators
3611 3912
3612(defvar org-mouse-map (make-sparse-keymap)) 3913(defvar org-mouse-map (make-sparse-keymap))
3613(define-key org-mouse-map 3914(org-defkey org-mouse-map
3614 (if (featurep 'xemacs) [button2] [mouse-2]) 'org-open-at-mouse) 3915 (if (featurep 'xemacs) [button2] [mouse-2]) 'org-open-at-mouse)
3615(define-key org-mouse-map 3916(org-defkey org-mouse-map
3616 (if (featurep 'xemacs) [button3] [mouse-3]) 'org-find-file-at-mouse) 3917 (if (featurep 'xemacs) [button3] [mouse-3]) 'org-find-file-at-mouse)
3617(when org-mouse-1-follows-link 3918(when org-mouse-1-follows-link
3618 (define-key org-mouse-map [follow-link] 'mouse-face)) 3919 (org-defkey org-mouse-map [follow-link] 'mouse-face))
3619(when org-tab-follows-link 3920(when org-tab-follows-link
3620 (define-key org-mouse-map [(tab)] 'org-open-at-point) 3921 (org-defkey org-mouse-map [(tab)] 'org-open-at-point)
3621 (define-key org-mouse-map "\C-i" 'org-open-at-point)) 3922 (org-defkey org-mouse-map "\C-i" 'org-open-at-point))
3622(when org-return-follows-link 3923(when org-return-follows-link
3623 (define-key org-mouse-map [(return)] 'org-open-at-point) 3924 (org-defkey org-mouse-map [(return)] 'org-open-at-point)
3624 (define-key org-mouse-map "\C-m" 'org-open-at-point)) 3925 (org-defkey org-mouse-map "\C-m" 'org-open-at-point))
3625 3926
3626(require 'font-lock) 3927(require 'font-lock)
3627 3928
3628(defconst org-non-link-chars "]\t\n\r<>") 3929(defconst org-non-link-chars "]\t\n\r<>")
3629(defconst org-link-types '("https?" "ftp" "mailto" "file" "news" "bbdb" "vm" 3930(defconst org-link-types '("http" "https" "ftp" "mailto" "file" "news" "bbdb" "vm"
3630 "wl" "mhe" "rmail" "gnus" "shell" "info" "elisp")) 3931 "wl" "mhe" "rmail" "gnus" "shell" "info" "elisp"))
3631(defconst org-link-re-with-space 3932(defconst org-link-re-with-space
3632 (concat 3933 (concat
@@ -3679,21 +3980,17 @@ that will be added to PLIST. Returns the string that was modified."
3679 (concat "\\(" org-bracket-link-regexp "\\)\\|\\(" 3980 (concat "\\(" org-bracket-link-regexp "\\)\\|\\("
3680 org-angle-link-re "\\)\\|\\(" 3981 org-angle-link-re "\\)\\|\\("
3681 org-plain-link-re "\\)") 3982 org-plain-link-re "\\)")
3682 "Regular expression matching any link.") 3983 "Regular expression matching any link.")
3683 3984
3684(defconst org-ts-lengths 3985(defconst org-ts-regexp "<\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} [^\r\n>]*?\\)>"
3685 (cons (length (format-time-string (car org-time-stamp-formats)))
3686 (length (format-time-string (cdr org-time-stamp-formats))))
3687 "This holds the lengths of the two different time formats.")
3688(defconst org-ts-regexp "<\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}[^\r\n>]*?\\)>"
3689 "Regular expression for fast time stamp matching.") 3986 "Regular expression for fast time stamp matching.")
3690(defconst org-ts-regexp-both "[[<]\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}[^\r\n>]*?\\)[]>]" 3987(defconst org-ts-regexp-both "[[<]\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} [^\r\n>]*?\\)[]>]"
3691 "Regular expression for fast time stamp matching.") 3988 "Regular expression for fast time stamp matching.")
3692(defconst org-ts-regexp1 "\\(\\([0-9]\\{4\\}\\)-\\([0-9]\\{2\\}\\)-\\([0-9]\\{2\\}\\)\\([^]0-9>\r\n]*\\)\\(\\([0-9]\\{2\\}\\):\\([0-9]\\{2\\}\\)\\)?\\)" 3989(defconst org-ts-regexp1 "\\(\\([0-9]\\{4\\}\\)-\\([0-9]\\{2\\}\\)-\\([0-9]\\{2\\}\\) \\([^]0-9>\r\n]*\\)\\(\\([0-9]\\{2\\}\\):\\([0-9]\\{2\\}\\)\\)?\\)"
3693 "Regular expression matching time strings for analysis.") 3990 "Regular expression matching time strings for analysis.")
3694(defconst org-ts-regexp2 (concat "<" org-ts-regexp1 ">") 3991(defconst org-ts-regexp2 (concat "<" org-ts-regexp1 "[^>\n]\\{0,6\\}>")
3695 "Regular expression matching time stamps, with groups.") 3992 "Regular expression matching time stamps, with groups.")
3696(defconst org-ts-regexp3 (concat "[[<]" org-ts-regexp1 "[]>]") 3993(defconst org-ts-regexp3 (concat "[[<]" org-ts-regexp1 "[^]>\n]\\{0,6\\}[]>]")
3697 "Regular expression matching time stamps (also [..]), with groups.") 3994 "Regular expression matching time stamps (also [..]), with groups.")
3698(defconst org-tr-regexp (concat org-ts-regexp "--?-?" org-ts-regexp) 3995(defconst org-tr-regexp (concat org-ts-regexp "--?-?" org-ts-regexp)
3699 "Regular expression matching a time stamp range.") 3996 "Regular expression matching a time stamp range.")
@@ -3712,27 +4009,87 @@ The time stamps may be either active or inactive.")
3712 4009
3713(defun org-do-emphasis-faces (limit) 4010(defun org-do-emphasis-faces (limit)
3714 "Run through the buffer and add overlays to links." 4011 "Run through the buffer and add overlays to links."
3715 (if (re-search-forward org-emph-re limit t) 4012 (let (rtn)
3716 (progn 4013 (while (and (not rtn) (re-search-forward org-emph-re limit t))
3717 (font-lock-prepend-text-property (match-beginning 2) (match-end 2) 4014 (if (not (= (char-after (match-beginning 3))
3718 'face 4015 (char-after (match-beginning 4))))
3719 (nth 1 (assoc (match-string 3) 4016 (progn
3720 org-emphasis-alist))) 4017 (setq rtn t)
3721 (add-text-properties (match-beginning 2) (match-end 2) 4018 (font-lock-prepend-text-property (match-beginning 2) (match-end 2)
3722 '(font-lock-multiline t)) 4019 'face
3723 (backward-char 1) 4020 (nth 1 (assoc (match-string 3)
3724 t))) 4021 org-emphasis-alist)))
4022 (add-text-properties (match-beginning 2) (match-end 2)
4023 '(font-lock-multiline t))
4024 (backward-char 1))))
4025 rtn))
4026
4027(defun org-emphasize (&optional char)
4028 "Insert or change an emphasis, i.e. a font like bold or italic.
4029If there is an active region, change that region to a new emphasis.
4030If there is no region, just insert the marker characters and position
4031the cursor between them.
4032CHAR should be either the marker character, or the first character of the
4033HTML tag associated with that emphasis. If CHAR is a space, the means
4034to remove the emphasis of the selected region.
4035If char is not given (for example in an interactive call) it
4036will be prompted for."
4037 (interactive)
4038 (let ((eal org-emphasis-alist) e det
4039 (erc org-emphasis-regexp-components)
4040 (prompt "")
4041 (string "") beg end move tag c s)
4042 (if (org-region-active-p)
4043 (setq beg (region-beginning) end (region-end)
4044 string (buffer-substring beg end))
4045 (setq move t))
4046
4047 (while (setq e (pop eal))
4048 (setq tag (car (org-split-string (nth 2 e) "[ <>/]+"))
4049 c (aref tag 0))
4050 (push (cons c (string-to-char (car e))) det)
4051 (setq prompt (concat prompt (format " [%s%c]%s" (car e) c
4052 (substring tag 1)))))
4053 (unless char
4054 (message "%s" (concat "Emphasis marker or tag:" prompt))
4055 (setq char (read-char-exclusive)))
4056 (setq char (or (cdr (assoc char det)) char))
4057 (if (equal char ?\ )
4058 (setq s "" move nil)
4059 (unless (assoc (char-to-string char) org-emphasis-alist)
4060 (error "No such emphasis marker: \"%c\"" char))
4061 (setq s (char-to-string char)))
4062 (while (and (> (length string) 1)
4063 (equal (substring string 0 1) (substring string -1))
4064 (assoc (substring string 0 1) org-emphasis-alist))
4065 (setq string (substring string 1 -1)))
4066 (setq string (concat s string s))
4067 (if beg (delete-region beg end))
4068 (unless (or (bolp)
4069 (string-match (concat "[" (nth 0 erc) "\n]")
4070 (char-to-string (char-before (point)))))
4071 (insert " "))
4072 (unless (string-match (concat "[" (nth 1 erc) "\n]")
4073 (char-to-string (char-after (point))))
4074 (insert " ") (backward-char 1))
4075 (insert string)
4076 (and move (backward-char 1))))
3725 4077
3726(defun org-activate-plain-links (limit) 4078(defun org-activate-plain-links (limit)
3727 "Run through the buffer and add overlays to links." 4079 "Run through the buffer and add overlays to links."
3728 (if (re-search-forward org-plain-link-re limit t) 4080 (catch 'exit
3729 (progn 4081 (let (f)
3730 (add-text-properties (match-beginning 0) (match-end 0) 4082 (while (re-search-forward org-plain-link-re limit t)
3731 (list 'mouse-face 'highlight 4083 (setq f (get-text-property (match-beginning 0) 'face))
3732 'rear-nonsticky t 4084 (if (or (eq f 'org-tag)
3733 'keymap org-mouse-map 4085 (and (listp f) (memq 'org-tag f)))
3734 )) 4086 nil
3735 t))) 4087 (add-text-properties (match-beginning 0) (match-end 0)
4088 (list 'mouse-face 'highlight
4089 'rear-nonsticky t
4090 'keymap org-mouse-map
4091 ))
4092 (throw 'exit t))))))
3736 4093
3737(defun org-activate-angle-links (limit) 4094(defun org-activate-angle-links (limit)
3738 "Run through the buffer and add overlays to links." 4095 "Run through the buffer and add overlays to links."
@@ -3881,11 +4238,6 @@ between words."
3881 'keymap org-mouse-map)) 4238 'keymap org-mouse-map))
3882 t))) 4239 t)))
3883 4240
3884(defun org-font-lock-level ()
3885 (save-excursion
3886 (org-back-to-heading t)
3887 (- (match-end 0) (match-beginning 0))))
3888
3889(defun org-outline-level () 4241(defun org-outline-level ()
3890 (save-excursion 4242 (save-excursion
3891 (looking-at outline-regexp) 4243 (looking-at outline-regexp)
@@ -3906,20 +4258,20 @@ between words."
3906 '("^[ \t]*\\(\\(|\\|\\+-[-+]\\).*\\S-\\)" 4258 '("^[ \t]*\\(\\(|\\|\\+-[-+]\\).*\\S-\\)"
3907 (1 'org-table)) 4259 (1 'org-table))
3908 ;; Links 4260 ;; Links
4261 (if (memq 'tag lk) '(org-activate-tags (1 'org-tag prepend)))
3909 (if (memq 'angle lk) '(org-activate-angle-links (0 'org-link t))) 4262 (if (memq 'angle lk) '(org-activate-angle-links (0 'org-link t)))
3910 (if (memq 'plain lk) '(org-activate-plain-links (0 'org-link t))) 4263 (if (memq 'plain lk) '(org-activate-plain-links (0 'org-link t)))
3911 (if (memq 'bracket lk) '(org-activate-bracket-links (0 'org-link t))) 4264 (if (memq 'bracket lk) '(org-activate-bracket-links (0 'org-link t)))
3912 (if (memq 'radio lk) '(org-activate-target-links (0 'org-link t))) 4265 (if (memq 'radio lk) '(org-activate-target-links (0 'org-link t)))
3913 (if (memq 'date lk) '(org-activate-dates (0 'org-date t))) 4266 (if (memq 'date lk) '(org-activate-dates (0 'org-date t)))
3914 (if (memq 'tag lk) '(org-activate-tags (1 'org-tag prepend))) 4267 '("^&?%%(.*\\|<%%([^>\n]*?>" (0 'org-sexp-date t))
3915 '(org-hide-wide-columns (0 nil append)) 4268 '(org-hide-wide-columns (0 nil append))
3916 ;; TODO lines 4269 ;; TODO lines
3917 (list (concat "^\\*+[ \t]*" org-not-done-regexp) 4270 (list (concat "^\\*+[ \t]*" org-not-done-regexp)
3918 '(1 'org-todo t)) 4271 '(1 'org-todo t))
3919 ;; Priorities 4272 ;; Priorities
3920 (list (concat "\\[#[A-Z]\\]") '(0 'org-special-keyword t)) 4273 (list (concat "\\[#[A-Z0-9]\\]") '(0 'org-special-keyword t))
3921 ;; Special keywords 4274 ;; Special keywords
3922 (list org-repeat-re '(0 'org-special-keyword t))
3923 (list (concat "\\<" org-deadline-string) '(0 'org-special-keyword t)) 4275 (list (concat "\\<" org-deadline-string) '(0 'org-special-keyword t))
3924 (list (concat "\\<" org-scheduled-string) '(0 'org-special-keyword t)) 4276 (list (concat "\\<" org-scheduled-string) '(0 'org-special-keyword t))
3925 (list (concat "\\<" org-closed-string) '(0 'org-special-keyword t)) 4277 (list (concat "\\<" org-closed-string) '(0 'org-special-keyword t))
@@ -3942,9 +4294,13 @@ between words."
3942 '("^#.*" (0 'font-lock-comment-face t)) 4294 '("^#.*" (0 'font-lock-comment-face t))
3943 ;; DONE 4295 ;; DONE
3944 (if org-fontify-done-headline 4296 (if org-fontify-done-headline
3945 (list (concat "^[*]+ +\\<\\(" org-done-string "\\)\\(.*\\)\\>") 4297 (list (concat "^[*]+ +\\<\\("
4298 (mapconcat 'regexp-quote org-done-keywords "\\|")
4299 "\\)\\(.*\\)")
3946 '(1 'org-done t) '(2 'org-headline-done t)) 4300 '(1 'org-done t) '(2 'org-headline-done t))
3947 (list (concat "^[*]+ +\\<\\(" org-done-string "\\)\\>") 4301 (list (concat "^[*]+ +\\<\\("
4302 (mapconcat 'regexp-quote org-done-keywords "\\|")
4303 "\\)\\>")
3948 '(1 'org-done t))) 4304 '(1 'org-done t)))
3949 ;; Table stuff 4305 ;; Table stuff
3950 '("^[ \t]*\\(:.*\\)" (1 'org-table t)) 4306 '("^[ \t]*\\(:.*\\)" (1 'org-table t))
@@ -4022,8 +4378,8 @@ between words."
4022 `indent-relative', like TAB normally does. See the option 4378 `indent-relative', like TAB normally does. See the option
4023 `org-cycle-emulate-tab' for details. 4379 `org-cycle-emulate-tab' for details.
4024 4380
4025- Special case: if point is the the beginning of the buffer and there is 4381- Special case: if point is the beginning of the buffer and there is no
4026 no headline in line 1, this function will act as if called with prefix arg." 4382 headline in line 1, this function will act as if called with prefix arg."
4027 (interactive "P") 4383 (interactive "P")
4028 (let* ((outline-regexp 4384 (let* ((outline-regexp
4029 (if (and (org-mode-p) org-cycle-include-plain-lists) 4385 (if (and (org-mode-p) org-cycle-include-plain-lists)
@@ -4088,7 +4444,8 @@ between words."
4088 (- (funcall outline-level) arg))) 4444 (- (funcall outline-level) arg)))
4089 (org-show-subtree))) 4445 (org-show-subtree)))
4090 4446
4091 ((save-excursion (beginning-of-line 1) (looking-at outline-regexp)) 4447 ((and (save-excursion (beginning-of-line 1) (looking-at outline-regexp))
4448 (or (bolp) (not (eq org-cycle-emulate-tab 'exc-hl-bol))))
4092 ;; At a heading: rotate between three different views 4449 ;; At a heading: rotate between three different views
4093 (org-back-to-heading) 4450 (org-back-to-heading)
4094 (let ((goal-column 0) eoh eol eos) 4451 (let ((goal-column 0) eoh eol eos)
@@ -4102,20 +4459,30 @@ between words."
4102 (beginning-of-line 2)) (setq eol (point))) 4459 (beginning-of-line 2)) (setq eol (point)))
4103 (outline-end-of-heading) (setq eoh (point)) 4460 (outline-end-of-heading) (setq eoh (point))
4104 (org-end-of-subtree t) 4461 (org-end-of-subtree t)
4105 (skip-chars-forward " \t\n") 4462 (unless (eobp)
4106 (beginning-of-line 1) ; in case this is an item 4463 (skip-chars-forward " \t\n")
4464 (beginning-of-line 1) ; in case this is an item
4465 )
4107 (setq eos (1- (point)))) 4466 (setq eos (1- (point))))
4108 ;; Find out what to do next and set `this-command' 4467 ;; Find out what to do next and set `this-command'
4109 (cond 4468 (cond
4110 ((= eos eoh) 4469 ((= eos eoh)
4111 ;; Nothing is hidden behind this heading 4470 ;; Nothing is hidden behind this heading
4112 (message "EMPTY ENTRY") 4471 (message "EMPTY ENTRY")
4113 (setq org-cycle-subtree-status nil)) 4472 (setq org-cycle-subtree-status nil)
4473 (save-excursion
4474 (goto-char eos)
4475 (outline-next-heading)
4476 (if (org-invisible-p) (org-flag-heading nil))))
4114 ((>= eol eos) 4477 ((>= eol eos)
4115 ;; Entire subtree is hidden in one line: open it 4478 ;; Entire subtree is hidden in one line: open it
4116 (org-show-entry) 4479 (org-show-entry)
4117 (show-children) 4480 (show-children)
4118 (message "CHILDREN") 4481 (message "CHILDREN")
4482 (save-excursion
4483 (goto-char eos)
4484 (outline-next-heading)
4485 (if (org-invisible-p) (org-flag-heading nil)))
4119 (setq org-cycle-subtree-status 'children) 4486 (setq org-cycle-subtree-status 'children)
4120 (run-hook-with-args 'org-cycle-hook 'children)) 4487 (run-hook-with-args 'org-cycle-hook 'children))
4121 ((and (eq last-command this-command) 4488 ((and (eq last-command this-command)
@@ -4137,6 +4504,11 @@ between words."
4137 4504
4138 ((org-try-cdlatex-tab)) 4505 ((org-try-cdlatex-tab))
4139 4506
4507 ((and (eq org-cycle-emulate-tab 'exc-hl-bol)
4508 (or (not (bolp))
4509 (not (looking-at outline-regexp))))
4510 (call-interactively (global-key-binding "\t")))
4511
4140 ((if (and (memq org-cycle-emulate-tab '(white whitestart)) 4512 ((if (and (memq org-cycle-emulate-tab '(white whitestart))
4141 (save-excursion (beginning-of-line 1) (looking-at "[ \t]*")) 4513 (save-excursion (beginning-of-line 1) (looking-at "[ \t]*"))
4142 (or (and (eq org-cycle-emulate-tab 'white) 4514 (or (and (eq org-cycle-emulate-tab 'white)
@@ -4151,7 +4523,7 @@ between words."
4151 (progn 4523 (progn
4152 (beginning-of-line 1) 4524 (beginning-of-line 1)
4153 (and (looking-at "[ \t]+") (replace-match "")))) 4525 (and (looking-at "[ \t]+") (replace-match ""))))
4154 (indent-relative)) 4526 (call-interactively (global-key-binding "\t")))
4155 4527
4156 (t (save-excursion 4528 (t (save-excursion
4157 (org-back-to-heading) 4529 (org-back-to-heading)
@@ -4177,13 +4549,13 @@ of the first headline in the buffer. This is important, because if the
4177first headline is not level one, then (hide-sublevels 1) gives confusing 4549first headline is not level one, then (hide-sublevels 1) gives confusing
4178results." 4550results."
4179 (interactive) 4551 (interactive)
4180 (hide-sublevels (save-excursion 4552 (let ((level (save-excursion
4181 (goto-char (point-min)) 4553 (goto-char (point-min))
4182 (if (re-search-forward (concat "^" outline-regexp) nil t) 4554 (if (re-search-forward (concat "^" outline-regexp) nil t)
4183 (progn 4555 (progn
4184 (goto-char (match-beginning 0)) 4556 (goto-char (match-beginning 0))
4185 (funcall outline-level)) 4557 (funcall outline-level))))))
4186 1)))) 4558 (and level (hide-sublevels level))))
4187 4559
4188(defun org-content (&optional arg) 4560(defun org-content (&optional arg)
4189 "Show all headlines in the buffer, like a table of contents. 4561 "Show all headlines in the buffer, like a table of contents.
@@ -4210,13 +4582,53 @@ With numerical argument N, show content up to level N."
4210This function is the default value of the hook `org-cycle-hook'." 4582This function is the default value of the hook `org-cycle-hook'."
4211 (when (get-buffer-window (current-buffer)) 4583 (when (get-buffer-window (current-buffer))
4212 (cond 4584 (cond
4213 ((eq state 'overview) (org-first-headline-recenter 1)) 4585; ((eq state 'overview) (org-first-headline-recenter 1))
4586; ((eq state 'overview) (org-beginning-of-line))
4214 ((eq state 'content) nil) 4587 ((eq state 'content) nil)
4215 ((eq state 'all) nil) 4588 ((eq state 'all) nil)
4216 ((eq state 'folded) nil) 4589 ((eq state 'folded) nil)
4217 ((eq state 'children) (or (org-subtree-end-visible-p) (recenter 1))) 4590 ((eq state 'children) (or (org-subtree-end-visible-p) (recenter 1)))
4218 ((eq state 'subtree) (or (org-subtree-end-visible-p) (recenter 1)))))) 4591 ((eq state 'subtree) (or (org-subtree-end-visible-p) (recenter 1))))))
4219 4592
4593
4594(defun org-cycle-show-empty-lines (state)
4595 "Show empty lines above all visible headlines.
4596The region to be covered depends on STATE when called through
4597`org-cycle-hook'. Lisp program can use t for STATE to get the
4598entire buffer covered. Note that an empty line is only shown if there
4599are at least `org-cycle-separator-lines' empty lines before the headeline."
4600 (when (> org-cycle-separator-lines 0)
4601 (save-excursion
4602 (let* ((n org-cycle-separator-lines)
4603 (re (cond
4604 ((= n 1) "\\(\n[ \t]*\n\\*+\\) ")
4605 ((= n 2) "^[ \t]*\\(\n[ \t]*\n\\*+\\) ")
4606 (t (let ((ns (number-to-string (- n 2))))
4607 (concat "^\\(?:[ \t]*\n\\)\\{" ns "," ns "\\}"
4608 "[ \t]*\\(\n[ \t]*\n\\*+\\) ")))))
4609 beg end)
4610 (cond
4611 ((memq state '(overview contents t))
4612 (setq beg (point-min) end (point-max)))
4613 ((memq state '(children folded))
4614 (setq beg (point) end (progn (org-end-of-subtree t t)
4615 (beginning-of-line 2)
4616 (point)))))
4617 (when beg
4618 (goto-char beg)
4619 (while (re-search-forward re end t)
4620 (if (not (get-char-property (match-end 1) 'invisible))
4621 (outline-flag-region
4622 (match-beginning 1) (match-end 1) nil)))))))
4623 ;; Never hide empty lines at the end of the file.
4624 (save-excursion
4625 (goto-char (point-max))
4626 (outline-previous-heading)
4627 (outline-end-of-heading)
4628 (if (and (looking-at "[ \t\n]+")
4629 (= (match-end 0) (point-max)))
4630 (outline-flag-region (point) (match-end 0) nil))))
4631
4220(defun org-subtree-end-visible-p () 4632(defun org-subtree-end-visible-p ()
4221 "Is the end of the current subtree visible?" 4633 "Is the end of the current subtree visible?"
4222 (pos-visible-in-window-p 4634 (pos-visible-in-window-p
@@ -4238,27 +4650,27 @@ Optional argument N means, put the headline into the Nth line of the window."
4238(let ((cmds '(isearch-forward isearch-backward)) cmd) 4650(let ((cmds '(isearch-forward isearch-backward)) cmd)
4239 (while (setq cmd (pop cmds)) 4651 (while (setq cmd (pop cmds))
4240 (substitute-key-definition cmd cmd org-goto-map global-map))) 4652 (substitute-key-definition cmd cmd org-goto-map global-map)))
4241(define-key org-goto-map "\C-m" 'org-goto-ret) 4653(org-defkey org-goto-map "\C-m" 'org-goto-ret)
4242(define-key org-goto-map [(left)] 'org-goto-left) 4654(org-defkey org-goto-map [(left)] 'org-goto-left)
4243(define-key org-goto-map [(right)] 'org-goto-right) 4655(org-defkey org-goto-map [(right)] 'org-goto-right)
4244(define-key org-goto-map [(?q)] 'org-goto-quit) 4656(org-defkey org-goto-map [(?q)] 'org-goto-quit)
4245(define-key org-goto-map [(control ?g)] 'org-goto-quit) 4657(org-defkey org-goto-map [(control ?g)] 'org-goto-quit)
4246(define-key org-goto-map "\C-i" 'org-cycle) 4658(org-defkey org-goto-map "\C-i" 'org-cycle)
4247(define-key org-goto-map [(tab)] 'org-cycle) 4659(org-defkey org-goto-map [(tab)] 'org-cycle)
4248(define-key org-goto-map [(down)] 'outline-next-visible-heading) 4660(org-defkey org-goto-map [(down)] 'outline-next-visible-heading)
4249(define-key org-goto-map [(up)] 'outline-previous-visible-heading) 4661(org-defkey org-goto-map [(up)] 'outline-previous-visible-heading)
4250(define-key org-goto-map "n" 'outline-next-visible-heading) 4662(org-defkey org-goto-map "n" 'outline-next-visible-heading)
4251(define-key org-goto-map "p" 'outline-previous-visible-heading) 4663(org-defkey org-goto-map "p" 'outline-previous-visible-heading)
4252(define-key org-goto-map "f" 'outline-forward-same-level) 4664(org-defkey org-goto-map "f" 'outline-forward-same-level)
4253(define-key org-goto-map "b" 'outline-backward-same-level) 4665(org-defkey org-goto-map "b" 'outline-backward-same-level)
4254(define-key org-goto-map "u" 'outline-up-heading) 4666(org-defkey org-goto-map "u" 'outline-up-heading)
4255(define-key org-goto-map "\C-c\C-n" 'outline-next-visible-heading) 4667(org-defkey org-goto-map "\C-c\C-n" 'outline-next-visible-heading)
4256(define-key org-goto-map "\C-c\C-p" 'outline-previous-visible-heading) 4668(org-defkey org-goto-map "\C-c\C-p" 'outline-previous-visible-heading)
4257(define-key org-goto-map "\C-c\C-f" 'outline-forward-same-level) 4669(org-defkey org-goto-map "\C-c\C-f" 'outline-forward-same-level)
4258(define-key org-goto-map "\C-c\C-b" 'outline-backward-same-level) 4670(org-defkey org-goto-map "\C-c\C-b" 'outline-backward-same-level)
4259(define-key org-goto-map "\C-c\C-u" 'outline-up-heading) 4671(org-defkey org-goto-map "\C-c\C-u" 'outline-up-heading)
4260(let ((l '(1 2 3 4 5 6 7 8 9 0))) 4672(let ((l '(1 2 3 4 5 6 7 8 9 0)))
4261 (while l (define-key org-goto-map (int-to-string (pop l)) 'digit-argument))) 4673 (while l (org-defkey org-goto-map (int-to-string (pop l)) 'digit-argument)))
4262 4674
4263(defconst org-goto-help 4675(defconst org-goto-help
4264"Select a location to jump to, press RET 4676"Select a location to jump to, press RET
@@ -4474,10 +4886,13 @@ the current headline."
4474 pos) 4886 pos)
4475 (cond 4887 (cond
4476 ((and (org-on-heading-p) (bolp) 4888 ((and (org-on-heading-p) (bolp)
4477 (save-excursion (backward-char 1) (not (org-invisible-p)))) 4889 (or (bobp)
4890 (save-excursion (backward-char 1) (not (org-invisible-p)))))
4478 (open-line (if blank 2 1))) 4891 (open-line (if blank 2 1)))
4479 ((and (bolp) (save-excursion 4892 ((and (bolp)
4480 (backward-char 1) (not (org-invisible-p)))) 4893 (or (bobp)
4894 (save-excursion
4895 (backward-char 1) (not (org-invisible-p)))))
4481 nil) 4896 nil)
4482 (t (newline (if blank 2 1)))) 4897 (t (newline (if blank 2 1))))
4483 (insert head) (just-one-space) 4898 (insert head) (just-one-space)
@@ -4500,8 +4915,8 @@ state (TODO by default). Also with prefix arg, force first state."
4500 (looking-at org-todo-line-regexp)) 4915 (looking-at org-todo-line-regexp))
4501 (if (or arg 4916 (if (or arg
4502 (not (match-beginning 2)) 4917 (not (match-beginning 2))
4503 (equal (match-string 2) org-done-string)) 4918 (member (match-string 2) org-done-keywords))
4504 (insert (car org-todo-keywords) " ") 4919 (insert (car org-todo-keywords-1) " ")
4505 (insert (match-string 2) " ")))) 4920 (insert (match-string 2) " "))))
4506 4921
4507;;; Promotion and Demotion 4922;;; Promotion and Demotion
@@ -4724,6 +5139,7 @@ is signaled in this case."
4724 (setq txt (buffer-substring beg end)) 5139 (setq txt (buffer-substring beg end))
4725 (delete-region beg end) 5140 (delete-region beg end)
4726 (insert txt) 5141 (insert txt)
5142 (or (bolp) (insert "\n"))
4727 (goto-char ins-point) 5143 (goto-char ins-point)
4728 (if folded (hide-subtree)) 5144 (if folded (hide-subtree))
4729 (move-marker ins-point nil))) 5145 (move-marker ins-point nil)))
@@ -4749,7 +5165,9 @@ This is a short-hand for marking the subtree and then copying it.
4749If CUT is non-nil, actually cut the subtree." 5165If CUT is non-nil, actually cut the subtree."
4750 (interactive) 5166 (interactive)
4751 (let (beg end folded) 5167 (let (beg end folded)
4752 (org-back-to-heading) 5168 (if (interactive-p)
5169 (org-back-to-heading nil) ; take what looks like a subtree
5170 (org-back-to-heading t)) ; take what is really there
4753 (setq beg (point)) 5171 (setq beg (point))
4754 (save-match-data 5172 (save-match-data
4755 (save-excursion (outline-end-of-heading) 5173 (save-excursion (outline-end-of-heading)
@@ -4888,7 +5306,7 @@ If optional TXT is given, check this string instead of the current kill."
4888 (save-excursion 5306 (save-excursion
4889 (narrow-to-region 5307 (narrow-to-region
4890 (progn (org-back-to-heading) (point)) 5308 (progn (org-back-to-heading) (point))
4891 (progn (org-end-of-subtree t) (point))))) 5309 (progn (org-end-of-subtree t t) (point)))))
4892 5310
4893 5311
4894;;; Outline Sorting 5312;;; Outline Sorting
@@ -5130,7 +5548,7 @@ with the current numbers. With optional prefix argument ALL, do this for
5130the whole buffer." 5548the whole buffer."
5131 (interactive "P") 5549 (interactive "P")
5132 (save-excursion 5550 (save-excursion
5133 (let* ((buffer-invisibility-spec nil) ; Emacs 21 compatibility 5551 (let* ((buffer-invisibility-spec (org-inhibit-invisibility)) ; Emacs 21
5134 (beg (progn (outline-back-to-heading) (point))) 5552 (beg (progn (outline-back-to-heading) (point)))
5135 (end (move-marker (make-marker) 5553 (end (move-marker (make-marker)
5136 (progn (outline-next-heading) (point)))) 5554 (progn (outline-next-heading) (point))))
@@ -5214,13 +5632,24 @@ leave it alone. If it is larger than ind, set it to the target."
5214 (concat (make-string i1 ?\ ) l) 5632 (concat (make-string i1 ?\ ) l)
5215 l))) 5633 l)))
5216 5634
5635(defcustom org-empty-line-terminates-plain-lists nil
5636 "Non-nil means, an empty line ends all plain list levels.
5637When nil, empty lines are part of the preceeding item."
5638 :group 'org-plain-lists
5639 :type 'boolean)
5640
5217(defun org-beginning-of-item () 5641(defun org-beginning-of-item ()
5218 "Go to the beginning of the current hand-formatted item. 5642 "Go to the beginning of the current hand-formatted item.
5219If the cursor is not in an item, throw an error." 5643If the cursor is not in an item, throw an error."
5220 (interactive) 5644 (interactive)
5221 (let ((pos (point)) 5645 (let ((pos (point))
5222 (limit (save-excursion (org-back-to-heading) 5646 (limit (save-excursion
5223 (beginning-of-line 2) (point))) 5647 (condition-case nil
5648 (progn
5649 (org-back-to-heading)
5650 (beginning-of-line 2) (point))
5651 (error (point-min)))))
5652 (ind-empty (if org-empty-line-terminates-plain-lists 0 10000))
5224 ind ind1) 5653 ind ind1)
5225 (if (org-at-item-p) 5654 (if (org-at-item-p)
5226 (beginning-of-line 1) 5655 (beginning-of-line 1)
@@ -5230,12 +5659,14 @@ If the cursor is not in an item, throw an error."
5230 (if (catch 'exit 5659 (if (catch 'exit
5231 (while t 5660 (while t
5232 (beginning-of-line 0) 5661 (beginning-of-line 0)
5233 (if (< (point) limit) (throw 'exit nil)) 5662 (if (or (bobp) (< (point) limit)) (throw 'exit nil))
5234 (unless (looking-at "[ \t]*$") 5663
5664 (if (looking-at "[ \t]*$")
5665 (setq ind1 ind-empty)
5235 (skip-chars-forward " \t") 5666 (skip-chars-forward " \t")
5236 (setq ind1 (current-column)) 5667 (setq ind1 (current-column)))
5237 (if (< ind1 ind) 5668 (if (< ind1 ind)
5238 (throw 'exit (org-at-item-p)))))) 5669 (progn (beginning-of-line 1) (throw 'exit (org-at-item-p))))))
5239 nil 5670 nil
5240 (goto-char pos) 5671 (goto-char pos)
5241 (error "Not in an item"))))) 5672 (error "Not in an item")))))
@@ -5244,22 +5675,27 @@ If the cursor is not in an item, throw an error."
5244 "Go to the end of the current hand-formatted item. 5675 "Go to the end of the current hand-formatted item.
5245If the cursor is not in an item, throw an error." 5676If the cursor is not in an item, throw an error."
5246 (interactive) 5677 (interactive)
5247 (let ((pos (point)) 5678 (let* ((pos (point))
5248 (limit (save-excursion (outline-next-heading) (point))) 5679 ind1
5249 (ind (save-excursion 5680 (ind-empty (if org-empty-line-terminates-plain-lists 0 10000))
5250 (org-beginning-of-item) 5681 (limit (save-excursion (outline-next-heading) (point)))
5251 (skip-chars-forward " \t") 5682 (ind (save-excursion
5252 (current-column))) 5683 (org-beginning-of-item)
5253 ind1) 5684 (skip-chars-forward " \t")
5254 (if (catch 'exit 5685 (current-column)))
5255 (while t 5686 (end (catch 'exit
5256 (beginning-of-line 2) 5687 (while t
5257 (if (>= (point) limit) (throw 'exit t)) 5688 (beginning-of-line 2)
5258 (unless (looking-at "[ \t]*$") 5689 (if (eobp) (throw 'exit (point)))
5259 (skip-chars-forward " \t") 5690 (if (>= (point) limit) (throw 'exit (point-at-bol)))
5260 (setq ind1 (current-column)) 5691 (if (looking-at "[ \t]*$")
5261 (if (<= ind1 ind) (throw 'exit t))))) 5692 (setq ind1 ind-empty)
5262 (beginning-of-line 1) 5693 (skip-chars-forward " \t")
5694 (setq ind1 (current-column)))
5695 (if (<= ind1 ind)
5696 (throw 'exit (point-at-bol)))))))
5697 (if end
5698 (goto-char end)
5263 (goto-char pos) 5699 (goto-char pos)
5264 (error "Not in an item")))) 5700 (error "Not in an item"))))
5265 5701
@@ -5338,7 +5774,11 @@ so this really moves item trees."
5338 (while t 5774 (while t
5339 (beginning-of-line 0) 5775 (beginning-of-line 0)
5340 (if (looking-at "[ \t]*$") 5776 (if (looking-at "[ \t]*$")
5341 nil 5777 (if org-empty-line-terminates-plain-lists
5778 (progn
5779 (goto-char pos)
5780 (error "Cannot move this item further up"))
5781 nil)
5342 (if (<= (setq ind1 (org-get-indentation)) ind) 5782 (if (<= (setq ind1 (org-get-indentation)) ind)
5343 (throw 'exit t))))) 5783 (throw 'exit t)))))
5344 (condition-case nil 5784 (condition-case nil
@@ -5468,16 +5908,16 @@ When called with prefix argument FIND-DONE, find whole trees without any
5468open TODO items and archive them (after getting confirmation from the user). 5908open TODO items and archive them (after getting confirmation from the user).
5469If the cursor is not at a headline when this comand is called, try all level 5909If the cursor is not at a headline when this comand is called, try all level
54701 trees. If the cursor is on a headline, only try the direct children of 59101 trees. If the cursor is on a headline, only try the direct children of
5471this heading. " 5911this heading."
5472 (interactive "P") 5912 (interactive "P")
5473 (if find-done 5913 (if find-done
5474 (org-archive-all-done) 5914 (org-archive-all-done)
5475 ;; Save all relevant TODO keyword-relatex variables 5915 ;; Save all relevant TODO keyword-relatex variables
5476 5916
5477 (let ((tr-org-todo-line-regexp org-todo-line-regexp) ; keep despite compiler 5917 (let ((tr-org-todo-line-regexp org-todo-line-regexp) ; keep despite compiler
5478 (tr-org-todo-keywords org-todo-keywords) 5918 (tr-org-todo-keywords-1 org-todo-keywords-1)
5479 (tr-org-todo-interpretation org-todo-interpretation) 5919 (tr-org-todo-kwd-alist org-todo-kwd-alist)
5480 (tr-org-done-string org-done-string) 5920 (tr-org-done-keywords org-done-keywords)
5481 (tr-org-todo-regexp org-todo-regexp) 5921 (tr-org-todo-regexp org-todo-regexp)
5482 (tr-org-todo-line-regexp org-todo-line-regexp) 5922 (tr-org-todo-line-regexp org-todo-line-regexp)
5483 (tr-org-odd-levels-only org-odd-levels-only) 5923 (tr-org-odd-levels-only org-odd-levels-only)
@@ -5488,8 +5928,10 @@ this heading. "
5488 5928
5489 ;; Try to find a local archive location 5929 ;; Try to find a local archive location
5490 (save-excursion 5930 (save-excursion
5491 (if (or (re-search-backward re nil t) (re-search-forward re nil t)) 5931 (save-restriction
5492 (setq org-archive-location (match-string 1)))) 5932 (widen)
5933 (if (or (re-search-backward re nil t) (re-search-forward re nil t))
5934 (setq org-archive-location (match-string 1)))))
5493 5935
5494 (if (string-match "\\(.*\\)::\\(.*\\)" org-archive-location) 5936 (if (string-match "\\(.*\\)::\\(.*\\)" org-archive-location)
5495 (progn 5937 (progn
@@ -5516,7 +5958,8 @@ this heading. "
5516 ;; Enforce org-mode for the archive buffer 5958 ;; Enforce org-mode for the archive buffer
5517 (if (not (org-mode-p)) 5959 (if (not (org-mode-p))
5518 ;; Force the mode for future visits. 5960 ;; Force the mode for future visits.
5519 (let ((org-insert-mode-line-in-empty-file t)) 5961 (let ((org-insert-mode-line-in-empty-file t)
5962 (org-inhibit-startup t))
5520 (call-interactively 'org-mode))) 5963 (call-interactively 'org-mode)))
5521 (when newfile-p 5964 (when newfile-p
5522 (goto-char (point-max)) 5965 (goto-char (point-max))
@@ -5524,13 +5967,13 @@ this heading. "
5524 (buffer-file-name this-buffer)))) 5967 (buffer-file-name this-buffer))))
5525 ;; Force the TODO keywords of the original buffer 5968 ;; Force the TODO keywords of the original buffer
5526 (let ((org-todo-line-regexp tr-org-todo-line-regexp) 5969 (let ((org-todo-line-regexp tr-org-todo-line-regexp)
5527 (org-todo-keywords tr-org-todo-keywords) 5970 (org-todo-keywords-1 tr-org-todo-keywords-1)
5528 (org-todo-interpretation tr-org-todo-interpretation) 5971 (org-todo-kwd-alist tr-org-todo-kwd-alist)
5529 (org-done-string tr-org-done-string) 5972 (org-done-keywords tr-org-done-keywords)
5530 (org-todo-regexp tr-org-todo-regexp) 5973 (org-todo-regexp tr-org-todo-regexp)
5531 (org-todo-line-regexp tr-org-todo-line-regexp) 5974 (org-todo-line-regexp tr-org-todo-line-regexp)
5532 (org-odd-levels-only 5975 (org-odd-levels-only
5533 (if (local-variable-p 'org-odd-levels-only) 5976 (if (local-variable-p 'org-odd-levels-only (current-buffer))
5534 org-odd-levels-only 5977 org-odd-levels-only
5535 tr-org-odd-levels-only))) 5978 tr-org-odd-levels-only)))
5536 (goto-char (point-min)) 5979 (goto-char (point-min))
@@ -5556,10 +5999,10 @@ this heading. "
5556 (goto-char (point-max)) (insert "\n")) 5999 (goto-char (point-max)) (insert "\n"))
5557 ;; Paste 6000 ;; Paste
5558 (org-paste-subtree (org-get-legal-level level 1)) 6001 (org-paste-subtree (org-get-legal-level level 1))
5559 ;; Mark the entry as done, i.e. set to last work in org-todo-keywords 6002 ;; Mark the entry as done, i.e. set to last word in org-todo-keywords-1 FIXME: not right anymore!!!!!!!
5560 (if org-archive-mark-done 6003 (if org-archive-mark-done
5561 (let (org-log-done) 6004 (let (org-log-done)
5562 (org-todo (length org-todo-keywords)))) 6005 (org-todo (length org-todo-keywords-1))))
5563 ;; Move cursor to right after the TODO keyword 6006 ;; Move cursor to right after the TODO keyword
5564 (when org-archive-stamp-time 6007 (when org-archive-stamp-time
5565 (beginning-of-line 1) 6008 (beginning-of-line 1)
@@ -5653,7 +6096,7 @@ When TAG is non-nil, don't move trees, but mark them with the ARCHIVE tag."
5653(defun org-toggle-tag (tag &optional onoff) 6096(defun org-toggle-tag (tag &optional onoff)
5654 "Toggle the tag TAG for the current line. 6097 "Toggle the tag TAG for the current line.
5655If ONOFF is `on' or `off', don't toggle but set to this state." 6098If ONOFF is `on' or `off', don't toggle but set to this state."
5656 (unless (org-on-heading-p) (error "Not on headling")) 6099 (unless (org-on-heading-p t) (error "Not on headling"))
5657 (let (res current) 6100 (let (res current)
5658 (save-excursion 6101 (save-excursion
5659 (beginning-of-line) 6102 (beginning-of-line)
@@ -5749,6 +6192,8 @@ outside the table.")
5749 "Table row types, non-nil only for the duration of a comand.") 6192 "Table row types, non-nil only for the duration of a comand.")
5750(defvar org-table-current-begin-line nil 6193(defvar org-table-current-begin-line nil
5751 "Table begin line, non-nil only for the duration of a comand.") 6194 "Table begin line, non-nil only for the duration of a comand.")
6195(defvar org-table-current-begin-pos nil
6196 "Table begin position, non-nil only for the duration of a comand.")
5752(defvar org-table-dlines nil 6197(defvar org-table-dlines nil
5753 "Vector of data line line numbers in the current table.") 6198 "Vector of data line line numbers in the current table.")
5754(defvar org-table-hlines nil 6199(defvar org-table-hlines nil
@@ -5760,11 +6205,17 @@ outside the table.")
5760 "Regular expression for matching ranges in formulas.") 6205 "Regular expression for matching ranges in formulas.")
5761 6206
5762(defconst org-table-range-regexp2 6207(defconst org-table-range-regexp2
5763 "@\\([-+]?I*[-+]?[0-9]*\\)?\\(\\$[-+]?[a-zA-Z0-9]+\\)?\\(\\.\\.@?\\([-+]?I*[-+]?[0-9]*\\)?\\(\\$[-+]?[a-zA-Z0-9]+\\)?\\)?\\|\\$[a-zA-Z0-9]+\\.\\.\\$[a-zA-Z0-9]+" 6208 (concat
5764 "Regular expression to recognize ranges in formulas for highlighting.") 6209 "\\(" "@[-0-9I$&]+" "\\|" "[a-zA-Z]\\{1,2\\}\\([0-9]+\\|&\\)" "\\|" "\\$[a-zA-Z0-9]+" "\\)"
6210 "\\.\\."
6211 "\\(" "@?[-0-9I$&]+" "\\|" "[a-zA-Z]\\{1,2\\}\\([0-9]+\\|&\\)" "\\|" "\\$[a-zA-Z0-9]+" "\\)")
6212 "Match a range for reference display.")
5765 6213
5766(defvar org-inhibit-highlight-removal nil) 6214(defconst org-table-translate-regexp
6215 (concat "\\(" "@[-0-9I$]+" "\\|" "[a-zA-Z]\\{1,2\\}\\([0-9]+\\|&\\)" "\\)")
6216 "Match a reference that needs translation, for reference display.")
5767 6217
6218(defvar org-inhibit-highlight-removal nil) ; dynamically scoped param
5768 6219
5769(defun org-table-create-with-table.el () 6220(defun org-table-create-with-table.el ()
5770 "Use the table.el package to insert a new table. 6221 "Use the table.el package to insert a new table.
@@ -5783,8 +6234,9 @@ and table.el tables."
5783 6234
5784(defun org-table-create-or-convert-from-region (arg) 6235(defun org-table-create-or-convert-from-region (arg)
5785 "Convert region to table, or create an empty table. 6236 "Convert region to table, or create an empty table.
5786If there is an active region, convert it to a table. If there is no such 6237If there is an active region, convert it to a table, using the function
5787region, create an empty table." 6238`org-table-convert-region'.
6239If there is no such region, create an empty table with `org-table-create'."
5788 (interactive "P") 6240 (interactive "P")
5789 (if (org-region-active-p) 6241 (if (org-region-active-p)
5790 (org-table-convert-region (region-beginning) (region-end) arg) 6242 (org-table-convert-region (region-beginning) (region-end) arg)
@@ -5827,7 +6279,9 @@ SIZE is a string Columns x Rows like for example \"3x2\"."
5827The region goes from BEG0 to END0, but these borders will be moved 6279The region goes from BEG0 to END0, but these borders will be moved
5828slightly, to make sure a beginning of line in the first line is included. 6280slightly, to make sure a beginning of line in the first line is included.
5829When NSPACE is non-nil, it indicates the minimum number of spaces that 6281When NSPACE is non-nil, it indicates the minimum number of spaces that
5830separate columns (default: just one space)." 6282separate columns. By default, the function first checks if every line
6283contains at lease one TAB. If yes, it assumes that the material is TAB
6284separated. If not, it assumes a single space as separator."
5831 (interactive "rP") 6285 (interactive "rP")
5832 (let* ((beg (min beg0 end0)) 6286 (let* ((beg (min beg0 end0))
5833 (end (max beg0 end0)) 6287 (end (max beg0 end0))
@@ -6249,9 +6703,13 @@ If the current field is not empty, it is copied down to the next row, and
6249the cursor is moved with it. Therefore, repeating this command causes the 6703the cursor is moved with it. Therefore, repeating this command causes the
6250column to be filled row-by-row. 6704column to be filled row-by-row.
6251If the variable `org-table-copy-increment' is non-nil and the field is an 6705If the variable `org-table-copy-increment' is non-nil and the field is an
6252integer, it will be incremented while copying." 6706integer or a timestamp, it will be incremented while copying. In the case of
6707a timestamp, if the cursor is on the year, change the year. If it is on the
6708month or the day, change that. Point will stay on the current date field
6709in order to easily repeat the interval."
6253 (interactive "p") 6710 (interactive "p")
6254 (let* ((colpos (org-table-current-column)) 6711 (let* ((colpos (org-table-current-column))
6712 (col (current-column))
6255 (field (org-table-get-field)) 6713 (field (org-table-get-field))
6256 (non-empty (string-match "[^ \t]" field)) 6714 (non-empty (string-match "[^ \t]" field))
6257 (beg (org-table-begin)) 6715 (beg (org-table-begin))
@@ -6279,8 +6737,12 @@ integer, it will be incremented while copying."
6279 (string-match "^[0-9]+$" txt)) 6737 (string-match "^[0-9]+$" txt))
6280 (setq txt (format "%d" (+ (string-to-number txt) 1)))) 6738 (setq txt (format "%d" (+ (string-to-number txt) 1))))
6281 (insert txt) 6739 (insert txt)
6282 (org-table-maybe-recalculate-line) 6740 (move-to-column col)
6283 (org-table-align)) 6741 (if (and org-table-copy-increment (org-at-timestamp-p t))
6742 (org-timestamp-up 1)
6743 (org-table-maybe-recalculate-line))
6744 (org-table-align)
6745 (move-to-column col))
6284 (error "No non-empty field found")))) 6746 (error "No non-empty field found"))))
6285 6747
6286(defun org-table-check-inside-data-field () 6748(defun org-table-check-inside-data-field ()
@@ -6333,7 +6795,7 @@ is always the old value."
6333 6795
6334(defun org-table-field-info (arg) 6796(defun org-table-field-info (arg)
6335 "Show info about the current field, and highlight any reference at point." 6797 "Show info about the current field, and highlight any reference at point."
6336 (interactive "P") 6798 (interactive "P")
6337 (org-table-get-specials) 6799 (org-table-get-specials)
6338 (save-excursion 6800 (save-excursion
6339 (let* ((pos (point)) 6801 (let* ((pos (point))
@@ -6344,21 +6806,26 @@ is always the old value."
6344 (eql (org-table-get-stored-formulas)) 6806 (eql (org-table-get-stored-formulas))
6345 (dline (org-table-current-dline)) 6807 (dline (org-table-current-dline))
6346 (ref (format "@%d$%d" dline col)) 6808 (ref (format "@%d$%d" dline col))
6809 (ref1 (org-table-convert-refs-to-an ref))
6347 (fequation (or (assoc name eql) (assoc ref eql))) 6810 (fequation (or (assoc name eql) (assoc ref eql)))
6348 (cequation (assoc (int-to-string col) eql))) 6811 (cequation (assoc (int-to-string col) eql))
6812 (eqn (or fequation cequation)))
6349 (goto-char pos) 6813 (goto-char pos)
6350 (condition-case nil 6814 (condition-case nil
6351 (org-show-reference 'local) 6815 (org-table-show-reference 'local)
6352 (error nil)) 6816 (error nil))
6353 (message "line @%d, col $%s%s, ref @%d$%d%s%s" 6817 (message "line @%d, col $%s%s, ref @%d$%d or %s%s%s"
6354 dline col 6818 dline col
6355 (if cname (concat " or $" cname) "") 6819 (if cname (concat " or $" cname) "")
6356 dline col 6820 dline col ref1
6357 (if name (concat " or $" name) "") 6821 (if name (concat " or $" name) "")
6358 ;; FIXME: formula info not correct if special table line 6822 ;; FIXME: formula info not correct if special table line
6359 (if (or fequation cequation) 6823 (if eqn
6360 (concat ", " (if fequation "field" "column") 6824 (concat ", formula: "
6361 " formula applies" "") 6825 (org-table-formula-to-user
6826 (concat
6827 (if (string-match "^[$@]"(car eqn)) "" "$")
6828 (car eqn) "=" (cdr eqn))))
6362 ""))))) 6829 "")))))
6363 6830
6364(defun org-table-current-column () 6831(defun org-table-current-column ()
@@ -6573,7 +7040,7 @@ If TABLE-TYPE is non-nil, also check for table.el-type tables."
6573 (goto-line linepos) 7040 (goto-line linepos)
6574 (org-table-goto-column colpos) 7041 (org-table-goto-column colpos)
6575 (org-table-align) 7042 (org-table-align)
6576 (org-table-fix-formulas 7043 (org-table-fix-formulas
6577 "$" (list (cons (number-to-string col) (number-to-string colpos)) 7044 "$" (list (cons (number-to-string col) (number-to-string colpos))
6578 (cons (number-to-string colpos) (number-to-string col)))))) 7045 (cons (number-to-string colpos) (number-to-string col))))))
6579 7046
@@ -6591,7 +7058,7 @@ If TABLE-TYPE is non-nil, also check for table.el-type tables."
6591 (interactive "P") 7058 (interactive "P")
6592 (let* ((col (current-column)) 7059 (let* ((col (current-column))
6593 (pos (point)) 7060 (pos (point))
6594 (hline1p (save-excursion (beginning-of-line 1) 7061 (hline1p (save-excursion (beginning-of-line 1)
6595 (looking-at org-table-hline-regexp))) 7062 (looking-at org-table-hline-regexp)))
6596 (dline1 (org-table-current-dline)) 7063 (dline1 (org-table-current-dline))
6597 (dline2 (+ dline1 (if up -1 1))) 7064 (dline2 (+ dline1 (if up -1 1)))
@@ -6612,7 +7079,7 @@ If TABLE-TYPE is non-nil, also check for table.el-type tables."
6612 (beginning-of-line 0) 7079 (beginning-of-line 0)
6613 (move-to-column col) 7080 (move-to-column col)
6614 (unless (or hline1p hline2p) 7081 (unless (or hline1p hline2p)
6615 (org-table-fix-formulas 7082 (org-table-fix-formulas
6616 "@" (list (cons (number-to-string dline1) (number-to-string dline2)) 7083 "@" (list (cons (number-to-string dline1) (number-to-string dline2))
6617 (cons (number-to-string dline2) (number-to-string dline1))))))) 7084 (cons (number-to-string dline2) (number-to-string dline1)))))))
6618 7085
@@ -6635,9 +7102,9 @@ With prefix ARG, insert below the current line."
6635 (org-table-align)) 7102 (org-table-align))
6636 (org-table-fix-formulas "@" nil (1- (org-table-current-dline)) 1))) 7103 (org-table-fix-formulas "@" nil (1- (org-table-current-dline)) 1)))
6637 7104
6638(defun org-table-insert-hline (&optional arg) 7105(defun org-table-insert-hline (&optional above)
6639 "Insert a horizontal-line below the current line into the table. 7106 "Insert a horizontal-line below the current line into the table.
6640With prefix ARG, insert above the current line." 7107With prefix ABOVE, insert above the current line."
6641 (interactive "P") 7108 (interactive "P")
6642 (if (not (org-at-table-p)) 7109 (if (not (org-at-table-p))
6643 (error "Not at a table")) 7110 (error "Not at a table"))
@@ -6649,12 +7116,25 @@ With prefix ARG, insert above the current line."
6649 (concat "+" (make-string (- (match-end 1) (match-beginning 1)) 7116 (concat "+" (make-string (- (match-end 1) (match-beginning 1))
6650 ?-) "|") t t line))) 7117 ?-) "|") t t line)))
6651 (and (string-match "\\+" line) (setq line (replace-match "|" t t line))) 7118 (and (string-match "\\+" line) (setq line (replace-match "|" t t line)))
6652 (beginning-of-line (if arg 1 2)) 7119 (beginning-of-line (if above 1 2))
6653 (insert line "\n") 7120 (insert line "\n")
6654 (beginning-of-line (if arg 1 -1)) 7121 (beginning-of-line (if above 1 -1))
6655 (move-to-column col) 7122 (move-to-column col)
6656 (and org-table-overlay-coordinates (org-table-align)))) 7123 (and org-table-overlay-coordinates (org-table-align))))
6657 7124
7125(defun org-table-hline-and-move (&optional same-column)
7126 "Insert a hline and move to the row below that line."
7127 (interactive "P")
7128 (let ((col (org-table-current-column)))
7129 (org-table-maybe-eval-formula)
7130 (org-table-maybe-recalculate-line)
7131 (org-table-insert-hline)
7132 (end-of-line 2)
7133 (if (looking-at "\n[ \t]*|-")
7134 (progn (insert "\n|") (org-table-align))
7135 (org-table-next-field))
7136 (if same-column (org-table-goto-column col))))
7137
6658(defun org-table-clean-line (s) 7138(defun org-table-clean-line (s)
6659 "Convert a table line S into a string with only \"|\" and space. 7139 "Convert a table line S into a string with only \"|\" and space.
6660In particular, this does handle wide and invisible characters." 7140In particular, this does handle wide and invisible characters."
@@ -6959,15 +7439,14 @@ it can be edited in place."
6959 (switch-to-buffer-other-window "*Org tmp*") 7439 (switch-to-buffer-other-window "*Org tmp*")
6960 (erase-buffer) 7440 (erase-buffer)
6961 (insert "#\n# Edit field and finish with C-c C-c\n#\n") 7441 (insert "#\n# Edit field and finish with C-c C-c\n#\n")
6962 (org-mode) 7442 (let ((org-inhibit-startup t)) (org-mode))
6963 (goto-char (setq p (point-max))) 7443 (goto-char (setq p (point-max)))
6964 (insert (org-trim field)) 7444 (insert (org-trim field))
6965 (remove-text-properties p (point-max) 7445 (remove-text-properties p (point-max)
6966 '(invisible t org-cwidth t display t 7446 '(invisible t org-cwidth t display t
6967 intangible t)) 7447 intangible t))
6968 (goto-char p) 7448 (goto-char p)
6969 (org-set-local 'org-finish-function 7449 (org-set-local 'org-finish-function 'org-table-finish-edit-field)
6970 'org-table-finish-edit-field)
6971 (org-set-local 'org-window-configuration cw) 7450 (org-set-local 'org-window-configuration cw)
6972 (org-set-local 'org-field-marker pos) 7451 (org-set-local 'org-field-marker pos)
6973 (message "Edit and finish with C-c C-c")))) 7452 (message "Edit and finish with C-c C-c"))))
@@ -6997,8 +7476,8 @@ the table and kill the editing buffer."
6997 7476
6998(defun org-trim (s) 7477(defun org-trim (s)
6999 "Remove whitespace at beginning and end of string." 7478 "Remove whitespace at beginning and end of string."
7000 (if (string-match "^[ \t]+" s) (setq s (replace-match "" t t s))) 7479 (if (string-match "^[ \t\n\r]+" s) (setq s (replace-match "" t t s)))
7001 (if (string-match "[ \t]+$" s) (setq s (replace-match "" t t s))) 7480 (if (string-match "[ \t\n\r]+$" s) (setq s (replace-match "" t t s)))
7002 s) 7481 s)
7003 7482
7004(defun org-wrap (string &optional width lines) 7483(defun org-wrap (string &optional width lines)
@@ -7159,21 +7638,25 @@ If NLAST is a number, only the NLAST fields will actually be summed."
7159 ((equal n 0) nil) 7638 ((equal n 0) nil)
7160 (t n)))) 7639 (t n))))
7161 7640
7162(defun org-table-current-field-formula () 7641(defun org-table-current-field-formula (&optional key noerror)
7163 "Return the formula active for the current field. 7642 "Return the formula active for the current field.
7164Assumes that specials are in place." 7643Assumes that specials are in place.
7644If KEY is given, return the key to this formula.
7645Otherwise return the formula preceeded with \"=\" or \":=\"."
7165 (let* ((name (car (rassoc (list (org-current-line) 7646 (let* ((name (car (rassoc (list (org-current-line)
7166 (org-table-current-column)) 7647 (org-table-current-column))
7167 org-table-named-field-locations))) 7648 org-table-named-field-locations)))
7168 (col (org-table-current-column)) 7649 (col (org-table-current-column))
7169 (scol (int-to-string col)) 7650 (scol (int-to-string col))
7170 (ref (format "@%d$%d" (org-table-current-dline) col)) 7651 (ref (format "@%d$%d" (org-table-current-dline) col))
7171 (stored-list (org-table-get-stored-formulas)) 7652 (stored-list (org-table-get-stored-formulas noerror))
7172 (ass (or (assoc name stored-list) 7653 (ass (or (assoc name stored-list)
7173 (assoc ref stored-list) 7654 (assoc ref stored-list)
7174 (assoc scol stored-list)))) 7655 (assoc scol stored-list))))
7175 (if ass (concat (if (string-match "^[0-9]+$" (car ass)) "=" ":=") 7656 (if key
7176 (cdr ass))))) 7657 (car ass)
7658 (if ass (concat (if (string-match "^[0-9]+$" (car ass)) "=" ":=")
7659 (cdr ass))))))
7177 7660
7178(defun org-table-get-formula (&optional equation named) 7661(defun org-table-get-formula (&optional equation named)
7179 "Read a formula from the minibuffer, offer stored formula as default. 7662 "Read a formula from the minibuffer, offer stored formula as default.
@@ -7199,11 +7682,16 @@ When NAMED is non-nil, look for a named equation."
7199 stored) 7682 stored)
7200 ((stringp equation) 7683 ((stringp equation)
7201 equation) 7684 equation)
7202 (t (read-string 7685 (t (org-table-formula-from-user
7203 (format "%s formula $%s=" (if named "Field" "Column") scol) 7686 (read-string
7204 (or stored "") 'org-table-formula-history 7687 (org-table-formula-to-user
7205 ;stored 7688 (format "%s formula %s%s="
7206 )))) 7689 (if named "Field" "Column")
7690 (if (member (string-to-char scol) '(?$ ?@)) "" "$")
7691 scol))
7692 (if stored (org-table-formula-to-user stored) "")
7693 'org-table-formula-history
7694 )))))
7207 mustsave) 7695 mustsave)
7208 (when (not (string-match "\\S-" eq)) 7696 (when (not (string-match "\\S-" eq))
7209 ;; remove formula 7697 ;; remove formula
@@ -7225,7 +7713,7 @@ When NAMED is non-nil, look for a named equation."
7225 7713
7226(defun org-table-store-formulas (alist) 7714(defun org-table-store-formulas (alist)
7227 "Store the list of formulas below the current table." 7715 "Store the list of formulas below the current table."
7228 (setq alist (sort alist (lambda (a b) (string< (car a) (car b))))) 7716 (setq alist (sort alist 'org-table-formula-less-p))
7229 (save-excursion 7717 (save-excursion
7230 (goto-char (org-table-end)) 7718 (goto-char (org-table-end))
7231 (if (looking-at "\\([ \t]*\n\\)*#\\+TBLFM:\\(.*\n?\\)") 7719 (if (looking-at "\\([ \t]*\n\\)*#\\+TBLFM:\\(.*\n?\\)")
@@ -7242,7 +7730,20 @@ When NAMED is non-nil, look for a named equation."
7242 alist "::") 7730 alist "::")
7243 "\n"))) 7731 "\n")))
7244 7732
7245(defun org-table-get-stored-formulas () 7733(defsubst org-table-formula-make-cmp-string (a)
7734 (when (string-match "^\\(@\\([0-9]+\\)\\)?\\(\\$?\\([0-9]+\\)\\)?\\(\\$?[a-zA-Z0-9]+\\)?" a)
7735 (concat
7736 (if (match-end 2) (format "@%05d" (string-to-number (match-string 2 a))) "")
7737 (if (match-end 4) (format "$%05d" (string-to-number (match-string 4 a))) "")
7738 (if (match-end 5) (concat "@@" (match-string 5 a))))))
7739
7740(defun org-table-formula-less-p (a b)
7741 "Compare two formulas for sorting."
7742 (let ((as (org-table-formula-make-cmp-string (car a)))
7743 (bs (org-table-formula-make-cmp-string (car b))))
7744 (and as bs (string< as bs))))
7745
7746(defun org-table-get-stored-formulas (&optional noerror)
7246 "Return an alist with the stored formulas directly after current table." 7747 "Return an alist with the stored formulas directly after current table."
7247 (interactive) 7748 (interactive)
7248 (let (scol eq eq-alist strings string seen) 7749 (let (scol eq eq-alist strings string seen)
@@ -7252,13 +7753,18 @@ When NAMED is non-nil, look for a named equation."
7252 (setq strings (org-split-string (match-string 2) " *:: *")) 7753 (setq strings (org-split-string (match-string 2) " *:: *"))
7253 (while (setq string (pop strings)) 7754 (while (setq string (pop strings))
7254 (when (string-match "\\(@[0-9]+\\$[0-9]+\\|\\$\\([a-zA-Z0-9]+\\)\\) *= *\\(.*[^ \t]\\)" string) 7755 (when (string-match "\\(@[0-9]+\\$[0-9]+\\|\\$\\([a-zA-Z0-9]+\\)\\) *= *\\(.*[^ \t]\\)" string)
7255 (setq scol (if (match-end 2) 7756 (setq scol (if (match-end 2)
7256 (match-string 2 string) 7757 (match-string 2 string)
7257 (match-string 1 string)) 7758 (match-string 1 string))
7258 eq (match-string 3 string) 7759 eq (match-string 3 string)
7259 eq-alist (cons (cons scol eq) eq-alist)) 7760 eq-alist (cons (cons scol eq) eq-alist))
7260 (if (member scol seen) 7761 (if (member scol seen)
7261 (error "Double definition `$%s=' in TBLFM line, please fix by hand" scol) 7762 (if noerror
7763 (progn
7764 (message "Double definition `$%s=' in TBLFM line, please fix by hand" scol)
7765 (ding)
7766 (sit-for 2))
7767 (error "Double definition `$%s=' in TBLFM line, please fix by hand" scol))
7262 (push scol seen)))))) 7768 (push scol seen))))))
7263 (nreverse eq-alist))) 7769 (nreverse eq-alist)))
7264 7770
@@ -7297,7 +7803,8 @@ For all numbers larger than LIMIT, shift them by DELTA."
7297 org-table-local-parameters nil 7803 org-table-local-parameters nil
7298 org-table-named-field-locations nil 7804 org-table-named-field-locations nil
7299 org-table-current-begin-line nil 7805 org-table-current-begin-line nil
7300 org-table-current-line-types nil) 7806 org-table-current-begin-pos nil
7807 org-table-current-line-types nil)
7301 (goto-char beg) 7808 (goto-char beg)
7302 (when (re-search-forward "^[ \t]*| *! *\\(|.*\\)" end t) 7809 (when (re-search-forward "^[ \t]*| *! *\\(|.*\\)" end t)
7303 (setq names (org-split-string (match-string 1) " *| *") 7810 (setq names (org-split-string (match-string 1) " *| *")
@@ -7334,7 +7841,8 @@ For all numbers larger than LIMIT, shift them by DELTA."
7334 ;; Analyse the line types 7841 ;; Analyse the line types
7335 (goto-char beg) 7842 (goto-char beg)
7336 (setq org-table-current-begin-line (org-current-line) 7843 (setq org-table-current-begin-line (org-current-line)
7337 l org-table-current-begin-line) 7844 org-table-current-begin-pos (point)
7845 l org-table-current-begin-line)
7338 (while (looking-at "[ \t]*|\\(-\\)?") 7846 (while (looking-at "[ \t]*|\\(-\\)?")
7339 (push (if (match-end 1) 'hline 'dline) types) 7847 (push (if (match-end 1) 'hline 'dline) types)
7340 (if (match-end 1) (push l hlines) (push l dlines)) 7848 (if (match-end 1) (push l hlines) (push l dlines))
@@ -7344,13 +7852,6 @@ For all numbers larger than LIMIT, shift them by DELTA."
7344 org-table-dlines (apply 'vector (cons nil (nreverse dlines))) 7852 org-table-dlines (apply 'vector (cons nil (nreverse dlines)))
7345 org-table-hlines (apply 'vector (cons nil (nreverse hlines))))))) 7853 org-table-hlines (apply 'vector (cons nil (nreverse hlines)))))))
7346 7854
7347(defun org-this-word ()
7348 ;; Get the current word
7349 (save-excursion
7350 (let ((beg (progn (skip-chars-backward "^ \t\n") (point)))
7351 (end (progn (skip-chars-forward "^ \t\n") (point))))
7352 (buffer-substring-no-properties beg end))))
7353
7354(defun org-table-maybe-eval-formula () 7855(defun org-table-maybe-eval-formula ()
7355 "Check if the current field starts with \"=\" or \":=\". 7856 "Check if the current field starts with \"=\" or \":=\".
7356If yes, store the formula and apply it." 7857If yes, store the formula and apply it."
@@ -7364,7 +7865,8 @@ If yes, store the formula and apply it."
7364 eq (match-string 1 field)) 7865 eq (match-string 1 field))
7365 (if (or (fboundp 'calc-eval) 7866 (if (or (fboundp 'calc-eval)
7366 (equal (substring eq 0 (min 2 (length eq))) "'(")) 7867 (equal (substring eq 0 (min 2 (length eq))) "'("))
7367 (org-table-eval-formula (if named '(4) nil) eq) 7868 (org-table-eval-formula (if named '(4) nil)
7869 (org-table-formula-from-user eq))
7368 (error "Calc does not seem to be installed, and is needed to evaluate the formula")))))) 7870 (error "Calc does not seem to be installed, and is needed to evaluate the formula"))))))
7369 7871
7370(defvar org-recalc-commands nil 7872(defvar org-recalc-commands nil
@@ -7485,7 +7987,7 @@ formula is installed as valid in only this specific field.
7485 7987
7486When called with two `C-u' prefixes, insert the active equation 7988When called with two `C-u' prefixes, insert the active equation
7487for the field back into the current field, so that it can be 7989for the field back into the current field, so that it can be
7488edited there. This is useful in order to use \\[org-show-reference] 7990edited there. This is useful in order to use \\[org-table-show-reference]
7489to check the referenced fields. 7991to check the referenced fields.
7490 7992
7491When called, the command first prompts for a formula, which is read in 7993When called, the command first prompts for a formula, which is read in
@@ -7577,7 +8079,7 @@ not overwrite the stored one."
7577 ;; Insert complex ranges 8079 ;; Insert complex ranges
7578 (while (string-match org-table-range-regexp form) 8080 (while (string-match org-table-range-regexp form)
7579 (setq form 8081 (setq form
7580 (replace-match 8082 (replace-match
7581 (save-match-data 8083 (save-match-data
7582 (org-table-make-reference 8084 (org-table-make-reference
7583 (org-table-get-range (match-string 0 form) nil n0) 8085 (org-table-get-range (match-string 0 form) nil n0)
@@ -7585,7 +8087,7 @@ not overwrite the stored one."
7585 t t form))) 8087 t t form)))
7586 ;; Insert simple ranges 8088 ;; Insert simple ranges
7587 (while (string-match "\\$\\([0-9]+\\)\\.\\.\\$\\([0-9]+\\)" form) 8089 (while (string-match "\\$\\([0-9]+\\)\\.\\.\\$\\([0-9]+\\)" form)
7588 (setq form 8090 (setq form
7589 (replace-match 8091 (replace-match
7590 (save-match-data 8092 (save-match-data
7591 (org-table-make-reference 8093 (org-table-make-reference
@@ -7596,17 +8098,16 @@ not overwrite the stored one."
7596 t t form))) 8098 t t form)))
7597 (setq form0 form) 8099 (setq form0 form)
7598 ;; Insert the references to fields in same row 8100 ;; Insert the references to fields in same row
7599 (while (string-match "\\$\\([0-9]+\\)?" form) 8101 (while (string-match "\\$\\([0-9]+\\)" form)
7600 (setq n (if (match-beginning 1) 8102 (setq n (string-to-number (match-string 1 form))
7601 (string-to-number (match-string 1 form)) 8103 x (nth (1- (if (= n 0) n0 n)) fields))
7602 n0)
7603 x (nth (1- n) fields))
7604 (unless x (error "Invalid field specifier \"%s\"" 8104 (unless x (error "Invalid field specifier \"%s\""
7605 (match-string 0 form))) 8105 (match-string 0 form)))
7606 (setq form (replace-match 8106 (setq form (replace-match
7607 (save-match-data 8107 (save-match-data
7608 (org-table-make-reference x nil numbers lispp)) 8108 (org-table-make-reference x nil numbers lispp))
7609 t t form))) 8109 t t form)))
8110
7610 (if lispp 8111 (if lispp
7611 (setq ev (condition-case nil 8112 (setq ev (condition-case nil
7612 (eval (eval (read form))) 8113 (eval (eval (read form)))
@@ -7616,7 +8117,7 @@ not overwrite the stored one."
7616 (error "Calc does not seem to be installed, and is needed to evaluate the formula")) 8117 (error "Calc does not seem to be installed, and is needed to evaluate the formula"))
7617 (setq ev (calc-eval (cons form modes) 8118 (setq ev (calc-eval (cons form modes)
7618 (if numbers 'num)))) 8119 (if numbers 'num))))
7619 8120
7620 (when org-table-formula-debug 8121 (when org-table-formula-debug
7621 (with-output-to-temp-buffer "*Substitution History*" 8122 (with-output-to-temp-buffer "*Substitution History*"
7622 (princ (format "Substitution history of formula 8123 (princ (format "Substitution history of formula
@@ -7738,7 +8239,7 @@ and TABLE is a vector with line types."
7738 (setq i 0 hdir "+") 8239 (setq i 0 hdir "+")
7739 (if (eq (aref table 0) 'hline) (setq hn (1- hn))))) 8240 (if (eq (aref table 0) 'hline) (setq hn (1- hn)))))
7740 (if (and (not hn) on (not odir)) 8241 (if (and (not hn) on (not odir))
7741 (error "should never happen");;(aref org-table-dlines on) FIXME 8242 (error "should never happen");;(aref org-table-dlines on)
7742 (if (and hn (> hn 0)) 8243 (if (and hn (> hn 0))
7743 (setq i (org-find-row-type table i 'hline (equal hdir "-") nil hn))) 8244 (setq i (org-find-row-type table i 'hline (equal hdir "-") nil hn)))
7744 (if on 8245 (if on
@@ -7837,7 +8338,7 @@ With prefix arg ALL, do this for all lines in the table."
7837 (goto-char beg) 8338 (goto-char beg)
7838 (and all (message "Re-applying formulas to full table...")) 8339 (and all (message "Re-applying formulas to full table..."))
7839 (while (re-search-forward line-re end t) 8340 (while (re-search-forward line-re end t)
7840 (unless (string-match "^ *[_^!$] *$" (org-table-get-field 1)) 8341 (unless (string-match "^ *[_^!$/] *$" (org-table-get-field 1))
7841 ;; Unprotected line, recalculate 8342 ;; Unprotected line, recalculate
7842 (and all (message "Re-applying formulas to full table...(line %d)" 8343 (and all (message "Re-applying formulas to full table...(line %d)"
7843 (setq cnt (1+ cnt)))) 8344 (setq cnt (1+ cnt))))
@@ -7858,7 +8359,7 @@ With prefix arg ALL, do this for all lines in the table."
7858 a (assoc name org-table-named-field-locations)) 8359 a (assoc name org-table-named-field-locations))
7859 (and (not a) 8360 (and (not a)
7860 (string-match "@\\([0-9]+\\)\\$\\([0-9]+\\)" name) 8361 (string-match "@\\([0-9]+\\)\\$\\([0-9]+\\)" name)
7861 (setq a 8362 (setq a
7862 (list 8363 (list
7863 name 8364 name
7864 (aref org-table-dlines 8365 (aref org-table-dlines
@@ -7876,12 +8377,12 @@ With prefix arg ALL, do this for all lines in the table."
7876 (org-table-goto-column thiscol) 8377 (org-table-goto-column thiscol)
7877 (or noalign (and org-table-may-need-update (org-table-align)) 8378 (or noalign (and org-table-may-need-update (org-table-align))
7878 (and all (message "Re-applying formulas...done")))))) 8379 (and all (message "Re-applying formulas...done"))))))
7879 8380
7880(defun org-table-iterate (&optional arg) 8381(defun org-table-iterate (&optional arg)
7881 "Recalculate the table until it does not change anymore." 8382 "Recalculate the table until it does not change anymore."
7882 (interactive "P") 8383 (interactive "P")
7883 (let ((imax (if arg (prefix-numeric-value arg) 10)) 8384 (let ((imax (if arg (prefix-numeric-value arg) 10))
7884 (i 0) 8385 (i 0)
7885 (lasttbl (buffer-substring (org-table-begin) (org-table-end))) 8386 (lasttbl (buffer-substring (org-table-begin) (org-table-end)))
7886 thistbl) 8387 thistbl)
7887 (catch 'exit 8388 (catch 'exit
@@ -7924,32 +8425,74 @@ Parameters get priority."
7924 (and (fboundp 'constants-get) (constants-get const)) 8425 (and (fboundp 'constants-get) (constants-get const))
7925 "#UNDEFINED_NAME")) 8426 "#UNDEFINED_NAME"))
7926 8427
7927(defvar org-edit-formulas-map (make-sparse-keymap)) 8428(defvar org-table-fedit-map (make-sparse-keymap))
7928(define-key org-edit-formulas-map "\C-c\C-c" 'org-finish-edit-formulas) 8429(org-defkey org-table-fedit-map "\C-x\C-s" 'org-table-fedit-finish)
7929(define-key org-edit-formulas-map "\C-c\C-q" 'org-abort-edit-formulas) 8430(org-defkey org-table-fedit-map "\C-c\C-s" 'org-table-fedit-finish)
7930(define-key org-edit-formulas-map "\C-c?" 'org-show-reference) 8431(org-defkey org-table-fedit-map "\C-c\C-c" 'org-table-fedit-finish)
7931(define-key org-edit-formulas-map [(shift up)] 'org-table-edit-line-up) 8432(org-defkey org-table-fedit-map "\C-c\C-q" 'org-table-fedit-abort)
7932(define-key org-edit-formulas-map [(shift down)] 'org-table-edit-line-down) 8433(org-defkey org-table-fedit-map "\C-c?" 'org-table-show-reference)
7933(define-key org-edit-formulas-map [(shift left)] 'org-table-edit-backward-field) 8434(org-defkey org-table-fedit-map [(meta shift up)] 'org-table-fedit-line-up)
7934(define-key org-edit-formulas-map [(shift right)] 'org-table-edit-next-field) 8435(org-defkey org-table-fedit-map [(meta shift down)] 'org-table-fedit-line-down)
7935(define-key org-edit-formulas-map [(meta up)] 'org-table-edit-scroll-down) 8436(org-defkey org-table-fedit-map [(shift up)] 'org-table-fedit-ref-up)
7936(define-key org-edit-formulas-map [(meta down)] 'org-table-edit-scroll) 8437(org-defkey org-table-fedit-map [(shift down)] 'org-table-fedit-ref-down)
7937(define-key org-edit-formulas-map [(meta tab)] 'lisp-complete-symbol) 8438(org-defkey org-table-fedit-map [(shift left)] 'org-table-fedit-ref-left)
7938(define-key org-edit-formulas-map "\M-\C-i" 'lisp-complete-symbol) 8439(org-defkey org-table-fedit-map [(shift right)] 'org-table-fedit-ref-right)
7939(define-key org-edit-formulas-map [(tab)] 'org-edit-formula-lisp-indent) 8440(org-defkey org-table-fedit-map [(meta up)] 'org-table-fedit-scroll-down)
7940(define-key org-edit-formulas-map "\C-i" 'org-edit-formula-lisp-indent) 8441(org-defkey org-table-fedit-map [(meta down)] 'org-table-fedit-scroll)
8442(org-defkey org-table-fedit-map [(meta tab)] 'lisp-complete-symbol)
8443(org-defkey org-table-fedit-map "\M-\C-i" 'lisp-complete-symbol)
8444(org-defkey org-table-fedit-map [(tab)] 'org-table-fedit-lisp-indent)
8445(org-defkey org-table-fedit-map "\C-i" 'org-table-fedit-lisp-indent)
8446(org-defkey org-table-fedit-map "\C-c\C-r" 'org-table-fedit-toggle-ref-type)
8447(org-defkey org-table-fedit-map "\C-c}" 'org-table-fedit-toggle-coordinates)
8448
8449(easy-menu-define org-table-fedit-menu org-table-fedit-map "Org Edit Formulas Menu"
8450 '("Edit-Formulas"
8451 ["Finish and Install" org-table-fedit-finish t]
8452 ["Finish, Install, and Apply" (org-table-fedit-finish t) :keys "C-u C-c C-c"]
8453 ["Abort" org-table-fedit-abort t]
8454 "--"
8455 ["Pretty-Print Lisp Formula" org-table-fedit-lisp-indent t]
8456 ["Complete Lisp Symbol" lisp-complete-symbol t]
8457 "--"
8458 "Shift Reference at Point"
8459 ["Up" org-table-fedit-ref-up t]
8460 ["Down" org-table-fedit-ref-down t]
8461 ["Left" org-table-fedit-ref-left t]
8462 ["Right" org-table-fedit-ref-right t]
8463 "-"
8464 "Change Test Row for Column Formulas"
8465 ["Up" org-table-fedit-line-up t]
8466 ["Down" org-table-fedit-line-down t]
8467 "--"
8468 ["Scroll Table Window" org-table-fedit-scroll t]
8469 ["Scroll Table Window down" org-table-fedit-scroll-down t]
8470 ["Show Table Grid" org-table-fedit-toggle-coordinates
8471 :style toggle :selected (with-current-buffer (marker-buffer org-pos)
8472 org-table-overlay-coordinates)]
8473 "--"
8474 ["Standard Refs (B3 instead of @3$2)" org-table-fedit-toggle-ref-type
8475 :style toggle :selected org-table-buffer-is-an]))
7941 8476
7942(defvar org-pos) 8477(defvar org-pos)
7943 8478
7944(defun org-table-edit-formulas () 8479(defun org-table-edit-formulas ()
7945 "Edit the formulas of the current table in a separate buffer." 8480 "Edit the formulas of the current table in a separate buffer."
7946 (interactive) 8481 (interactive)
8482 (when (save-excursion (beginning-of-line 1) (looking-at "#\\+TBLFM"))
8483 (beginning-of-line 0))
7947 (unless (org-at-table-p) (error "Not at a table")) 8484 (unless (org-at-table-p) (error "Not at a table"))
7948 (org-table-get-specials) 8485 (org-table-get-specials)
7949 (let ((eql (org-table-get-stored-formulas)) 8486 (let ((key (org-table-current-field-formula 'key 'noerror))
8487 (eql (sort (org-table-get-stored-formulas 'noerror)
8488 'org-table-formula-less-p))
7950 (pos (move-marker (make-marker) (point))) 8489 (pos (move-marker (make-marker) (point)))
8490 (startline 1)
7951 (wc (current-window-configuration)) 8491 (wc (current-window-configuration))
7952 entry s) 8492 (titles '((column . "# Column Formulas\n")
8493 (field . "# Field Formulas\n")
8494 (named . "# Named Field Formulas\n")))
8495 entry s type title)
7953 (switch-to-buffer-other-window "*Edit Formulas*") 8496 (switch-to-buffer-other-window "*Edit Formulas*")
7954 (erase-buffer) 8497 (erase-buffer)
7955 ;; Keep global-font-lock-mode from turning on font-lock-mode 8498 ;; Keep global-font-lock-mode from turning on font-lock-mode
@@ -7958,38 +8501,226 @@ Parameters get priority."
7958 (org-set-local 'font-lock-global-modes (list 'not major-mode)) 8501 (org-set-local 'font-lock-global-modes (list 'not major-mode))
7959 (org-set-local 'org-pos pos) 8502 (org-set-local 'org-pos pos)
7960 (org-set-local 'org-window-configuration wc) 8503 (org-set-local 'org-window-configuration wc)
7961 (use-local-map org-edit-formulas-map) 8504 (use-local-map org-table-fedit-map)
7962 (org-add-hook 'post-command-hook 'org-table-edit-formulas-post-command t t) 8505 (org-add-hook 'post-command-hook 'org-table-fedit-post-command t t)
7963 (setq s "# `C-c C-c' to finish, `C-u C-c C-c' to also apply, `C-c C-q' to abort. 8506 (easy-menu-add org-table-fedit-menu)
7964# `TAB' to pretty-print Lisp expressions, `M-TAB' to complete List symbols 8507 (setq startline (org-current-line))
7965# `M-up/down' to scroll table, `S-up/down' to change line for column formulas\n\n")
7966
7967 (put-text-property 0 (length s) 'face 'font-lock-comment-face s)
7968 (insert s)
7969 (while (setq entry (pop eql)) 8508 (while (setq entry (pop eql))
8509 (setq type (cond
8510 ((equal (string-to-char (car entry)) ?@) 'field)
8511 ((string-match "^[0-9]" (car entry)) 'column)
8512 (t 'named)))
8513 (when (setq title (assq type titles))
8514 (or (bobp) (insert "\n"))
8515 (insert (org-add-props (cdr title) nil 'face font-lock-comment-face))
8516 (setq titles (delq title titles)))
8517 (if (equal key (car entry)) (setq startline (org-current-line)))
7970 (setq s (concat (if (equal (string-to-char (car entry)) ?@) "" "$") 8518 (setq s (concat (if (equal (string-to-char (car entry)) ?@) "" "$")
7971 (car entry) " = " (cdr entry) "\n")) 8519 (car entry) " = " (cdr entry) "\n"))
7972 (remove-text-properties 0 (length s) '(face nil) s) 8520 (remove-text-properties 0 (length s) '(face nil) s)
7973 (insert s)) 8521 (insert s))
7974 (goto-char (point-min)) 8522 (if (eq org-table-use-standard-references t)
7975 (message "Edit formulas and finish with `C-c C-c'."))) 8523 (org-table-fedit-toggle-ref-type))
8524 (goto-line startline)
8525 (message "Edit formulas and finish with `C-c C-c'. See menu for more commands.")))
7976 8526
7977(defun org-table-edit-formulas-post-command () 8527(defun org-table-fedit-post-command ()
7978 (when (not (memq this-command '(lisp-complete-symbol))) 8528 (when (not (memq this-command '(lisp-complete-symbol)))
7979 (let ((win (selected-window))) 8529 (let ((win (selected-window)))
7980 (save-excursion 8530 (save-excursion
7981 (condition-case nil 8531 (condition-case nil
7982 (org-show-reference) 8532 (org-table-show-reference)
7983 (error nil)) 8533 (error nil))
7984 (select-window win))))) 8534 (select-window win)))))
7985 8535
7986(defun org-finish-edit-formulas (&optional arg) 8536(defun org-table-formula-to-user (s)
8537 "Convert a formula from internal to user representation."
8538 (if (eq org-table-use-standard-references t)
8539 (org-table-convert-refs-to-an s)
8540 s))
8541
8542(defun org-table-formula-from-user (s)
8543 "Convert a formula from user to internal representation."
8544 (if org-table-use-standard-references
8545 (org-table-convert-refs-to-rc s)
8546 s))
8547
8548(defun org-table-convert-refs-to-rc (s)
8549 "Convert spreadsheet references from AB7 to @7$28.
8550Works for single references, but also for entire formulas and even the
8551full TBLFM line."
8552 (let ((start 0))
8553 (while (string-match "\\<\\([a-zA-Z]+\\)\\([0-9]+\\>\\|&\\)\\|\\(;[^\r\n:]+\\)" s start)
8554 (cond
8555 ((match-end 3)
8556 ;; format match, just advance
8557 (setq start (match-end 0)))
8558 ((and (> (match-beginning 0) 0)
8559 (equal ?. (aref s (max (1- (match-beginning 0)) 0))))
8560 ;; 3.e5 or something like this. FIXME: is this ok????
8561 (setq start (match-end 0)))
8562 (t
8563 (setq start (match-beginning 0)
8564 s (replace-match
8565 (if (equal (match-string 2 s) "&")
8566 (format "$%d" (org-letters-to-number (match-string 1 s)))
8567 (format "@%d$%d"
8568 (string-to-number (match-string 2 s))
8569 (org-letters-to-number (match-string 1 s))))
8570 t t s)))))
8571 s))
8572
8573(defun org-table-convert-refs-to-an (s)
8574 "Convert spreadsheet references from to @7$28 to AB7.
8575Works for single references, but also for entire formulas and even the
8576full TBLFM line."
8577 (while (string-match "@\\([0-9]+\\)$\\([0-9]+\\)" s)
8578 (setq s (replace-match
8579 (format "%s%d"
8580 (org-number-to-letters
8581 (string-to-number (match-string 2 s)))
8582 (string-to-number (match-string 1 s)))
8583 t t s)))
8584 (while (string-match "\\(^\\|[^0-9a-zA-Z]\\)\\$\\([0-9]+\\)" s)
8585 (setq s (replace-match (concat "\\1"
8586 (org-number-to-letters
8587 (string-to-number (match-string 2 s))) "&")
8588 t nil s)))
8589 s)
8590
8591(defun org-letters-to-number (s)
8592 "Convert a base 26 number represented by letters into an integer.
8593For example: AB -> 28."
8594 (let ((n 0))
8595 (setq s (upcase s))
8596 (while (> (length s) 0)
8597 (setq n (+ (* n 26) (string-to-char s) (- ?A) 1)
8598 s (substring s 1)))
8599 n))
8600
8601(defun org-number-to-letters (n)
8602 "Convert an integer into a base 26 number represented by letters.
8603For example: 28 -> AB."
8604 (let ((s ""))
8605 (while (> n 0)
8606 (setq s (concat (char-to-string (+ (mod (1- n) 26) ?A)) s)
8607 n (/ (1- n) 26)))
8608 s))
8609
8610(defun org-table-fedit-convert-buffer (function)
8611 "Convert all references in this buffer, using FUNTION."
8612 (let ((line (org-current-line)))
8613 (goto-char (point-min))
8614 (while (not (eobp))
8615 (insert (funcall function (buffer-substring (point) (point-at-eol))))
8616 (delete-region (point) (point-at-eol))
8617 (or (eobp) (forward-char 1)))
8618 (goto-line line)))
8619
8620(defun org-table-fedit-toggle-ref-type ()
8621 "Convert all references in the buffer from B3 to @3$2 and back."
8622 (interactive)
8623 (org-set-local 'org-table-buffer-is-an (not org-table-buffer-is-an))
8624 (org-table-fedit-convert-buffer
8625 (if org-table-buffer-is-an
8626 'org-table-convert-refs-to-an 'org-table-convert-refs-to-rc))
8627 (message "Reference type switched to %s"
8628 (if org-table-buffer-is-an "A1 etc" "@row$column")))
8629
8630(defun org-table-fedit-ref-up ()
8631 "Shift the reference at point one row/hline up."
8632 (interactive)
8633 (org-table-fedit-shift-reference 'up))
8634(defun org-table-fedit-ref-down ()
8635 "Shift the reference at point one row/hline down."
8636 (interactive)
8637 (org-table-fedit-shift-reference 'down))
8638(defun org-table-fedit-ref-left ()
8639 "Shift the reference at point one field to the left."
8640 (interactive)
8641 (org-table-fedit-shift-reference 'left))
8642(defun org-table-fedit-ref-right ()
8643 "Shift the reference at point one field to the right."
8644 (interactive)
8645 (org-table-fedit-shift-reference 'right))
8646
8647(defun org-table-fedit-shift-reference (dir)
8648 (cond
8649 ((org-at-regexp-p "\\(\\<[a-zA-Z]\\)&")
8650 (if (memq dir '(left right))
8651 (org-rematch-and-replace 1 (eq dir 'left))
8652 (error "Cannot shift reference in this direction")))
8653 ((org-at-regexp-p "\\(\\<[a-zA-Z]\\{1,2\\}\\)\\([0-9]+\\)")
8654 ;; A B3-like reference
8655 (if (memq dir '(up down))
8656 (org-rematch-and-replace 2 (eq dir 'up))
8657 (org-rematch-and-replace 1 (eq dir 'left))))
8658 ((org-at-regexp-p
8659 "\\(@\\|\\.\\.\\)\\([-+]?\\(I+\\>\\|[0-9]+\\)\\)\\(\\$\\([-+]?[0-9]+\\)\\)?")
8660 ;; An internal reference
8661 (if (memq dir '(up down))
8662 (org-rematch-and-replace 2 (eq dir 'up) (match-end 3))
8663 (org-rematch-and-replace 5 (eq dir 'left))))))
8664
8665(defun org-rematch-and-replace (n &optional decr hline)
8666 "Re-match the group N, and replace it with the shifted refrence."
8667 (or (match-end n) (error "Cannot shift reference in this direction"))
8668 (goto-char (match-beginning n))
8669 (and (looking-at (regexp-quote (match-string n)))
8670 (replace-match (org-shift-refpart (match-string 0) decr hline)
8671 t t)))
8672
8673(defun org-shift-refpart (ref &optional decr hline)
8674 "Shift a refrence part REF.
8675If DECR is set, decrease the references row/column, else increase.
8676If HLINE is set, this may be a hline reference, it certainly is not
8677a translation reference."
8678 (save-match-data
8679 (let* ((sign (string-match "^[-+]" ref)) n)
8680
8681 (if sign (setq sign (substring ref 0 1) ref (substring ref 1)))
8682 (cond
8683 ((and hline (string-match "^I+" ref))
8684 (setq n (string-to-number (concat sign (number-to-string (length ref)))))
8685 (setq n (+ n (if decr -1 1)))
8686 (if (= n 0) (setq n (+ n (if decr -1 1))))
8687 (if sign
8688 (setq sign (if (< n 0) "-" "+") n (abs n))
8689 (setq n (max 1 n)))
8690 (concat sign (make-string n ?I)))
8691
8692 ((string-match "^[0-9]+" ref)
8693 (setq n (string-to-number (concat sign ref)))
8694 (setq n (+ n (if decr -1 1)))
8695 (if sign
8696 (concat (if (< n 0) "-" "+") (number-to-string (abs n)))
8697 (number-to-string (max 1 n))))
8698
8699 ((string-match "^[a-zA-Z]+" ref)
8700 (org-number-to-letters
8701 (max 1 (+ (org-letters-to-number ref) (if decr -1 1)))))
8702
8703 (t (error "Cannot shift reference"))))))
8704
8705(defun org-table-fedit-toggle-coordinates ()
8706 "Toggle the display of coordinates in the refrenced table."
8707 (interactive)
8708 (let ((pos (marker-position org-pos)))
8709 (with-current-buffer (marker-buffer org-pos)
8710 (save-excursion
8711 (goto-char pos)
8712 (org-table-toggle-coordinate-overlays)))))
8713
8714(defun org-table-fedit-finish (&optional arg)
7987 "Parse the buffer for formula definitions and install them. 8715 "Parse the buffer for formula definitions and install them.
7988With prefix ARG, apply the new formulas to the table." 8716With prefix ARG, apply the new formulas to the table."
7989 (interactive "P") 8717 (interactive "P")
7990 (org-table-remove-rectangle-highlight) 8718 (org-table-remove-rectangle-highlight)
8719 (if org-table-use-standard-references
8720 (progn
8721 (org-table-fedit-convert-buffer 'org-table-convert-refs-to-rc)
8722 (setq org-table-buffer-is-an nil)))
7991 (let ((pos org-pos) eql var form) 8723 (let ((pos org-pos) eql var form)
7992 (setq org-pos nil)
7993 (goto-char (point-min)) 8724 (goto-char (point-min))
7994 (while (re-search-forward 8725 (while (re-search-forward
7995 "^\\(@[0-9]+\\$[0-9]+\\|\\$\\([a-zA-Z0-9]+\\)\\) *= *\\(.*\\(\n[ \t]+.*$\\)*\\)" 8726 "^\\(@[0-9]+\\$[0-9]+\\|\\$\\([a-zA-Z0-9]+\\)\\) *= *\\(.*\\(\n[ \t]+.*$\\)*\\)"
@@ -7997,9 +8728,13 @@ With prefix ARG, apply the new formulas to the table."
7997 (setq var (if (match-end 2) (match-string 2) (match-string 1)) 8728 (setq var (if (match-end 2) (match-string 2) (match-string 1))
7998 form (match-string 3)) 8729 form (match-string 3))
7999 (setq form (org-trim form)) 8730 (setq form (org-trim form))
8000 (while (string-match "[ \t]*\n[ \t]*" form) 8731 (when (not (equal form ""))
8001 (setq form (replace-match " " t t form))) 8732 (while (string-match "[ \t]*\n[ \t]*" form)
8002 (push (cons var form) eql)) 8733 (setq form (replace-match " " t t form)))
8734 (when (assoc var eql)
8735 (error "Double formulas for %s" var))
8736 (push (cons var form) eql)))
8737 (setq org-pos nil)
8003 (set-window-configuration org-window-configuration) 8738 (set-window-configuration org-window-configuration)
8004 (select-window (get-buffer-window (marker-buffer pos))) 8739 (select-window (get-buffer-window (marker-buffer pos)))
8005 (goto-char pos) 8740 (goto-char pos)
@@ -8012,7 +8747,7 @@ With prefix ARG, apply the new formulas to the table."
8012 (org-table-recalculate 'all) 8747 (org-table-recalculate 'all)
8013 (message "New formulas installed - press C-u C-c C-c to apply.")))) 8748 (message "New formulas installed - press C-u C-c C-c to apply."))))
8014 8749
8015(defun org-abort-edit-formulas () 8750(defun org-table-fedit-abort ()
8016 "Abort editing formulas, without installing the changes." 8751 "Abort editing formulas, without installing the changes."
8017 (interactive) 8752 (interactive)
8018 (org-table-remove-rectangle-highlight) 8753 (org-table-remove-rectangle-highlight)
@@ -8023,7 +8758,7 @@ With prefix ARG, apply the new formulas to the table."
8023 (move-marker pos nil) 8758 (move-marker pos nil)
8024 (message "Formula editing aborted without installing changes"))) 8759 (message "Formula editing aborted without installing changes")))
8025 8760
8026(defun org-edit-formula-lisp-indent () 8761(defun org-table-fedit-lisp-indent ()
8027 "Pretty-print and re-indent Lisp expressions in the Formula Editor." 8762 "Pretty-print and re-indent Lisp expressions in the Formula Editor."
8028 (interactive) 8763 (interactive)
8029 (let ((pos (point)) beg end ind) 8764 (let ((pos (point)) beg end ind)
@@ -8064,7 +8799,7 @@ With prefix ARG, apply the new formulas to the table."
8064 8799
8065(defvar org-show-positions nil) 8800(defvar org-show-positions nil)
8066 8801
8067(defun org-show-reference (&optional local) 8802(defun org-table-show-reference (&optional local)
8068 "Show the location/value of the $ expression at point." 8803 "Show the location/value of the $ expression at point."
8069 (interactive) 8804 (interactive)
8070 (org-table-remove-rectangle-highlight) 8805 (org-table-remove-rectangle-highlight)
@@ -8077,12 +8812,18 @@ With prefix ARG, apply the new formulas to the table."
8077 var name e what match dest) 8812 var name e what match dest)
8078 (if local (org-table-get-specials)) 8813 (if local (org-table-get-specials))
8079 (setq what (cond 8814 (setq what (cond
8080 ((org-at-regexp-p org-table-range-regexp2) 'range) 8815 ((or (org-at-regexp-p org-table-range-regexp2)
8816 (org-at-regexp-p org-table-translate-regexp)
8817 (org-at-regexp-p org-table-range-regexp))
8818 (setq match
8819 (save-match-data
8820 (org-table-convert-refs-to-rc (match-string 0))))
8821 'range)
8081 ((org-at-regexp-p "\\$[a-zA-Z][a-zA-Z0-9]*") 'name) 8822 ((org-at-regexp-p "\\$[a-zA-Z][a-zA-Z0-9]*") 'name)
8082 ((org-at-regexp-p "\\$[0-9]+") 'column) 8823 ((org-at-regexp-p "\\$[0-9]+") 'column)
8083 ((not local) nil) 8824 ((not local) nil)
8084 (t (error "No reference at point"))) 8825 (t (error "No reference at point")))
8085 match (and what (match-string 0))) 8826 match (and what (or match (match-string 0))))
8086 (when (and match (not (equal (match-beginning 0) (point-at-bol)))) 8827 (when (and match (not (equal (match-beginning 0) (point-at-bol))))
8087 (org-table-add-rectangle-overlay (match-beginning 0) (match-end 0) 8828 (org-table-add-rectangle-overlay (match-beginning 0) (match-end 0)
8088 'secondary-selection)) 8829 'secondary-selection))
@@ -8094,9 +8835,13 @@ With prefix ARG, apply the new formulas to the table."
8094 (setq match (org-table-formula-substitute-names match))) 8835 (setq match (org-table-formula-substitute-names match)))
8095 (unless local 8836 (unless local
8096 (save-excursion 8837 (save-excursion
8838 (end-of-line 1)
8839 (re-search-backward "^\\S-" nil t)
8097 (beginning-of-line 1) 8840 (beginning-of-line 1)
8098 (when (looking-at "\\(\\$[0-9a-zA-Z]+\\|@[0-9]+\\$[0-9]+\\)=") 8841 (when (looking-at "\\(\\$[0-9a-zA-Z]+\\|@[0-9]+\\$[0-9]+\\|[a-zA-Z]+\\([0-9]+\\|&\\)\\) *=")
8099 (setq dest (match-string 1)) 8842 (setq dest
8843 (save-match-data
8844 (org-table-convert-refs-to-rc (match-string 1))))
8100 (org-table-add-rectangle-overlay 8845 (org-table-add-rectangle-overlay
8101 (match-beginning 1) (match-end 1) face2)))) 8846 (match-beginning 1) (match-end 1) face2))))
8102 (if (and (markerp pos) (marker-buffer pos)) 8847 (if (and (markerp pos) (marker-buffer pos))
@@ -8165,18 +8910,20 @@ With prefix ARG, apply the new formulas to the table."
8165 (message "Constant: $%s=%s in `org-table-formula-constants'." 8910 (message "Constant: $%s=%s in `org-table-formula-constants'."
8166 var (cdr e))) 8911 var (cdr e)))
8167 ((setq e (and (fboundp 'constants-get) (constants-get var))) 8912 ((setq e (and (fboundp 'constants-get) (constants-get var)))
8168 (message "Constant: $%s=%s, retrieved from `constants.el'." var e)) 8913 (message "Constant: $%s=%s, from `constants.el'%s."
8914 var e (format " (%s units)" constants-unit-system)))
8169 (t (error "Undefined name $%s" var))))) 8915 (t (error "Undefined name $%s" var)))))
8170 (goto-char pos) 8916 (goto-char pos)
8171 (when org-show-positions 8917 (when (and org-show-positions
8918 (not (memq this-command '(org-table-fedit-scroll
8919 org-table-fedit-scroll-down))))
8172 (push pos org-show-positions) 8920 (push pos org-show-positions)
8921 (push org-table-current-begin-pos org-show-positions)
8173 (let ((min (apply 'min org-show-positions)) 8922 (let ((min (apply 'min org-show-positions))
8174 (max (apply 'max org-show-positions))) 8923 (max (apply 'max org-show-positions)))
8175 (when (or (not (pos-visible-in-window-p min)) 8924 (goto-char min) (recenter 0)
8176 (not (pos-visible-in-window-p max))) 8925 (goto-char max)
8177 (goto-char min) 8926 (or (pos-visible-in-window-p max) (recenter -1))))
8178 (set-window-start (selected-window) (point-at-bol))
8179 (goto-char pos))))
8180 (select-window win)))) 8927 (select-window win))))
8181 8928
8182(defun org-table-force-dataline () 8929(defun org-table-force-dataline ()
@@ -8193,27 +8940,17 @@ With prefix ARG, apply the new formulas to the table."
8193 ((or p1 p2) (goto-char (or p1 p2))) 8940 ((or p1 p2) (goto-char (or p1 p2)))
8194 (t (error "No table dataline around here")))))) 8941 (t (error "No table dataline around here"))))))
8195 8942
8196(defun org-table-edit-line-up () 8943(defun org-table-fedit-line-up ()
8197 "Move cursor one line up in the window showing the table." 8944 "Move cursor one line up in the window showing the table."
8198 (interactive) 8945 (interactive)
8199 (org-table-edit-move 'previous-line)) 8946 (org-table-fedit-move 'previous-line))
8200 8947
8201(defun org-table-edit-line-down () 8948(defun org-table-fedit-line-down ()
8202 "Move cursor one line down in the window showing the table." 8949 "Move cursor one line down in the window showing the table."
8203 (interactive) 8950 (interactive)
8204 (org-table-edit-move 'next-line)) 8951 (org-table-fedit-move 'next-line))
8205 8952
8206(defun org-table-edit-backward-field () 8953(defun org-table-fedit-move (command)
8207 "Move cursor one field backward in the window showing the table."
8208 (interactive)
8209 (org-table-edit-move 'org-table-previous-field))
8210
8211(defun org-table-edit-next-field ()
8212 "Move cursor one field forward in the window showing the table."
8213 (interactive)
8214 (org-table-edit-move 'org-table-next-field))
8215
8216(defun org-table-edit-move (command)
8217 "Move the cursor in the window shoinw the table. 8954 "Move the cursor in the window shoinw the table.
8218Use COMMAND to do the motion, repeat if necessary to end up in a data line." 8955Use COMMAND to do the motion, repeat if necessary to end up in a data line."
8219 (let ((org-table-allow-automatic-line-recalculation nil) 8956 (let ((org-table-allow-automatic-line-recalculation nil)
@@ -8228,17 +8965,17 @@ Use COMMAND to do the motion, repeat if necessary to end up in a data line."
8228 (move-marker pos (point)) 8965 (move-marker pos (point))
8229 (select-window win))) 8966 (select-window win)))
8230 8967
8231(defun org-table-edit-scroll (N) 8968(defun org-table-fedit-scroll (N)
8232 (interactive "p") 8969 (interactive "p")
8233 (let ((other-window-scroll-buffer (marker-buffer org-pos))) 8970 (let ((other-window-scroll-buffer (marker-buffer org-pos)))
8234 (scroll-other-window N))) 8971 (scroll-other-window N)))
8235 8972
8236(defun org-table-edit-scroll-down (N) 8973(defun org-table-fedit-scroll-down (N)
8237 (interactive "p") 8974 (interactive "p")
8238 (org-table-edit-scroll (- N))) 8975 (org-table-fedit-scroll (- N)))
8239 8976
8240(defvar org-table-rectangle-overlays nil) 8977(defvar org-table-rectangle-overlays nil)
8241 8978
8242(defun org-table-add-rectangle-overlay (beg end &optional face) 8979(defun org-table-add-rectangle-overlay (beg end &optional face)
8243 "Add a new overlay." 8980 "Add a new overlay."
8244 (let ((ov (org-make-overlay beg end))) 8981 (let ((ov (org-make-overlay beg end)))
@@ -8290,7 +9027,7 @@ Use COMMAND to do the motion, repeat if necessary to end up in a data line."
8290 (mapc 'org-delete-overlay org-table-coordinate-overlays) 9027 (mapc 'org-delete-overlay org-table-coordinate-overlays)
8291 (setq org-table-coordinate-overlays nil) 9028 (setq org-table-coordinate-overlays nil)
8292 (save-excursion 9029 (save-excursion
8293 (let ((id 0) (ih 0) hline eol str ic ov beg) 9030 (let ((id 0) (ih 0) hline eol s1 s2 str ic ov beg)
8294 (goto-char (org-table-begin)) 9031 (goto-char (org-table-begin))
8295 (while (org-at-table-p) 9032 (while (org-at-table-p)
8296 (setq eol (point-at-eol)) 9033 (setq eol (point-at-eol))
@@ -8299,15 +9036,18 @@ Use COMMAND to do the motion, repeat if necessary to end up in a data line."
8299 (setq hline (looking-at org-table-hline-regexp)) 9036 (setq hline (looking-at org-table-hline-regexp))
8300 (setq str (if hline (format "I*%-2d" (setq ih (1+ ih))) 9037 (setq str (if hline (format "I*%-2d" (setq ih (1+ ih)))
8301 (format "%4d" (setq id (1+ id))))) 9038 (format "%4d" (setq id (1+ id)))))
8302 (org-overlay-before-string ov str 'org-formula 'evaporate) 9039 (org-overlay-before-string ov str 'org-special-keyword 'evaporate)
8303 (when hline 9040 (when hline
8304 (setq ic 0) 9041 (setq ic 0)
8305 (while (re-search-forward "[+|]-+" eol t) 9042 (while (re-search-forward "[+|]\\(-+\\)" eol t)
8306 (setq beg (1+ (match-beginning 0)) 9043 (setq beg (1+ (match-beginning 0))
8307 str (concat "$" (int-to-string (setq ic (1+ ic))))) 9044 ic (1+ ic)
9045 s1 (concat "$" (int-to-string ic))
9046 s2 (org-number-to-letters ic)
9047 str (if (eq org-table-use-standard-references t) s2 s1))
8308 (setq ov (org-make-overlay beg (+ beg (length str)))) 9048 (setq ov (org-make-overlay beg (+ beg (length str))))
8309 (push ov org-table-coordinate-overlays) 9049 (push ov org-table-coordinate-overlays)
8310 (org-overlay-display ov str 'org-formula 'evaporate))) 9050 (org-overlay-display ov str 'org-special-keyword 'evaporate)))
8311 (beginning-of-line 2))))) 9051 (beginning-of-line 2)))))
8312 9052
8313(defun org-table-toggle-coordinate-overlays () 9053(defun org-table-toggle-coordinate-overlays ()
@@ -8492,7 +9232,7 @@ to execute outside of tables."
8492 '("\C-c}" org-table-toggle-coordinate-overlays) 9232 '("\C-c}" org-table-toggle-coordinate-overlays)
8493 '("\C-c{" org-table-toggle-formula-debugger) 9233 '("\C-c{" org-table-toggle-formula-debugger)
8494 '("\C-m" org-table-next-row) 9234 '("\C-m" org-table-next-row)
8495 (list (org-key 'S-return) 'org-table-copy-down) 9235 '([(shift return)] org-table-copy-down)
8496 '("\C-c\C-q" org-table-wrap-region) 9236 '("\C-c\C-q" org-table-wrap-region)
8497 '("\C-c?" org-table-field-info) 9237 '("\C-c?" org-table-field-info)
8498 '("\C-c " org-table-blank-field) 9238 '("\C-c " org-table-blank-field)
@@ -8507,34 +9247,34 @@ to execute outside of tables."
8507 elt key fun cmd) 9247 elt key fun cmd)
8508 (while (setq elt (pop bindings)) 9248 (while (setq elt (pop bindings))
8509 (setq nfunc (1+ nfunc)) 9249 (setq nfunc (1+ nfunc))
8510 (setq key (car elt) 9250 (setq key (org-key (car elt))
8511 fun (nth 1 elt) 9251 fun (nth 1 elt)
8512 cmd (orgtbl-make-binding fun nfunc key)) 9252 cmd (orgtbl-make-binding fun nfunc key))
8513 (define-key orgtbl-mode-map key cmd)) 9253 (org-defkey orgtbl-mode-map key cmd))
8514 9254
8515 ;; Special treatment needed for TAB and RET 9255 ;; Special treatment needed for TAB and RET
8516 (define-key orgtbl-mode-map [(return)] 9256 (org-defkey orgtbl-mode-map [(return)]
8517 (orgtbl-make-binding 'orgtbl-ret 100 [(return)] "\C-m")) 9257 (orgtbl-make-binding 'orgtbl-ret 100 [(return)] "\C-m"))
8518 (define-key orgtbl-mode-map "\C-m" 9258 (org-defkey orgtbl-mode-map "\C-m"
8519 (orgtbl-make-binding 'orgtbl-ret 101 "\C-m" [(return)])) 9259 (orgtbl-make-binding 'orgtbl-ret 101 "\C-m" [(return)]))
8520 9260
8521 (define-key orgtbl-mode-map [(tab)] 9261 (org-defkey orgtbl-mode-map [(tab)]
8522 (orgtbl-make-binding 'orgtbl-tab 102 [(tab)] "\C-i")) 9262 (orgtbl-make-binding 'orgtbl-tab 102 [(tab)] "\C-i"))
8523 (define-key orgtbl-mode-map "\C-i" 9263 (org-defkey orgtbl-mode-map "\C-i"
8524 (orgtbl-make-binding 'orgtbl-tab 103 "\C-i" [(tab)])) 9264 (orgtbl-make-binding 'orgtbl-tab 103 "\C-i" [(tab)]))
8525 9265
8526 (define-key orgtbl-mode-map [(shift tab)] 9266 (org-defkey orgtbl-mode-map [(shift tab)]
8527 (orgtbl-make-binding 'org-table-previous-field 104 9267 (orgtbl-make-binding 'org-table-previous-field 104
8528 [(shift tab)] [(tab)] "\C-i")) 9268 [(shift tab)] [(tab)] "\C-i"))
8529 9269
8530 (define-key orgtbl-mode-map "\M-\C-m" 9270 (org-defkey orgtbl-mode-map "\M-\C-m"
8531 (orgtbl-make-binding 'org-table-wrap-region 105 9271 (orgtbl-make-binding 'org-table-wrap-region 105
8532 "\M-\C-m" [(meta return)])) 9272 "\M-\C-m" [(meta return)]))
8533 (define-key orgtbl-mode-map [(meta return)] 9273 (org-defkey orgtbl-mode-map [(meta return)]
8534 (orgtbl-make-binding 'org-table-wrap-region 106 9274 (orgtbl-make-binding 'org-table-wrap-region 106
8535 [(meta return)] "\M-\C-m")) 9275 [(meta return)] "\M-\C-m"))
8536 9276
8537 (define-key orgtbl-mode-map "\C-c\C-c" 'orgtbl-ctrl-c-ctrl-c) 9277 (org-defkey orgtbl-mode-map "\C-c\C-c" 'orgtbl-ctrl-c-ctrl-c)
8538 (when orgtbl-optimized 9278 (when orgtbl-optimized
8539 ;; If the user wants maximum table support, we need to hijack 9279 ;; If the user wants maximum table support, we need to hijack
8540 ;; some standard editing functions 9280 ;; some standard editing functions
@@ -8542,7 +9282,7 @@ to execute outside of tables."
8542 'self-insert-command 'orgtbl-self-insert-command 9282 'self-insert-command 'orgtbl-self-insert-command
8543 'delete-char 'org-delete-char 9283 'delete-char 'org-delete-char
8544 'delete-backward-char 'org-delete-backward-char) 9284 'delete-backward-char 'org-delete-backward-char)
8545 (define-key orgtbl-mode-map "|" 'org-force-self-insert)) 9285 (org-defkey orgtbl-mode-map "|" 'org-force-self-insert))
8546 (easy-menu-define orgtbl-mode-menu orgtbl-mode-map "OrgTbl menu" 9286 (easy-menu-define orgtbl-mode-menu orgtbl-mode-map "OrgTbl menu"
8547 '("OrgTbl" 9287 '("OrgTbl"
8548 ["Align" org-ctrl-c-ctrl-c :active (org-at-table-p) :keys "C-c C-c"] 9288 ["Align" org-ctrl-c-ctrl-c :active (org-at-table-p) :keys "C-c C-c"]
@@ -8678,7 +9418,31 @@ overwritten, and the table is not marked as requiring realignment."
8678(defvar orgtbl-exp-regexp "^\\([-+]?[0-9][0-9.]*\\)[eE]\\([-+]?[0-9]+\\)$" 9418(defvar orgtbl-exp-regexp "^\\([-+]?[0-9][0-9.]*\\)[eE]\\([-+]?[0-9]+\\)$"
8679 "Regula expression matching exponentials as produced by calc.") 9419 "Regula expression matching exponentials as produced by calc.")
8680 9420
8681(defvar org-table-clean-did-remove-column-1 nil) 9421(defvar org-table-clean-did-remove-column nil)
9422
9423(defun orgtbl-export (table target)
9424 (let ((func (intern (concat "orgtbl-to-" (symbol-name target))))
9425 (lines (org-split-string table "[ \t]*\n[ \t]*"))
9426 org-table-last-alignment org-table-last-column-widths
9427 maxcol column)
9428 (if (not (fboundp func))
9429 (error "Cannot export orgtbl table to %s" target))
9430 (setq lines (org-table-clean-before-export lines))
9431 (setq table
9432 (mapcar
9433 (lambda (x)
9434 (if (string-match org-table-hline-regexp x)
9435 'hline
9436 (org-split-string (org-trim x) "\\s-*|\\s-*")))
9437 lines))
9438 (setq maxcol (apply 'max (mapcar (lambda (x) (if (listp x) (length x) 0))
9439 table)))
9440 (loop for i from (1- maxcol) downto 0 do
9441 (setq column (mapcar (lambda (x) (if (listp x) (nth i x) nil)) table))
9442 (setq column (delq nil column))
9443 (push (apply 'max (mapcar 'string-width column)) org-table-last-column-widths)
9444 (push (> (/ (apply '+ (mapcar (lambda (x) (if (string-match org-table-number-regexp x) 1 0)) column)) maxcol) org-table-number-fraction) org-table-last-alignment))
9445 (funcall func table nil)))
8682 9446
8683(defun orgtbl-send-table (&optional maybe) 9447(defun orgtbl-send-table (&optional maybe)
8684 "Send a tranformed version of this table to the receiver position. 9448 "Send a tranformed version of this table to the receiver position.
@@ -8706,7 +9470,7 @@ this table."
8706 (org-table-begin) (org-table-end))) 9470 (org-table-begin) (org-table-end)))
8707 (lines (nthcdr (or skip 0) (org-split-string txt "[ \t]*\n[ \t]*"))) 9471 (lines (nthcdr (or skip 0) (org-split-string txt "[ \t]*\n[ \t]*")))
8708 (lines (org-table-clean-before-export lines)) 9472 (lines (org-table-clean-before-export lines))
8709 (i0 (if org-table-clean-did-remove-column-1 2 1)) 9473 (i0 (if org-table-clean-did-remove-column 2 1))
8710 (table (mapcar 9474 (table (mapcar
8711 (lambda (x) 9475 (lambda (x)
8712 (if (string-match org-table-hline-regexp x) 9476 (if (string-match org-table-hline-regexp x)
@@ -8722,7 +9486,7 @@ this table."
8722 (org-table-last-column-widths 9486 (org-table-last-column-widths
8723 (org-remove-by-index (funcall fun org-table-last-column-widths) 9487 (org-remove-by-index (funcall fun org-table-last-column-widths)
8724 skipcols i0))) 9488 skipcols i0)))
8725 9489
8726 (unless (fboundp transform) 9490 (unless (fboundp transform)
8727 (error "No such transformation function %s" transform)) 9491 (error "No such transformation function %s" transform))
8728 (setq txt (funcall transform table params)) 9492 (setq txt (funcall transform table params))
@@ -8754,7 +9518,7 @@ First element has index 0, or I0 if given."
8754 (setq i0 (1+ i0)) 9518 (setq i0 (1+ i0))
8755 (if (memq i0 indices) :rm x)) 9519 (if (memq i0 indices) :rm x))
8756 list)))) 9520 list))))
8757 9521
8758(defun orgtbl-toggle-comment () 9522(defun orgtbl-toggle-comment ()
8759 "Comment or uncomment the orgtbl at point." 9523 "Comment or uncomment the orgtbl at point."
8760 (interactive) 9524 (interactive)
@@ -8850,7 +9614,7 @@ directly by `orgtbl-send-table'. See manual."
8850 (splicep (plist-get p :splice)) 9614 (splicep (plist-get p :splice))
8851 (hline (plist-get p :hline)) 9615 (hline (plist-get p :hline))
8852 rtn line i fm efm lfmt h) 9616 rtn line i fm efm lfmt h)
8853 9617
8854 ;; Do we have a header? 9618 ;; Do we have a header?
8855 (if (and (not splicep) (listp (car table)) (memq 'hline table)) 9619 (if (and (not splicep) (listp (car table)) (memq 'hline table))
8856 (setq h t)) 9620 (setq h t))
@@ -8858,7 +9622,7 @@ directly by `orgtbl-send-table'. See manual."
8858 ;; Put header 9622 ;; Put header
8859 (unless splicep 9623 (unless splicep
8860 (push (or (plist-get p :tstart) "ERROR: no :tstart") rtn)) 9624 (push (or (plist-get p :tstart) "ERROR: no :tstart") rtn))
8861 9625
8862 ;; Now loop over all lines 9626 ;; Now loop over all lines
8863 (while (setq line (pop table)) 9627 (while (setq line (pop table))
8864 (if (eq line 'hline) 9628 (if (eq line 'hline)
@@ -8886,10 +9650,10 @@ directly by `orgtbl-send-table'. See manual."
8886 (mapconcat 'identity line (org-get-param p h i :sep :hsep)) 9650 (mapconcat 'identity line (org-get-param p h i :sep :hsep))
8887 (org-get-param p h i :lend :hlend)) 9651 (org-get-param p h i :lend :hlend))
8888 rtn)))) 9652 rtn))))
8889 9653
8890 (unless splicep 9654 (unless splicep
8891 (push (or (plist-get p :tend) "ERROR: no :tend") rtn)) 9655 (push (or (plist-get p :tend) "ERROR: no :tend") rtn))
8892 9656
8893 (mapconcat 'identity (nreverse rtn) "\n"))) 9657 (mapconcat 'identity (nreverse rtn) "\n")))
8894 9658
8895(defun orgtbl-to-latex (table params) 9659(defun orgtbl-to-latex (table params)
@@ -9041,7 +9805,7 @@ For file links, arg negates `org-context-in-file-links'."
9041 (setq cpltxt (concat "bbdb:" (or name company)) 9805 (setq cpltxt (concat "bbdb:" (or name company))
9042 link (org-make-link cpltxt)) 9806 link (org-make-link cpltxt))
9043 (org-store-link-props :type "bbdb" :name name :company company))) 9807 (org-store-link-props :type "bbdb" :name name :company company)))
9044 9808
9045 ((eq major-mode 'Info-mode) 9809 ((eq major-mode 'Info-mode)
9046 (setq link (org-make-link "info:" 9810 (setq link (org-make-link "info:"
9047 (file-name-nondirectory Info-current-file) 9811 (file-name-nondirectory Info-current-file)
@@ -9219,7 +9983,7 @@ For file links, arg negates `org-context-in-file-links'."
9219 (if (string-match "::\\'" cpltxt) 9983 (if (string-match "::\\'" cpltxt)
9220 (setq cpltxt (substring cpltxt 0 -2))) 9984 (setq cpltxt (substring cpltxt 0 -2)))
9221 (setq link (org-make-link cpltxt))) 9985 (setq link (org-make-link cpltxt)))
9222 9986
9223 (buffer-file-name 9987 (buffer-file-name
9224 ;; Just link to this file here. 9988 ;; Just link to this file here.
9225 (setq cpltxt (concat "file:" 9989 (setq cpltxt (concat "file:"
@@ -9430,7 +10194,8 @@ is in the current directory or below.
9430With three \\[universal-argument] prefixes, negate the meaning of 10194With three \\[universal-argument] prefixes, negate the meaning of
9431`org-keep-stored-link-after-insertion'." 10195`org-keep-stored-link-after-insertion'."
9432 (interactive "P") 10196 (interactive "P")
9433 (let ((region (if (org-region-active-p) 10197 (let ((wcf (current-window-configuration))
10198 (region (if (org-region-active-p)
9434 (prog1 (buffer-substring (region-beginning) (region-end)) 10199 (prog1 (buffer-substring (region-beginning) (region-end))
9435 (delete-region (region-beginning) (region-end))))) 10200 (delete-region (region-beginning) (region-end)))))
9436 tmphist ; byte-compile incorrectly complains about this 10201 tmphist ; byte-compile incorrectly complains about this
@@ -9469,13 +10234,31 @@ With three \\[universal-argument] prefixes, negate the meaning of
9469 (t (setq link (org-make-link "file:" file)))))) 10234 (t (setq link (org-make-link "file:" file))))))
9470 (t 10235 (t
9471 ;; Read link, with completion for stored links. 10236 ;; Read link, with completion for stored links.
9472 ;; Fake a link history 10237 (with-output-to-temp-buffer "*Org Links*"
10238 (princ "Insert a link. Use TAB to complete valid link prefixes.\n")
10239 (when org-stored-links
10240 (princ "\nStored links ar available with <up>/<down> (most recent with RET):\n\n")
10241 (princ (mapconcat 'car (reverse org-stored-links) "\n"))))
10242 (let ((cw (selected-window)))
10243 (select-window (get-buffer-window "*Org Links*"))
10244 (shrink-window-if-larger-than-buffer)
10245 (setq truncate-lines t)
10246 (select-window cw))
10247 ;; Fake a link history, containing the stored links.
9473 (setq tmphist (append (mapcar 'car org-stored-links) 10248 (setq tmphist (append (mapcar 'car org-stored-links)
9474 org-insert-link-history)) 10249 org-insert-link-history))
9475 (setq link (org-completing-read 10250 (unwind-protect
9476 "Link: " org-stored-links nil nil nil 10251 (setq link (org-completing-read
9477 'tmphist 10252 "Link: "
9478 (or (car (car org-stored-links))))) 10253 (append
10254 (mapcar (lambda (x) (concat (car x) ":"))
10255 (append org-link-abbrev-alist-local org-link-abbrev-alist))
10256 (mapcar (lambda (x) (concat x ":")) org-link-types))
10257 nil nil nil
10258 'tmphist
10259 (or (car (car org-stored-links)))))
10260 (set-window-configuration wcf)
10261 (kill-buffer "*Org Links*"))
9479 (setq entry (assoc link org-stored-links)) 10262 (setq entry (assoc link org-stored-links))
9480 (or entry (push link org-insert-link-history)) 10263 (or entry (push link org-insert-link-history))
9481 (if (funcall (if (equal complete-file '(64)) 'not 'identity) 10264 (if (funcall (if (equal complete-file '(64)) 'not 'identity)
@@ -9531,7 +10314,7 @@ With three \\[universal-argument] prefixes, negate the meaning of
9531(defun org-completing-read (&rest args) 10314(defun org-completing-read (&rest args)
9532 (let ((minibuffer-local-completion-map 10315 (let ((minibuffer-local-completion-map
9533 (copy-keymap minibuffer-local-completion-map))) 10316 (copy-keymap minibuffer-local-completion-map)))
9534 (define-key minibuffer-local-completion-map " " 'self-insert-command) 10317 (org-defkey minibuffer-local-completion-map " " 'self-insert-command)
9535 (apply 'completing-read args))) 10318 (apply 'completing-read args)))
9536 10319
9537;;; Opening/following a link 10320;;; Opening/following a link
@@ -9637,7 +10420,7 @@ optional argument IN-EMACS is non-nil, Emacs will visit the file."
9637 (setq type (match-string 1) path (match-string 2)) 10420 (setq type (match-string 1) path (match-string 2))
9638 (throw 'match t))) 10421 (throw 'match t)))
9639 (save-excursion 10422 (save-excursion
9640 (when (org-in-regexp "\\(:[A-Za-z_@0-9:]+\\):[ \t\r\n]") 10423 (when (org-in-regexp "\\(:[A-Za-z_@0-9:]+\\):[ \t]*$")
9641 (setq type "tags" 10424 (setq type "tags"
9642 path (match-string 1)) 10425 path (match-string 1))
9643 (while (string-match ":" path) 10426 (while (string-match ":" path)
@@ -9830,6 +10613,10 @@ If the current buffer is in `dired-mode', grep will be used to search
9830in all files. If AVOID-POS is given, ignore matches near that position." 10613in all files. If AVOID-POS is given, ignore matches near that position."
9831 (let ((case-fold-search t) 10614 (let ((case-fold-search t)
9832 (s0 (mapconcat 'identity (org-split-string s "[ \t\r\n]+") " ")) 10615 (s0 (mapconcat 'identity (org-split-string s "[ \t\r\n]+") " "))
10616 (markers (concat "\\(?:" (mapconcat (lambda (x) (regexp-quote (car x)))
10617 (append '((" ") ("\t") ("\n"))
10618 org-emphasis-alist)
10619 "\\|") "\\)"))
9833 (pos (point)) 10620 (pos (point))
9834 (pre "") (post "") 10621 (pre "") (post "")
9835 words re0 re1 re2 re3 re4 re5 re2a reall) 10622 words re0 re1 re2 re3 re4 re5 re2a reall)
@@ -9866,7 +10653,8 @@ in all files. If AVOID-POS is given, ignore matches near that position."
9866 ;; Make a series of regular expressions to find a match 10653 ;; Make a series of regular expressions to find a match
9867 (setq words (org-split-string s "[ \n\r\t]+") 10654 (setq words (org-split-string s "[ \n\r\t]+")
9868 re0 (concat "\\(<<" (regexp-quote s0) ">>\\)") 10655 re0 (concat "\\(<<" (regexp-quote s0) ">>\\)")
9869 re2 (concat "[ \t\r\n]\\(" (mapconcat 'downcase words "[ \t]+") "\\)[ \t\r\n]") 10656 re2 (concat markers "\\(" (mapconcat 'downcase words "[ \t]+")
10657 "\\)" markers)
9870 re2a (concat "[ \t\r\n]\\(" (mapconcat 'downcase words "[ \t\r\n]+") "\\)[ \t\r\n]") 10658 re2a (concat "[ \t\r\n]\\(" (mapconcat 'downcase words "[ \t\r\n]+") "\\)[ \t\r\n]")
9871 re4 (concat "[^a-zA-Z_]\\(" (mapconcat 'downcase words "[^a-zA-Z_\r\n]+") "\\)[^a-zA-Z_]") 10659 re4 (concat "[^a-zA-Z_]\\(" (mapconcat 'downcase words "[^a-zA-Z_\r\n]+") "\\)[^a-zA-Z_]")
9872 re1 (concat pre re2 post) 10660 re1 (concat pre re2 post)
@@ -9908,16 +10696,18 @@ enclose the position of `org-open-link-marker'."
9908 (let ((m org-open-link-marker)) 10696 (let ((m org-open-link-marker))
9909 (catch 'exit 10697 (catch 'exit
9910 (while (apply 're-search-forward args) 10698 (while (apply 're-search-forward args)
9911 (goto-char (match-end group)) 10699 (unless (get-text-property (match-end group) 'intangible) ; Emacs 21
9912 (if (and (or (not (eq (marker-buffer m) (current-buffer))) 10700 (goto-char (match-end group))
9913 (> (match-beginning 0) (marker-position m)) 10701 (if (and (or (not (eq (marker-buffer m) (current-buffer)))
9914 (< (match-end 0) (marker-position m))) 10702 (> (match-beginning 0) (marker-position m))
9915 (save-match-data 10703 (< (match-end 0) (marker-position m)))
9916 (or (not (org-in-regexp org-bracket-link-analytic-regexp 1)) 10704 (save-match-data
9917 (not (match-end 4)) ; no description 10705 (or (not (org-in-regexp
9918 (and (<= (match-beginning 4) (point)) 10706 org-bracket-link-analytic-regexp 1))
9919 (>= (match-end 4) (point)))))) 10707 (not (match-end 4)) ; no description
9920 (throw 'exit (point))))))) 10708 (and (<= (match-beginning 4) (point))
10709 (>= (match-end 4) (point))))))
10710 (throw 'exit (point))))))))
9921 10711
9922(defun org-get-buffer-for-internal-link (buffer) 10712(defun org-get-buffer-for-internal-link (buffer)
9923 "Return a buffer to be used for displaying the link target of internal links." 10713 "Return a buffer to be used for displaying the link target of internal links."
@@ -10065,7 +10855,7 @@ onto the ring."
10065 (funcall (cdr (assq 'gnus org-link-frame-setup))) 10855 (funcall (cdr (assq 'gnus org-link-frame-setup)))
10066 (if gnus-other-frame-object (select-frame gnus-other-frame-object)) 10856 (if gnus-other-frame-object (select-frame gnus-other-frame-object))
10067 (cond ((and group article) 10857 (cond ((and group article)
10068 (gnus-group-read-group 0 nil group) 10858 (gnus-group-read-group 1 nil group)
10069 (gnus-summary-goto-article (string-to-number article) nil t)) 10859 (gnus-summary-goto-article (string-to-number article) nil t))
10070 (group (gnus-group-jump-to-group group)))) 10860 (group (gnus-group-jump-to-group group))))
10071 10861
@@ -10346,7 +11136,7 @@ If the file does not exist, an error is thrown."
10346 (if (stringp command) 11136 (if (stringp command)
10347 (setq cmd command) 11137 (setq cmd command)
10348 (setq cmd 'emacs)))) 11138 (setq cmd 'emacs))))
10349 (if (and (not (eq cmd 'emacs)) ; Emacs has not problems with non-ex files 11139 (if (and (not (eq cmd 'emacs)) ; Emacs has no problems with non-ex files
10350 (not (file-exists-p file)) 11140 (not (file-exists-p file))
10351 (not org-open-non-existing-files)) 11141 (not org-open-non-existing-files))
10352 (error "No such file: %s" file)) 11142 (error "No such file: %s" file))
@@ -10380,10 +11170,6 @@ If the file does not exist, an error is thrown."
10380 org-file-apps-defaults-windowsnt) 11170 org-file-apps-defaults-windowsnt)
10381 (t org-file-apps-defaults-gnu))) 11171 (t org-file-apps-defaults-gnu)))
10382 11172
10383(defun org-expand-file-name (path)
10384 "Replace special path abbreviations and expand the file name."
10385 (expand-file-name path))
10386
10387(defvar ange-ftp-name-format) ; to silence the XEmacs compiler. 11173(defvar ange-ftp-name-format) ; to silence the XEmacs compiler.
10388(defun org-file-remote-p (file) 11174(defun org-file-remote-p (file)
10389 "Test whether FILE specifies a location on a remote system. 11175 "Test whether FILE specifies a location on a remote system.
@@ -10569,7 +11355,7 @@ See also the variable `org-reverse-note-order'."
10569 (replace-match "")) 11355 (replace-match ""))
10570 (catch 'quit 11356 (catch 'quit
10571 (let* ((txt (buffer-substring (point-min) (point-max))) 11357 (let* ((txt (buffer-substring (point-min) (point-max)))
10572 (fastp current-prefix-arg) 11358 (fastp (equal current-prefix-arg '(4)))
10573 (file (if fastp org-default-notes-file (org-get-org-file))) 11359 (file (if fastp org-default-notes-file (org-get-org-file)))
10574 (heading org-remember-default-headline) 11360 (heading org-remember-default-headline)
10575 (visiting (org-find-base-buffer-visiting file)) 11361 (visiting (org-find-base-buffer-visiting file))
@@ -10577,6 +11363,7 @@ See also the variable `org-reverse-note-order'."
10577 (org-startup-align-all-tables nil) 11363 (org-startup-align-all-tables nil)
10578 (org-goto-start-pos 1) 11364 (org-goto-start-pos 1)
10579 spos level indent reversed) 11365 spos level indent reversed)
11366 (setq current-prefix-arg nil)
10580 ;; Modify text so that it becomes a nice subtree which can be inserted 11367 ;; Modify text so that it becomes a nice subtree which can be inserted
10581 ;; into an org tree. 11368 ;; into an org tree.
10582 (let* ((lines (split-string txt "\n")) 11369 (let* ((lines (split-string txt "\n"))
@@ -10597,13 +11384,13 @@ See also the variable `org-reverse-note-order'."
10597 ;; Find the file 11384 ;; Find the file
10598 (if (not visiting) (find-file-noselect file)) 11385 (if (not visiting) (find-file-noselect file))
10599 (with-current-buffer (or visiting (get-file-buffer file)) 11386 (with-current-buffer (or visiting (get-file-buffer file))
10600 (save-excursion (and (goto-char (point-min))
10601 (not (re-search-forward "^\\* " nil t))
10602 (insert "\n* Notes\n")))
10603 (setq reversed (org-notes-order-reversed-p))
10604 (save-excursion 11387 (save-excursion
10605 (save-restriction 11388 (save-restriction
10606 (widen) 11389 (widen)
11390 (and (goto-char (point-min))
11391 (not (re-search-forward "^\\* " nil t))
11392 (insert "\n* Notes\n"))
11393 (setq reversed (org-notes-order-reversed-p))
10607 11394
10608 ;; Find the default location 11395 ;; Find the default location
10609 (when (and heading (stringp heading) (string-match "\\S-" heading)) 11396 (when (and heading (stringp heading) (string-match "\\S-" heading))
@@ -10619,7 +11406,7 @@ See also the variable `org-reverse-note-order'."
10619 org-goto-start-pos 11406 org-goto-start-pos
10620 (org-get-location (current-buffer) org-remember-help))) 11407 (org-get-location (current-buffer) org-remember-help)))
10621 (if (not spos) (throw 'quit nil)) ; return nil to show we did 11408 (if (not spos) (throw 'quit nil)) ; return nil to show we did
10622 ; not handle this note 11409 ; not handle this note
10623 (goto-char spos) 11410 (goto-char spos)
10624 (cond ((and (bobp) (not reversed)) 11411 (cond ((and (bobp) (not reversed))
10625 ;; Put it at the end, one level below level 1 11412 ;; Put it at the end, one level below level 1
@@ -10636,12 +11423,12 @@ See also the variable `org-reverse-note-order'."
10636 (re-search-forward "^\\*" nil t) 11423 (re-search-forward "^\\*" nil t)
10637 (beginning-of-line 1) 11424 (beginning-of-line 1)
10638 (org-paste-subtree 1 txt))) 11425 (org-paste-subtree 1 txt)))
10639 ((and (org-on-heading-p nil) (not current-prefix-arg)) 11426 ((and (org-on-heading-p t) (not current-prefix-arg))
10640 ;; Put it below this entry, at the beg/end of the subtree 11427 ;; Put it below this entry, at the beg/end of the subtree
10641 (org-back-to-heading t) 11428 (org-back-to-heading t)
10642 (setq level (funcall outline-level)) 11429 (setq level (funcall outline-level))
10643 (if reversed 11430 (if reversed
10644 (outline-end-of-heading) 11431 (outline-next-heading)
10645 (org-end-of-subtree t)) 11432 (org-end-of-subtree t))
10646 (if (not (bolp)) (newline)) 11433 (if (not (bolp)) (newline))
10647 (beginning-of-line 1) 11434 (beginning-of-line 1)
@@ -10649,7 +11436,9 @@ See also the variable `org-reverse-note-order'."
10649 (t 11436 (t
10650 ;; Put it right there, with automatic level determined by 11437 ;; Put it right there, with automatic level determined by
10651 ;; org-paste-subtree or from prefix arg 11438 ;; org-paste-subtree or from prefix arg
10652 (org-paste-subtree current-prefix-arg txt))) 11439 (org-paste-subtree
11440 (if (numberp current-prefix-arg) current-prefix-arg)
11441 txt)))
10653 (when remember-save-after-remembering 11442 (when remember-save-after-remembering
10654 (save-buffer) 11443 (save-buffer)
10655 (if (not visiting) (kill-buffer (current-buffer))))))))) 11444 (if (not visiting) (kill-buffer (current-buffer)))))))))
@@ -10838,7 +11627,7 @@ At all other locations, this simply calls `ispell-complete-word'."
10838 ((string-match "\\`\\*+[ \t]*\\'" 11627 ((string-match "\\`\\*+[ \t]*\\'"
10839 (buffer-substring (point-at-bol) beg)) 11628 (buffer-substring (point-at-bol) beg))
10840 (setq type :todo) 11629 (setq type :todo)
10841 (mapcar 'list org-todo-keywords)) 11630 (mapcar 'list org-todo-keywords-1))
10842 (searchhead 11631 (searchhead
10843 (setq type :searchhead) 11632 (setq type :searchhead)
10844 (save-excursion 11633 (save-excursion
@@ -10926,6 +11715,8 @@ For calling through lisp, arg is also interpreted in the following way:
10926'none -> empty state 11715'none -> empty state
10927\"\"(empty string) -> switch to empty state 11716\"\"(empty string) -> switch to empty state
10928'done -> switch to DONE 11717'done -> switch to DONE
11718'nextset -> switch to the next set of keywords
11719'previousset -> switch to the previous set of keywords
10929\"WAITING\" -> switch to the specified keyword, but only if it 11720\"WAITING\" -> switch to the specified keyword, but only if it
10930 really is a member of `org-todo-keywords'." 11721 really is a member of `org-todo-keywords'."
10931 (interactive "P") 11722 (interactive "P")
@@ -10935,52 +11726,76 @@ For calling through lisp, arg is also interpreted in the following way:
10935 (or (looking-at (concat " +" org-todo-regexp " *")) 11726 (or (looking-at (concat " +" org-todo-regexp " *"))
10936 (looking-at " *")) 11727 (looking-at " *"))
10937 (let* ((this (match-string 1)) 11728 (let* ((this (match-string 1))
11729 (head (org-get-todo-sequence-head this))
11730 (ass (assoc head org-todo-kwd-alist))
11731 (interpret (nth 1 ass))
11732 (done-word (nth 3 ass))
11733 (final-done-word (nth 4 ass))
10938 (last-state (or this "")) 11734 (last-state (or this ""))
10939 (completion-ignore-case t) 11735 (completion-ignore-case t)
10940 (member (member this org-todo-keywords)) 11736 (member (member this org-todo-keywords-1))
10941 (tail (cdr member)) 11737 (tail (cdr member))
10942 (state (cond 11738 (state (cond
10943 ((equal arg '(4)) 11739 ((equal arg '(4))
10944 ;; Read a state with completion 11740 ;; Read a state with completion
10945 (completing-read "State: " (mapcar (lambda(x) (list x)) 11741 (completing-read "State: " (mapcar (lambda(x) (list x))
10946 org-todo-keywords) 11742 org-todo-keywords-1)
10947 nil t)) 11743 nil t))
10948 ((eq arg 'right) 11744 ((eq arg 'right)
10949 (if this 11745 (if this
10950 (if tail (car tail) nil) 11746 (if tail (car tail) nil)
10951 (car org-todo-keywords))) 11747 (car org-todo-keywords-1)))
10952 ((eq arg 'left) 11748 ((eq arg 'left)
10953 (if (equal member org-todo-keywords) 11749 (if (equal member org-todo-keywords-1)
10954 nil 11750 nil
10955 (if this 11751 (if this
10956 (nth (- (length org-todo-keywords) (length tail) 2) 11752 (nth (- (length org-todo-keywords-1) (length tail) 2)
10957 org-todo-keywords) 11753 org-todo-keywords-1)
10958 org-done-string))) 11754 (org-last org-todo-keywords-1))))
10959 (arg 11755 (arg
10960 ;; user requests a specific state 11756 ;; user or caller requests a specific state
10961 (cond 11757 (cond
10962 ((equal arg "") nil) 11758 ((equal arg "") nil)
10963 ((eq arg 'none) nil) 11759 ((eq arg 'none) nil)
10964 ((eq arg 'done) (org-last org-todo-keywords)) 11760 ((eq arg 'done) (or done-word (car org-done-keywords)))
10965 ((car (member arg org-todo-keywords))) 11761 ((eq arg 'nextset)
11762 (or (car (cdr (member head org-todo-heads)))
11763 (car org-todo-heads)))
11764 ((eq arg 'previousset)
11765 (let ((org-todo-heads (reverse org-todo-heads)))
11766 (or (car (cdr (member head org-todo-heads)))
11767 (car org-todo-heads))))
11768 ((car (member arg org-todo-keywords-1)))
10966 ((nth (1- (prefix-numeric-value arg)) 11769 ((nth (1- (prefix-numeric-value arg))
10967 org-todo-keywords)))) 11770 org-todo-keywords-1))))
10968 ((null member) (car org-todo-keywords)) 11771 ((null member) (or head (car org-todo-keywords-1)))
11772 ((equal this final-done-word) nil) ;; -> make empty
10969 ((null tail) nil) ;; -> first entry 11773 ((null tail) nil) ;; -> first entry
10970 ((eq org-todo-interpretation 'sequence) 11774 ((eq interpret 'sequence)
10971 (car tail)) 11775 (car tail))
10972 ((memq org-todo-interpretation '(type priority)) 11776 ((memq interpret '(type priority))
10973 (if (eq this-command last-command) 11777 (if (eq this-command last-command)
10974 (car tail) 11778 (car tail)
10975 (if (> (length tail) 0) org-done-string nil))) 11779 (if (> (length tail) 0)
11780 (or done-word (car org-done-keywords))
11781 nil)))
10976 (t nil))) 11782 (t nil)))
10977 (next (if state (concat " " state " ") " ")) 11783 (next (if state (concat " " state " ") " "))
10978 dostates) 11784 dostates)
10979 (replace-match next t t) 11785 (replace-match next t t)
11786 (unless head
11787 (setq head (org-get-todo-sequence-head state)
11788 ass (assoc head org-todo-kwd-alist)
11789 interpret (nth 1 ass)
11790 done-word (nth 3 ass)
11791 final-done-word (nth 4 ass)))
11792 (when (memq arg '(nextset previousset))
11793 (message "Keyword set: %s"
11794 (mapconcat 'identity (assoc state org-todo-sets) " ")))
10980 (setq org-last-todo-state-is-todo 11795 (setq org-last-todo-state-is-todo
10981 (not (equal state org-done-string))) 11796 (not (member state org-done-keywords)))
10982 (when org-log-done 11797 (when (and org-log-done (not (memq arg '(nextset previousset))))
10983 (setq dostates (and (eq org-todo-interpretation 'sequence) 11798 (setq dostates (and (eq interpret 'sequence)
10984 (listp org-log-done) (memq 'state org-log-done))) 11799 (listp org-log-done) (memq 'state org-log-done)))
10985 (cond 11800 (cond
10986 ((and state (not this)) 11801 ((and state (not this))
@@ -10988,7 +11803,7 @@ For calling through lisp, arg is also interpreted in the following way:
10988 (and dostates (org-add-log-maybe 'state state 'findpos))) 11803 (and dostates (org-add-log-maybe 'state state 'findpos)))
10989 ((and state dostates) 11804 ((and state dostates)
10990 (org-add-log-maybe 'state state 'findpos)) 11805 (org-add-log-maybe 'state state 'findpos))
10991 ((equal state org-done-string) 11806 ((member state org-done-keywords)
10992 ;; Planning info calls the note-setting command. 11807 ;; Planning info calls the note-setting command.
10993 (org-add-planning-info 'closed (org-current-time) 11808 (org-add-planning-info 'closed (org-current-time)
10994 (if (org-get-repeat) nil 'scheduled)) 11809 (if (org-get-repeat) nil 'scheduled))
@@ -10996,8 +11811,10 @@ For calling through lisp, arg is also interpreted in the following way:
10996 ;; Fixup tag positioning 11811 ;; Fixup tag positioning
10997 (and org-auto-align-tags (org-set-tags nil t)) 11812 (and org-auto-align-tags (org-set-tags nil t))
10998 (run-hooks 'org-after-todo-state-change-hook) 11813 (run-hooks 'org-after-todo-state-change-hook)
10999 (and (equal state org-done-string) (org-auto-repeat-maybe)) 11814 (and (member state org-done-keywords) (org-auto-repeat-maybe))
11000 )) 11815 (if (and arg (not (member state org-done-keywords)))
11816 (setq head (org-get-todo-sequence-head state)))
11817 (put-text-property (point-at-bol) (point-at-eol) 'org-todo-head head)))
11001 ;; Fixup cursor location if close to the keyword 11818 ;; Fixup cursor location if close to the keyword
11002 (if (and (outline-on-heading-p) 11819 (if (and (outline-on-heading-p)
11003 (not (bolp)) 11820 (not (bolp))
@@ -11008,8 +11825,24 @@ For calling through lisp, arg is also interpreted in the following way:
11008 (goto-char (or (match-end 2) (match-end 1))) 11825 (goto-char (or (match-end 2) (match-end 1)))
11009 (just-one-space)))) 11826 (just-one-space))))
11010 11827
11828(defun org-get-todo-sequence-head (kwd)
11829 "Return the head of the TODO sequence to which KWD belongs.
11830If KWD is not set, check if there is a text property remembering the
11831right sequence."
11832 (let (p)
11833 (cond
11834 ((not kwd)
11835 (or (get-text-property (point-at-bol) 'org-todo-head)
11836 (progn
11837 (setq p (next-single-property-change (point-at-bol) 'org-todo-head
11838 nil (point-at-eol)))
11839 (get-text-property p 'org-todo-head))))
11840 ((not (member kwd org-todo-keywords-1))
11841 (car org-todo-keywords-1))
11842 (t (nth 2 (assoc kwd org-todo-kwd-alist))))))
11843
11011(defun org-get-repeat () 11844(defun org-get-repeat ()
11012 "Return the REPEAT statement of this entry." 11845 "Check if tere is a deadline/schedule with repeater in this entry."
11013 (save-match-data 11846 (save-match-data
11014 (save-excursion 11847 (save-excursion
11015 (org-back-to-heading t) 11848 (org-back-to-heading t)
@@ -11020,24 +11853,29 @@ For calling through lisp, arg is also interpreted in the following way:
11020(defvar org-last-changed-timestamp) 11853(defvar org-last-changed-timestamp)
11021(defvar org-log-post-message) 11854(defvar org-log-post-message)
11022(defun org-auto-repeat-maybe () 11855(defun org-auto-repeat-maybe ()
11023 "Check if the current headline contains a REPEAT key. 11856 "Check if the current headline contains a repeated deadline/schedule.
11024If yes, set TODO state back to what it was and change any SCHEDULED 11857If yes, set TODO state back to what it was and change the base date
11025or DEADLINE times the new date. 11858of repeating deadline/scheduled time stamps to new date.
11026This function should be run in the `org-after-todo-state-change-hook'." 11859This function should be run in the `org-after-todo-state-change-hook'."
11027 ;; last-state is dynamically scoped into this function 11860 ;; last-state is dynamically scoped into this function
11028 (let ((repeat (org-get-repeat)) 11861 (let* ((repeat (org-get-repeat))
11029 (whata '(("d" . day) ("m" . month) ("y" . year))) 11862 (aa (assoc last-state org-todo-kwd-alist))
11030 (msg "Entry repeats: ") 11863 (interpret (nth 1 aa))
11031 (org-log-done) 11864 (head (nth 2 aa))
11032 re type n what start) 11865 (done-word (nth 3 aa))
11866 (whata '(("d" . day) ("m" . month) ("y" . year)))
11867 (msg "Entry repeats: ")
11868 (org-log-done)
11869 re type n what ts)
11033 (when repeat 11870 (when repeat
11034 (org-todo (if (eq 'org-todo-interpretation 'type) 11871 (org-todo (if (eq interpret 'type) last-state head))
11035 last-state 11872 (when (and org-log-repeat
11036 (car org-todo-keywords))) 11873 (not (memq 'org-add-log-note
11037 (unless (memq 'org-add-log-note (default-value 'post-command-hook)) 11874 (default-value 'post-command-hook))))
11038 ;; Make sure a note is taken 11875 ;; Make sure a note is taken
11039 (let ((org-log-done '(done))) 11876 (let ((org-log-done '(done)))
11040 (org-add-log-maybe 'done org-done-string 'findpos))) 11877 (org-add-log-maybe 'done (or done-word (car org-done-keywords))
11878 'findpos)))
11041 (org-back-to-heading t) 11879 (org-back-to-heading t)
11042 (org-add-planning-info nil nil 'closed) 11880 (org-add-planning-info nil nil 'closed)
11043 (setq re (concat "\\(" org-scheduled-time-regexp "\\)\\|\\(" 11881 (setq re (concat "\\(" org-scheduled-time-regexp "\\)\\|\\("
@@ -11045,11 +11883,10 @@ This function should be run in the `org-after-todo-state-change-hook'."
11045 (while (re-search-forward 11883 (while (re-search-forward
11046 re (save-excursion (outline-next-heading) (point)) t) 11884 re (save-excursion (outline-next-heading) (point)) t)
11047 (setq type (if (match-end 1) org-scheduled-string org-deadline-string) 11885 (setq type (if (match-end 1) org-scheduled-string org-deadline-string)
11048 start 0) 11886 ts (match-string (if (match-end 2) 2 4)))
11049 (while (string-match "\\([-+]?[0-9]+\\)\\([dwmy]\\)" repeat start) 11887 (when (string-match "\\([-+]?[0-9]+\\)\\([dwmy]\\)" ts)
11050 (setq start (match-end 0) 11888 (setq n (string-to-number (match-string 1 ts))
11051 n (string-to-number (match-string 1 repeat)) 11889 what (match-string 2 ts))
11052 what (match-string 2 repeat))
11053 (if (equal what "w") (setq n (* n 7) what "d")) 11890 (if (equal what "w") (setq n (* n 7) what "d"))
11054 (org-timestamp-change n (cdr (assoc what whata)))) 11891 (org-timestamp-change n (cdr (assoc what whata))))
11055 (setq msg (concat msg type org-last-changed-timestamp " "))) 11892 (setq msg (concat msg type org-last-changed-timestamp " ")))
@@ -11062,15 +11899,20 @@ The tree will show the lines where the regexp matches, and all higher
11062headlines above the match. 11899headlines above the match.
11063With \\[universal-argument] prefix, also show the DONE entries. 11900With \\[universal-argument] prefix, also show the DONE entries.
11064With a numeric prefix N, construct a sparse tree for the Nth element 11901With a numeric prefix N, construct a sparse tree for the Nth element
11065of `org-todo-keywords'." 11902of `org-todo-keywords-1'."
11066 (interactive "P") 11903 (interactive "P")
11067 (let ((case-fold-search nil) 11904 (let ((case-fold-search nil)
11068 (kwd-re 11905 (kwd-re
11069 (cond ((null arg) org-not-done-regexp) 11906 (cond ((null arg) org-not-done-regexp)
11070 ((equal arg '(4)) org-todo-regexp) 11907 ((equal arg '(4))
11071 ((<= (prefix-numeric-value arg) (length org-todo-keywords)) 11908 (let ((kwd (completing-read "Keyword (or KWD1|KWD2|...): "
11909 (mapcar 'list org-todo-keywords-1))))
11910 (concat "\\("
11911 (mapconcat 'identity (org-split-string kwd "|") "\\|")
11912 "\\)\\>")))
11913 ((<= (prefix-numeric-value arg) (length org-todo-keywords-1))
11072 (regexp-quote (nth (1- (prefix-numeric-value arg)) 11914 (regexp-quote (nth (1- (prefix-numeric-value arg))
11073 org-todo-keywords))) 11915 org-todo-keywords-1)))
11074 (t (error "Invalid prefix argument: %s" arg))))) 11916 (t (error "Invalid prefix argument: %s" arg)))))
11075 (message "%d TODO entries found" 11917 (message "%d TODO entries found"
11076 (org-occur (concat "^" outline-regexp " +" kwd-re ))))) 11918 (org-occur (concat "^" outline-regexp " +" kwd-re )))))
@@ -11143,9 +11985,11 @@ be removed."
11143 ((eq what 'deadline) org-deadline-string) 11985 ((eq what 'deadline) org-deadline-string)
11144 ((eq what 'closed) org-closed-string)) 11986 ((eq what 'closed) org-closed-string))
11145 " ") 11987 " ")
11146 (org-insert-time-stamp time 11988 (org-insert-time-stamp
11147 (or org-time-was-given (eq what 'closed)) 11989 time
11148 (eq what 'closed)) 11990 (or org-time-was-given
11991 (and (eq what 'closed) org-log-done-with-time))
11992 (eq what 'closed))
11149 (end-of-line 1)) 11993 (end-of-line 1))
11150 (goto-char (point-min)) 11994 (goto-char (point-min))
11151 (widen) 11995 (widen)
@@ -11163,6 +12007,7 @@ be removed."
11163The auto-repeater uses this.") 12007The auto-repeater uses this.")
11164 12008
11165(defun org-add-log-maybe (&optional purpose state findpos) 12009(defun org-add-log-maybe (&optional purpose state findpos)
12010 "Set up the post command hook to take a note."
11166 (save-excursion 12011 (save-excursion
11167 (when (and (listp org-log-done) 12012 (when (and (listp org-log-done)
11168 (memq purpose org-log-done)) 12013 (memq purpose org-log-done))
@@ -11221,17 +12066,18 @@ The auto-repeater uses this.")
11221 ""))))) 12066 "")))))
11222 (if lines (setq note (concat note " \\\\"))) 12067 (if lines (setq note (concat note " \\\\")))
11223 (push note lines)) 12068 (push note lines))
11224 (save-excursion 12069 (when lines
11225 (set-buffer (marker-buffer org-log-note-marker))
11226 (save-excursion 12070 (save-excursion
11227 (goto-char org-log-note-marker) 12071 (set-buffer (marker-buffer org-log-note-marker))
11228 (move-marker org-log-note-marker nil) 12072 (save-excursion
11229 (end-of-line 1) 12073 (goto-char org-log-note-marker)
11230 (if (not (bolp)) (insert "\n")) (indent-relative nil) 12074 (move-marker org-log-note-marker nil)
11231 (setq ind (concat (buffer-substring (point-at-bol) (point)) " ")) 12075 (end-of-line 1)
11232 (insert " - " (pop lines)) 12076 (if (not (bolp)) (insert "\n")) (indent-relative nil)
11233 (while lines 12077 (setq ind (concat (buffer-substring (point-at-bol) (point)) " "))
11234 (insert "\n" ind (pop lines)))))) 12078 (insert " - " (pop lines))
12079 (while lines
12080 (insert "\n" ind (pop lines)))))))
11235 (set-window-configuration org-log-note-window-configuration) 12081 (set-window-configuration org-log-note-window-configuration)
11236 (with-current-buffer (marker-buffer org-log-note-return-to) 12082 (with-current-buffer (marker-buffer org-log-note-return-to)
11237 (goto-char org-log-note-return-to)) 12083 (goto-char org-log-note-return-to))
@@ -11264,7 +12110,8 @@ that the match should indeed be shown."
11264 (when (or (not callback) 12110 (when (or (not callback)
11265 (save-match-data (funcall callback))) 12111 (save-match-data (funcall callback)))
11266 (setq cnt (1+ cnt)) 12112 (setq cnt (1+ cnt))
11267 (org-highlight-new-match (match-beginning 0) (match-end 0)) 12113 (when org-highlight-sparse-tree-matches
12114 (org-highlight-new-match (match-beginning 0) (match-end 0)))
11268 (org-show-context 'occur-tree)))) 12115 (org-show-context 'occur-tree))))
11269 (when org-remove-highlights-with-change 12116 (when org-remove-highlights-with-change
11270 (org-add-hook 'before-change-functions 'org-remove-occur-highlights 12117 (org-add-hook 'before-change-functions 'org-remove-occur-highlights
@@ -11342,7 +12189,7 @@ from the `before-change-functions' in the current buffer."
11342 12189
11343;;;; Priorities 12190;;;; Priorities
11344 12191
11345(defvar org-priority-regexp ".*?\\(\\[#\\([A-Z]\\)\\] ?\\)" 12192(defvar org-priority-regexp ".*?\\(\\[#\\([A-Z0-9]\\)\\] ?\\)"
11346 "Regular expression matching the priority indicator.") 12193 "Regular expression matching the priority indicator.")
11347 12194
11348(defvar org-remove-priority-next-time nil) 12195(defvar org-remove-priority-next-time nil)
@@ -11371,18 +12218,18 @@ ACTION can be set, up, or down."
11371 (setq current org-default-priority)) 12218 (setq current org-default-priority))
11372 (cond 12219 (cond
11373 ((eq action 'set) 12220 ((eq action 'set)
11374 (message "Priority A-%c, SPC to remove: " org-lowest-priority) 12221 (message "Priority %c-%c, SPC to remove: " org-highest-priority org-lowest-priority)
11375 (setq new (read-char-exclusive)) 12222 (setq new (read-char-exclusive))
11376 (cond ((equal new ?\ ) (setq remove t)) 12223 (cond ((equal new ?\ ) (setq remove t))
11377 ((or (< (upcase new) ?A) (> (upcase new) org-lowest-priority)) 12224 ((or (< (upcase new) org-highest-priority) (> (upcase new) org-lowest-priority))
11378 (error "Priority must be between `%c' and `%c'" 12225 (error "Priority must be between `%c' and `%c'"
11379 ?A org-lowest-priority)))) 12226 org-highest-priority org-lowest-priority))))
11380 ((eq action 'up) 12227 ((eq action 'up)
11381 (setq new (1- current))) 12228 (setq new (1- current)))
11382 ((eq action 'down) 12229 ((eq action 'down)
11383 (setq new (1+ current))) 12230 (setq new (1+ current)))
11384 (t (error "Invalid action"))) 12231 (t (error "Invalid action")))
11385 (setq new (min (max ?A (upcase new)) org-lowest-priority)) 12232 (setq new (min (max org-highest-priority (upcase new)) org-lowest-priority))
11386 (setq news (format "%c" new)) 12233 (setq news (format "%c" new))
11387 (if have 12234 (if have
11388 (if remove 12235 (if remove
@@ -11419,15 +12266,14 @@ evaluated, testing if a given set of tags qualifies a headline for
11419inclusion. When TODO-ONLY is non-nil, only lines with a TODO keyword 12266inclusion. When TODO-ONLY is non-nil, only lines with a TODO keyword
11420are included in the output." 12267are included in the output."
11421 (let* ((re (concat "[\n\r]" outline-regexp " *\\(\\<\\(" 12268 (let* ((re (concat "[\n\r]" outline-regexp " *\\(\\<\\("
11422 (mapconcat 'regexp-quote 12269 (mapconcat 'regexp-quote org-todo-keywords-1 "\\|")
11423 (nreverse (cdr (reverse org-todo-keywords)))
11424 "\\|")
11425 "\\>\\)\\)? *\\(.*?\\)\\(:[A-Za-z_@0-9:]+:\\)?[ \t]*$")) 12270 "\\>\\)\\)? *\\(.*?\\)\\(:[A-Za-z_@0-9:]+:\\)?[ \t]*$"))
11426 (props (list 'face nil 12271 (props (list 'face nil
11427 'done-face 'org-done 12272 'done-face 'org-done
11428 'undone-face nil 12273 'undone-face nil
11429 'mouse-face 'highlight 12274 'mouse-face 'highlight
11430 'org-not-done-regexp org-not-done-regexp 12275 'org-not-done-regexp org-not-done-regexp
12276 'org-todo-regexp org-todo-regexp
11431 'keymap org-agenda-keymap 12277 'keymap org-agenda-keymap
11432 'help-echo 12278 'help-echo
11433 (format "mouse-2 or RET jump to org file %s" 12279 (format "mouse-2 or RET jump to org file %s"
@@ -11435,7 +12281,7 @@ are included in the output."
11435 (case-fold-search nil) 12281 (case-fold-search nil)
11436 lspos 12282 lspos
11437 tags tags-list tags-alist (llast 0) rtn level category i txt 12283 tags tags-list tags-alist (llast 0) rtn level category i txt
11438 todo marker entry) 12284 todo marker entry priority)
11439 (save-excursion 12285 (save-excursion
11440 (goto-char (point-min)) 12286 (goto-char (point-min))
11441 (when (eq action 'sparse-tree) (org-overview)) 12287 (when (eq action 'sparse-tree) (org-overview))
@@ -11462,7 +12308,7 @@ are included in the output."
11462 (if org-use-tag-inheritance 12308 (if org-use-tag-inheritance
11463 (apply 'append (mapcar 'cdr tags-alist)) 12309 (apply 'append (mapcar 'cdr tags-alist))
11464 tags)) 12310 tags))
11465 (when (and (or (not todo-only) todo) 12311 (when (and (or (not todo-only) (member todo org-not-done-keywords))
11466 (eval matcher) 12312 (eval matcher)
11467 (or (not org-agenda-skip-archived-trees) 12313 (or (not org-agenda-skip-archived-trees)
11468 (not (member org-archive-tag tags-list)))) 12314 (not (member org-archive-tag tags-list))))
@@ -11477,11 +12323,13 @@ are included in the output."
11477 (if org-tags-match-list-sublevels 12323 (if org-tags-match-list-sublevels
11478 (make-string (1- level) ?.) "") 12324 (make-string (1- level) ?.) "")
11479 (org-get-heading)) 12325 (org-get-heading))
11480 category tags-list)) 12326 category tags-list)
12327 priority (org-get-priority txt))
11481 (goto-char lspos) 12328 (goto-char lspos)
11482 (setq marker (org-agenda-new-marker)) 12329 (setq marker (org-agenda-new-marker))
11483 (org-add-props txt props 12330 (org-add-props txt props
11484 'org-marker marker 'org-hd-marker marker 'org-category category) 12331 'org-marker marker 'org-hd-marker marker 'org-category category
12332 'priority priority 'type "tagsmatch")
11485 (push txt rtn)) 12333 (push txt rtn))
11486 ;; if we are to skip sublevels, jump to end of subtree 12334 ;; if we are to skip sublevels, jump to end of subtree
11487 (or org-tags-match-list-sublevels (org-end-of-subtree t)))))) 12335 (or org-tags-match-list-sublevels (org-end-of-subtree t))))))
@@ -11610,7 +12458,7 @@ With prefix ARG, realign all tags in headings in the current buffer."
11610 (if arg 12458 (if arg
11611 (save-excursion 12459 (save-excursion
11612 (goto-char (point-min)) 12460 (goto-char (point-min))
11613 (let (buffer-invisibility-spec) ; Emacs 21 compatibility 12461 (let ((buffer-invisibility-spec (org-inhibit-invisibility)))
11614 (while (re-search-forward re nil t) 12462 (while (re-search-forward re nil t)
11615 (org-set-tags nil t) 12463 (org-set-tags nil t)
11616 (end-of-line 1))) 12464 (end-of-line 1)))
@@ -11637,11 +12485,12 @@ With prefix ARG, realign all tags in headings in the current buffer."
11637 (while (string-match "[-+&]+" tags) 12485 (while (string-match "[-+&]+" tags)
11638 ;; No boolean logic, just a list 12486 ;; No boolean logic, just a list
11639 (setq tags (replace-match ":" t t tags)))) 12487 (setq tags (replace-match ":" t t tags))))
12488
11640 (if (string-match "\\`[\t ]*\\'" tags) 12489 (if (string-match "\\`[\t ]*\\'" tags)
11641 (setq tags "") 12490 (setq tags "")
11642 (unless (string-match ":$" tags) (setq tags (concat tags ":"))) 12491 (unless (string-match ":$" tags) (setq tags (concat tags ":")))
11643 (unless (string-match "^:" tags) (setq tags (concat ":" tags)))) 12492 (unless (string-match "^:" tags) (setq tags (concat ":" tags))))
11644 12493
11645 ;; Insert new tags at the correct column 12494 ;; Insert new tags at the correct column
11646 (beginning-of-line 1) 12495 (beginning-of-line 1)
11647 (if (re-search-forward 12496 (if (re-search-forward
@@ -11728,7 +12577,7 @@ Returns the new tags string, or nil to not change the current settings."
11728 (fwidth (+ maxlen 3 1 3)) 12577 (fwidth (+ maxlen 3 1 3))
11729 (ncol (/ (- (window-width) 4) fwidth)) 12578 (ncol (/ (- (window-width) 4) fwidth))
11730 (i-face 'org-done) 12579 (i-face 'org-done)
11731 (c-face 'org-tag) 12580 (c-face 'org-todo)
11732 tg cnt e c char c1 c2 ntable tbl rtn 12581 tg cnt e c char c1 c2 ntable tbl rtn
11733 ov-start ov-end ov-prefix 12582 ov-start ov-end ov-prefix
11734 (exit-after-next org-fast-tag-selection-single-key) 12583 (exit-after-next org-fast-tag-selection-single-key)
@@ -12014,9 +12863,9 @@ used to insert the time stamp into the buffer to include the time."
12014 (timestr (format-time-string 12863 (timestr (format-time-string
12015 (if with-time "%Y-%m-%d %H:%M" "%Y-%m-%d") default-time)) 12864 (if with-time "%Y-%m-%d %H:%M" "%Y-%m-%d") default-time))
12016 (prompt (concat (if prompt (concat prompt " ") "") 12865 (prompt (concat (if prompt (concat prompt " ") "")
12017 (format "YYYY-MM-DD [%s]: " timestr))) 12866 (format "Date and/or time (default [%s]): " timestr)))
12018 ans (org-ans0 "") org-ans1 org-ans2 (deltadays 0) 12867 ans (org-ans0 "") org-ans1 org-ans2 (deltadays 0)
12019 second minute hour day month year tl wday wday1) 12868 second minute hour day month year tl wday wday1 pm)
12020 12869
12021 (cond 12870 (cond
12022 (from-string (setq ans from-string)) 12871 (from-string (setq ans from-string))
@@ -12027,44 +12876,43 @@ used to insert the time stamp into the buffer to include the time."
12027 (calendar-forward-day (- (time-to-days default-time) 12876 (calendar-forward-day (- (time-to-days default-time)
12028 (calendar-absolute-from-gregorian 12877 (calendar-absolute-from-gregorian
12029 (calendar-current-date)))) 12878 (calendar-current-date))))
12030 (org-eval-in-calendar nil) 12879 (org-eval-in-calendar nil t)
12031 (let* ((old-map (current-local-map)) 12880 (let* ((old-map (current-local-map))
12032 (map (copy-keymap calendar-mode-map)) 12881 (map (copy-keymap calendar-mode-map))
12033 (minibuffer-local-map (copy-keymap minibuffer-local-map))) 12882 (minibuffer-local-map (copy-keymap minibuffer-local-map)))
12034 (define-key map (kbd "RET") 'org-calendar-select) 12883 (org-defkey map (kbd "RET") 'org-calendar-select)
12035 (define-key map (if (featurep 'xemacs) [button1] [mouse-1]) 12884 (org-defkey map (if (featurep 'xemacs) [button1] [mouse-1])
12036 'org-calendar-select-mouse) 12885 'org-calendar-select-mouse)
12037 (define-key map (if (featurep 'xemacs) [button2] [mouse-2]) 12886 (org-defkey map (if (featurep 'xemacs) [button2] [mouse-2])
12038 'org-calendar-select-mouse) 12887 'org-calendar-select-mouse)
12039 (define-key minibuffer-local-map [(meta shift left)] 12888 (org-defkey minibuffer-local-map [(meta shift left)]
12040 (lambda () (interactive) 12889 (lambda () (interactive)
12041 (org-eval-in-calendar '(calendar-backward-month 1)))) 12890 (org-eval-in-calendar '(calendar-backward-month 1))))
12042 (define-key minibuffer-local-map [(meta shift right)] 12891 (org-defkey minibuffer-local-map [(meta shift right)]
12043 (lambda () (interactive) 12892 (lambda () (interactive)
12044 (org-eval-in-calendar '(calendar-forward-month 1)))) 12893 (org-eval-in-calendar '(calendar-forward-month 1))))
12045 (define-key minibuffer-local-map [(shift up)] 12894 (org-defkey minibuffer-local-map [(shift up)]
12046 (lambda () (interactive) 12895 (lambda () (interactive)
12047 (org-eval-in-calendar '(calendar-backward-week 1)))) 12896 (org-eval-in-calendar '(calendar-backward-week 1))))
12048 (define-key minibuffer-local-map [(shift down)] 12897 (org-defkey minibuffer-local-map [(shift down)]
12049 (lambda () (interactive) 12898 (lambda () (interactive)
12050 (org-eval-in-calendar '(calendar-forward-week 1)))) 12899 (org-eval-in-calendar '(calendar-forward-week 1))))
12051 (define-key minibuffer-local-map [(shift left)] 12900 (org-defkey minibuffer-local-map [(shift left)]
12052 (lambda () (interactive) 12901 (lambda () (interactive)
12053 (org-eval-in-calendar '(calendar-backward-day 1)))) 12902 (org-eval-in-calendar '(calendar-backward-day 1))))
12054 (define-key minibuffer-local-map [(shift right)] 12903 (org-defkey minibuffer-local-map [(shift right)]
12055 (lambda () (interactive) 12904 (lambda () (interactive)
12056 (org-eval-in-calendar '(calendar-forward-day 1)))) 12905 (org-eval-in-calendar '(calendar-forward-day 1))))
12057 (define-key minibuffer-local-map ">" 12906 (org-defkey minibuffer-local-map ">"
12058 (lambda () (interactive) 12907 (lambda () (interactive)
12059 (org-eval-in-calendar '(scroll-calendar-left 1)))) 12908 (org-eval-in-calendar '(scroll-calendar-left 1))))
12060 (define-key minibuffer-local-map "<" 12909 (org-defkey minibuffer-local-map "<"
12061 (lambda () (interactive) 12910 (lambda () (interactive)
12062 (org-eval-in-calendar '(scroll-calendar-right 1)))) 12911 (org-eval-in-calendar '(scroll-calendar-right 1))))
12063 (unwind-protect 12912 (unwind-protect
12064 (progn 12913 (progn
12065 (use-local-map map) 12914 (use-local-map map)
12066 (setq org-ans0 (read-string prompt "" nil nil)) 12915 (setq org-ans0 (read-string prompt "" nil nil))
12067; (if (not (string-match "\\S-" org-ans0)) (setq org-ans0 nil))
12068 ;; org-ans0: from prompt 12916 ;; org-ans0: from prompt
12069 ;; org-ans1: from mouse click 12917 ;; org-ans1: from mouse click
12070 ;; org-ans2: from calendar motion 12918 ;; org-ans2: from calendar motion
@@ -12077,17 +12925,30 @@ used to insert the time stamp into the buffer to include the time."
12077 (if (string-match "^[ \t]*[-+][0-9]+[ \t]*$" org-ans0) 12925 (if (string-match "^[ \t]*[-+][0-9]+[ \t]*$" org-ans0)
12078 (setq deltadays (string-to-number ans) ans "")) 12926 (setq deltadays (string-to-number ans) ans ""))
12079 12927
12080 (if (string-match 12928 ;; Help matching ISO dates with single digit month ot day, like 2006-8-11.
12081 "^ *\\(\\([0-9]+\\)-\\)?\\([0-1]?[0-9]\\)-\\([0-3]?[0-9]\\)\\([^-0-9]\\|$\\)" ans) 12929 (when (string-match
12082 (progn 12930 "^ *\\(\\([0-9]+\\)-\\)?\\([0-1]?[0-9]\\)-\\([0-3]?[0-9]\\)\\([^-0-9]\\|$\\)" ans)
12083 (setq year (if (match-end 2) 12931 (setq year (if (match-end 2)
12084 (string-to-number (match-string 2 ans)) 12932 (string-to-number (match-string 2 ans))
12085 (string-to-number (format-time-string "%Y"))) 12933 (string-to-number (format-time-string "%Y")))
12086 month (string-to-number (match-string 3 ans)) 12934 month (string-to-number (match-string 3 ans))
12087 day (string-to-number (match-string 4 ans))) 12935 day (string-to-number (match-string 4 ans)))
12088 (if (< year 100) (setq year (+ 2000 year))) 12936 (if (< year 100) (setq year (+ 2000 year)))
12089 (setq ans (replace-match (format "%04d-%02d-%02d\\5" year month day) 12937 (setq ans (replace-match (format "%04d-%02d-%02d\\5" year month day)
12090 t nil ans)))) 12938 t nil ans)))
12939 ;; Help matching am/pm times, because `parse-time-string' does not do that.
12940 ;; If there is a time with am/pm, and *no* time without it, we convert
12941 ;; convert so that matching will be successful.
12942 (when (and (not (string-match "[012]?[0-9]:[0-9][0-9]\\([ \t\n]\\|$\\)" ans))
12943 (string-match "\\([012]?[0-9]\\)\\(:\\([0-5][0-9]\\)\\)?\\(am\\|AM\\|pm\\|PM\\)\\>" ans))
12944 (setq hour (string-to-number (match-string 1 ans))
12945 minute (if (match-end 3) (string-to-number (match-string 3 ans)) 0)
12946 pm (equal ?p (string-to-char (downcase (match-string 4 ans)))))
12947 (if (and (= hour 12) (not pm))
12948 (setq hour 0)
12949 (if (and pm (< hour 12)) (setq hour (+ 12 hour))))
12950 (setq ans (replace-match (format "%02d:%02d" hour minute) t t ans)))
12951
12091 (setq tl (parse-time-string ans) 12952 (setq tl (parse-time-string ans)
12092 year (or (nth 5 tl) (string-to-number (format-time-string "%Y" ct))) 12953 year (or (nth 5 tl) (string-to-number (format-time-string "%Y" ct)))
12093 month (or (nth 4 tl) (string-to-number (format-time-string "%m" ct))) 12954 month (or (nth 4 tl) (string-to-number (format-time-string "%m" ct)))
@@ -12113,18 +12974,28 @@ used to insert the time stamp into the buffer to include the time."
12113 (format "%04d-%02d-%02d %02d:%02d" year month day hour minute) 12974 (format "%04d-%02d-%02d %02d:%02d" year month day hour minute)
12114 (format "%04d-%02d-%02d" year month day))))) 12975 (format "%04d-%02d-%02d" year month day)))))
12115 12976
12116(defun org-eval-in-calendar (form) 12977(defun org-eval-in-calendar (form &optional keepdate)
12117 "Eval FORM in the calendar window and return to current window. 12978 "Eval FORM in the calendar window and return to current window.
12118Also, store the cursor date in variable org-ans2." 12979Also, store the cursor date in variable org-ans2."
12119 (let ((sw (selected-window))) 12980 (let ((sw (selected-window)))
12120 (select-window (get-buffer-window "*Calendar*")) 12981 (select-window (get-buffer-window "*Calendar*"))
12121 (eval form) 12982 (eval form)
12122 (when (calendar-cursor-to-date) 12983 (when (and (not keepdate) (calendar-cursor-to-date))
12123 (let* ((date (calendar-cursor-to-date)) 12984 (let* ((date (calendar-cursor-to-date))
12124 (time (encode-time 0 0 0 (nth 1 date) (nth 0 date) (nth 2 date)))) 12985 (time (encode-time 0 0 0 (nth 1 date) (nth 0 date) (nth 2 date))))
12125 (setq org-ans2 (format-time-string "%Y-%m-%d" time)))) 12986 (setq org-ans2 (format-time-string "%Y-%m-%d" time))))
12126 (org-move-overlay org-date-ovl (1- (point)) (1+ (point)) (current-buffer)) 12987 (org-move-overlay org-date-ovl (1- (point)) (1+ (point)) (current-buffer))
12127 (select-window sw))) 12988 (select-window sw)
12989 ;; Update the prompt to show new default date
12990 (save-excursion
12991 (goto-char (point-min))
12992 (when (and org-ans2
12993 (re-search-forward "\\[[-0-9]+\\]" nil t)
12994 (get-text-property (match-end 0) 'field))
12995 (let ((inhibit-read-only t))
12996 (replace-match (concat "[" org-ans2 "]") t t)
12997 (add-text-properties (point-min) (1+ (match-end 0))
12998 (text-properties-at (1+ (point-min)))))))))
12128 12999
12129(defun org-calendar-select () 13000(defun org-calendar-select ()
12130 "Return to `org-read-date' with the date currently selected. 13001 "Return to `org-read-date' with the date currently selected.
@@ -12136,7 +13007,7 @@ This is used by `org-read-date' in a temporary keymap for the calendar buffer."
12136 (setq org-ans1 (format-time-string "%Y-%m-%d" time))) 13007 (setq org-ans1 (format-time-string "%Y-%m-%d" time)))
12137 (if (active-minibuffer-window) (exit-minibuffer)))) 13008 (if (active-minibuffer-window) (exit-minibuffer))))
12138 13009
12139(defun org-insert-time-stamp (time &optional with-hm inactive pre post) 13010(defun org-insert-time-stamp (time &optional with-hm inactive pre post extra)
12140 "Insert a date stamp for the date given by the internal TIME. 13011 "Insert a date stamp for the date given by the internal TIME.
12141WITH-HM means, use the stamp format that includes the time of the day. 13012WITH-HM means, use the stamp format that includes the time of the day.
12142INACTIVE means use square brackets instead of angular ones, so that the 13013INACTIVE means use square brackets instead of angular ones, so that the
@@ -12149,6 +13020,10 @@ The command returns the inserted time stamp."
12149 (if inactive (setq fmt (concat "[" (substring fmt 1 -1) "]"))) 13020 (if inactive (setq fmt (concat "[" (substring fmt 1 -1) "]")))
12150 (insert (or pre "")) 13021 (insert (or pre ""))
12151 (insert (setq stamp (format-time-string fmt time))) 13022 (insert (setq stamp (format-time-string fmt time)))
13023 (when extra
13024 (backward-char 1)
13025 (insert extra)
13026 (forward-char 1))
12152 (insert (or post "")) 13027 (insert (or post ""))
12153 stamp)) 13028 stamp))
12154 13029
@@ -12175,17 +13050,22 @@ The command returns the inserted time stamp."
12175 13050
12176(defun org-display-custom-time (beg end) 13051(defun org-display-custom-time (beg end)
12177 "Overlay modified time stamp format over timestamp between BED and END." 13052 "Overlay modified time stamp format over timestamp between BED and END."
12178 (let* ((t1 (save-match-data 13053 (let* ((ts (buffer-substring beg end))
12179 (org-parse-time-string (buffer-substring beg end) t))) 13054 t1 w1 with-hm tf time str w2 (off 0))
12180 (w1 (- end beg)) 13055 (save-match-data
12181 (with-hm (and (nth 1 t1) (nth 2 t1))) 13056 (setq t1 (org-parse-time-string ts t))
12182 (tf (funcall (if with-hm 'cdr 'car) org-time-stamp-custom-formats)) 13057 (if (string-match " \\+[0-9]+[dwmy]\\'" ts)
12183 (time (org-fix-decoded-time t1)) 13058 (setq off (- (match-end 0) (match-beginning 0)))))
12184 (str (org-add-props 13059 (setq end (- end off))
13060 (setq w1 (- end beg)
13061 with-hm (and (nth 1 t1) (nth 2 t1))
13062 tf (funcall (if with-hm 'cdr 'car) org-time-stamp-custom-formats)
13063 time (org-fix-decoded-time t1)
13064 str (org-add-props
12185 (format-time-string 13065 (format-time-string
12186 (substring tf 1 -1) (apply 'encode-time time)) 13066 (substring tf 1 -1) (apply 'encode-time time))
12187 nil 'mouse-face 'highlight)) 13067 nil 'mouse-face 'highlight)
12188 (w2 (length str))) 13068 w2 (length str))
12189 (if (not (= w2 w1)) 13069 (if (not (= w2 w1))
12190 (add-text-properties (1+ beg) (+ 2 beg) 13070 (add-text-properties (1+ beg) (+ 2 beg)
12191 (list 'org-dwidth t 'org-dwidth-n (- w1 w2)))) 13071 (list 'org-dwidth t 'org-dwidth-n (- w1 w2))))
@@ -12349,6 +13229,133 @@ days in order to avoid rounding problems."
12349(defun org-time-string-to-time (s) 13229(defun org-time-string-to-time (s)
12350 (apply 'encode-time (org-parse-time-string s))) 13230 (apply 'encode-time (org-parse-time-string s)))
12351 13231
13232(defun org-time-string-to-absolute (s &optional daynr)
13233 "Convert a time stamp to an absolute day number.
13234If there is a specifyer for a cyclic time stamp, get the closest date to
13235DATE."
13236 (cond
13237 ((and daynr (string-match "\\`%%\\((.*)\\)" s))
13238 (if (org-diary-sexp-entry (match-string 1 s) "" date)
13239 daynr
13240 (+ daynr 1000)))
13241 ((and daynr (string-match "\\+[0-9]+[dwmy]" s))
13242 (org-closest-date s (if (and (boundp 'daynr) (integerp daynr)) daynr
13243 (time-to-days (current-time))) (match-string 0 s)))
13244 (t (time-to-days (apply 'encode-time (org-parse-time-string s))))))
13245
13246(defun org-calendar-holiday ()
13247 "List of holidays, for Diary display in Org-mode."
13248 (let ((hl (check-calendar-holidays date)))
13249 (if hl (mapconcat 'identity hl "; "))))
13250
13251(defun org-diary-sexp-entry (sexp entry date)
13252 "Process a SEXP diary ENTRY for DATE."
13253 (let ((result (if calendar-debug-sexp
13254 (let ((stack-trace-on-error t))
13255 (eval (car (read-from-string sexp))))
13256 (condition-case nil
13257 (eval (car (read-from-string sexp)))
13258 (error
13259 (beep)
13260 (message "Bad sexp at line %d in %s: %s"
13261 (org-current-line)
13262 (buffer-file-name) sexp)
13263 (sleep-for 2))))))
13264 (cond ((stringp result) result)
13265 ((and (consp result)
13266 (stringp (cdr result))) (cdr result))
13267 (result entry)
13268 (t nil))))
13269
13270(defun org-diary-to-ical-string (frombuf)
13271 "FIXME"
13272 (let* ((tmpdir (if (featurep 'xemacs)
13273 (temp-directory)
13274 temporary-file-directory))
13275 (tmpfile (make-temp-name
13276 (expand-file-name "orgics" tmpdir)))
13277 buf rtn b e)
13278 (save-excursion
13279 (set-buffer frombuf)
13280 (icalendar-export-region (point-min) (point-max) tmpfile)
13281 (setq buf (find-buffer-visiting tmpfile))
13282 (set-buffer buf)
13283 (goto-char (point-min))
13284 (if (re-search-forward "^BEGIN:VEVENT" nil t)
13285 (setq b (match-beginning 0)))
13286 (goto-char (point-max))
13287 (if (re-search-backward "^END:VEVENT" nil t)
13288 (setq e (match-end 0)))
13289 (setq rtn (if (and b e) (concat (buffer-substring b e) "\n") "")))
13290 (kill-buffer buf)
13291 (kill-buffer frombuf)
13292 (delete-file tmpfile)
13293 rtn))
13294
13295(defun org-closest-date (start current change)
13296 "Find the date closest to CURRENT that is consistent with START and CHANGE."
13297 ;; Make the proper lists from the dates
13298 (catch 'exit
13299 (let ((a1 '(("d" . day) ("w" . week) ("m" . month) ("y" . year)))
13300 dn dw sday cday n1 n2
13301 d m y y1 y2 date1 date2 nmonths nm ny m2)
13302
13303 (setq start (org-date-to-gregorian start)
13304 current (org-date-to-gregorian current)
13305 sday (calendar-absolute-from-gregorian start)
13306 cday (calendar-absolute-from-gregorian current))
13307
13308 (if (<= cday sday) (throw 'exit sday))
13309
13310 (if (string-match "\\(\\+[0-9]+\\)\\([dwmy]\\)" change)
13311 (setq dn (string-to-number (match-string 1 change))
13312 dw (cdr (assoc (match-string 2 change) a1)))
13313 (error "Invalid change specifyer: %s" change))
13314 (if (eq dw 'week) (setq dw 'day dn (* 7 dn)))
13315 (cond
13316 ((eq dw 'day)
13317 (setq n1 (+ sday (* dn (floor (/ (- cday sday) dn))))
13318 n2 (+ n1 dn)))
13319 ((eq dw 'year)
13320 (setq d (nth 1 start) m (car start) y1 (nth 2 start) y2 (nth 2 current))
13321 (setq y1 (+ (* (floor (/ (- y2 y1) dn)) dn) y1))
13322 (setq date1 (list m d y1)
13323 n1 (calendar-absolute-from-gregorian date1)
13324 date2 (list m d (+ y1 (* (if (< n1 cday) 1 -1) dn)))
13325 n2 (calendar-absolute-from-gregorian date2)))
13326 ((eq dw 'month)
13327 ;; approx number of month between the tow dates
13328 (setq nmonths (floor (/ (- cday sday) 30.436875)))
13329 ;; How often does dn fit in there?
13330 (setq d (nth 1 start) m (car start) y (nth 2 start)
13331 nm (* dn (max 0 (1- (floor (/ nmonths dn)))))
13332 m (+ m nm)
13333 ny (floor (/ m 12))
13334 y (+ y ny)
13335 m (- m (* ny 12)))
13336 (while (> m 12) (setq m (- m 12) y (1+ y)))
13337 (setq n1 (calendar-absolute-from-gregorian (list m d y)))
13338 (setq m2 (+ m dn) y2 y)
13339 (if (> m2 12) (setq y2 (1+ y2) m2 (- m2 12)))
13340 (setq n2 (calendar-absolute-from-gregorian (list m2 d y2)))
13341 (while (< n2 cday)
13342 (setq n1 n2 m m2 y y2)
13343 (setq m2 (+ m dn) y2 y)
13344 (if (> m2 12) (setq y2 (1+ y2) m2 (- m2 12)))
13345 (setq n2 (calendar-absolute-from-gregorian (list m2 d y2))))))
13346
13347 (if (> (abs (- cday n1)) (abs (- cday n2))) n2 n1))))
13348
13349(defun org-date-to-gregorian (date)
13350 "Turn any specification of DATE into a gregorian date for the calendar."
13351 (cond ((integerp date) (calendar-gregorian-from-absolute date))
13352 ((and (listp date) (= (length date) 3)) date)
13353 ((stringp date)
13354 (setq date (org-parse-time-string date))
13355 (list (nth 4 date) (nth 3 date) (nth 5 date)))
13356 ((listp date)
13357 (list (nth 4 date) (nth 3 date) (nth 5 date)))))
13358
12352(defun org-parse-time-string (s &optional nodefault) 13359(defun org-parse-time-string (s &optional nodefault)
12353 "Parse the standard Org-mode time string. 13360 "Parse the standard Org-mode time string.
12354This should be a lot faster than the normal `parse-time-string'. 13361This should be a lot faster than the normal `parse-time-string'.
@@ -12436,6 +13443,7 @@ in the timestamp determines what will be changed."
12436 (let ((pos (point)) 13443 (let ((pos (point))
12437 with-hm inactive 13444 with-hm inactive
12438 org-ts-what 13445 org-ts-what
13446 extra
12439 ts time time0) 13447 ts time time0)
12440 (if (not (org-at-timestamp-p t)) 13448 (if (not (org-at-timestamp-p t))
12441 (error "Not at a timestamp")) 13449 (error "Not at a timestamp"))
@@ -12445,12 +13453,13 @@ in the timestamp determines what will be changed."
12445 (not (get-text-property (1- (point)) 'display))) 13453 (not (get-text-property (1- (point)) 'display)))
12446 (setq org-ts-what 'day)) 13454 (setq org-ts-what 'day))
12447 (setq org-ts-what (or what org-ts-what) 13455 (setq org-ts-what (or what org-ts-what)
12448 with-hm (<= (abs (- (cdr org-ts-lengths)
12449 (- (match-end 0) (match-beginning 0))))
12450 1)
12451 inactive (= (char-after (match-beginning 0)) ?\[) 13456 inactive (= (char-after (match-beginning 0)) ?\[)
12452 ts (match-string 0)) 13457 ts (match-string 0))
12453 (replace-match "") 13458 (replace-match "")
13459 (if (string-match " \\+[0-9]+[dwmy]" ts)
13460 (setq extra (match-string 0 ts)))
13461 (if (string-match "^.\\{10\\}.*?[0-9]+:[0-9][0-9]" ts)
13462 (setq with-hm t))
12454 (setq time0 (org-parse-time-string ts)) 13463 (setq time0 (org-parse-time-string ts))
12455 (setq time 13464 (setq time
12456 (apply 'encode-time 13465 (apply 'encode-time
@@ -12476,7 +13485,7 @@ in the timestamp determines what will be changed."
12476 (setcar (nthcdr 2 time0) (or (nth 1 time0) 0)) 13485 (setcar (nthcdr 2 time0) (or (nth 1 time0) 0))
12477 (setq time (apply 'encode-time time0)))) 13486 (setq time (apply 'encode-time time0))))
12478 (setq org-last-changed-timestamp 13487 (setq org-last-changed-timestamp
12479 (org-insert-time-stamp time with-hm inactive)) 13488 (org-insert-time-stamp time with-hm inactive nil nil extra))
12480 (org-clock-update-time-maybe) 13489 (org-clock-update-time-maybe)
12481 (goto-char pos) 13490 (goto-char pos)
12482 ;; Try to recenter the calendar window, if any 13491 ;; Try to recenter the calendar window, if any
@@ -12525,8 +13534,27 @@ If there is already a time stamp at the cursor position, update it."
12525 13534
12526;;; The clock for measuring work time. 13535;;; The clock for measuring work time.
12527 13536
13537(defvar org-mode-line-string "")
13538(put 'org-mode-line-string 'risky-local-variable t)
13539
13540(defvar org-mode-line-timer nil)
13541(defvar org-clock-heading "")
13542(defvar org-clock-start-time "")
13543
13544(defun org-update-mode-line ()
13545 (let* ((delta (- (time-to-seconds (current-time))
13546 (time-to-seconds org-clock-start-time)))
13547 (h (floor delta 3600))
13548 (m (floor (- delta (* 3600 h)) 60)))
13549 (setq org-mode-line-string
13550 (propertize (format "-[%d:%02d (%s)]" h m org-clock-heading)
13551 'help-echo "Org-mode clock is running"))
13552 (force-mode-line-update)))
13553
12528(defvar org-clock-marker (make-marker) 13554(defvar org-clock-marker (make-marker)
12529 "Marker recording the last clock-in.") 13555 "Marker recording the last clock-in.")
13556(defvar org-clock-mode-line-entry nil
13557 "Information for the modeline about the running clock.")
12530 13558
12531(defun org-clock-in () 13559(defun org-clock-in ()
12532 "Start the clock on the current item. 13560 "Start the clock on the current item.
@@ -12536,6 +13564,10 @@ If necessary, clock-out of the currently active clock."
12536 (let (ts) 13564 (let (ts)
12537 (save-excursion 13565 (save-excursion
12538 (org-back-to-heading t) 13566 (org-back-to-heading t)
13567 (if (looking-at org-todo-line-regexp)
13568 (setq org-clock-heading (match-string 3))
13569 (setq org-clock-heading "???"))
13570 (setq org-clock-heading (propertize org-clock-heading 'face nil))
12539 (beginning-of-line 2) 13571 (beginning-of-line 2)
12540 (when (and (looking-at (concat "[ \t]*" org-keyword-time-regexp)) 13572 (when (and (looking-at (concat "[ \t]*" org-keyword-time-regexp))
12541 (not (equal (match-string 1) org-clock-string))) 13573 (not (equal (match-string 1) org-clock-string)))
@@ -12545,8 +13577,15 @@ If necessary, clock-out of the currently active clock."
12545 (insert "\n") (backward-char 1) 13577 (insert "\n") (backward-char 1)
12546 (indent-relative) 13578 (indent-relative)
12547 (insert org-clock-string " ") 13579 (insert org-clock-string " ")
13580 (setq org-clock-start-time (current-time))
12548 (setq ts (org-insert-time-stamp (current-time) 'with-hm 'inactive)) 13581 (setq ts (org-insert-time-stamp (current-time) 'with-hm 'inactive))
12549 (move-marker org-clock-marker (point) (buffer-base-buffer)) 13582 (move-marker org-clock-marker (point) (buffer-base-buffer))
13583 (or global-mode-string (setq global-mode-string '("")))
13584 (or (memq 'org-mode-line-string global-mode-string)
13585 (setq global-mode-string
13586 (append global-mode-string '(org-mode-line-string))))
13587 (org-update-mode-line)
13588 (setq org-mode-line-timer (run-with-timer 60 60 'org-update-mode-line))
12550 (message "Clock started at %s" ts)))) 13589 (message "Clock started at %s" ts))))
12551 13590
12552(defun org-clock-out (&optional fail-quietly) 13591(defun org-clock-out (&optional fail-quietly)
@@ -12577,6 +13616,12 @@ If there is no running clock, throw an error, unless FAIL-QUIETLY is set."
12577 (insert " => " (format "%2d:%02d" h m)) 13616 (insert " => " (format "%2d:%02d" h m))
12578 (move-marker org-clock-marker nil) 13617 (move-marker org-clock-marker nil)
12579 (org-add-log-maybe 'clock-out) 13618 (org-add-log-maybe 'clock-out)
13619 (when org-mode-line-timer
13620 (cancel-timer org-mode-line-timer)
13621 (setq org-mode-line-timer nil))
13622 (setq global-mode-string
13623 (delq 'org-mode-line-string global-mode-string))
13624 (force-mode-line-update)
12580 (message "Clock stopped at %s after HH:MM = %d:%02d" te h m))))) 13625 (message "Clock stopped at %s after HH:MM = %d:%02d" te h m)))))
12581 13626
12582(defun org-clock-cancel () 13627(defun org-clock-cancel ()
@@ -12704,7 +13749,7 @@ from the `before-change-functions' in the current buffer."
12704(defun org-clock-out-if-current () 13749(defun org-clock-out-if-current ()
12705 "Clock out if the current entry contains the running clock. 13750 "Clock out if the current entry contains the running clock.
12706This is used to stop the clock after a TODO entry is marked DONE." 13751This is used to stop the clock after a TODO entry is marked DONE."
12707 (when (and (equal state org-done-string) 13752 (when (and (member state org-done-keywords)
12708 (equal (marker-buffer org-clock-marker) (current-buffer)) 13753 (equal (marker-buffer org-clock-marker) (current-buffer))
12709 (< (point) org-clock-marker) 13754 (< (point) org-clock-marker)
12710 (> (save-excursion (outline-next-heading) (point)) 13755 (> (save-excursion (outline-next-heading) (point))
@@ -12984,86 +14029,89 @@ The following commands are available:
12984 14029
12985(substitute-key-definition 'undo 'org-agenda-undo 14030(substitute-key-definition 'undo 'org-agenda-undo
12986 org-agenda-mode-map global-map) 14031 org-agenda-mode-map global-map)
12987(define-key org-agenda-mode-map "\C-i" 'org-agenda-goto) 14032(org-defkey org-agenda-mode-map "\C-i" 'org-agenda-goto)
12988(define-key org-agenda-mode-map [(tab)] 'org-agenda-goto) 14033(org-defkey org-agenda-mode-map [(tab)] 'org-agenda-goto)
12989(define-key org-agenda-mode-map "\C-m" 'org-agenda-switch-to) 14034(org-defkey org-agenda-mode-map "\C-m" 'org-agenda-switch-to)
12990(define-key org-agenda-mode-map "\C-k" 'org-agenda-kill) 14035(org-defkey org-agenda-mode-map "\C-k" 'org-agenda-kill)
12991(define-key org-agenda-mode-map "\C-c$" 'org-agenda-archive) 14036(org-defkey org-agenda-mode-map "\C-c$" 'org-agenda-archive)
12992(define-key org-agenda-mode-map "\C-c\C-x\C-s" 'org-agenda-archive) 14037(org-defkey org-agenda-mode-map "\C-c\C-x\C-s" 'org-agenda-archive)
12993(define-key org-agenda-mode-map "$" 'org-agenda-archive) 14038(org-defkey org-agenda-mode-map "$" 'org-agenda-archive)
12994(define-key org-agenda-mode-map "\C-c\C-o" 'org-agenda-open-link) 14039(org-defkey org-agenda-mode-map "\C-c\C-o" 'org-agenda-open-link)
12995(define-key org-agenda-mode-map " " 'org-agenda-show) 14040(org-defkey org-agenda-mode-map " " 'org-agenda-show)
12996(define-key org-agenda-mode-map "\C-c\C-t" 'org-agenda-todo) 14041(org-defkey org-agenda-mode-map "\C-c\C-t" 'org-agenda-todo)
12997(define-key org-agenda-mode-map "\C-c\C-xb" 'org-agenda-tree-to-indirect-buffer) 14042(org-defkey org-agenda-mode-map [(control shift right)] 'org-agenda-todo-nextset)
12998(define-key org-agenda-mode-map "b" 'org-agenda-tree-to-indirect-buffer) 14043(org-defkey org-agenda-mode-map [(control shift left)] 'org-agenda-todo-previousset)
12999(define-key org-agenda-mode-map "o" 'delete-other-windows) 14044(org-defkey org-agenda-mode-map "\C-c\C-xb" 'org-agenda-tree-to-indirect-buffer)
13000(define-key org-agenda-mode-map "L" 'org-agenda-recenter) 14045(org-defkey org-agenda-mode-map "b" 'org-agenda-tree-to-indirect-buffer)
13001(define-key org-agenda-mode-map "t" 'org-agenda-todo) 14046(org-defkey org-agenda-mode-map "o" 'delete-other-windows)
13002(define-key org-agenda-mode-map "a" 'org-agenda-toggle-archive-tag) 14047(org-defkey org-agenda-mode-map "L" 'org-agenda-recenter)
13003(define-key org-agenda-mode-map ":" 'org-agenda-set-tags) 14048(org-defkey org-agenda-mode-map "t" 'org-agenda-todo)
13004(define-key org-agenda-mode-map "." 'org-agenda-goto-today) 14049(org-defkey org-agenda-mode-map "a" 'org-agenda-toggle-archive-tag)
13005(define-key org-agenda-mode-map "d" 'org-agenda-day-view) 14050(org-defkey org-agenda-mode-map ":" 'org-agenda-set-tags)
13006(define-key org-agenda-mode-map "w" 'org-agenda-week-view) 14051(org-defkey org-agenda-mode-map "." 'org-agenda-goto-today)
13007(define-key org-agenda-mode-map (org-key 'S-right) 'org-agenda-date-later) 14052(org-defkey org-agenda-mode-map "d" 'org-agenda-day-view)
13008(define-key org-agenda-mode-map (org-key 'S-left) 'org-agenda-date-earlier) 14053(org-defkey org-agenda-mode-map "w" 'org-agenda-week-view)
13009(define-key org-agenda-mode-map [?\C-c ?\C-x (right)] 'org-agenda-date-later) 14054(org-defkey org-agenda-mode-map [(shift right)] 'org-agenda-date-later)
13010(define-key org-agenda-mode-map [?\C-c ?\C-x (left)] 'org-agenda-date-earlier) 14055(org-defkey org-agenda-mode-map [(shift left)] 'org-agenda-date-earlier)
13011 14056(org-defkey org-agenda-mode-map [?\C-c ?\C-x (right)] 'org-agenda-date-later)
13012(define-key org-agenda-mode-map ">" 'org-agenda-date-prompt) 14057(org-defkey org-agenda-mode-map [?\C-c ?\C-x (left)] 'org-agenda-date-earlier)
13013(define-key org-agenda-mode-map "\C-c\C-s" 'org-agenda-schedule) 14058
13014(define-key org-agenda-mode-map "\C-c\C-d" 'org-agenda-deadline) 14059(org-defkey org-agenda-mode-map ">" 'org-agenda-date-prompt)
14060(org-defkey org-agenda-mode-map "\C-c\C-s" 'org-agenda-schedule)
14061(org-defkey org-agenda-mode-map "\C-c\C-d" 'org-agenda-deadline)
13015(let ((l '(1 2 3 4 5 6 7 8 9 0))) 14062(let ((l '(1 2 3 4 5 6 7 8 9 0)))
13016 (while l (define-key org-agenda-mode-map 14063 (while l (org-defkey org-agenda-mode-map
13017 (int-to-string (pop l)) 'digit-argument))) 14064 (int-to-string (pop l)) 'digit-argument)))
13018 14065
13019(define-key org-agenda-mode-map "f" 'org-agenda-follow-mode) 14066(org-defkey org-agenda-mode-map "f" 'org-agenda-follow-mode)
13020(define-key org-agenda-mode-map "l" 'org-agenda-log-mode) 14067(org-defkey org-agenda-mode-map "l" 'org-agenda-log-mode)
13021(define-key org-agenda-mode-map "D" 'org-agenda-toggle-diary) 14068(org-defkey org-agenda-mode-map "D" 'org-agenda-toggle-diary)
13022(define-key org-agenda-mode-map "g" 'org-agenda-toggle-time-grid) 14069(org-defkey org-agenda-mode-map "g" 'org-agenda-toggle-time-grid)
13023(define-key org-agenda-mode-map "r" 'org-agenda-redo) 14070(org-defkey org-agenda-mode-map "r" 'org-agenda-redo)
13024(define-key org-agenda-mode-map "q" 'org-agenda-quit) 14071(org-defkey org-agenda-mode-map "q" 'org-agenda-quit)
13025(define-key org-agenda-mode-map "x" 'org-agenda-exit) 14072(org-defkey org-agenda-mode-map "x" 'org-agenda-exit)
13026(define-key org-agenda-mode-map "s" 'org-save-all-org-buffers) 14073(org-defkey org-agenda-mode-map "\C-x\C-w" 'org-write-agenda)
13027(define-key org-agenda-mode-map "P" 'org-agenda-show-priority) 14074(org-defkey org-agenda-mode-map "s" 'org-save-all-org-buffers)
13028(define-key org-agenda-mode-map "T" 'org-agenda-show-tags) 14075(org-defkey org-agenda-mode-map "P" 'org-agenda-show-priority)
13029(define-key org-agenda-mode-map "n" 'next-line) 14076(org-defkey org-agenda-mode-map "T" 'org-agenda-show-tags)
13030(define-key org-agenda-mode-map "p" 'previous-line) 14077(org-defkey org-agenda-mode-map "n" 'next-line)
13031(define-key org-agenda-mode-map "\C-n" 'org-agenda-next-date-line) 14078(org-defkey org-agenda-mode-map "p" 'previous-line)
13032(define-key org-agenda-mode-map "\C-p" 'org-agenda-previous-date-line) 14079(org-defkey org-agenda-mode-map "\C-n" 'org-agenda-next-date-line)
13033(define-key org-agenda-mode-map "," 'org-agenda-priority) 14080(org-defkey org-agenda-mode-map "\C-p" 'org-agenda-previous-date-line)
13034(define-key org-agenda-mode-map "\C-c," 'org-agenda-priority) 14081(org-defkey org-agenda-mode-map "," 'org-agenda-priority)
13035(define-key org-agenda-mode-map "i" 'org-agenda-diary-entry) 14082(org-defkey org-agenda-mode-map "\C-c," 'org-agenda-priority)
13036(define-key org-agenda-mode-map "c" 'org-agenda-goto-calendar) 14083(org-defkey org-agenda-mode-map "i" 'org-agenda-diary-entry)
14084(org-defkey org-agenda-mode-map "c" 'org-agenda-goto-calendar)
13037(eval-after-load "calendar" 14085(eval-after-load "calendar"
13038 '(define-key calendar-mode-map org-calendar-to-agenda-key 14086 '(org-defkey calendar-mode-map org-calendar-to-agenda-key
13039 'org-calendar-goto-agenda)) 14087 'org-calendar-goto-agenda))
13040(define-key org-agenda-mode-map "C" 'org-agenda-convert-date) 14088(org-defkey org-agenda-mode-map "C" 'org-agenda-convert-date)
13041(define-key org-agenda-mode-map "m" 'org-agenda-phases-of-moon) 14089(org-defkey org-agenda-mode-map "m" 'org-agenda-phases-of-moon)
13042(define-key org-agenda-mode-map "M" 'org-agenda-phases-of-moon) 14090(org-defkey org-agenda-mode-map "M" 'org-agenda-phases-of-moon)
13043(define-key org-agenda-mode-map "S" 'org-agenda-sunrise-sunset) 14091(org-defkey org-agenda-mode-map "S" 'org-agenda-sunrise-sunset)
13044(define-key org-agenda-mode-map "h" 'org-agenda-holidays) 14092(org-defkey org-agenda-mode-map "h" 'org-agenda-holidays)
13045(define-key org-agenda-mode-map "H" 'org-agenda-holidays) 14093(org-defkey org-agenda-mode-map "H" 'org-agenda-holidays)
13046(define-key org-agenda-mode-map "+" 'org-agenda-priority-up) 14094(org-defkey org-agenda-mode-map "I" 'org-agenda-clock-in)
13047(define-key org-agenda-mode-map "I" 'org-agenda-clock-in) 14095(org-defkey org-agenda-mode-map "O" 'org-agenda-clock-out)
13048(define-key org-agenda-mode-map "O" 'org-agenda-clock-out) 14096(org-defkey org-agenda-mode-map "X" 'org-agenda-clock-cancel)
13049(define-key org-agenda-mode-map "X" 'org-agenda-clock-cancel) 14097(org-defkey org-agenda-mode-map "+" 'org-agenda-priority-up)
13050(define-key org-agenda-mode-map "-" 'org-agenda-priority-down) 14098(org-defkey org-agenda-mode-map "-" 'org-agenda-priority-down)
13051(define-key org-agenda-mode-map (org-key 'S-up) 'org-agenda-priority-up) 14099(org-defkey org-agenda-mode-map [(shift up)] 'org-agenda-priority-up)
13052(define-key org-agenda-mode-map (org-key 'S-down) 'org-agenda-priority-down) 14100(org-defkey org-agenda-mode-map [(shift down)] 'org-agenda-priority-down)
13053(define-key org-agenda-mode-map [?\C-c ?\C-x (up)] 'org-agenda-priority-up) 14101(org-defkey org-agenda-mode-map [?\C-c ?\C-x (up)] 'org-agenda-priority-up)
13054(define-key org-agenda-mode-map [?\C-c ?\C-x (down)] 'org-agenda-priority-down) 14102(org-defkey org-agenda-mode-map [?\C-c ?\C-x (down)] 'org-agenda-priority-down)
13055(define-key org-agenda-mode-map [(right)] 'org-agenda-later) 14103(org-defkey org-agenda-mode-map [(right)] 'org-agenda-later)
13056(define-key org-agenda-mode-map [(left)] 'org-agenda-earlier) 14104(org-defkey org-agenda-mode-map [(left)] 'org-agenda-earlier)
13057(define-key org-agenda-mode-map "\C-c\C-x\C-c" 'org-export-icalendar-combine-agenda-files) 14105(org-defkey org-agenda-mode-map "\C-c\C-x\C-c" 'org-export-icalendar-combine-agenda-files)
13058(defvar org-agenda-keymap (copy-keymap org-agenda-mode-map) 14106(defvar org-agenda-keymap (copy-keymap org-agenda-mode-map)
13059 "Local keymap for agenda entries from Org-mode.") 14107 "Local keymap for agenda entries from Org-mode.")
13060 14108
13061(define-key org-agenda-keymap 14109(org-defkey org-agenda-keymap
13062 (if (featurep 'xemacs) [(button2)] [(mouse-2)]) 'org-agenda-goto-mouse) 14110 (if (featurep 'xemacs) [(button2)] [(mouse-2)]) 'org-agenda-goto-mouse)
13063(define-key org-agenda-keymap 14111(org-defkey org-agenda-keymap
13064 (if (featurep 'xemacs) [(button3)] [(mouse-3)]) 'org-agenda-show-mouse) 14112 (if (featurep 'xemacs) [(button3)] [(mouse-3)]) 'org-agenda-show-mouse)
13065(when org-agenda-mouse-1-follows-link 14113(when org-agenda-mouse-1-follows-link
13066 (define-key org-agenda-keymap [follow-link] 'mouse-face)) 14114 (org-defkey org-agenda-keymap [follow-link] 'mouse-face))
13067(easy-menu-define org-agenda-menu org-agenda-mode-map "Agenda menu" 14115(easy-menu-define org-agenda-menu org-agenda-mode-map "Agenda menu"
13068 '("Agenda" 14116 '("Agenda"
13069 ("Agenda Files") 14117 ("Agenda Files")
@@ -13120,6 +14168,7 @@ The following commands are available:
13120 :style toggle :selected org-agenda-include-diary :active (org-agenda-check-type nil 'agenda)] 14168 :style toggle :selected org-agenda-include-diary :active (org-agenda-check-type nil 'agenda)]
13121 ["Use Time Grid" org-agenda-toggle-time-grid 14169 ["Use Time Grid" org-agenda-toggle-time-grid
13122 :style toggle :selected org-agenda-use-time-grid :active (org-agenda-check-type nil 'agenda)]) 14170 :style toggle :selected org-agenda-use-time-grid :active (org-agenda-check-type nil 'agenda)])
14171 ["Write view to file" org-write-agenda t]
13123 ["Rebuild buffer" org-agenda-redo t] 14172 ["Rebuild buffer" org-agenda-redo t]
13124 ["Save all Org-mode Buffers" org-save-all-org-buffers t] 14173 ["Save all Org-mode Buffers" org-save-all-org-buffers t]
13125 "--" 14174 "--"
@@ -13146,6 +14195,11 @@ The following commands are available:
13146 `(unless (get-text-property (point) 'org-protected) 14195 `(unless (get-text-property (point) 'org-protected)
13147 ,@body)) 14196 ,@body))
13148 14197
14198(defmacro org-unmodified (&rest body)
14199 "Execute body without changing buffer-modified-p."
14200 `(set-buffer-modified-p
14201 (prog1 (buffer-modified-p) ,@body)))
14202
13149(defmacro org-with-remote-undo (_buffer &rest _body) 14203(defmacro org-with-remote-undo (_buffer &rest _body)
13150 "Execute BODY while recording undo information in two buffers." 14204 "Execute BODY while recording undo information in two buffers."
13151 (declare (indent 1) (debug t)) 14205 (declare (indent 1) (debug t))
@@ -13230,7 +14284,8 @@ T Call `org-todo-list' to display the global todo list, select only
13230m Call `org-tags-view' to display headlines with tags matching 14284m Call `org-tags-view' to display headlines with tags matching
13231 a condition (the user is prompted for the condition). 14285 a condition (the user is prompted for the condition).
13232M Like `m', but select only TODO entries, no ordinary headlines. 14286M Like `m', but select only TODO entries, no ordinary headlines.
13233l Create a timeeline for the current buffer. 14287l Create a timeline for the current buffer.
14288e Export views to associated files.
13234 14289
13235More commands can be added by configuring the variable 14290More commands can be added by configuring the variable
13236`org-agenda-custom-commands'. In particular, specific tags and TODO keyword 14291`org-agenda-custom-commands'. In particular, specific tags and TODO keyword
@@ -13261,7 +14316,7 @@ next use of \\[org-agenda]) restricted to the current file."
13261 (let ((header 14316 (let ((header
13262"Press key for an agenda command: 14317"Press key for an agenda command:
13263-------------------------------- C Configure custom agenda commands 14318-------------------------------- C Configure custom agenda commands
13264a Agenda for current week or day 14319a Agenda for current week or day e Export agenda views
13265t List of all TODO entries T Entries with special TODO kwd 14320t List of all TODO entries T Entries with special TODO kwd
13266m Match a TAGS query M Like m, but only TODO entries 14321m Match a TAGS query M Like m, but only TODO entries
13267L Timeline for current buffer # List stuck projects (!=configure) 14322L Timeline for current buffer # List stuck projects (!=configure)
@@ -13279,6 +14334,9 @@ L Timeline for current buffer # List stuck projects (!=configure)
13279 '(face bold)) 14334 '(face bold))
13280 (cond 14335 (cond
13281 ((stringp type) type) 14336 ((stringp type) type)
14337 ((eq type 'agenda) "Agenda for current week or day")
14338 ((eq type 'alltodo) "List of all TODO entries")
14339 ((eq type 'stuck) "List of stuck projects")
13282 ((eq type 'todo) "TODO keyword") 14340 ((eq type 'todo) "TODO keyword")
13283 ((eq type 'tags) "Tags query") 14341 ((eq type 'tags) "Tags query")
13284 ((eq type 'tags-todo) "Tags (TODO)") 14342 ((eq type 'tags-todo) "Tags (TODO)")
@@ -13333,6 +14391,13 @@ L Timeline for current buffer # List stuck projects (!=configure)
13333 (setq type (nth 1 entry) match (nth 2 entry) lprops (nth 3 entry) 14391 (setq type (nth 1 entry) match (nth 2 entry) lprops (nth 3 entry)
13334 lprops (nth 3 entry)) 14392 lprops (nth 3 entry))
13335 (cond 14393 (cond
14394 ((eq type 'agenda)
14395 (org-let lprops '(org-agenda-list current-prefix-arg)))
14396 ((eq type 'alltodo)
14397 (org-let lprops '(org-todo-list current-prefix-arg)))
14398 ((eq type 'stuck)
14399 (org-let lprops '(org-agenda-list-stuck-projects
14400 current-prefix-arg)))
13336 ((eq type 'tags) 14401 ((eq type 'tags)
13337 (org-let lprops '(org-tags-view current-prefix-arg match))) 14402 (org-let lprops '(org-tags-view current-prefix-arg match)))
13338 ((eq type 'tags-todo) 14403 ((eq type 'tags-todo)
@@ -13353,13 +14418,14 @@ L Timeline for current buffer # List stuck projects (!=configure)
13353 ((fboundp type) 14418 ((fboundp type)
13354 (org-let lprops '(funcall type match))) 14419 (org-let lprops '(funcall type match)))
13355 (t (error "Invalid custom agenda command type %s" type)))) 14420 (t (error "Invalid custom agenda command type %s" type))))
13356 (org-run-agenda-series (cddr entry)))) 14421 (org-run-agenda-series (nth 1 entry) (cddr entry))))
13357 ((equal c ?C) (customize-variable 'org-agenda-custom-commands)) 14422 ((equal c ?C) (customize-variable 'org-agenda-custom-commands))
13358 ((equal c ?a) (call-interactively 'org-agenda-list)) 14423 ((equal c ?a) (call-interactively 'org-agenda-list))
13359 ((equal c ?t) (call-interactively 'org-todo-list)) 14424 ((equal c ?t) (call-interactively 'org-todo-list))
13360 ((equal c ?T) (org-call-with-arg 'org-todo-list (or arg '(4)))) 14425 ((equal c ?T) (org-call-with-arg 'org-todo-list (or arg '(4))))
13361 ((equal c ?m) (call-interactively 'org-tags-view)) 14426 ((equal c ?m) (call-interactively 'org-tags-view))
13362 ((equal c ?M) (org-call-with-arg 'org-tags-view (or arg '(4)))) 14427 ((equal c ?M) (org-call-with-arg 'org-tags-view (or arg '(4))))
14428 ((equal c ?e) (call-interactively 'org-store-agenda-views))
13363 ((equal c ?L) 14429 ((equal c ?L)
13364 (unless restrict-ok 14430 (unless restrict-ok
13365 (error "This is not an Org-mode file")) 14431 (error "This is not an Org-mode file"))
@@ -13368,10 +14434,10 @@ L Timeline for current buffer # List stuck projects (!=configure)
13368 ((equal c ?!) (customize-variable 'org-stuck-projects)) 14434 ((equal c ?!) (customize-variable 'org-stuck-projects))
13369 (t (error "Invalid key")))))) 14435 (t (error "Invalid key"))))))
13370 14436
13371(defun org-run-agenda-series (series) 14437(defun org-run-agenda-series (name series)
13372 (org-prepare-agenda) 14438 (org-prepare-agenda name)
13373 (let* ((org-agenda-multi t) 14439 (let* ((org-agenda-multi t)
13374 (redo (list 'org-run-agenda-series (list 'quote series))) 14440 (redo (list 'org-run-agenda-series name (list 'quote series)))
13375 (cmds (car series)) 14441 (cmds (car series))
13376 (gprops (nth 1 series)) 14442 (gprops (nth 1 series))
13377 match ;; The byte compiler incorrectly complains about this. Keep it! 14443 match ;; The byte compiler incorrectly complains about this. Keep it!
@@ -13380,11 +14446,14 @@ L Timeline for current buffer # List stuck projects (!=configure)
13380 (setq type (car cmd) match (nth 1 cmd) lprops (nth 2 cmd)) 14446 (setq type (car cmd) match (nth 1 cmd) lprops (nth 2 cmd))
13381 (cond 14447 (cond
13382 ((eq type 'agenda) 14448 ((eq type 'agenda)
13383 (call-interactively 'org-agenda-list)) 14449 (org-let2 gprops lprops
14450 '(call-interactively 'org-agenda-list)))
13384 ((eq type 'alltodo) 14451 ((eq type 'alltodo)
13385 (call-interactively 'org-todo-list)) 14452 (org-let2 gprops lprops
14453 '(call-interactively 'org-todo-list)))
13386 ((eq type 'stuck) 14454 ((eq type 'stuck)
13387 (call-interactively 'org-agenda-list-stuck-projects)) 14455 (org-let2 gprops lprops
14456 '(call-interactively 'org-agenda-list-stuck-projects)))
13388 ((eq type 'tags) 14457 ((eq type 'tags)
13389 (org-let2 gprops lprops 14458 (org-let2 gprops lprops
13390 '(org-tags-view current-prefix-arg match))) 14459 '(org-tags-view current-prefix-arg match)))
@@ -13405,17 +14474,208 @@ L Timeline for current buffer # List stuck projects (!=configure)
13405 14474
13406;;;###autoload 14475;;;###autoload
13407(defmacro org-batch-agenda (cmd-key &rest parameters) 14476(defmacro org-batch-agenda (cmd-key &rest parameters)
13408 "Run an agenda command in batch mode, send result to STDOUT. 14477 "Run an agenda command in batch mode and send the result to STDOUT.
13409CMD-KEY is a string that is also a key in `org-agenda-custom-commands'. 14478If CMD-KEY is a string of length 1, it is used as a key in
14479`org-agenda-custom-commands' and triggers this command. If it is a
14480longer string it is used as a tags/todo match string.
13410Paramters are alternating variable names and values that will be bound 14481Paramters are alternating variable names and values that will be bound
13411before running the agenda command." 14482before running the agenda command."
13412 (let (pars) 14483 (let (pars)
13413 (while parameters 14484 (while parameters
13414 (push (list (pop parameters) (if parameters (pop parameters))) pars)) 14485 (push (list (pop parameters) (if parameters (pop parameters))) pars))
13415 (flet ((read-char-exclusive () (string-to-char cmd-key))) 14486 (if (> (length cmd-key) 1)
13416 (eval (list 'let (nreverse pars) '(org-agenda nil)))) 14487 (eval (list 'let (nreverse pars)
14488 (list 'org-tags-view nil cmd-key)))
14489 (flet ((read-char-exclusive () (string-to-char cmd-key)))
14490 (eval (list 'let (nreverse pars) '(org-agenda nil)))))
14491 (set-buffer "*Org Agenda*")
14492 (princ (org-encode-for-stdout (buffer-string)))))
14493
14494(defun org-encode-for-stdout (string)
14495 (if (fboundp 'encode-coding-string)
14496 (encode-coding-string string buffer-file-coding-system)
14497 string))
14498
14499(defvar org-agenda-info nil)
14500
14501;;;###autoload
14502(defmacro org-batch-agenda-csv (cmd-key &rest parameters)
14503 "Run an agenda command in batch mode and send the result to STDOUT.
14504If CMD-KEY is a string of length 1, it is used as a key in
14505`org-agenda-custom-commands' and triggers this command. If it is a
14506longer string it is used as a tags/todo match string.
14507Paramters are alternating variable names and values that will be bound
14508before running the agenda command.
14509
14510The output gives a line for each selected agenda item. Each
14511item is a list of comma-separated values, like this:
14512
14513category,head,type,todo,tags,date,time,extra,priority-l,priority-n
14514
14515category The category of the item
14516head The headline, without TODO kwd, TAGS and PRIORITY
14517type The type of the agenda entry, can be
14518 todo selected in TODO match
14519 tagsmatch selected in tags match
14520 diary imported from diary
14521 deadline a deadline on given date
14522 scheduled scheduled on given date
14523 timestamp entry has timestamp on given date
14524 closed entry was closed on given date
14525 upcoming-deadline warning about deadline
14526 past-scheduled forwarded scheduled item
14527 block entry has date block including g. date
14528todo The todo keyword, if any
14529tags All tags including inherited ones, separated by colons
14530date The relevant date, like 2007-2-14
14531time The time, like 15:00-16:50
14532extra Sting with extra planning info
14533priority-l The priority letter if any was given
14534priority-n The computed numerical priority"
14535
14536 (let (pars)
14537 (while parameters
14538 (push (list (pop parameters) (if parameters (pop parameters))) pars))
14539 (push (list 'org-agenda-remove-tags t) pars)
14540 (if (> (length cmd-key) 1)
14541 (eval (list 'let (nreverse pars)
14542 (list 'org-tags-view nil cmd-key)))
14543 (flet ((read-char-exclusive () (string-to-char cmd-key)))
14544 (eval (list 'let (nreverse pars) '(org-agenda nil)))))
13417 (set-buffer "*Org Agenda*") 14545 (set-buffer "*Org Agenda*")
13418 (princ (buffer-string)))) 14546 (let* ((lines (org-split-string (buffer-string) "\n"))
14547 line)
14548 (while (setq line (pop lines))
14549 (catch 'next
14550 (if (not (get-text-property 0 'org-category line)) (throw 'next nil))
14551 (setq org-agenda-info
14552 (org-fix-agenda-info (text-properties-at 0 line)))
14553 (princ
14554 (org-encode-for-stdout
14555 (mapconcat 'org-agenda-export-csv-mapper
14556 '(org-category txt type todo tags date time-of-day extra
14557 priority-letter priority)
14558 ",")))
14559 (princ "\n"))))))
14560
14561(defun org-fix-agenda-info (props)
14562 "FIXME"
14563 (let (tmp re)
14564 (when (setq tmp (plist-get props 'tags))
14565 (setq props (plist-put props 'tags (mapconcat 'identity tmp ":"))))
14566 (when (setq tmp (plist-get props 'date))
14567 (if (integerp tmp) (setq tmp (calendar-gregorian-from-absolute tmp)))
14568 (let ((calendar-date-display-form '(year "-" month "-" day)))
14569 '((format "%4d, %9s %2s, %4s" dayname monthname day year))
14570
14571 (setq tmp (calendar-date-string tmp)))
14572 (setq props (plist-put props 'date tmp)))
14573 (when (setq tmp (plist-get props 'day))
14574 (if (integerp tmp) (setq tmp (calendar-gregorian-from-absolute tmp)))
14575 (let ((calendar-date-display-form '(year "-" month "-" day)))
14576 (setq tmp (calendar-date-string tmp)))
14577 (setq props (plist-put props 'day tmp)))
14578 (when (setq tmp (plist-get props 'txt))
14579 (when (string-match "\\[#\\([A-Z0-9]\\)\\] ?" tmp)
14580 (plist-put props 'priority-letter (match-string 1 tmp))
14581 (setq tmp (replace-match "" t t tmp)))
14582 (when (and (setq re (plist-get props 'org-todo-regexp))
14583 (setq re (concat "\\`\\.*" re " ?"))
14584 (string-match re tmp))
14585 (plist-put props 'todo (match-string 1 tmp))
14586 (setq tmp (replace-match "" t t tmp)))
14587 (plist-put props 'txt tmp)))
14588 props)
14589
14590(defun org-agenda-export-csv-mapper (prop)
14591 (let ((res (plist-get org-agenda-info prop)))
14592 (setq res
14593 (cond
14594 ((not res) "")
14595 ((stringp res) res)
14596 (t (prin1-to-string res))))
14597 (while (string-match "," res)
14598 (setq res (replace-match ";" t t res)))
14599 (org-trim res)))
14600
14601
14602;;;###autoload
14603(defun org-store-agenda-views (&rest parameters)
14604 (interactive)
14605 (eval (list 'org-batch-store-agenda-views)))
14606
14607(defvar org-agenda-buffer-name)
14608
14609;; FIXME, why is this a macro?????
14610;;;###autoload
14611(defmacro org-batch-store-agenda-views (&rest parameters)
14612 "Run all custom agenda commands that have a file argument."
14613 (let ((cmds org-agenda-custom-commands)
14614 (dir (default-directory))
14615 pars cmd thiscmdkey files opts)
14616 (while parameters
14617 (push (list (pop parameters) (if parameters (pop parameters))) pars))
14618 (setq pars (reverse pars))
14619 (save-window-excursion
14620 (while cmds
14621 (setq cmd (pop cmds)
14622 thiscmdkey (car cmd)
14623 opts (nth 3 cmd)
14624 files (org-last cmd))
14625 (if (stringp files) (setq files (list files)))
14626 (when files
14627 (flet ((read-char-exclusive () (string-to-char thiscmdkey)))
14628 (eval (list 'let (append org-agenda-exporter-settings opts pars)
14629 '(org-agenda nil))))
14630 (set-buffer "*Org Agenda*")
14631 (while files
14632 (eval (list 'let (append org-agenda-exporter-settings opts pars)
14633 (list 'org-write-agenda
14634 (expand-file-name (pop files) dir) t)))))
14635 (kill-buffer org-agenda-buffer-name)))))
14636
14637(defun org-write-agenda (file &optional nosettings)
14638 "Write the current buffer (an agenda view) as a file.
14639Depending on the extension of the file name, plain text (.txt),
14640HTML (.html or .htm) or Postscript (.ps) is produced.
14641If NOSETTINGS is given, do not scope the settings of
14642`org-agenda-exporter-settings' into the export commands. This is used when
14643the settings have already been scoped and we do not wish to overrule other,
14644higher priority settings."
14645 (interactive "FWrite agenda to file: ")
14646 (if (not (file-writable-p file))
14647 (error "Cannot write agenda to file %s" file))
14648 (cond
14649 ((string-match "\\.html?\\'" file) (require 'htmlize))
14650 ((string-match "\\.ps\\'" file) (require 'ps-print)))
14651 (org-let (if nosettings nil org-agenda-exporter-settings)
14652 '(save-excursion
14653 (save-window-excursion
14654 (cond
14655 ((string-match "\\.html?\\'" file)
14656 (set-buffer (htmlize-buffer (current-buffer)))
14657
14658 (when (and org-agenda-export-html-style
14659 (string-match "<style>" org-agenda-export-html-style))
14660 ;; replace <style> section with org-agenda-export-html-style
14661 (goto-char (point-min))
14662 (kill-region (- (search-forward "<style") 6)
14663 (search-forward "</style>"))
14664 (insert org-agenda-export-html-style))
14665 (write-file file)
14666 (kill-buffer (current-buffer))
14667 (message "HTML written to %s" file))
14668 ((string-match "\\.ps\\'" file)
14669 (ps-print-buffer-with-faces file)
14670 (message "Postscript written to %s" file))
14671 (t
14672 (let ((bs (buffer-string)))
14673 (find-file file)
14674 (insert bs)
14675 (save-buffer 0)
14676 (kill-buffer (current-buffer))
14677 (message "Plain text written to %s" file))))))
14678 (set-buffer org-agenda-buffer-name)))
13419 14679
13420(defmacro org-no-read-only (&rest body) 14680(defmacro org-no-read-only (&rest body)
13421 "Inhibit read-only for BODY." 14681 "Inhibit read-only for BODY."
@@ -13508,13 +14768,6 @@ If the current buffer does not, find the first agenda file."
13508 (find-file (car fs))) 14768 (find-file (car fs)))
13509 (if (buffer-base-buffer) (switch-to-buffer (buffer-base-buffer))))) 14769 (if (buffer-base-buffer) (switch-to-buffer (buffer-base-buffer)))))
13510 14770
13511(defun org-agenda-file-to-end ()
13512 "Move/add the current file to the end of the agenda file list.
13513If the file is not present in the list, it is appended to the list. If it is
13514present, it is moved there."
13515 (interactive)
13516 (org-agenda-file-to-front 'to-end))
13517
13518(defun org-agenda-file-to-front (&optional to-end) 14771(defun org-agenda-file-to-front (&optional to-end)
13519 "Move/add the current file to the top of the agenda file list. 14772 "Move/add the current file to the top of the agenda file list.
13520If the file is not present in the list, it is added to the front. If it is 14773If the file is not present in the list, it is added to the front. If it is
@@ -13578,7 +14831,10 @@ Optional argument FILE means, use this file instead of the current."
13578(defvar org-agenda-multi nil) ; dynammically scoped 14831(defvar org-agenda-multi nil) ; dynammically scoped
13579(defvar org-agenda-buffer-name "*Org Agenda*") 14832(defvar org-agenda-buffer-name "*Org Agenda*")
13580(defvar org-pre-agenda-window-conf nil) 14833(defvar org-pre-agenda-window-conf nil)
13581(defun org-prepare-agenda () 14834(defvar org-agenda-name nil)
14835(defun org-prepare-agenda (&optional name)
14836 (setq org-todo-keywords-for-agenda nil)
14837 (setq org-done-keywords-for-agenda nil)
13582 (if org-agenda-multi 14838 (if org-agenda-multi
13583 (progn 14839 (progn
13584 (setq buffer-read-only nil) 14840 (setq buffer-read-only nil)
@@ -13588,6 +14844,10 @@ Optional argument FILE means, use this file instead of the current."
13588 (narrow-to-region (point) (point-max))) 14844 (narrow-to-region (point) (point-max)))
13589 (org-agenda-maybe-reset-markers 'force) 14845 (org-agenda-maybe-reset-markers 'force)
13590 (org-prepare-agenda-buffers (org-agenda-files)) 14846 (org-prepare-agenda-buffers (org-agenda-files))
14847 (setq org-todo-keywords-for-agenda
14848 (org-uniquify org-todo-keywords-for-agenda))
14849 (setq org-done-keywords-for-agenda
14850 (org-uniquify org-done-keywords-for-agenda))
13591 (let* ((abuf (get-buffer-create org-agenda-buffer-name)) 14851 (let* ((abuf (get-buffer-create org-agenda-buffer-name))
13592 (awin (get-buffer-window abuf))) 14852 (awin (get-buffer-window abuf)))
13593 (cond 14853 (cond
@@ -13605,7 +14865,9 @@ Optional argument FILE means, use this file instead of the current."
13605 (switch-to-buffer-other-window abuf)))) 14865 (switch-to-buffer-other-window abuf))))
13606 (setq buffer-read-only nil) 14866 (setq buffer-read-only nil)
13607 (erase-buffer) 14867 (erase-buffer)
13608 (org-agenda-mode)) 14868 (org-agenda-mode)
14869 (and name (not org-agenda-name)
14870 (org-set-local 'org-agenda-name name)))
13609 (setq buffer-read-only nil)) 14871 (setq buffer-read-only nil))
13610 14872
13611(defun org-finalize-agenda () 14873(defun org-finalize-agenda ()
@@ -13617,7 +14879,9 @@ Optional argument FILE means, use this file instead of the current."
13617 (goto-char (point-min)) 14879 (goto-char (point-min))
13618 (while (org-activate-bracket-links (point-max)) 14880 (while (org-activate-bracket-links (point-max))
13619 (add-text-properties (match-beginning 0) (match-end 0) 14881 (add-text-properties (match-beginning 0) (match-end 0)
13620 '(face org-link)))) 14882 '(face org-link)))
14883 (unless org-agenda-with-colors
14884 (remove-text-properties (point-min) (point-max) '(face nil))))
13621 (run-hooks 'org-finalize-agenda-hook)))) 14885 (run-hooks 'org-finalize-agenda-hook))))
13622 14886
13623(defun org-prepare-agenda-buffers (files) 14887(defun org-prepare-agenda-buffers (files)
@@ -13635,6 +14899,10 @@ Optional argument FILE means, use this file instead of the current."
13635 (set-buffer (org-get-agenda-file-buffer file)) 14899 (set-buffer (org-get-agenda-file-buffer file))
13636 (widen) 14900 (widen)
13637 (setq bmp (buffer-modified-p)) 14901 (setq bmp (buffer-modified-p))
14902 (setq org-todo-keywords-for-agenda
14903 (append org-todo-keywords-for-agenda org-todo-keywords-1))
14904 (setq org-done-keywords-for-agenda
14905 (append org-done-keywords-for-agenda org-done-keywords))
13638 (save-excursion 14906 (save-excursion
13639 (remove-text-properties (point-min) (point-max) pall) 14907 (remove-text-properties (point-min) (point-max) pall)
13640 (when org-agenda-skip-archived-trees 14908 (when org-agenda-skip-archived-trees
@@ -13648,7 +14916,7 @@ Optional argument FILE means, use this file instead of the current."
13648 (add-text-properties 14916 (add-text-properties
13649 (match-beginning 0) (org-end-of-subtree t) pc))) 14917 (match-beginning 0) (org-end-of-subtree t) pc)))
13650 (set-buffer-modified-p bmp)))))) 14918 (set-buffer-modified-p bmp))))))
13651 14919
13652(defvar org-agenda-skip-function nil 14920(defvar org-agenda-skip-function nil
13653 "Function to be called at each match during agenda construction. 14921 "Function to be called at each match during agenda construction.
13654If this function return nil, the current match should not be skipped. 14922If this function return nil, the current match should not be skipped.
@@ -13733,9 +15001,13 @@ When a buffer is unmodified, it is just killed. When modified, it is saved
13733 "Get the table of categories and positions in current buffer." 15001 "Get the table of categories and positions in current buffer."
13734 (let (tbl) 15002 (let (tbl)
13735 (save-excursion 15003 (save-excursion
13736 (goto-char (point-min)) 15004 (save-restriction
13737 (while (re-search-forward "\\(^\\|\r\\)#\\+CATEGORY:[ \t]*\\(.*\\)" nil t) 15005 (widen)
13738 (push (cons (point) (org-trim (match-string 2))) tbl))) 15006 (goto-char (point-min))
15007 (while (re-search-forward "^#\\+CATEGORY:[ \t]*\\(.*\\)"
15008 nil t)
15009 (push (cons (match-beginning 1)
15010 (org-trim (match-string 1))) tbl))))
13739 tbl)) 15011 tbl))
13740 15012
13741(defun org-get-category (&optional pos) 15013(defun org-get-category (&optional pos)
@@ -13792,16 +15064,18 @@ dates."
13792 (setq day-numbers (delq nil (mapcar (lambda(x) 15064 (setq day-numbers (delq nil (mapcar (lambda(x)
13793 (if (>= x today) x nil)) 15065 (if (>= x today) x nil))
13794 day-numbers)))) 15066 day-numbers))))
13795 (org-prepare-agenda) 15067 (org-prepare-agenda (concat "Timeline "
15068 (file-name-nondirectory buffer-file-name)))
13796 (if doclosed (push :closed args)) 15069 (if doclosed (push :closed args))
13797 (push :timestamp args) 15070 (push :timestamp args)
15071 (push :sexp args)
13798 (if dotodo (push :todo args)) 15072 (if dotodo (push :todo args))
13799 (while (setq d (pop day-numbers)) 15073 (while (setq d (pop day-numbers))
13800 (if (and (listp d) (eq (car d) :omitted)) 15074 (if (and (listp d) (eq (car d) :omitted))
13801 (progn 15075 (progn
13802 (setq s (point)) 15076 (setq s (point))
13803 (insert (format "\n[... %d empty days omitted]\n\n" (cdr d))) 15077 (insert (format "\n[... %d empty days omitted]\n\n" (cdr d)))
13804 (put-text-property s (1- (point)) 'face 'org-level-3)) 15078 (put-text-property s (1- (point)) 'face 'org-agenda-structure))
13805 (if (listp d) (setq d (car d) emptyp t) (setq emptyp nil)) 15079 (if (listp d) (setq d (car d) emptyp t) (setq emptyp nil))
13806 (if (and (>= d today) 15080 (if (and (>= d today)
13807 dopast 15081 dopast
@@ -13824,7 +15098,7 @@ dates."
13824; (insert (format-time-string org-agenda-date-format 15098; (insert (format-time-string org-agenda-date-format
13825; (calendar-time-from-absolute d 0)) 15099; (calendar-time-from-absolute d 0))
13826; "\n") 15100; "\n")
13827 (put-text-property s (1- (point)) 'face 'org-level-3) 15101 (put-text-property s (1- (point)) 'face 'org-agenda-structure)
13828 (put-text-property s (1- (point)) 'org-date-line t) 15102 (put-text-property s (1- (point)) 'org-date-line t)
13829 (if (equal d today) 15103 (if (equal d today)
13830 (put-text-property s (1- (point)) 'org-today t)) 15104 (put-text-property s (1- (point)) 'org-today t))
@@ -13936,7 +15210,7 @@ NDAYS defaults to `org-agenda-ndays'."
13936 (push (1+ (car day-numbers)) day-numbers) 15210 (push (1+ (car day-numbers)) day-numbers)
13937 (setq ndays (1- ndays))) 15211 (setq ndays (1- ndays)))
13938 (setq day-numbers (nreverse day-numbers)) 15212 (setq day-numbers (nreverse day-numbers))
13939 (org-prepare-agenda) 15213 (org-prepare-agenda "Day/Week")
13940 (org-set-local 'org-starting-day (car day-numbers)) 15214 (org-set-local 'org-starting-day (car day-numbers))
13941 (org-set-local 'org-include-all-loc include-all) 15215 (org-set-local 'org-include-all-loc include-all)
13942 (when (and (or include-all org-agenda-include-all-todo) 15216 (when (and (or include-all org-agenda-include-all-todo)
@@ -13953,11 +15227,12 @@ NDAYS defaults to `org-agenda-ndays'."
13953 (when rtnall 15227 (when rtnall
13954 (insert "ALL CURRENTLY OPEN TODO ITEMS:\n") 15228 (insert "ALL CURRENTLY OPEN TODO ITEMS:\n")
13955 (add-text-properties (point-min) (1- (point)) 15229 (add-text-properties (point-min) (1- (point))
13956 (list 'face 'org-level-3)) 15230 (list 'face 'org-agenda-structure))
13957 (insert (org-finalize-agenda-entries rtnall) "\n"))) 15231 (insert (org-finalize-agenda-entries rtnall) "\n")))
13958 (setq s (point)) 15232 (setq s (point))
13959 (insert (if (= nd 7) "Week-" "Day-") "agenda:\n") 15233 (insert (if (= nd 7) "Week-" "Day-") "agenda:\n")
13960 (add-text-properties s (1- (point)) (list 'face 'org-level-3)) 15234 (add-text-properties s (1- (point)) (list 'face 'org-agenda-structure
15235 'org-date-line t))
13961 (while (setq d (pop day-numbers)) 15236 (while (setq d (pop day-numbers))
13962 (setq date (calendar-gregorian-from-absolute d) 15237 (setq date (calendar-gregorian-from-absolute d)
13963 s (point)) 15238 s (point))
@@ -13974,10 +15249,10 @@ NDAYS defaults to `org-agenda-ndays'."
13974 (if org-agenda-show-log 15249 (if org-agenda-show-log
13975 (setq rtn (org-agenda-get-day-entries 15250 (setq rtn (org-agenda-get-day-entries
13976 file date 15251 file date
13977 :deadline :scheduled :timestamp :closed)) 15252 :deadline :scheduled :timestamp :sexp :closed))
13978 (setq rtn (org-agenda-get-day-entries 15253 (setq rtn (org-agenda-get-day-entries
13979 file date 15254 file date
13980 :deadline :scheduled :timestamp))) 15255 :deadline :scheduled :sexp :timestamp)))
13981 (setq rtnall (append rtnall rtn)))) 15256 (setq rtnall (append rtnall rtn))))
13982 (if org-agenda-include-diary 15257 (if org-agenda-include-diary
13983 (progn 15258 (progn
@@ -13994,7 +15269,7 @@ NDAYS defaults to `org-agenda-ndays'."
13994; FIXME: this gives a timezone problem 15269; FIXME: this gives a timezone problem
13995; (insert (format-time-string org-agenda-date-format 15270; (insert (format-time-string org-agenda-date-format
13996; (calendar-time-from-absolute d 0)) "\n") 15271; (calendar-time-from-absolute d 0)) "\n")
13997 (put-text-property s (1- (point)) 'face 'org-level-3) 15272 (put-text-property s (1- (point)) 'face 'org-agenda-structure)
13998 (put-text-property s (1- (point)) 'org-date-line t) 15273 (put-text-property s (1- (point)) 'org-date-line t)
13999 (if todayp (put-text-property s (1- (point)) 'org-today t)) 15274 (if todayp (put-text-property s (1- (point)) 'org-today t))
14000 (if rtnall (insert 15275 (if rtnall (insert
@@ -14030,28 +15305,28 @@ NDAYS defaults to `org-agenda-ndays'."
14030The prefix arg can be used to select a specific TODO keyword and limit 15305The prefix arg can be used to select a specific TODO keyword and limit
14031the list to these. When using \\[universal-argument], you will be prompted 15306the list to these. When using \\[universal-argument], you will be prompted
14032for a keyword. A numeric prefix directly selects the Nth keyword in 15307for a keyword. A numeric prefix directly selects the Nth keyword in
14033`org-todo-keywords'." 15308`org-todo-keywords-1'."
14034 (interactive "P") 15309 (interactive "P")
14035 (require 'calendar) 15310 (require 'calendar)
14036 (org-compile-prefix-format 'todo) 15311 (org-compile-prefix-format 'todo)
14037 (org-set-sorting-strategy 'todo) 15312 (org-set-sorting-strategy 'todo)
15313 (org-prepare-agenda "TODO")
14038 (let* ((today (time-to-days (current-time))) 15314 (let* ((today (time-to-days (current-time)))
14039 (date (calendar-gregorian-from-absolute today)) 15315 (date (calendar-gregorian-from-absolute today))
14040 (kwds org-todo-keywords) 15316 (kwds org-todo-keywords-for-agenda)
14041 (completion-ignore-case t) 15317 (completion-ignore-case t)
14042 (org-select-this-todo-keyword 15318 (org-select-this-todo-keyword
14043 (if (stringp arg) arg 15319 (if (stringp arg) arg
14044 (and arg (integerp arg) (> arg 0) 15320 (and arg (integerp arg) (> arg 0)
14045 (nth (1- arg) org-todo-keywords)))) 15321 (nth (1- arg) kwds))))
14046 rtn rtnall files file pos) 15322 rtn rtnall files file pos)
14047 (when (equal arg '(4)) 15323 (when (equal arg '(4))
14048 (setq org-select-this-todo-keyword 15324 (setq org-select-this-todo-keyword
14049 (completing-read "Keyword: " (mapcar 'list org-todo-keywords) 15325 (completing-read "Keyword (or KWD1|K2D2|...): "
14050 nil t))) 15326 (mapcar 'list kwds) nil nil)))
14051 (and (equal 0 arg) (setq org-select-this-todo-keyword nil)) 15327 (and (equal 0 arg) (setq org-select-this-todo-keyword nil))
14052 (org-prepare-agenda)
14053 (org-set-local 'org-last-arg arg) 15328 (org-set-local 'org-last-arg arg)
14054 (org-set-local 'org-todo-keywords kwds) 15329;FIXME (org-set-local 'org-todo-keywords-for-agenda kwds)
14055 (setq org-agenda-redo-command 15330 (setq org-agenda-redo-command
14056 '(org-todo-list (or current-prefix-arg org-last-arg))) 15331 '(org-todo-list (or current-prefix-arg org-last-arg)))
14057 (setq files (org-agenda-files) 15332 (setq files (org-agenda-files)
@@ -14063,23 +15338,25 @@ for a keyword. A numeric prefix directly selects the Nth keyword in
14063 (setq rtnall (append rtnall rtn)))) 15338 (setq rtnall (append rtnall rtn))))
14064 (if org-agenda-overriding-header 15339 (if org-agenda-overriding-header
14065 (insert (org-add-props (copy-sequence org-agenda-overriding-header) 15340 (insert (org-add-props (copy-sequence org-agenda-overriding-header)
14066 nil 'face 'org-level-3) "\n") 15341 nil 'face 'org-agenda-structure) "\n")
14067 (insert "Global list of TODO items of type: ") 15342 (insert "Global list of TODO items of type: ")
14068 (add-text-properties (point-min) (1- (point)) 15343 (add-text-properties (point-min) (1- (point))
14069 (list 'face 'org-level-3)) 15344 (list 'face 'org-agenda-structure))
14070 (setq pos (point)) 15345 (setq pos (point))
14071 (insert (or org-select-this-todo-keyword "ALL") "\n") 15346 (insert (or org-select-this-todo-keyword "ALL") "\n")
14072 (add-text-properties pos (1- (point)) (list 'face 'org-warning)) 15347 (add-text-properties pos (1- (point)) (list 'face 'org-warning))
14073 (setq pos (point)) 15348 (setq pos (point))
14074 (unless org-agenda-multi 15349 (unless org-agenda-multi
14075 (insert 15350 (insert "Available with `N r': (0)ALL")
14076 "Available with `N r': (0)ALL " 15351 (let ((n 0) s)
14077 (let ((n 0)) 15352 (mapc (lambda (x)
14078 (mapconcat (lambda (x) 15353 (setq s (format "(%d)%s" (setq n (1+ n)) x))
14079 (format "(%d)%s" (setq n (1+ n)) x)) 15354 (if (> (+ (current-column) (string-width s) 1) (frame-width))
14080 org-todo-keywords " ")) 15355 (insert "\n "))
14081 "\n")) 15356 (insert " " s))
14082 (add-text-properties pos (1- (point)) (list 'face 'org-level-3))) 15357 kwds))
15358 (insert "\n"))
15359 (add-text-properties pos (1- (point)) (list 'face 'org-agenda-structure)))
14083 (when rtnall 15360 (when rtnall
14084 (insert (org-finalize-agenda-entries rtnall) "\n")) 15361 (insert (org-finalize-agenda-entries rtnall) "\n"))
14085 (goto-char (point-min)) 15362 (goto-char (point-min))
@@ -14104,7 +15381,7 @@ The prefix arg TODO-ONLY limits the search to TODO entries."
14104 buffer) 15381 buffer)
14105 (setq matcher (org-make-tags-matcher match) 15382 (setq matcher (org-make-tags-matcher match)
14106 match (car matcher) matcher (cdr matcher)) 15383 match (car matcher) matcher (cdr matcher))
14107 (org-prepare-agenda) 15384 (org-prepare-agenda (concat "TAGS " match))
14108 (setq org-agenda-redo-command 15385 (setq org-agenda-redo-command
14109 (list 'org-tags-view (list 'quote todo-only) 15386 (list 'org-tags-view (list 'quote todo-only)
14110 (list 'if 'current-prefix-arg nil match))) 15387 (list 'if 'current-prefix-arg nil match)))
@@ -14135,17 +15412,17 @@ The prefix arg TODO-ONLY limits the search to TODO entries."
14135 (setq rtnall (append rtnall rtn)))))))) 15412 (setq rtnall (append rtnall rtn))))))))
14136 (if org-agenda-overriding-header 15413 (if org-agenda-overriding-header
14137 (insert (org-add-props (copy-sequence org-agenda-overriding-header) 15414 (insert (org-add-props (copy-sequence org-agenda-overriding-header)
14138 nil 'face 'org-level-3) "\n") 15415 nil 'face 'org-agenda-structure) "\n")
14139 (insert "Headlines with TAGS match: ") 15416 (insert "Headlines with TAGS match: ")
14140 (add-text-properties (point-min) (1- (point)) 15417 (add-text-properties (point-min) (1- (point))
14141 (list 'face 'org-level-3)) 15418 (list 'face 'org-agenda-structure))
14142 (setq pos (point)) 15419 (setq pos (point))
14143 (insert match "\n") 15420 (insert match "\n")
14144 (add-text-properties pos (1- (point)) (list 'face 'org-warning)) 15421 (add-text-properties pos (1- (point)) (list 'face 'org-warning))
14145 (setq pos (point)) 15422 (setq pos (point))
14146 (unless org-agenda-multi 15423 (unless org-agenda-multi
14147 (insert "Press `C-u r' to search again with new search string\n")) 15424 (insert "Press `C-u r' to search again with new search string\n"))
14148 (add-text-properties pos (1- (point)) (list 'face 'org-level-3))) 15425 (add-text-properties pos (1- (point)) (list 'face 'org-agenda-structure)))
14149 (when rtnall 15426 (when rtnall
14150 (insert (org-finalize-agenda-entries rtnall) "\n")) 15427 (insert (org-finalize-agenda-entries rtnall) "\n"))
14151 (goto-char (point-min)) 15428 (goto-char (point-min))
@@ -14187,21 +15464,34 @@ MATCH is being ignored."
14187 (org-agenda-overriding-header "List of stuck projects: ") 15464 (org-agenda-overriding-header "List of stuck projects: ")
14188 (matcher (nth 0 org-stuck-projects)) 15465 (matcher (nth 0 org-stuck-projects))
14189 (todo (nth 1 org-stuck-projects)) 15466 (todo (nth 1 org-stuck-projects))
14190 (tags (nth 2 org-stuck-projects)) 15467 (todo-wds (if (member "*" todo)
15468 (progn
15469 (org-prepare-agenda-buffers (org-agenda-files))
15470 (org-delete-all
15471 org-done-keywords-for-agenda
15472 (copy-sequence org-todo-keywords-for-agenda)))
15473 todo))
14191 (todo-re (concat "^\\*+[ \t]+\\(" 15474 (todo-re (concat "^\\*+[ \t]+\\("
14192 (mapconcat 'identity todo "\\|") 15475 (mapconcat 'identity todo-wds "\\|")
14193 "\\)\\>")) 15476 "\\)\\>"))
14194 (tags-re (concat "^\\*+.*:\\(" 15477 (tags (nth 2 org-stuck-projects))
14195 (mapconcat 'identity tags "\\|") 15478 (tags-re (if (member "*" tags)
14196 "\\):[a-zA-Z0-9_@:]*[ \t]*$"))) 15479 "^\\*+.*:[a-zA-Z0-9_@]+:[ \t]*$"
14197 15480 (concat "^\\*+.*:\\("
15481 (mapconcat 'identity tags "\\|")
15482 "\\):[a-zA-Z0-9_@:]*[ \t]*$")))
15483 (gen-re (nth 3 org-stuck-projects))
15484 (re-list
15485 (delq nil
15486 (list
15487 (if todo todo-re)
15488 (if tags tags-re)
15489 (and gen-re (stringp gen-re) (string-match "\\S-" gen-re)
15490 gen-re)))))
14198 (setq org-agenda-skip-regexp 15491 (setq org-agenda-skip-regexp
14199 (cond 15492 (if re-list
14200 ((and todo tags) 15493 (mapconcat 'identity re-list "\\|")
14201 (concat todo-re "\\|" tags-re)) 15494 (error "No information how to identify unstuck projects")))
14202 (todo todo-re)
14203 (tags tags-re)
14204 (t (error "No information how to identify unstuck projects"))))
14205 (org-tags-view nil matcher) 15495 (org-tags-view nil matcher)
14206 (with-current-buffer org-agenda-buffer-name 15496 (with-current-buffer org-agenda-buffer-name
14207 (setq org-agenda-redo-command 15497 (setq org-agenda-redo-command
@@ -14247,7 +15537,8 @@ MATCH is being ignored."
14247 (lambda (x) 15537 (lambda (x)
14248 (setq x (org-format-agenda-item "" x "Diary" nil 'time)) 15538 (setq x (org-format-agenda-item "" x "Diary" nil 'time))
14249 ;; Extend the text properties to the beginning of the line 15539 ;; Extend the text properties to the beginning of the line
14250 (org-add-props x (text-properties-at (1- (length x)) x))) 15540 (org-add-props x (text-properties-at (1- (length x)) x)
15541 'type "diary" 'date date))
14251 entries))))) 15542 entries)))))
14252 15543
14253(defun org-agenda-cleanup-fancy-diary () 15544(defun org-agenda-cleanup-fancy-diary ()
@@ -14316,6 +15607,8 @@ items should be listed. The following arguments are allowed:
14316 date range matching the selected date. Deadlines will 15607 date range matching the selected date. Deadlines will
14317 also be listed, on the expiration day. 15608 also be listed, on the expiration day.
14318 15609
15610 :sexp FIXME
15611
14319 :deadline List any deadlines past due, or due within 15612 :deadline List any deadlines past due, or due within
14320 `org-deadline-warning-days'. The listing occurs only 15613 `org-deadline-warning-days'. The listing occurs only
14321 in the diary for *today*, not at any other date. If 15614 in the diary for *today*, not at any other date. If
@@ -14340,10 +15633,10 @@ all files listed in `org-agenda-files' will be checked automatically:
14340 &%%(org-diary) 15633 &%%(org-diary)
14341 15634
14342If you don't give any arguments (as in the example above), the default 15635If you don't give any arguments (as in the example above), the default
14343arguments (:deadline :scheduled :timestamp) are used. So the example above may 15636arguments (:deadline :scheduled :timestamp :sexp) are used.
14344also be written as 15637So the example above may also be written as
14345 15638
14346 &%%(org-diary :deadline :timestamp :scheduled) 15639 &%%(org-diary :deadline :timestamp :sexp :scheduled)
14347 15640
14348The function expects the lisp variables `entry' and `date' to be provided 15641The function expects the lisp variables `entry' and `date' to be provided
14349by the caller, because this is how the calendar works. Don't use this 15642by the caller, because this is how the calendar works. Don't use this
@@ -14351,11 +15644,12 @@ function from a program - use `org-agenda-get-day-entries' instead."
14351 (org-agenda-maybe-reset-markers) 15644 (org-agenda-maybe-reset-markers)
14352 (org-compile-prefix-format 'agenda) 15645 (org-compile-prefix-format 'agenda)
14353 (org-set-sorting-strategy 'agenda) 15646 (org-set-sorting-strategy 'agenda)
14354 (setq args (or args '(:deadline :scheduled :timestamp))) 15647 (setq args (or args '(:deadline :scheduled :timestamp :sexp)))
14355 (let* ((files (if (and entry (stringp entry) (string-match "\\S-" entry)) 15648 (let* ((files (if (and entry (stringp entry) (string-match "\\S-" entry))
14356 (list entry) 15649 (list entry)
14357 (org-agenda-files t))) 15650 (org-agenda-files t)))
14358 file rtn results) 15651 file rtn results)
15652 (org-prepare-agenda-buffers files)
14359 ;; If this is called during org-agenda, don't return any entries to 15653 ;; If this is called during org-agenda, don't return any entries to
14360 ;; the calendar. Org Agenda will list these entries itself. 15654 ;; the calendar. Org Agenda will list these entries itself.
14361 (if org-disable-agenda-to-diary (setq files nil)) 15655 (if org-disable-agenda-to-diary (setq files nil))
@@ -14373,7 +15667,7 @@ FILE is the path to a file to be checked for entries. DATE is date like
14373the one returned by `calendar-current-date'. ARGS are symbols indicating 15667the one returned by `calendar-current-date'. ARGS are symbols indicating
14374which kind of entries should be extracted. For details about these, see 15668which kind of entries should be extracted. For details about these, see
14375the documentation of `org-diary'." 15669the documentation of `org-diary'."
14376 (setq args (or args '(:deadline :scheduled :timestamp))) 15670 (setq args (or args '(:deadline :scheduled :timestamp :sexp)))
14377 (let* ((org-startup-folded nil) 15671 (let* ((org-startup-folded nil)
14378 (org-startup-align-all-tables nil) 15672 (org-startup-align-all-tables nil)
14379 (buffer (if (file-exists-p file) 15673 (buffer (if (file-exists-p file)
@@ -14406,6 +15700,9 @@ the documentation of `org-diary'."
14406 (setq results (append results rtn)) 15700 (setq results (append results rtn))
14407 (setq rtn (org-agenda-get-timestamps)) 15701 (setq rtn (org-agenda-get-timestamps))
14408 (setq results (append results rtn))) 15702 (setq results (append results rtn)))
15703 ((eq arg :sexp)
15704 (setq rtn (org-agenda-get-sexps))
15705 (setq results (append results rtn)))
14409 ((eq arg :scheduled) 15706 ((eq arg :scheduled)
14410 (setq rtn (org-agenda-get-scheduled)) 15707 (setq rtn (org-agenda-get-scheduled))
14411 (setq results (append results rtn))) 15708 (setq results (append results rtn)))
@@ -14447,15 +15744,20 @@ the documentation of `org-diary'."
14447 (let* ((props (list 'face nil 15744 (let* ((props (list 'face nil
14448 'done-face 'org-done 15745 'done-face 'org-done
14449 'org-not-done-regexp org-not-done-regexp 15746 'org-not-done-regexp org-not-done-regexp
15747 'org-todo-regexp org-todo-regexp
14450 'mouse-face 'highlight 15748 'mouse-face 'highlight
14451 'keymap org-agenda-keymap 15749 'keymap org-agenda-keymap
14452 'help-echo 15750 'help-echo
14453 (format "mouse-2 or RET jump to org file %s" 15751 (format "mouse-2 or RET jump to org file %s"
14454 (abbreviate-file-name buffer-file-name)))) 15752 (abbreviate-file-name buffer-file-name))))
15753 ;; FIXME: get rid of the \n at some point but watch out
14455 (regexp (concat "[\n\r]\\*+ *\\(" 15754 (regexp (concat "[\n\r]\\*+ *\\("
14456 (if org-select-this-todo-keyword 15755 (if org-select-this-todo-keyword
14457 (concat "\\<\\(" org-select-this-todo-keyword 15756 (if (equal org-select-this-todo-keyword "*")
14458 "\\)\\>") 15757 org-todo-regexp
15758 (concat "\\<\\("
15759 (mapconcat 'identity (org-split-string org-select-this-todo-keyword "|") "\\|")
15760 "\\)\\>"))
14459 org-not-done-regexp) 15761 org-not-done-regexp)
14460 "[^\n\r]*\\)")) 15762 "[^\n\r]*\\)"))
14461 marker priority category tags 15763 marker priority category tags
@@ -14481,16 +15783,11 @@ the documentation of `org-diary'."
14481 category (org-get-category) 15783 category (org-get-category)
14482 tags (org-get-tags-at (point)) 15784 tags (org-get-tags-at (point))
14483 txt (org-format-agenda-item "" (match-string 1) category tags) 15785 txt (org-format-agenda-item "" (match-string 1) category tags)
14484 priority 15786 priority (1+ (org-get-priority txt)))
14485 (+ (org-get-priority txt)
14486 (if org-todo-kwd-priority-p
14487 (- org-todo-kwd-max-priority -2
14488 (length
14489 (member (match-string 2) org-todo-keywords)))
14490 1)))
14491 (org-add-props txt props 15787 (org-add-props txt props
14492 'org-marker marker 'org-hd-marker marker 15788 'org-marker marker 'org-hd-marker marker
14493 'priority priority 'org-category category) 15789 'priority priority 'org-category category
15790 'type "todo")
14494 (push txt ee) 15791 (push txt ee)
14495 (if org-agenda-todo-list-sublevels 15792 (if org-agenda-todo-list-sublevels
14496 (goto-char (match-end 1)) 15793 (goto-char (match-end 1))
@@ -14504,38 +15801,61 @@ the documentation of `org-diary'."
14504 "Return the date stamp information for agenda display." 15801 "Return the date stamp information for agenda display."
14505 (let* ((props (list 'face nil 15802 (let* ((props (list 'face nil
14506 'org-not-done-regexp org-not-done-regexp 15803 'org-not-done-regexp org-not-done-regexp
15804 'org-todo-regexp org-todo-regexp
14507 'mouse-face 'highlight 15805 'mouse-face 'highlight
14508 'keymap org-agenda-keymap 15806 'keymap org-agenda-keymap
14509 'help-echo 15807 'help-echo
14510 (format "mouse-2 or RET jump to org file %s" 15808 (format "mouse-2 or RET jump to org file %s"
14511 (abbreviate-file-name buffer-file-name)))) 15809 (abbreviate-file-name buffer-file-name))))
14512 (regexp (regexp-quote 15810;???? (regexp (regexp-quote
14513 (substring 15811; (substring
14514 (format-time-string 15812; (format-time-string
14515 (car org-time-stamp-formats) 15813; (car org-time-stamp-formats)
14516 (apply 'encode-time ; DATE bound by calendar 15814; (apply 'encode-time ; DATE bound by calendar
14517 (list 0 0 0 (nth 1 date) (car date) (nth 2 date)))) 15815; (list 0 0 0 (nth 1 date) (car date) (nth 2 date))))
14518 0 11))) 15816; 0 11)))
15817 (d1 (calendar-absolute-from-gregorian date))
15818 (regexp
15819 (concat
15820 (regexp-quote
15821 (substring
15822 (format-time-string
15823 (car org-time-stamp-formats)
15824 (apply 'encode-time ; DATE bound by calendar
15825 (list 0 0 0 (nth 1 date) (car date) (nth 2 date))))
15826 0 11))
15827 "\\|\\(<[0-9]+-[0-9]+-[0-9]+[^>\n]+?\\+[0-9]+[dwmy]>\\)"
15828 "\\|\\(<%%\\(([^>\n]+)\\)>\\)"))
14519 marker hdmarker deadlinep scheduledp donep tmp priority category 15829 marker hdmarker deadlinep scheduledp donep tmp priority category
14520 ee txt timestr tags) 15830 ee txt timestr tags b0 b3 e3)
14521 (goto-char (point-min)) 15831 (goto-char (point-min))
14522 (while (re-search-forward regexp nil t) 15832 (while (re-search-forward regexp nil t)
15833 (setq b0 (match-beginning 0)
15834 b3 (match-beginning 3) e3 (match-end 3))
14523 (catch :skip 15835 (catch :skip
14524 (and (save-match-data (org-at-date-range-p)) (throw :skip nil)) 15836 (and (org-at-date-range-p) (throw :skip nil))
14525 (org-agenda-skip) 15837 (org-agenda-skip)
14526 (setq marker (org-agenda-new-marker (match-beginning 0)) 15838 (if (and (match-end 1)
14527 category (org-get-category (match-beginning 0)) 15839 (not (= d1 (org-time-string-to-absolute (match-string 1) d1))))
15840 (throw :skip nil))
15841 (if (and e3
15842 (not (org-diary-sexp-entry (buffer-substring b3 e3) "" date)))
15843 (throw :skip nil))
15844 (setq marker (org-agenda-new-marker b0)
15845 category (org-get-category b0)
14528 tmp (buffer-substring (max (point-min) 15846 tmp (buffer-substring (max (point-min)
14529 (- (match-beginning 0) 15847 (- b0 org-ds-keyword-length))
14530 org-ds-keyword-length)) 15848 b0)
14531 (match-beginning 0)) 15849 timestr (if b3 "" (buffer-substring b0 (point-at-eol)))
14532 timestr (buffer-substring (match-beginning 0) (point-at-eol))
14533 deadlinep (string-match org-deadline-regexp tmp) 15850 deadlinep (string-match org-deadline-regexp tmp)
14534 scheduledp (string-match org-scheduled-regexp tmp) 15851 scheduledp (string-match org-scheduled-regexp tmp)
14535 donep (org-entry-is-done-p)) 15852 donep (org-entry-is-done-p))
14536 (and org-agenda-skip-scheduled-if-done 15853 (and org-agenda-skip-scheduled-if-done
14537 scheduledp donep 15854 scheduledp donep
14538 (throw :skip t)) 15855 (throw :skip t))
15856 (and org-agenda-skip-deadline-if-done
15857 deadlinep donep
15858 (throw :skip t))
14539 (if (string-match ">" timestr) 15859 (if (string-match ">" timestr)
14540 ;; substring should only run to end of time stamp 15860 ;; substring should only run to end of time stamp
14541 (setq timestr (substring timestr 0 (match-end 0)))) 15861 (setq timestr (substring timestr 0 (match-end 0))))
@@ -14558,22 +15878,68 @@ the documentation of `org-diary'."
14558 (if deadlinep 15878 (if deadlinep
14559 (org-add-props txt nil 15879 (org-add-props txt nil
14560 'face (if donep 'org-done 'org-warning) 15880 'face (if donep 'org-done 'org-warning)
15881 'type "deadline" 'date date
14561 'undone-face 'org-warning 'done-face 'org-done 15882 'undone-face 'org-warning 'done-face 'org-done
14562 'org-category category 'priority (+ 100 priority)) 15883 'org-category category 'priority (+ 100 priority))
14563 (if scheduledp 15884 (if scheduledp
14564 (org-add-props txt nil 15885 (org-add-props txt nil
14565 'face 'org-scheduled-today 15886 'face 'org-scheduled-today
15887 'type "scheduled" 'date date
14566 'undone-face 'org-scheduled-today 'done-face 'org-done 15888 'undone-face 'org-scheduled-today 'done-face 'org-done
14567 'org-category category 'priority (+ 99 priority)) 15889 'org-category category 'priority (+ 99 priority))
14568 (org-add-props txt nil 'priority priority 'org-category category))) 15890 (org-add-props txt nil 'priority priority
15891 'org-category category 'date date
15892 'type "timestamp")))
14569 (push txt ee)) 15893 (push txt ee))
14570 (outline-next-heading))) 15894 (outline-next-heading)))
14571 (nreverse ee))) 15895 (nreverse ee)))
14572 15896
15897(defun org-agenda-get-sexps ()
15898 "Return the sexp information for agenda display."
15899 (require 'diary-lib)
15900 (let* ((props (list 'face nil
15901 'mouse-face 'highlight
15902 'keymap org-agenda-keymap
15903 'help-echo
15904 (format "mouse-2 or RET jump to org file %s"
15905 (abbreviate-file-name buffer-file-name))))
15906 (regexp "^&?%%(")
15907 marker category ee txt tags entry result beg b sexp sexp-entry)
15908 (goto-char (point-min))
15909 (while (re-search-forward regexp nil t)
15910 (catch :skip
15911 (org-agenda-skip)
15912 (setq beg (match-beginning 0))
15913 (goto-char (1- (match-end 0)))
15914 (setq b (point))
15915 (forward-sexp 1)
15916 (setq sexp (buffer-substring b (point)))
15917 (setq sexp-entry (if (looking-at "[ \t]*\\(\\S-.*\\)")
15918 (org-trim (match-string 1))
15919 ""))
15920 (setq result (org-diary-sexp-entry sexp sexp-entry date))
15921 (when result
15922 (setq marker (org-agenda-new-marker beg)
15923 category (org-get-category beg))
15924
15925 (if (string-match "\\S-" result)
15926 (setq txt result)
15927 (setq txt "SEXP entry returned empty string"))
15928
15929 (setq txt (org-format-agenda-item
15930 "" txt category tags 'time))
15931 (org-add-props txt props 'org-marker marker)
15932 (org-add-props txt nil
15933 'org-category category 'date date
15934 'type "sexp")
15935 (push txt ee))))
15936 (nreverse ee)))
15937
14573(defun org-agenda-get-closed () 15938(defun org-agenda-get-closed ()
14574 "Return the logged TODO entries for agenda display." 15939 "Return the logged TODO entries for agenda display."
14575 (let* ((props (list 'mouse-face 'highlight 15940 (let* ((props (list 'mouse-face 'highlight
14576 'org-not-done-regexp org-not-done-regexp 15941 'org-not-done-regexp org-not-done-regexp
15942 'org-todo-regexp org-todo-regexp
14577 'keymap org-agenda-keymap 15943 'keymap org-agenda-keymap
14578 'help-echo 15944 'help-echo
14579 (format "mouse-2 or RET jump to org file %s" 15945 (format "mouse-2 or RET jump to org file %s"
@@ -14617,6 +15983,7 @@ the documentation of `org-diary'."
14617 (org-add-props txt props 15983 (org-add-props txt props
14618 'org-marker marker 'org-hd-marker hdmarker 'face 'org-done 15984 'org-marker marker 'org-hd-marker hdmarker 'face 'org-done
14619 'priority priority 'org-category category 15985 'priority priority 'org-category category
15986 'type "closed" 'date date
14620 'undone-face 'org-warning 'done-face 'org-done) 15987 'undone-face 'org-warning 'done-face 'org-done)
14621 (push txt ee)) 15988 (push txt ee))
14622 (outline-next-heading))) 15989 (outline-next-heading)))
@@ -14627,6 +15994,7 @@ the documentation of `org-diary'."
14627 (let* ((wdays org-deadline-warning-days) 15994 (let* ((wdays org-deadline-warning-days)
14628 (props (list 'mouse-face 'highlight 15995 (props (list 'mouse-face 'highlight
14629 'org-not-done-regexp org-not-done-regexp 15996 'org-not-done-regexp org-not-done-regexp
15997 'org-todo-regexp org-todo-regexp
14630 'keymap org-agenda-keymap 15998 'keymap org-agenda-keymap
14631 'help-echo 15999 'help-echo
14632 (format "mouse-2 or RET jump to org file %s" 16000 (format "mouse-2 or RET jump to org file %s"
@@ -14641,8 +16009,9 @@ the documentation of `org-diary'."
14641 (catch :skip 16009 (catch :skip
14642 (org-agenda-skip) 16010 (org-agenda-skip)
14643 (setq pos (1- (match-beginning 1)) 16011 (setq pos (1- (match-beginning 1))
14644 d2 (time-to-days 16012;??? d2 (time-to-days
14645 (org-time-string-to-time (match-string 1))) 16013;??? (org-time-string-to-time (match-string 1)))
16014 d2 (org-time-string-to-absolute (match-string 1) d1)
14646 diff (- d2 d1)) 16015 diff (- d2 d1))
14647 ;; When to show a deadline in the calendar: 16016 ;; When to show a deadline in the calendar:
14648 ;; If the expiration is within wdays warning time. 16017 ;; If the expiration is within wdays warning time.
@@ -14673,6 +16042,7 @@ the documentation of `org-diary'."
14673 'org-hd-marker (org-agenda-new-marker pos1) 16042 'org-hd-marker (org-agenda-new-marker pos1)
14674 'priority (+ (- 10 diff) (org-get-priority txt)) 16043 'priority (+ (- 10 diff) (org-get-priority txt))
14675 'org-category category 16044 'org-category category
16045 'type "upcoming-deadline" 'date d2
14676 'face face 'undone-face face 'done-face 'org-done) 16046 'face face 'undone-face face 'done-face 'org-done)
14677 (push txt ee)))))) 16047 (push txt ee))))))
14678 ee)) 16048 ee))
@@ -14681,6 +16051,7 @@ the documentation of `org-diary'."
14681 "Return the scheduled information for agenda display." 16051 "Return the scheduled information for agenda display."
14682 (let* ((props (list 'face 'org-scheduled-previously 16052 (let* ((props (list 'face 'org-scheduled-previously
14683 'org-not-done-regexp org-not-done-regexp 16053 'org-not-done-regexp org-not-done-regexp
16054 'org-todo-regexp org-todo-regexp
14684 'undone-face 'org-scheduled-previously 16055 'undone-face 'org-scheduled-previously
14685 'done-face 'org-done 16056 'done-face 'org-done
14686 'mouse-face 'highlight 16057 'mouse-face 'highlight
@@ -14698,8 +16069,9 @@ the documentation of `org-diary'."
14698 (catch :skip 16069 (catch :skip
14699 (org-agenda-skip) 16070 (org-agenda-skip)
14700 (setq pos (1- (match-beginning 1)) 16071 (setq pos (1- (match-beginning 1))
14701 d2 (time-to-days 16072 d2 (org-time-string-to-absolute (match-string 1) d1)
14702 (org-time-string-to-time (match-string 1))) 16073;??? d2 (time-to-days
16074;??? (org-time-string-to-time (match-string 1)))
14703 diff (- d2 d1)) 16075 diff (- d2 d1))
14704 ;; When to show a scheduled item in the calendar: 16076 ;; When to show a scheduled item in the calendar:
14705 ;; If it is on or past the date. 16077 ;; If it is on or past the date.
@@ -14724,6 +16096,7 @@ the documentation of `org-diary'."
14724 (org-add-props txt props 16096 (org-add-props txt props
14725 'org-marker (org-agenda-new-marker pos) 16097 'org-marker (org-agenda-new-marker pos)
14726 'org-hd-marker (org-agenda-new-marker pos1) 16098 'org-hd-marker (org-agenda-new-marker pos1)
16099 'type "past-scheduled" 'date d2
14727 'priority (+ (- 5 diff) (org-get-priority txt)) 16100 'priority (+ (- 5 diff) (org-get-priority txt))
14728 'org-category category) 16101 'org-category category)
14729 (push txt ee)))))) 16102 (push txt ee))))))
@@ -14733,6 +16106,7 @@ the documentation of `org-diary'."
14733 "Return the date-range information for agenda display." 16106 "Return the date-range information for agenda display."
14734 (let* ((props (list 'face nil 16107 (let* ((props (list 'face nil
14735 'org-not-done-regexp org-not-done-regexp 16108 'org-not-done-regexp org-not-done-regexp
16109 'org-todo-regexp org-todo-regexp
14736 'mouse-face 'highlight 16110 'mouse-face 'highlight
14737 'keymap org-agenda-keymap 16111 'keymap org-agenda-keymap
14738 'help-echo 16112 'help-echo
@@ -14771,6 +16145,7 @@ the documentation of `org-diary'."
14771 (setq txt org-agenda-no-heading-message)) 16145 (setq txt org-agenda-no-heading-message))
14772 (org-add-props txt props 16146 (org-add-props txt props
14773 'org-marker marker 'org-hd-marker hdmarker 16147 'org-marker marker 'org-hd-marker hdmarker
16148 'type "block" 'date date
14774 'priority (org-get-priority txt) 'org-category category) 16149 'priority (org-get-priority txt) 'org-category category)
14775 (push txt ee))) 16150 (push txt ee)))
14776 (goto-char pos))) 16151 (goto-char pos)))
@@ -14865,8 +16240,8 @@ only the correctly processes TXT should be returned - this is used by
14865 16240
14866 (when (string-match "\\([ \t]+\\)\\(:[a-zA-Z_@0-9:]+:\\)[ \t]*$" txt) 16241 (when (string-match "\\([ \t]+\\)\\(:[a-zA-Z_@0-9:]+:\\)[ \t]*$" txt)
14867 ;; Tags are in the string 16242 ;; Tags are in the string
14868 (if (or (eq org-agenda-remove-tags-when-in-prefix t) 16243 (if (or (eq org-agenda-remove-tags t)
14869 (and org-agenda-remove-tags-when-in-prefix 16244 (and org-agenda-remove-tags
14870 org-prefix-has-tag)) 16245 org-prefix-has-tag))
14871 (setq txt (replace-match "" t t txt)) 16246 (setq txt (replace-match "" t t txt))
14872 (setq txt (replace-match 16247 (setq txt (replace-match
@@ -14891,9 +16266,12 @@ only the correctly processes TXT should be returned - this is used by
14891 'org-category (downcase category) 'tags tags 16266 'org-category (downcase category) 'tags tags
14892 'prefix-length (- (length rtn) (length txt)) 16267 'prefix-length (- (length rtn) (length txt))
14893 'time-of-day time-of-day 16268 'time-of-day time-of-day
16269 'txt txt
16270 'time time
16271 'extra extra
14894 'dotime dotime)))) 16272 'dotime dotime))))
14895 16273
14896(defvar org-agenda-sorting-strategy) 16274(defvar org-agenda-sorting-strategy) ;; FIXME: can be removed?
14897(defvar org-agenda-sorting-strategy-selected nil) 16275(defvar org-agenda-sorting-strategy-selected nil)
14898 16276
14899(defun org-agenda-add-time-grid-maybe (list ndays todayp) 16277(defun org-agenda-add-time-grid-maybe (list ndays todayp)
@@ -15243,6 +16621,7 @@ With prefix ARG, go back that many times `org-agenda-ndays'."
15243 "Detach overlay INDEX." 16621 "Detach overlay INDEX."
15244 (funcall (if (featurep 'xemacs) 'detach-extent 'delete-overlay) org-hl)) 16622 (funcall (if (featurep 'xemacs) 'detach-extent 'delete-overlay) org-hl))
15245 16623
16624;; FIXME this is currently not used.
15246(defun org-highlight-until-next-command (beg end &optional buffer) 16625(defun org-highlight-until-next-command (beg end &optional buffer)
15247 (org-highlight beg end buffer) 16626 (org-highlight beg end buffer)
15248 (add-hook 'pre-command-hook 'org-unhighlight-once)) 16627 (add-hook 'pre-command-hook 'org-unhighlight-once))
@@ -15350,12 +16729,13 @@ and by additional input from the age of a schedules or deadline entry."
15350 (org-agenda-error))) 16729 (org-agenda-error)))
15351 (buffer (marker-buffer marker)) 16730 (buffer (marker-buffer marker))
15352 (pos (marker-position marker)) 16731 (pos (marker-position marker))
16732 (type (get-text-property (point) 'type))
15353 dbeg dend (n 0) conf) 16733 dbeg dend (n 0) conf)
15354 (org-with-remote-undo buffer 16734 (org-with-remote-undo buffer
15355 (with-current-buffer buffer 16735 (with-current-buffer buffer
15356 (save-excursion 16736 (save-excursion
15357 (goto-char pos) 16737 (goto-char pos)
15358 (if (org-mode-p) 16738 (if (and (org-mode-p) (not (member type '("sexp"))))
15359 (setq dbeg (progn (org-back-to-heading t) (point)) 16739 (setq dbeg (progn (org-back-to-heading t) (point))
15360 dend (org-end-of-subtree t)) 16740 dend (org-end-of-subtree t))
15361 (setq dbeg (point-at-bol) 16741 (setq dbeg (point-at-bol)
@@ -15502,6 +16882,16 @@ dedicated frame)."
15502 "Marker pointing to the headline that last changed its TODO state 16882 "Marker pointing to the headline that last changed its TODO state
15503by a remote command from the agenda.") 16883by a remote command from the agenda.")
15504 16884
16885(defun org-agenda-todo-nextset ()
16886 "Switch TODO entry to next sequence."
16887 (interactive)
16888 (org-agenda-todo 'nextset))
16889
16890(defun org-agenda-todo-previousset ()
16891 "Switch TODO entry to previous sequence."
16892 (interactive)
16893 (org-agenda-todo 'previousset))
16894
15505(defun org-agenda-todo (&optional arg) 16895(defun org-agenda-todo (&optional arg)
15506 "Cycle TODO state of line at point, also in Org-mode file. 16896 "Cycle TODO state of line at point, also in Org-mode file.
15507This changes the line at point, all other lines in the agenda referring to 16897This changes the line at point, all other lines in the agenda referring to
@@ -15656,7 +17046,7 @@ the tags of the current headline come last."
15656 (org-up-heading-all 1)) 17046 (org-up-heading-all 1))
15657 (error nil)))) 17047 (error nil))))
15658 tags))) 17048 tags)))
15659 17049
15660;; FIXME: should fix the tags property of the agenda line. 17050;; FIXME: should fix the tags property of the agenda line.
15661(defun org-agenda-set-tags () 17051(defun org-agenda-set-tags ()
15662 "Set tags for the current headline." 17052 "Set tags for the current headline."
@@ -15673,10 +17063,12 @@ the tags of the current headline come last."
15673 (with-current-buffer buffer 17063 (with-current-buffer buffer
15674 (widen) 17064 (widen)
15675 (goto-char pos) 17065 (goto-char pos)
15676 (org-show-context 'agenda) 17066 (save-excursion
17067 (org-show-context 'agenda))
15677 (save-excursion 17068 (save-excursion
15678 (and (outline-next-heading) 17069 (and (outline-next-heading)
15679 (org-flag-heading nil))) ; show the next heading 17070 (org-flag-heading nil))) ; show the next heading
17071 (goto-char pos)
15680 (call-interactively 'org-set-tags) 17072 (call-interactively 'org-set-tags)
15681 (end-of-line 1) 17073 (end-of-line 1)
15682 (setq newhead (org-get-heading))) 17074 (setq newhead (org-get-heading)))
@@ -15992,11 +17384,11 @@ This is a command that has to be installed in `calendar-mode-map'."
15992(defvar org-cdlatex-mode-map (make-sparse-keymap) 17384(defvar org-cdlatex-mode-map (make-sparse-keymap)
15993 "Keymap for the minor `org-cdlatex-mode'.") 17385 "Keymap for the minor `org-cdlatex-mode'.")
15994 17386
15995(define-key org-cdlatex-mode-map "_" 'org-cdlatex-underscore-caret) 17387(org-defkey org-cdlatex-mode-map "_" 'org-cdlatex-underscore-caret)
15996(define-key org-cdlatex-mode-map "^" 'org-cdlatex-underscore-caret) 17388(org-defkey org-cdlatex-mode-map "^" 'org-cdlatex-underscore-caret)
15997(define-key org-cdlatex-mode-map "`" 'cdlatex-math-symbol) 17389(org-defkey org-cdlatex-mode-map "`" 'cdlatex-math-symbol)
15998(define-key org-cdlatex-mode-map "'" 'org-cdlatex-math-modify) 17390(org-defkey org-cdlatex-mode-map "'" 'org-cdlatex-math-modify)
15999(define-key org-cdlatex-mode-map "\C-c{" 'cdlatex-environment) 17391(org-defkey org-cdlatex-mode-map "\C-c{" 'cdlatex-environment)
16000 17392
16001(defvar org-cdlatex-texmathp-advice-is-done nil 17393(defvar org-cdlatex-texmathp-advice-is-done nil
16002 "Flag remembering if we have applied the advice to texmathp already.") 17394 "Flag remembering if we have applied the advice to texmathp already.")
@@ -16064,7 +17456,7 @@ looks only before point, not after."
16064 (while (string-match re str start) 17456 (while (string-match re str start)
16065 (cond 17457 (cond
16066 ((= (match-end 0) (length str)) 17458 ((= (match-end 0) (length str))
16067 (throw 'exit (cons "$" (+ lim (match-beginning 0))))) 17459 (throw 'exit (cons "$" (+ lim (match-beginning 0) 1))))
16068 ((= (match-end 0) (- (length str) 5)) 17460 ((= (match-end 0) (- (length str) 5))
16069 (throw 'exit nil)) 17461 (throw 'exit nil))
16070 (t (setq start (match-end 0)))))) 17462 (t (setq start (match-end 0))))))
@@ -16156,11 +17548,12 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]."
16156 "Creating images for entry...%s")))) 17548 "Creating images for entry...%s"))))
16157 (message msg "") 17549 (message msg "")
16158 (narrow-to-region beg end) 17550 (narrow-to-region beg end)
17551 (goto-char beg)
16159 (org-format-latex 17552 (org-format-latex
16160 (concat "ltxpng/" (file-name-sans-extension 17553 (concat "ltxpng/" (file-name-sans-extension
16161 (file-name-nondirectory 17554 (file-name-nondirectory
16162 buffer-file-name))) 17555 buffer-file-name)))
16163 default-directory 'overlays msg at) 17556 default-directory 'overlays msg at 'forbuffer)
16164 (message msg "done. Use `C-c C-c' to remove images."))))) 17557 (message msg "done. Use `C-c C-c' to remove images.")))))
16165 17558
16166(defvar org-latex-regexps 17559(defvar org-latex-regexps
@@ -16173,7 +17566,7 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]."
16173 ("$$" "\\$\\$[^\000]*?\\$\\$" 0 t)) 17566 ("$$" "\\$\\$[^\000]*?\\$\\$" 0 t))
16174 "Regular expressions for matching embedded LaTeX.") 17567 "Regular expressions for matching embedded LaTeX.")
16175 17568
16176(defun org-format-latex (prefix &optional dir overlays msg at) 17569(defun org-format-latex (prefix &optional dir overlays msg at forbuffer)
16177 "Replace LaTeX fragments with links to an image, and produce images." 17570 "Replace LaTeX fragments with links to an image, and produce images."
16178 (if (and overlays (fboundp 'clear-image-cache)) (clear-image-cache)) 17571 (if (and overlays (fboundp 'clear-image-cache)) (clear-image-cache))
16179 (let* ((prefixnodir (file-name-nondirectory prefix)) 17572 (let* ((prefixnodir (file-name-nondirectory prefix))
@@ -16210,7 +17603,7 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]."
16210 (setq checkdir t) 17603 (setq checkdir t)
16211 (or (file-directory-p todir) (make-directory todir))) 17604 (or (file-directory-p todir) (make-directory todir)))
16212 (org-create-formula-image 17605 (org-create-formula-image
16213 txt movefile opt) 17606 txt movefile opt forbuffer)
16214 (if overlays 17607 (if overlays
16215 (progn 17608 (progn
16216 (setq ov (org-make-overlay beg end)) 17609 (setq ov (org-make-overlay beg end))
@@ -16229,31 +17622,27 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]."
16229 (insert link)))))))) 17622 (insert link))))))))
16230 17623
16231;; This function borrows from Ganesh Swami's latex2png.el 17624;; This function borrows from Ganesh Swami's latex2png.el
16232(defun org-create-formula-image (string tofile options) 17625(defun org-create-formula-image (string tofile options buffer)
16233 (let* ((tmpdir (if (featurep 'xemacs) 17626 (let* ((tmpdir (if (featurep 'xemacs)
16234 (temp-directory) 17627 (temp-directory)
16235 temporary-file-directory)) 17628 temporary-file-directory))
16236 (texfilebase (make-temp-name 17629 (texfilebase (make-temp-name
16237 (expand-file-name "orgtex" tmpdir))) 17630 (expand-file-name "orgtex" tmpdir)))
16238
16239;(texfilebase (make-temp-file "orgtex"))
16240; (dummy (delete-file texfilebase))
16241 (texfile (concat texfilebase ".tex")) 17631 (texfile (concat texfilebase ".tex"))
16242 (dvifile (concat texfilebase ".dvi")) 17632 (dvifile (concat texfilebase ".dvi"))
16243 (pngfile (concat texfilebase ".png")) 17633 (pngfile (concat texfilebase ".png"))
16244 (scale (number-to-string (* 1000 (or (plist-get options :scale) 1.0)))) 17634 (fnh (face-attribute 'default :height nil))
16245 (fg (or (plist-get options :foreground) "Black")) 17635 (scale (or (plist-get options (if buffer :scale :html-scale)) 1.0))
16246 (bg (or (plist-get options :background) "Transparent"))) 17636 (dpi (number-to-string (* scale (floor (* 0.9 (if buffer fnh 140.))))))
17637 (fg (or (plist-get options (if buffer :foreground :html-foreground))
17638 "Black"))
17639 (bg (or (plist-get options (if buffer :background :html-background))
17640 "Transparent")))
17641 (if (eq fg 'default) (setq fg (org-dvipng-color :foreground)))
17642 (if (eq bg 'default) (setq bg (org-dvipng-color :background)))
16247 (with-temp-file texfile 17643 (with-temp-file texfile
16248 (insert "\\documentclass{article} 17644 (insert org-format-latex-header
16249\\usepackage{fullpage} 17645 "\n\\begin{document}\n" string "\n\\end{document}\n"))
16250\\usepackage{amssymb}
16251\\usepackage[usenames]{color}
16252\\usepackage{amsmath}
16253\\usepackage{latexsym}
16254\\usepackage[mathscr]{eucal}
16255\\pagestyle{empty}
16256\\begin{document}\n" string "\n\\end{document}\n"))
16257 (let ((dir default-directory)) 17646 (let ((dir default-directory))
16258 (condition-case nil 17647 (condition-case nil
16259 (progn 17648 (progn
@@ -16265,7 +17654,9 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]."
16265 (progn (message "Failed to create dvi file from %s" texfile) nil) 17654 (progn (message "Failed to create dvi file from %s" texfile) nil)
16266 (call-process "dvipng" nil nil nil 17655 (call-process "dvipng" nil nil nil
16267 "-E" "-fg" fg "-bg" bg 17656 "-E" "-fg" fg "-bg" bg
16268 "-x" scale "-y" scale "-T" "tight" 17657 "-D" dpi
17658 ;;"-x" scale "-y" scale
17659 "-T" "tight"
16269 "-o" pngfile 17660 "-o" pngfile
16270 dvifile) 17661 dvifile)
16271 (if (not (file-exists-p pngfile)) 17662 (if (not (file-exists-p pngfile))
@@ -16276,6 +17667,16 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]."
16276 (delete-file (concat texfilebase e))) 17667 (delete-file (concat texfilebase e)))
16277 pngfile)))) 17668 pngfile))))
16278 17669
17670(defun org-dvipng-color (attr)
17671 "Return an rgb color specification for dvipng."
17672 (apply 'format "rgb %s %s %s"
17673 (mapcar 'org-normalize-color
17674 (color-values (face-attribute 'default attr nil)))))
17675
17676(defun org-normalize-color (value)
17677 "Return string to be used as color value for an RGB component."
17678 (format "%g" (/ value 65535.0)))
17679
16279;;;; Exporting 17680;;;; Exporting
16280 17681
16281;;; Variables, constants, and parameter plists 17682;;; Variables, constants, and parameter plists
@@ -16300,16 +17701,19 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]."
16300 (:headline-levels . org-export-headline-levels) 17701 (:headline-levels . org-export-headline-levels)
16301 (:section-numbers . org-export-with-section-numbers) 17702 (:section-numbers . org-export-with-section-numbers)
16302 (:table-of-contents . org-export-with-toc) 17703 (:table-of-contents . org-export-with-toc)
17704 (:preserve-breaks . org-export-preserve-breaks)
16303 (:archived-trees . org-export-with-archived-trees) 17705 (:archived-trees . org-export-with-archived-trees)
16304 (:emphasize . org-export-with-emphasize) 17706 (:emphasize . org-export-with-emphasize)
16305 (:sub-superscript . org-export-with-sub-superscripts) 17707 (:sub-superscript . org-export-with-sub-superscripts)
16306 (:TeX-macros . org-export-with-TeX-macros) 17708 (:TeX-macros . org-export-with-TeX-macros)
16307 (:LaTeX-fragments . org-export-with-LaTeX-fragments) 17709 (:LaTeX-fragments . org-export-with-LaTeX-fragments)
17710 (:skip-before-1st-heading . org-export-skip-text-before-1st-heading)
16308 (:fixed-width . org-export-with-fixed-width) 17711 (:fixed-width . org-export-with-fixed-width)
16309 (:timestamps . org-export-with-timestamps) 17712 (:timestamps . org-export-with-timestamps)
16310 (:tables . org-export-with-tables) 17713 (:tables . org-export-with-tables)
16311 (:table-auto-headline . org-export-highlight-first-table-line) 17714 (:table-auto-headline . org-export-highlight-first-table-line)
16312 (:style . org-export-html-style) 17715 (:style . org-export-html-style)
17716 (:agenda-style . org-agenda-export-html-style) ;; FIXME: Does this work????
16313 (:convert-org-links . org-export-html-link-org-files-as-html) 17717 (:convert-org-links . org-export-html-link-org-files-as-html)
16314 (:inline-images . org-export-html-inline-images) 17718 (:inline-images . org-export-html-inline-images)
16315 (:expand-quoted-html . org-export-html-expand) 17719 (:expand-quoted-html . org-export-html-expand)
@@ -16359,7 +17763,8 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]."
16359 ("^" . :sub-superscript) 17763 ("^" . :sub-superscript)
16360 ("*" . :emphasize) 17764 ("*" . :emphasize)
16361 ("TeX" . :TeX-macros) 17765 ("TeX" . :TeX-macros)
16362 ("LaTeX" . :LaTeX-fragments))) 17766 ("LaTeX" . :LaTeX-fragments)
17767 ("skip" . :skip-before-1st-heading)))
16363 o) 17768 o)
16364 (while (setq o (pop op)) 17769 (while (setq o (pop op))
16365 (if (string-match (concat (regexp-quote (car o)) 17770 (if (string-match (concat (regexp-quote (car o))
@@ -16377,19 +17782,11 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]."
16377 val))) 17782 val)))
16378 dir)) 17783 dir))
16379 17784
16380(defun org-export-find-first-heading-line (list)
16381 "Remove all lines from LIST which are before the first headline."
16382 (let ((orig-list list)
16383 (re (concat "^" outline-regexp)))
16384 (while (and list
16385 (not (string-match re (car list))))
16386 (pop list))
16387 (or list orig-list)))
16388
16389(defun org-skip-comments (lines) 17785(defun org-skip-comments (lines)
16390 "Skip lines starting with \"#\" and subtrees starting with COMMENT." 17786 "Skip lines starting with \"#\" and subtrees starting with COMMENT."
16391 (let ((re1 (concat "^\\(\\*+\\)[ \t]+" org-comment-string)) 17787 (let ((re1 (concat "^\\(\\*+\\)[ \t]+" org-comment-string))
16392 (re2 "^\\(\\*+\\)[ \t\n\r]") 17788 (re2 "^\\(\\*+\\)[ \t\n\r]")
17789 (case-fold-search nil)
16393 rtn line level) 17790 rtn line level)
16394 (while (setq line (pop lines)) 17791 (while (setq line (pop lines))
16395 (cond 17792 (cond
@@ -16420,6 +17817,7 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]."
16420 17817
16421\[a] export as ASCII 17818\[a] export as ASCII
16422\[h] export as HTML 17819\[h] export as HTML
17820\[H] export as HTML to temporary buffer
16423\[b] export as HTML and browse immediately 17821\[b] export as HTML and browse immediately
16424\[x] export as XOXO 17822\[x] export as XOXO
16425 17823
@@ -16437,6 +17835,8 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]."
16437 (?a . org-export-as-ascii) 17835 (?a . org-export-as-ascii)
16438 (?h . org-export-as-html) 17836 (?h . org-export-as-html)
16439 (?b . org-export-as-html-and-open) 17837 (?b . org-export-as-html-and-open)
17838 (?H . org-export-as-html-to-buffer)
17839 (?R . org-export-region-as-html)
16440 (?x . org-export-as-xoxo) 17840 (?x . org-export-as-xoxo)
16441 (?i . org-export-icalendar-this-file) 17841 (?i . org-export-icalendar-this-file)
16442 (?I . org-export-icalendar-all-agenda-files) 17842 (?I . org-export-icalendar-all-agenda-files)
@@ -16465,6 +17865,7 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]."
16465 ("curren") 17865 ("curren")
16466 ("yen") 17866 ("yen")
16467 ("brvbar") 17867 ("brvbar")
17868 ("vert" . "&#124;")
16468 ("sect") 17869 ("sect")
16469 ("uml") 17870 ("uml")
16470 ("copy") 17871 ("copy")
@@ -16766,26 +18167,44 @@ translations. There is currently no way for users to extend this.")
16766 (re-angle-link (concat "\\([^[]\\)" org-angle-link-re)) 18167 (re-angle-link (concat "\\([^[]\\)" org-angle-link-re))
16767 (re-archive (concat ":" org-archive-tag ":")) 18168 (re-archive (concat ":" org-archive-tag ":"))
16768 (re-quote (concat "^\\*+[ \t]+" org-quote-string "\\>")) 18169 (re-quote (concat "^\\*+[ \t]+" org-quote-string "\\>"))
16769 (htmlp (memq :for-html parameters)) 18170 (htmlp (plist-get parameters :for-html))
16770 (outline-regexp "\\*+") 18171 (outline-regexp "\\*+")
16771 rtn) 18172 a b
18173 rtn p)
16772 (save-excursion 18174 (save-excursion
16773 (set-buffer (get-buffer-create " org-mode-tmp")) 18175 (set-buffer (get-buffer-create " org-mode-tmp"))
16774 (erase-buffer) 18176 (erase-buffer)
16775 (insert string) 18177 (insert string)
18178 ;; Remove license-to-kill stuff
18179 (while (setq p (text-property-any (point-min) (point-max)
18180 :org-license-to-kill t))
18181 (delete-region p (next-single-property-change p :org-license-to-kill)))
18182
16776 (let ((org-inhibit-startup t)) (org-mode)) 18183 (let ((org-inhibit-startup t)) (org-mode))
16777 (untabify (point-min) (point-max)) 18184 (untabify (point-min) (point-max))
16778 18185
18186 ;; Get the correct stuff before the first headline
18187 (when (plist-get parameters :skip-before-1st-heading)
18188 (goto-char (point-min))
18189 (when (re-search-forward "^\\*+[ \t]" nil t)
18190 (delete-region (point-min) (match-beginning 0))
18191 (goto-char (point-min))
18192 (insert "\n")))
18193 (when (plist-get parameters :add-text)
18194 (goto-char (point-min))
18195 (insert (plist-get parameters :add-text) "\n"))
18196
16779 ;; Get rid of archived trees 18197 ;; Get rid of archived trees
16780 (when (not (eq org-export-with-archived-trees t)) 18198 (when (not (eq org-export-with-archived-trees t))
16781 (goto-char (point-min)) 18199 (goto-char (point-min))
16782 (while (re-search-forward re-archive nil t) 18200 (while (re-search-forward re-archive nil t)
16783 (if (not (org-on-heading-p)) 18201 (if (not (org-on-heading-p t))
16784 (org-end-of-subtree t) 18202 (org-end-of-subtree t)
16785 (beginning-of-line 1) 18203 (beginning-of-line 1)
16786 (delete-region 18204 (setq a (if org-export-with-archived-trees
16787 (if org-export-with-archived-trees (1+ (point-at-eol)) (point)) 18205 (1+ (point-at-eol)) (point))
16788 (org-end-of-subtree t))))) 18206 b (org-end-of-subtree t))
18207 (if (> b a) (delete-region a b)))))
16789 18208
16790 ;; Protect stuff from HTML processing 18209 ;; Protect stuff from HTML processing
16791 (goto-char (point-min)) 18210 (goto-char (point-min))
@@ -16796,12 +18215,12 @@ translations. There is currently no way for users to extend this.")
16796 (goto-char (point-min)) 18215 (goto-char (point-min))
16797 (while (re-search-forward "^#\\+HTML:[ \t]*\\(.*\\)" nil t) 18216 (while (re-search-forward "^#\\+HTML:[ \t]*\\(.*\\)" nil t)
16798 (replace-match "\\1" t) 18217 (replace-match "\\1" t)
16799 (add-text-properties 18218 (add-text-properties
16800 (point-at-bol) (min (1+ (point-at-eol)) (point-max)) 18219 (point-at-bol) (min (1+ (point-at-eol)) (point-max))
16801 '(org-protected t)))) 18220 '(org-protected t))))
16802 (goto-char (point-min)) 18221 (goto-char (point-min))
16803 (while (re-search-forward 18222 (while (re-search-forward
16804 "^#\\+BEGIN_HTML\\>.*\\(\n.*\\)*?\n#\\+END_HTML\\>.*\n?" nil t) 18223 "^#\\+BEGIN_HTML\\>.*\\(\\(\n.*\\)*?\n\\)#\\+END_HTML\\>.*\n?" nil t)
16805 (if htmlp 18224 (if htmlp
16806 (add-text-properties (match-beginning 1) (1+ (match-end 1)) 18225 (add-text-properties (match-beginning 1) (1+ (match-end 1))
16807 '(org-protected t)) 18226 '(org-protected t))
@@ -16839,7 +18258,7 @@ translations. There is currently no way for users to extend this.")
16839 (goto-char (match-beginning 0)))) 18258 (goto-char (match-beginning 0))))
16840 18259
16841 ;; Convert LaTeX fragments to images 18260 ;; Convert LaTeX fragments to images
16842 (when (memq :LaTeX-fragments parameters) 18261 (when (plist-get parameters :LaTeX-fragments)
16843 (org-format-latex 18262 (org-format-latex
16844 (concat "ltxpng/" (file-name-sans-extension 18263 (concat "ltxpng/" (file-name-sans-extension
16845 (file-name-nondirectory 18264 (file-name-nondirectory
@@ -16851,6 +18270,7 @@ translations. There is currently no way for users to extend this.")
16851 ;; Expand link abbreviations 18270 ;; Expand link abbreviations
16852 (goto-char (point-min)) 18271 (goto-char (point-min))
16853 (while (re-search-forward re-plain-link nil t) 18272 (while (re-search-forward re-plain-link nil t)
18273 (goto-char (1- (match-end 0)))
16854 (org-if-unprotected 18274 (org-if-unprotected
16855 (replace-match 18275 (replace-match
16856 (concat 18276 (concat
@@ -16858,6 +18278,7 @@ translations. There is currently no way for users to extend this.")
16858 t t))) 18278 t t)))
16859 (goto-char (point-min)) 18279 (goto-char (point-min))
16860 (while (re-search-forward re-angle-link nil t) 18280 (while (re-search-forward re-angle-link nil t)
18281 (goto-char (1- (match-end 0)))
16861 (org-if-unprotected 18282 (org-if-unprotected
16862 (replace-match 18283 (replace-match
16863 (concat 18284 (concat
@@ -16877,17 +18298,35 @@ translations. There is currently no way for users to extend this.")
16877 t t))) 18298 t t)))
16878 18299
16879 ;; Find multiline emphasis and put them into single line 18300 ;; Find multiline emphasis and put them into single line
16880 (when (memq :emph-multiline parameters) 18301 (when (plist-get parameters :emph-multiline)
16881 (goto-char (point-min)) 18302 (goto-char (point-min))
16882 (while (re-search-forward org-emph-re nil t) 18303 (while (re-search-forward org-emph-re nil t)
16883 (org-if-unprotected 18304 (if (not (= (char-after (match-beginning 3))
16884 (subst-char-in-region (match-beginning 0) (match-end 0) ?\n ?\ t) 18305 (char-after (match-beginning 4))))
16885 (goto-char (1- (match-end 0)))))) 18306 (org-if-unprotected
18307 (subst-char-in-region (match-beginning 0) (match-end 0)
18308 ?\n ?\ t)
18309 (goto-char (1- (match-end 0))))
18310 (goto-char (1+ (match-beginning 0))))))
16886 18311
16887 (setq rtn (buffer-string))) 18312 (setq rtn (buffer-string)))
16888 (kill-buffer " org-mode-tmp") 18313 (kill-buffer " org-mode-tmp")
16889 rtn)) 18314 rtn))
16890 18315
18316(defun org-export-grab-title-from-buffer ()
18317 "Get a title for the current document, from looking at the buffer."
18318 (let (buffer-read-only)
18319 (save-excursion
18320 (goto-char (point-min))
18321 (let ((end (save-excursion (outline-next-heading) (point))))
18322 (when (re-search-forward "^[ \t]*[^# \t\r\n].*\n" end t)
18323 ;; Mark the line so that it will not be exported as normal text.
18324 (org-unmodified
18325 (add-text-properties (match-beginning 0) (match-end 0)
18326 (list :org-license-to-kill t)))
18327 ;; Return the title string
18328 (org-trim (match-string 0)))))))
18329
16891(defun org-solidify-link-text (s &optional alist) 18330(defun org-solidify-link-text (s &optional alist)
16892 "Take link text and make a safe target out of it." 18331 "Take link text and make a safe target out of it."
16893 (save-match-data 18332 (save-match-data
@@ -16959,16 +18398,7 @@ underlined headlines. The default is 3."
16959 (setq-default org-todo-line-regexp org-todo-line-regexp) 18398 (setq-default org-todo-line-regexp org-todo-line-regexp)
16960 (let* ((opt-plist (org-combine-plists (org-default-export-plist) 18399 (let* ((opt-plist (org-combine-plists (org-default-export-plist)
16961 (org-infile-export-plist))) 18400 (org-infile-export-plist)))
16962 (region
16963 (buffer-substring
16964 (if (org-region-active-p) (region-beginning) (point-min))
16965 (if (org-region-active-p) (region-end) (point-max))))
16966 (custom-times org-display-custom-times) 18401 (custom-times org-display-custom-times)
16967 (lines (org-export-find-first-heading-line
16968 (org-skip-comments
16969 (org-split-string
16970 (org-cleaned-string-for-export region)
16971 "[\r\n]"))))
16972 (org-ascii-current-indentation '(0 . 0)) 18402 (org-ascii-current-indentation '(0 . 0))
16973 (level 0) line txt 18403 (level 0) line txt
16974 (umax nil) 18404 (umax nil)
@@ -16986,15 +18416,36 @@ underlined headlines. The default is 3."
16986 (time (format-time-string "%X" (org-current-time))) 18416 (time (format-time-string "%X" (org-current-time)))
16987 (author (plist-get opt-plist :author)) 18417 (author (plist-get opt-plist :author))
16988 (title (or (plist-get opt-plist :title) 18418 (title (or (plist-get opt-plist :title)
18419 (and (not
18420 (plist-get opt-plist :skip-before-1st-heading))
18421 (org-export-grab-title-from-buffer))
16989 (file-name-sans-extension 18422 (file-name-sans-extension
16990 (file-name-nondirectory buffer-file-name)))) 18423 (file-name-nondirectory buffer-file-name))))
16991 (email (plist-get opt-plist :email)) 18424 (email (plist-get opt-plist :email))
16992 (language (plist-get opt-plist :language)) 18425 (language (plist-get opt-plist :language))
16993 (quote-re0 (concat "^[ \t]*" org-quote-string "\\>")) 18426 (quote-re0 (concat "^[ \t]*" org-quote-string "\\>"))
16994; (quote-re (concat "^\\(\\*+\\)\\([ \t]*" org-quote-string "\\>\\)")) 18427; (quote-re (concat "^\\(\\*+\\)\\([ \t]*" org-quote-string "\\>\\)"))
16995 (text nil)
16996 (todo nil) 18428 (todo nil)
16997 (lang-words nil)) 18429 (lang-words nil)
18430 (region
18431 (buffer-substring
18432 (if (org-region-active-p) (region-beginning) (point-min))
18433 (if (org-region-active-p) (region-end) (point-max))))
18434 (lines (org-skip-comments
18435 (org-split-string
18436 (org-cleaned-string-for-export
18437 region
18438 :skip-before-1st-heading
18439 (plist-get opt-plist :skip-before-1st-heading)
18440 :add-text (plist-get opt-plist :text))
18441 "[\r\n]")))
18442 thetoc have-headings first-heading-pos
18443 table-open table-buffer)
18444
18445 (let (buffer-read-only)
18446 (org-unmodified
18447 (remove-text-properties (point-min) (point-max)
18448 '(:org-license-to-kill t))))
16998 18449
16999 (setq org-last-level 1) 18450 (setq org-last-level 1)
17000 (org-init-section-numbers) 18451 (org-init-section-numbers)
@@ -17028,27 +18479,27 @@ underlined headlines. The default is 3."
17028 "\n"))) 18479 "\n")))
17029 (if (and date time) 18480 (if (and date time)
17030 (insert (concat (nth 2 lang-words) ": " date " " time "\n"))) 18481 (insert (concat (nth 2 lang-words) ": " date " " time "\n")))
17031 (if text (insert (concat (org-html-expand-for-ascii text) "\n\n")))
17032 18482
17033 (insert "\n\n") 18483 (insert "\n\n")
17034 18484
17035 (if org-export-with-toc 18485 (if org-export-with-toc
17036 (progn 18486 (progn
17037 (insert (nth 3 lang-words) "\n" 18487 (push (concat (nth 3 lang-words) "\n") thetoc)
17038 (make-string (length (nth 3 lang-words)) ?=) "\n") 18488 (push (concat (make-string (length (nth 3 lang-words)) ?=) "\n") thetoc)
17039 (mapcar '(lambda (line) 18489 (mapcar '(lambda (line)
17040 (if (string-match org-todo-line-regexp 18490 (if (string-match org-todo-line-regexp
17041 line) 18491 line)
17042 ;; This is a headline 18492 ;; This is a headline
17043 (progn 18493 (progn
18494 (setq have-headings t)
17044 (setq level (- (match-end 1) (match-beginning 1)) 18495 (setq level (- (match-end 1) (match-beginning 1))
17045 level (org-tr-level level) 18496 level (org-tr-level level)
17046 txt (match-string 3 line) 18497 txt (match-string 3 line)
17047 todo 18498 todo
17048 (or (and org-export-mark-todo-in-toc 18499 (or (and org-export-mark-todo-in-toc
17049 (match-beginning 2) 18500 (match-beginning 2)
17050 (not (equal (match-string 2 line) 18501 (not (member (match-string 2 line)
17051 org-done-string))) 18502 org-done-keywords)))
17052 ; TODO, not DONE 18503 ; TODO, not DONE
17053 (and org-export-mark-todo-in-toc 18504 (and org-export-mark-todo-in-toc
17054 (= level umax-toc) 18505 (= level umax-toc)
@@ -17067,12 +18518,15 @@ underlined headlines. The default is 3."
17067 " " txt))) 18518 " " txt)))
17068 (if (<= level umax-toc) 18519 (if (<= level umax-toc)
17069 (progn 18520 (progn
17070 (insert 18521 (push
17071 (make-string (* (1- level) 4) ?\ ) 18522 (concat
17072 (format (if todo "%s (*)\n" "%s\n") txt)) 18523 (make-string (* (1- level) 4) ?\ )
18524 (format (if todo "%s (*)\n" "%s\n") txt))
18525 thetoc)
17073 (setq org-last-level level)) 18526 (setq org-last-level level))
17074 )))) 18527 ))))
17075 lines))) 18528 lines)
18529 (setq thetoc (if have-headings (nreverse thetoc) nil))))
17076 18530
17077 (org-init-section-numbers) 18531 (org-init-section-numbers)
17078 (while (setq line (pop lines)) 18532 (while (setq line (pop lines))
@@ -17091,12 +18545,44 @@ underlined headlines. The default is 3."
17091 (cond 18545 (cond
17092 ((string-match "^\\(\\*+\\)[ \t]*\\(.*\\)" line) 18546 ((string-match "^\\(\\*+\\)[ \t]*\\(.*\\)" line)
17093 ;; a Headline 18547 ;; a Headline
18548 (setq first-heading-pos (or first-heading-pos (point)))
17094 (setq level (org-tr-level (- (match-end 1) (match-beginning 1))) 18549 (setq level (org-tr-level (- (match-end 1) (match-beginning 1)))
17095 txt (match-string 2 line)) 18550 txt (match-string 2 line))
17096 (org-ascii-level-start level txt umax lines)) 18551 (org-ascii-level-start level txt umax lines))
18552
18553 ((and org-export-with-tables
18554 (string-match "^\\([ \t]*\\)\\(|\\|\\+-+\\+\\)" line))
18555 (if (not table-open)
18556 ;; New table starts
18557 (setq table-open t table-buffer nil))
18558 ;; Accumulate lines
18559 (setq table-buffer (cons line table-buffer))
18560 (when (or (not lines)
18561 (not (string-match "^\\([ \t]*\\)\\(|\\|\\+-+\\+\\)"
18562 (car lines))))
18563 (setq table-open nil
18564 table-buffer (nreverse table-buffer))
18565 (insert (mapconcat
18566 (lambda (x)
18567 (org-fix-indentation x org-ascii-current-indentation))
18568 (org-format-table-ascii table-buffer)
18569 "\n") "\n")))
17097 (t 18570 (t
17098 (insert (org-fix-indentation line org-ascii-current-indentation) "\n")))) 18571 (insert (org-fix-indentation line org-ascii-current-indentation) "\n"))))
17099 (normal-mode) 18572 (normal-mode)
18573
18574 ;; insert the table of contents
18575 (when thetoc
18576 (goto-char (point-min))
18577 (if (re-search-forward "^[ \t]*\\[TABLE-OF-CONTENTS\\][ \t]*$" nil t)
18578 (progn
18579 (goto-char (match-beginning 0))
18580 (replace-match ""))
18581 (goto-char first-heading-pos))
18582 (mapc 'insert thetoc)
18583 (or (looking-at "[ \t]*\n[ \t]*\n")
18584 (insert "\n\n")))
18585
17100 (save-buffer) 18586 (save-buffer)
17101 ;; remove display and invisible chars 18587 ;; remove display and invisible chars
17102 (let (beg end) 18588 (let (beg end)
@@ -17124,8 +18610,8 @@ underlined headlines. The default is 3."
17124 (progn 18610 (progn
17125 (setq lv (- (match-end 1) (match-beginning 1)) 18611 (setq lv (- (match-end 1) (match-beginning 1))
17126 todo (and (match-beginning 2) 18612 todo (and (match-beginning 2)
17127 (not (equal (match-string 2 line) 18613 (not (member (match-string 2 line)
17128 org-done-string)))) 18614 org-done-keywords))))
17129 ; TODO, not DONE 18615 ; TODO, not DONE
17130 (if (<= lv level) (throw 'exit nil)) 18616 (if (<= lv level) (throw 'exit nil))
17131 (if todo (throw 'exit t)))))))) 18617 (if todo (throw 'exit t))))))))
@@ -17187,7 +18673,7 @@ continue to use it. The prefix arg ARG is passed through to the exporting
17187command." 18673command."
17188 (interactive 18674 (interactive
17189 (list (progn 18675 (list (progn
17190 (message "Export visible: [a]SCII [h]tml [b]rowse HTML [x]OXO [ ]keep buffer") 18676 (message "Export visible: [a]SCII [h]tml [b]rowse HTML [H/R]uffer with HTML [x]OXO [ ]keep buffer")
17191 (read-char-exclusive)) 18677 (read-char-exclusive))
17192 current-prefix-arg)) 18678 current-prefix-arg))
17193 (if (not (member type '(?a ?\C-a ?b ?\C-b ?h ?x ?\ ))) 18679 (if (not (member type '(?a ?\C-a ?b ?\C-b ?h ?x ?\ )))
@@ -17198,6 +18684,8 @@ command."
17198 (?b . org-export-as-html-and-open) 18684 (?b . org-export-as-html-and-open)
17199 (?\C-b . org-export-as-html-and-open) 18685 (?\C-b . org-export-as-html-and-open)
17200 (?h . org-export-as-html) 18686 (?h . org-export-as-html)
18687 (?H . org-export-as-html-to-buffer)
18688 (?R . org-export-region-as-html)
17201 (?x . org-export-as-xoxo))))) 18689 (?x . org-export-as-xoxo)))))
17202 (keepp (equal type ?\ )) 18690 (keepp (equal type ?\ ))
17203 (file buffer-file-name) 18691 (file buffer-file-name)
@@ -17253,10 +18741,11 @@ Does include HTML export options as well as TODO and CATEGORY stuff."
17253#+EMAIL: %s 18741#+EMAIL: %s
17254#+LANGUAGE: %s 18742#+LANGUAGE: %s
17255#+TEXT: Some descriptive text to be emitted. Several lines OK. 18743#+TEXT: Some descriptive text to be emitted. Several lines OK.
17256#+OPTIONS: H:%d num:%s toc:%s \\n:%s @:%s ::%s |:%s ^:%s *:%s TeX:%s LaTeX:%s 18744#+OPTIONS: H:%d num:%s toc:%s \\n:%s @:%s ::%s |:%s ^:%s *:%s TeX:%s LaTeX:%s skip:%s
17257#+CATEGORY: %s 18745#+CATEGORY: %s
17258#+SEQ_TODO: %s 18746#+SEQ_TODO: %s
17259#+TYP_TODO: %s 18747#+TYP_TODO: %s
18748#+PRIORITIES: %c %c %c
17260#+STARTUP: %s %s %s %s %s 18749#+STARTUP: %s %s %s %s %s
17261#+TAGS: %s 18750#+TAGS: %s
17262#+ARCHIVE: %s 18751#+ARCHIVE: %s
@@ -17274,13 +18763,11 @@ Does include HTML export options as well as TODO and CATEGORY stuff."
17274 org-export-with-emphasize 18763 org-export-with-emphasize
17275 org-export-with-TeX-macros 18764 org-export-with-TeX-macros
17276 org-export-with-LaTeX-fragments 18765 org-export-with-LaTeX-fragments
18766 org-export-skip-text-before-1st-heading
17277 (file-name-nondirectory buffer-file-name) 18767 (file-name-nondirectory buffer-file-name)
17278 (if (equal org-todo-interpretation 'sequence) 18768 "TODO FEEDBACK VERIFY DONE"
17279 (mapconcat 'identity org-todo-keywords " ") 18769 "Me Jason Marie DONE"
17280 "TODO FEEDBACK VERIFY DONE") 18770 org-highest-priority org-lowest-priority org-default-priority
17281 (if (equal org-todo-interpretation 'type)
17282 (mapconcat 'identity org-todo-keywords " ")
17283 "Me Jason Marie DONE")
17284 (cdr (assoc org-startup-folded 18771 (cdr (assoc org-startup-folded
17285 '((nil . "showall") (t . "overview") (content . "content")))) 18772 '((nil . "showall") (t . "overview") (content . "content"))))
17286 (if org-odd-levels-only "odd" "oddeven") 18773 (if org-odd-levels-only "odd" "oddeven")
@@ -17372,19 +18859,96 @@ emacs --batch
17372 --visit=MyFile --funcall org-export-as-html-batch" 18859 --visit=MyFile --funcall org-export-as-html-batch"
17373 (org-export-as-html org-export-headline-levels 'hidden)) 18860 (org-export-as-html org-export-headline-levels 'hidden))
17374 18861
17375(defun org-export-as-html (arg &optional hidden ext-plist) 18862(defun org-export-as-html-to-buffer (arg)
18863 "Call `org-exort-as-html` with output to a temporary buffer.
18864No file is created. The prefix ARG is passed through to `org-export-as-html'."
18865 (interactive "P")
18866 (org-export-as-html arg nil nil "*Org HTML Export*")
18867 (switch-to-buffer-other-window "*Org HTML Export*"))
18868
18869(defun org-replace-region-by-html (beg end)
18870 "Assume the current region has org-mode syntax, and convert it to HTML.
18871This can be used in any buffer. For example, you could write an
18872itemized list in org-mode syntax in an HTML buffer and then use this
18873command to convert it."
18874 (interactive "r")
18875 (let (reg html buf)
18876 (if (org-mode-p)
18877 (setq html (org-export-region-as-html
18878 beg end t 'string))
18879 (setq reg (buffer-substring beg end)
18880 buf (get-buffer-create "*Org tmp*"))
18881 (save-excursion
18882 (set-buffer buf)
18883 (erase-buffer)
18884 (insert reg)
18885 (org-mode)
18886 (setq html (org-export-region-as-html
18887 (point-min) (point-max) t 'string)))
18888 (kill-buffer buf))
18889 (delete-region beg end)
18890 (insert html)))
18891
18892(defun org-export-region-as-html (beg end &optional body-only buffer)
18893 "Convert region from BEG to END in org-mode buffer to HTML.
18894If prefix arg BODY-ONLY is set, omit file header, footer, and table of
18895contents, and only produce the region of converted text, useful for
18896cut-and-paste operations.
18897If BUFFER is a buffer or a string, use/create that buffer as a target
18898of the converted HTML. If BUFFER is the symbol `string', return the
18899produced HTML as a string and leave not buffer behind. For example,
18900a Lisp program could call this function in the following way:
18901
18902 (setq html (org-export-region-as-html beg end t 'string))
18903
18904When called interactively, the output buffer is selected, and shown
18905in a window. A non-interactive call will only retunr the buffer."
18906 (interactive "r\nP")
18907 (when (interactive-p)
18908 (setq buffer "*Org HTML EXPORT*"))
18909 (let ((transient-mark-mode t) (zmacs-regions t)
18910 rtn)
18911 (goto-char end)
18912 (set-mark (point)) ;; to activate the region
18913 (goto-char beg)
18914 (setq rtn (org-export-as-html
18915 nil nil nil
18916 buffer body-only))
18917 (if (fboundp 'deactivate-mark) (deactivate-mark))
18918 (if (and (interactive-p) (bufferp rtn))
18919 (switch-to-buffer-other-window rtn)
18920 rtn)))
18921
18922(defun org-export-as-html (arg &optional hidden ext-plist
18923 to-buffer body-only)
17376 "Export the outline as a pretty HTML file. 18924 "Export the outline as a pretty HTML file.
17377If there is an active region, export only the region. 18925If there is an active region, export only the region. The prefix
17378The prefix ARG specifies how many levels of the outline should become 18926ARG specifies how many levels of the outline should become
17379headlines. The default is 3. Lower levels will become bulleted lists. 18927headlines. The default is 3. Lower levels will become bulleted
17380When HIDDEN is non-nil, don't display the HTML buffer. 18928lists. When HIDDEN is non-nil, don't display the HTML buffer.
17381EXT-PLIST is a property list with external parameters overriding 18929EXT-PLIST is a property list with external parameters overriding
17382org-mode's default settings, but still inferior to file-local settings." 18930org-mode's default settings, but still inferior to file-local
18931settings. When TO-BUFFER is non-nil, create a buffer with that
18932name and export to that buffer. If TO-BUFFER is the symbol `string',
18933don't leave any buffer behind but just return the resulting HTML as
18934a string. When BODY-ONLY is set, don't produce the file header and footer,
18935simply return the content of <body>...</body>, without even
18936the body tags themselves."
17383 (interactive "P") 18937 (interactive "P")
18938
18939 ;; Make sure we have a file name when we need it.
18940 (when (and (not (or to-buffer body-only))
18941 (not buffer-file-name))
18942 (if (buffer-base-buffer)
18943 (org-set-local 'buffer-file-name
18944 (with-current-buffer (buffer-base-buffer)
18945 buffer-file-name))
18946 (error "Need a file name to be able to export.")))
18947
17384 (message "Exporting...") 18948 (message "Exporting...")
17385 (setq-default org-todo-line-regexp org-todo-line-regexp) 18949 (setq-default org-todo-line-regexp org-todo-line-regexp)
17386 (setq-default org-deadline-line-regexp org-deadline-line-regexp) 18950 (setq-default org-deadline-line-regexp org-deadline-line-regexp)
17387 (setq-default org-done-string org-done-string) 18951 (setq-default org-done-keywords org-done-keywords)
17388 (setq-default org-maybe-keyword-time-regexp org-maybe-keyword-time-regexp) 18952 (setq-default org-maybe-keyword-time-regexp org-maybe-keyword-time-regexp)
17389 (let* ((opt-plist (org-combine-plists (org-default-export-plist) 18953 (let* ((opt-plist (org-combine-plists (org-default-export-plist)
17390 ext-plist 18954 ext-plist
@@ -17392,42 +18956,42 @@ org-mode's default settings, but still inferior to file-local settings."
17392 18956
17393 (style (plist-get opt-plist :style)) 18957 (style (plist-get opt-plist :style))
17394 (link-validate (plist-get opt-plist :link-validation-function)) 18958 (link-validate (plist-get opt-plist :link-validation-function))
17395 valid 18959 valid thetoc have-headings first-heading-pos
17396 (odd org-odd-levels-only) 18960 (odd org-odd-levels-only)
17397 (region-p (org-region-active-p)) 18961 (region-p (org-region-active-p))
17398 (region
17399 (buffer-substring
17400 (if region-p (region-beginning) (point-min))
17401 (if region-p (region-end) (point-max))))
17402 ;; The following two are dynamically scoped into other 18962 ;; The following two are dynamically scoped into other
17403 ;; routines below. 18963 ;; routines below.
17404 (org-current-export-dir (org-export-directory :html opt-plist)) 18964 (org-current-export-dir (org-export-directory :html opt-plist))
17405 (org-current-export-file buffer-file-name) 18965 (org-current-export-file buffer-file-name)
17406 (all_lines
17407 (org-skip-comments (org-split-string
17408 (org-cleaned-string-for-export
17409 region :emph-multiline :for-html
17410 (if (plist-get opt-plist :LaTeX-fragments)
17411 :LaTeX-fragments))
17412 "[\r\n]")))
17413 (lines (org-export-find-first-heading-line all_lines))
17414 (level 0) (line "") (origline "") txt todo 18966 (level 0) (line "") (origline "") txt todo
17415 (umax nil) 18967 (umax nil)
17416 (umax-toc nil) 18968 (umax-toc nil)
17417 (filename (concat (file-name-as-directory 18969 (filename (if to-buffer nil
17418 (org-export-directory :html opt-plist)) 18970 (concat (file-name-as-directory
17419 (file-name-sans-extension 18971 (org-export-directory :html opt-plist))
17420 (file-name-nondirectory buffer-file-name)) 18972 (file-name-sans-extension
17421 ".html")) 18973 (file-name-nondirectory buffer-file-name))
17422 (current-dir (file-name-directory buffer-file-name)) 18974 ".html")))
17423 (buffer (find-file-noselect filename)) 18975 (current-dir (if buffer-file-name
18976 (file-name-directory buffer-file-name)
18977 default-directory))
18978 (buffer (if to-buffer
18979 (cond
18980 ((eq to-buffer 'string) (get-buffer-create "*Org HTML Export*"))
18981 (t (get-buffer-create to-buffer)))
18982 (find-file-noselect filename)))
17424 (org-levels-open (make-vector org-level-max nil)) 18983 (org-levels-open (make-vector org-level-max nil))
17425 (date (format-time-string "%Y/%m/%d" (current-time))) 18984 (date (format-time-string "%Y/%m/%d" (current-time)))
17426 (time (format-time-string "%X" (org-current-time))) 18985 (time (format-time-string "%X" (org-current-time)))
17427 (author (plist-get opt-plist :author)) 18986 (author (plist-get opt-plist :author))
17428 (title (or (plist-get opt-plist :title) 18987 (title (or (plist-get opt-plist :title)
17429 (file-name-sans-extension 18988 (and (not
17430 (file-name-nondirectory buffer-file-name)))) 18989 (plist-get opt-plist :skip-before-1st-heading))
18990 (org-export-grab-title-from-buffer))
18991 (and buffer-file-name
18992 (file-name-sans-extension
18993 (file-name-nondirectory buffer-file-name)))
18994 "UNTITLED"))
17431 (quote-re0 (concat "^[ \t]*" org-quote-string "\\>")) 18995 (quote-re0 (concat "^[ \t]*" org-quote-string "\\>"))
17432 (quote-re (concat "^\\(\\*+\\)\\([ \t]*" org-quote-string "\\>\\)")) 18996 (quote-re (concat "^\\(\\*+\\)\\([ \t]*" org-quote-string "\\>\\)"))
17433 (inquote nil) 18997 (inquote nil)
@@ -17438,7 +19002,6 @@ org-mode's default settings, but still inferior to file-local settings."
17438 (llt org-plain-list-ordered-item-terminator) 19002 (llt org-plain-list-ordered-item-terminator)
17439 (email (plist-get opt-plist :email)) 19003 (email (plist-get opt-plist :email))
17440 (language (plist-get opt-plist :language)) 19004 (language (plist-get opt-plist :language))
17441 (text (plist-get opt-plist :text))
17442 (lang-words nil) 19005 (lang-words nil)
17443 (target-alist nil) tg 19006 (target-alist nil) tg
17444 (head-count 0) cnt 19007 (head-count 0) cnt
@@ -17450,11 +19013,34 @@ org-mode's default settings, but still inferior to file-local settings."
17450 (charset (and coding-system 19013 (charset (and coding-system
17451 (fboundp 'coding-system-get) 19014 (fboundp 'coding-system-get)
17452 (coding-system-get coding-system 'mime-charset))) 19015 (coding-system-get coding-system 'mime-charset)))
19016 (region
19017 (buffer-substring
19018 (if region-p (region-beginning) (point-min))
19019 (if region-p (region-end) (point-max))))
19020 (lines
19021 (org-skip-comments (org-split-string
19022 (org-cleaned-string-for-export
19023 region
19024 :emph-multiline t
19025 :for-html t
19026 :skip-before-1st-heading
19027 (plist-get opt-plist :skip-before-1st-heading)
19028 :add-text
19029 (plist-get opt-plist :text)
19030 :LaTeX-fragments
19031 (plist-get opt-plist :LaTeX-fragments))
19032 "[\r\n]")))
17453 table-open type 19033 table-open type
17454 table-buffer table-orig-buffer 19034 table-buffer table-orig-buffer
17455 ind start-is-num starter 19035 ind start-is-num starter didclose
17456 rpl path desc descp desc1 desc2 link 19036 rpl path desc descp desc1 desc2 link
17457 ) 19037 )
19038
19039 (let (buffer-read-only)
19040 (org-unmodified
19041 (remove-text-properties (point-min) (point-max)
19042 '(:org-license-to-kill t))))
19043
17458 (message "Exporting...") 19044 (message "Exporting...")
17459 19045
17460 (setq org-last-level 1) 19046 (setq org-last-level 1)
@@ -17465,9 +19051,7 @@ org-mode's default settings, but still inferior to file-local settings."
17465 (assoc "en" org-export-language-setup))) 19051 (assoc "en" org-export-language-setup)))
17466 19052
17467 ;; Switch to the output buffer 19053 ;; Switch to the output buffer
17468 (if (or hidden t) 19054 (set-buffer buffer)
17469 (set-buffer buffer)
17470 (switch-to-buffer-other-window buffer))
17471 (erase-buffer) 19055 (erase-buffer)
17472 (fundamental-mode) 19056 (fundamental-mode)
17473 (let ((case-fold-search nil) 19057 (let ((case-fold-search nil)
@@ -17483,10 +19067,10 @@ org-mode's default settings, but still inferior to file-local settings."
17483 (setq umax-toc (if (integerp org-export-with-toc) 19067 (setq umax-toc (if (integerp org-export-with-toc)
17484 (min org-export-with-toc umax) 19068 (min org-export-with-toc umax)
17485 umax)) 19069 umax))
17486 19070 (unless body-only
17487 ;; File header 19071 ;; File header
17488 (insert (format 19072 (insert (format
17489 "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" 19073 "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"
17490 \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"> 19074 \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">
17491<html xmlns=\"http://www.w3.org/1999/xhtml\" 19075<html xmlns=\"http://www.w3.org/1999/xhtml\"
17492lang=\"%s\" xml:lang=\"%s\"> 19076lang=\"%s\" xml:lang=\"%s\">
@@ -17499,94 +19083,96 @@ lang=\"%s\" xml:lang=\"%s\">
17499%s 19083%s
17500</head><body> 19084</head><body>
17501" 19085"
17502 language language (org-html-expand title) (or charset "iso-8859-1") 19086 language language (org-html-expand title)
17503 date time author style)) 19087 (or charset "iso-8859-1") date time author style))
17504 19088
19089 (insert (or (plist-get opt-plist :preamble) ""))
17505 19090
17506 (insert (or (plist-get opt-plist :preamble) "")) 19091 (when (plist-get opt-plist :auto-preamble)
19092 (if title (insert (format org-export-html-title-format
19093 (org-html-expand title))))))
17507 19094
17508 (when (plist-get opt-plist :auto-preamble) 19095 (if (and org-export-with-toc (not body-only))
17509 (if title (insert (format org-export-html-title-format
17510 (org-html-expand title))))
17511 (if text (insert "<p>\n" (org-html-expand text) "</p>")))
17512
17513 (if org-export-with-toc
17514 (progn 19096 (progn
17515 (insert (format "<h%d>%s</h%d>\n" 19097 (push (format "<h%d>%s</h%d>\n"
17516 org-export-html-toplevel-hlevel 19098 org-export-html-toplevel-hlevel
17517 (nth 3 lang-words) 19099 (nth 3 lang-words)
17518 org-export-html-toplevel-hlevel)) 19100 org-export-html-toplevel-hlevel)
17519 (insert "<ul>\n<li>") 19101 thetoc)
19102 (push "<ul>\n<li>" thetoc)
17520 (setq lines 19103 (setq lines
17521 (mapcar '(lambda (line) 19104 (mapcar '(lambda (line)
17522 (if (string-match org-todo-line-regexp line) 19105 (if (string-match org-todo-line-regexp line)
17523 ;; This is a headline 19106 ;; This is a headline
17524 (progn 19107 (progn
17525 (setq level (- (match-end 1) (match-beginning 1)) 19108 (setq have-headings t)
17526 level (org-tr-level level) 19109 (setq level (- (match-end 1) (match-beginning 1))
17527 txt (save-match-data 19110 level (org-tr-level level)
17528 (org-html-expand 19111 txt (save-match-data
17529 (org-export-cleanup-toc-line 19112 (org-html-expand
17530 (match-string 3 line)))) 19113 (org-export-cleanup-toc-line
17531 todo 19114 (match-string 3 line))))
17532 (or (and org-export-mark-todo-in-toc 19115 todo
17533 (match-beginning 2) 19116 (or (and org-export-mark-todo-in-toc
17534 (not (equal (match-string 2 line) 19117 (match-beginning 2)
17535 org-done-string))) 19118 (not (member (match-string 2 line)
19119 org-done-keywords)))
17536 ; TODO, not DONE 19120 ; TODO, not DONE
17537 (and org-export-mark-todo-in-toc 19121 (and org-export-mark-todo-in-toc
17538 (= level umax-toc) 19122 (= level umax-toc)
17539 (org-search-todo-below 19123 (org-search-todo-below
17540 line lines level)))) 19124 line lines level))))
17541 (if (and (memq org-export-with-tags '(not-in-toc nil)) 19125 (if (and (memq org-export-with-tags '(not-in-toc nil))
17542 (string-match "[ \t]+:[a-zA-Z0-9_@:]+:[ \t]*$" txt)) 19126 (string-match "[ \t]+:[a-zA-Z0-9_@:]+:[ \t]*$" txt))
17543 (setq txt (replace-match "" t t txt))) 19127 (setq txt (replace-match "" t t txt)))
17544 (if (string-match quote-re0 txt) 19128 (if (string-match quote-re0 txt)
17545 (setq txt (replace-match "" t t txt))) 19129 (setq txt (replace-match "" t t txt)))
17546 (if org-export-with-section-numbers 19130 (if org-export-with-section-numbers
17547 (setq txt (concat (org-section-number level) 19131 (setq txt (concat (org-section-number level)
17548 " " txt))) 19132 " " txt)))
17549 (if (<= level umax-toc) 19133 (if (<= level (max umax umax-toc))
17550 (progn 19134 (setq head-count (+ head-count 1)))
17551 (setq head-count (+ head-count 1)) 19135 (if (<= level umax-toc)
17552 (if (> level org-last-level) 19136 (progn
17553 (progn 19137 (if (> level org-last-level)
17554 (setq cnt (- level org-last-level)) 19138 (progn
17555 (while (>= (setq cnt (1- cnt)) 0) 19139 (setq cnt (- level org-last-level))
17556 (insert "\n<ul>\n<li>")) 19140 (while (>= (setq cnt (1- cnt)) 0)
17557 (insert "\n"))) 19141 (push "\n<ul>\n<li>" thetoc))
17558 (if (< level org-last-level) 19142 (push "\n" thetoc)))
17559 (progn 19143 (if (< level org-last-level)
17560 (setq cnt (- org-last-level level)) 19144 (progn
17561 (while (>= (setq cnt (1- cnt)) 0) 19145 (setq cnt (- org-last-level level))
17562 (insert "</li>\n</ul>")) 19146 (while (>= (setq cnt (1- cnt)) 0)
17563 (insert "\n"))) 19147 (push "</li>\n</ul>" thetoc))
17564 ;; Check for targets 19148 (push "\n" thetoc)))
17565 (while (string-match org-target-regexp line) 19149 ;; Check for targets
17566 (setq tg (match-string 1 line) 19150 (while (string-match org-target-regexp line)
17567 line (replace-match 19151 (setq tg (match-string 1 line)
17568 (concat "@<span class=\"target\">" tg "@</span> ") 19152 line (replace-match
17569 t t line)) 19153 (concat "@<span class=\"target\">" tg "@</span> ")
17570 (push (cons (org-solidify-link-text tg) 19154 t t line))
17571 (format "sec-%d" head-count)) 19155 (push (cons (org-solidify-link-text tg)
17572 target-alist)) 19156 (format "sec-%d" head-count))
17573 (while (string-match "&lt;\\(&lt;\\)+\\|&gt;\\(&gt;\\)+" txt) 19157 target-alist))
17574 (setq txt (replace-match "" t t txt))) 19158 (while (string-match "&lt;\\(&lt;\\)+\\|&gt;\\(&gt;\\)+" txt)
17575 (insert 19159 (setq txt (replace-match "" t t txt)))
17576 (format 19160 (push
17577 (if todo 19161 (format
17578 "</li>\n<li><a href=\"#sec-%d\"><span class=\"todo\">%s</span></a>" 19162 (if todo
17579 "</li>\n<li><a href=\"#sec-%d\">%s</a>") 19163 "</li>\n<li><a href=\"#sec-%d\"><span class=\"todo\">%s</span></a>"
17580 head-count txt)) 19164 "</li>\n<li><a href=\"#sec-%d\">%s</a>")
17581 19165 head-count txt) thetoc)
17582 (setq org-last-level level)) 19166
17583 ))) 19167 (setq org-last-level level))
17584 line) 19168 )))
17585 lines)) 19169 line)
19170 lines))
17586 (while (> org-last-level 0) 19171 (while (> org-last-level 0)
17587 (setq org-last-level (1- org-last-level)) 19172 (setq org-last-level (1- org-last-level))
17588 (insert "</li>\n</ul>\n")) 19173 (push "</li>\n</ul>\n" thetoc))
17589 )) 19174 (setq thetoc (if have-headings (nreverse thetoc) nil))))
19175
17590 (setq head-count 0) 19176 (setq head-count 0)
17591 (org-init-section-numbers) 19177 (org-init-section-numbers)
17592 19178
@@ -17618,7 +19204,16 @@ lang=\"%s\" xml:lang=\"%s\">
17618 19204
17619 ;; Protected HTML 19205 ;; Protected HTML
17620 (when (get-text-property 0 'org-protected line) 19206 (when (get-text-property 0 'org-protected line)
17621 (insert line "\n") 19207 (let (par)
19208 (when (re-search-backward
19209 "\\(<p>\\)\\([ \t\r\n]*\\)\\=" (- (point) 100) t)
19210 (setq par (match-string 1))
19211 (replace-match "\\2\n"))
19212 (insert line "\n")
19213 (while (and lines
19214 (get-text-property 0 'org-protected (car lines)))
19215 (insert (pop lines) "\n"))
19216 (and par (insert "<p>\n")))
17622 (throw 'nextline nil)) 19217 (throw 'nextline nil))
17623 19218
17624 ;; Horizontal line 19219 ;; Horizontal line
@@ -17676,7 +19271,8 @@ lang=\"%s\" xml:lang=\"%s\">
17676 (setq rpl 19271 (setq rpl
17677 (concat 19272 (concat
17678 "<a href=\"#" 19273 "<a href=\"#"
17679 (org-solidify-link-text path target-alist) 19274 (org-solidify-link-text
19275 (save-match-data (org-link-unescape path)) target-alist)
17680 "\">" desc "</a>"))) 19276 "\">" desc "</a>")))
17681 ((member type '("http" "https")) ; FIXME: need to test this. 19277 ((member type '("http" "https")) ; FIXME: need to test this.
17682 ;; standard URL, just check if we need to inline an image 19278 ;; standard URL, just check if we need to inline an image
@@ -17738,12 +19334,24 @@ lang=\"%s\" xml:lang=\"%s\">
17738 ;; TODO items 19334 ;; TODO items
17739 (if (and (string-match org-todo-line-regexp line) 19335 (if (and (string-match org-todo-line-regexp line)
17740 (match-beginning 2)) 19336 (match-beginning 2))
17741 (if (equal (match-string 2 line) org-done-string) 19337 (if (member (match-string 2 line) org-done-keywords)
17742 (setq line (replace-match 19338 (setq line (replace-match
17743 "<span class=\"done\">\\2</span>" 19339 "<span class=\"done\">\\2</span>"
17744 t nil line 2)) 19340 t nil line 2))
17745 (setq line (replace-match "<span class=\"todo\">\\2</span>" 19341 (setq line
17746 t nil line 2)))) 19342 (concat (substring line 0 (match-beginning 2))
19343 "<span class=\"todo\">" (match-string 2 line)
19344 "</span>" (substring line (match-end 2))))))
19345
19346 ;; Does this contain a reference to a footnote?
19347 (while (string-match "\\([^* \t].*?\\)\\[\\([0-9]+\\)\\]" line)
19348 (let ((n (match-string 2 line)))
19349 (setq line
19350 (replace-match
19351 (format
19352 "%s<sup><a class=\"footref\" name=\"fnr.%s\" href=\"#fn.%s\">%s</a></sup>"
19353 (match-string 1 line) n n n)
19354 t t line))))
17747 19355
17748 (cond 19356 (cond
17749 ((string-match "^\\(\\*+\\)[ \t]*\\(.*\\)" line) 19357 ((string-match "^\\(\\*+\\)[ \t]*\\(.*\\)" line)
@@ -17752,7 +19360,8 @@ lang=\"%s\" xml:lang=\"%s\">
17752 txt (match-string 2 line)) 19360 txt (match-string 2 line))
17753 (if (string-match quote-re0 txt) 19361 (if (string-match quote-re0 txt)
17754 (setq txt (replace-match "" t t txt))) 19362 (setq txt (replace-match "" t t txt)))
17755 (if (<= level umax) (setq head-count (+ head-count 1))) 19363 (if (<= level (max umax umax-toc))
19364 (setq head-count (+ head-count 1)))
17756 (when in-local-list 19365 (when in-local-list
17757 ;; Close any local lists before inserting a new header line 19366 ;; Close any local lists before inserting a new header line
17758 (while local-list-num 19367 (while local-list-num
@@ -17761,6 +19370,7 @@ lang=\"%s\" xml:lang=\"%s\">
17761 (pop local-list-num)) 19370 (pop local-list-num))
17762 (setq local-list-indent nil 19371 (setq local-list-indent nil
17763 in-local-list nil)) 19372 in-local-list nil))
19373 (setq first-heading-pos (or first-heading-pos (point)))
17764 (org-html-level-start level txt umax 19374 (org-html-level-start level txt umax
17765 (and org-export-with-toc (<= level umax)) 19375 (and org-export-with-toc (<= level umax))
17766 head-count) 19376 head-count)
@@ -17801,11 +19411,15 @@ lang=\"%s\" xml:lang=\"%s\">
17801 line (substring line (match-beginning 5))) 19411 line (substring line (match-beginning 5)))
17802 (unless (string-match "[^ \t]" line) 19412 (unless (string-match "[^ \t]" line)
17803 ;; empty line. Pretend indentation is large. 19413 ;; empty line. Pretend indentation is large.
17804 (setq ind (1+ (or (car local-list-indent) 1)))) 19414 (setq ind (if org-empty-line-terminates-plain-lists
19415 0
19416 (1+ (or (car local-list-indent) 1)))))
19417 (setq didclose nil)
17805 (while (and in-local-list 19418 (while (and in-local-list
17806 (or (and (= ind (car local-list-indent)) 19419 (or (and (= ind (car local-list-indent))
17807 (not starter)) 19420 (not starter))
17808 (< ind (car local-list-indent)))) 19421 (< ind (car local-list-indent))))
19422 (setq didclose t)
17809 (org-close-li) 19423 (org-close-li)
17810 (insert (if (car local-list-num) "</ol>\n" "</ul>")) 19424 (insert (if (car local-list-num) "</ol>\n" "</ul>"))
17811 (pop local-list-num) (pop local-list-indent) 19425 (pop local-list-num) (pop local-list-indent)
@@ -17814,7 +19428,7 @@ lang=\"%s\" xml:lang=\"%s\">
17814 ((and starter 19428 ((and starter
17815 (or (not in-local-list) 19429 (or (not in-local-list)
17816 (> ind (car local-list-indent)))) 19430 (> ind (car local-list-indent))))
17817 ;; Start new (level of ) list 19431 ;; Start new (level of) list
17818 (org-close-par-maybe) 19432 (org-close-par-maybe)
17819 (insert (if start-is-num "<ol>\n<li>\n" "<ul>\n<li>\n")) 19433 (insert (if start-is-num "<ol>\n<li>\n" "<ul>\n<li>\n"))
17820 (push start-is-num local-list-num) 19434 (push start-is-num local-list-num)
@@ -17823,7 +19437,10 @@ lang=\"%s\" xml:lang=\"%s\">
17823 (starter 19437 (starter
17824 ;; continue current list 19438 ;; continue current list
17825 (org-close-li) 19439 (org-close-li)
17826 (insert "<li>\n"))) 19440 (insert "<li>\n"))
19441 (didclose
19442 ;; we did close a list, normal text follows: need <p>
19443 (org-open-par)))
17827 (if (string-match "^[ \t]*\\[\\([X ]\\)\\]" line) 19444 (if (string-match "^[ \t]*\\[\\([X ]\\)\\]" line)
17828 (setq line 19445 (setq line
17829 (replace-match 19446 (replace-match
@@ -17837,6 +19454,13 @@ lang=\"%s\" xml:lang=\"%s\">
17837 ;; also start a new paragraph. 19454 ;; also start a new paragraph.
17838 (if (string-match "^ [-+*]-\\|^[ \t]*$" line) (org-open-par)) 19455 (if (string-match "^ [-+*]-\\|^[ \t]*$" line) (org-open-par))
17839 19456
19457 ;; Is this the start of a footnote?
19458 (when (string-match "^[ \t]*\\[\\([0-9]+\\)\\]" line)
19459 (org-close-par-maybe)
19460 (let ((n (match-string 1 line)))
19461 (setq line (replace-match
19462 (format "<p class=\"footnote\"><sup><a class=\"footnum\" name=\"fn.%s\" href=\"#fnr.%s\">%s</a></sup>" n n n) t t line))))
19463
17840 ;; Check if the line break needs to be conserved 19464 ;; Check if the line break needs to be conserved
17841 (cond 19465 (cond
17842 ((string-match "\\\\\\\\[ \t]*$" line) 19466 ((string-match "\\\\\\\\[ \t]*$" line)
@@ -17860,24 +19484,43 @@ lang=\"%s\" xml:lang=\"%s\">
17860 (and org-export-with-toc (<= level umax)) 19484 (and org-export-with-toc (<= level umax))
17861 head-count) 19485 head-count)
17862 19486
17863 (when (plist-get opt-plist :auto-postamble) 19487 (unless body-only
17864 (when author 19488 (when (plist-get opt-plist :auto-postamble)
17865 (insert "<p class=\"author\"> " 19489 (when author
17866 (nth 1 lang-words) ": " author "\n") 19490 (insert "<p class=\"author\"> "
17867 (when email 19491 (nth 1 lang-words) ": " author "\n")
17868 (insert "<a href=\"mailto:" email "\">&lt;" 19492 (when email
17869 email "&gt;</a>\n")) 19493 (insert "<a href=\"mailto:" email "\">&lt;"
17870 (insert "</p>\n")) 19494 email "&gt;</a>\n"))
17871 (when (and date time) 19495 (insert "</p>\n"))
17872 (insert "<p class=\"date\"> " 19496 (when (and date time)
17873 (nth 2 lang-words) ": " 19497 (insert "<p class=\"date\"> "
17874 date " " time "</p>\n"))) 19498 (nth 2 lang-words) ": "
17875 19499 date " " time "</p>\n")))
17876 (if org-export-html-with-timestamp 19500
17877 (insert org-export-html-html-helper-timestamp)) 19501 (if org-export-html-with-timestamp
17878 (insert (or (plist-get opt-plist :postamble) "")) 19502 (insert org-export-html-html-helper-timestamp))
17879 (insert "</body>\n</html>\n") 19503 (insert (or (plist-get opt-plist :postamble) ""))
19504 (insert "</body>\n</html>\n"))
19505
17880 (normal-mode) 19506 (normal-mode)
19507 (if (eq major-mode default-major-mode) (html-mode))
19508
19509 ;; insert the table of contents
19510 (goto-char (point-min))
19511 (when thetoc
19512 (if (or (re-search-forward
19513 "<p>\\s-*\\[TABLE-OF-CONTENTS\\]\\s-*</p>" nil t)
19514 (re-search-forward
19515 "\\[TABLE-OF-CONTENTS\\]" nil t))
19516 (progn
19517 (goto-char (match-beginning 0))
19518 (replace-match ""))
19519 (goto-char first-heading-pos)
19520 (when (looking-at "\\s-*</p>")
19521 (goto-char (match-end 0))
19522 (insert "\n")))
19523 (mapc 'insert thetoc))
17881 ;; remove empty paragraphs and lists 19524 ;; remove empty paragraphs and lists
17882 (goto-char (point-min)) 19525 (goto-char (point-min))
17883 (while (re-search-forward "<p>[ \r\n\t]*</p>" nil t) 19526 (while (re-search-forward "<p>[ \r\n\t]*</p>" nil t)
@@ -17885,13 +19528,62 @@ lang=\"%s\" xml:lang=\"%s\">
17885 (goto-char (point-min)) 19528 (goto-char (point-min))
17886 (while (re-search-forward "<li>[ \r\n\t]*</li>\n?" nil t) 19529 (while (re-search-forward "<li>[ \r\n\t]*</li>\n?" nil t)
17887 (replace-match "")) 19530 (replace-match ""))
17888 (save-buffer) 19531 (or to-buffer (save-buffer))
17889 (goto-char (point-min)) 19532 (goto-char (point-min))
17890 (message "Exporting... done")))) 19533 (message "Exporting... done")
19534 (if (eq to-buffer 'string)
19535 (prog1 (buffer-substring (point-min) (point-max))
19536 (kill-buffer (current-buffer)))
19537 (current-buffer)))))
19538
19539(defvar org-table-colgroup-info nil) ;; FIXME: mode to a better place
19540(defun org-format-table-ascii (lines)
19541 "Format a table for ascii export."
19542 (if (stringp lines)
19543 (setq lines (org-split-string lines "\n")))
19544 (if (not (string-match "^[ \t]*|" (car lines)))
19545 ;; Table made by table.el - test for spanning
19546 lines
19547
19548 ;; A normal org table
19549 ;; Get rid of hlines at beginning and end
19550 (if (string-match "^[ \t]*|-" (car lines)) (setq lines (cdr lines)))
19551 (setq lines (nreverse lines))
19552 (if (string-match "^[ \t]*|-" (car lines)) (setq lines (cdr lines)))
19553 (setq lines (nreverse lines))
19554 (when org-export-table-remove-special-lines
19555 ;; Check if the table has a marking column. If yes remove the
19556 ;; column and the special lines
19557 (setq lines (org-table-clean-before-export lines)))
19558 ;; Get rid of the vertical lines except for grouping
19559 (let ((vl (org-colgroup-info-to-vline-list org-table-colgroup-info))
19560 rtn line vl1 start)
19561 (while (setq line (pop lines))
19562 (if (string-match org-table-hline-regexp line)
19563 (and (string-match "|\\(.*\\)|" line)
19564 (setq line (replace-match " \\1" t nil line)))
19565 (setq start 0 vl1 vl)
19566 (while (string-match "|" line start)
19567 (setq start (match-end 0))
19568 (or (pop vl1) (setq line (replace-match " " t t line)))))
19569 (push line rtn))
19570 (nreverse rtn))))
19571
19572(defun org-colgroup-info-to-vline-list (info)
19573 (let (vl new last rtn line)
19574 (while info
19575 (setq last new new (pop info))
19576 (if (or (memq last '(:end :startend))
19577 (memq new '(:start :startend)))
19578 (push t vl)
19579 (push nil vl)))
19580 (setq vl (cons nil (nreverse vl)))))
17891 19581
17892 19582
17893(defun org-format-table-html (lines olines) 19583(defun org-format-table-html (lines olines)
17894 "Find out which HTML converter to use and return the HTML code." 19584 "Find out which HTML converter to use and return the HTML code."
19585 (if (stringp lines)
19586 (setq lines (org-split-string lines "\n")))
17895 (if (string-match "^[ \t]*|" (car lines)) 19587 (if (string-match "^[ \t]*|" (car lines))
17896 ;; A normal org table 19588 ;; A normal org table
17897 (org-format-org-table-html lines) 19589 (org-format-org-table-html lines)
@@ -17931,7 +19623,7 @@ lang=\"%s\" xml:lang=\"%s\">
17931 (lambda (x) (string-match "^[ \t]*|-" x)) 19623 (lambda (x) (string-match "^[ \t]*|-" x))
17932 (cdr lines))))) 19624 (cdr lines)))))
17933 (nlines 0) fnum i 19625 (nlines 0) fnum i
17934 tbopen line fields html) 19626 tbopen line fields html gr)
17935 (if splice (setq head nil)) 19627 (if splice (setq head nil))
17936 (unless splice (push (if head "<thead>" "<tbody>") html)) 19628 (unless splice (push (if head "<thead>" "<tbody>") html))
17937 (setq tbopen t) 19629 (setq tbopen t)
@@ -17939,7 +19631,7 @@ lang=\"%s\" xml:lang=\"%s\">
17939 (catch 'next-line 19631 (catch 'next-line
17940 (if (string-match "^[ \t]*|-" line) 19632 (if (string-match "^[ \t]*|-" line)
17941 (progn 19633 (progn
17942 (unless splice 19634 (unless splice
17943 (push (if head "</thead>" "</tbody>") html) 19635 (push (if head "</thead>" "</tbody>") html)
17944 (if lines (push "<tbody>" html) (setq tbopen nil))) 19636 (if lines (push "<tbody>" html) (setq tbopen nil)))
17945 (setq head nil) ;; head ends here, first time around 19637 (setq head nil) ;; head ends here, first time around
@@ -17957,8 +19649,10 @@ lang=\"%s\" xml:lang=\"%s\">
17957 (string-match org-table-number-regexp x)) 19649 (string-match org-table-number-regexp x))
17958 (incf (aref fnum i))) 19650 (incf (aref fnum i)))
17959 (if head 19651 (if head
17960 (concat "<th>" x "</th>") 19652 (concat (car org-export-table-header-tags) x
17961 (concat "<td>" x "</td>"))) 19653 (cdr org-export-table-header-tags))
19654 (concat (car org-export-table-data-tags) x
19655 (cdr org-export-table-data-tags))))
17962 fields "") 19656 fields "")
17963 "</tr>") 19657 "</tr>")
17964 html))) 19658 html)))
@@ -17969,9 +19663,12 @@ lang=\"%s\" xml:lang=\"%s\">
17969 ;; Put in COL tags with the alignment (unfortuntely often ignored...) 19663 ;; Put in COL tags with the alignment (unfortuntely often ignored...)
17970 (push (mapconcat 19664 (push (mapconcat
17971 (lambda (x) 19665 (lambda (x)
17972 (format "<COL align=\"%s\">" 19666 (setq gr (pop org-table-colgroup-info))
19667 (format "%s<COL align=\"%s\">%s"
19668 (if (memq gr '(:start :startend)) "<colgroup>" "")
17973 (if (> (/ (float x) nlines) org-table-number-fraction) 19669 (if (> (/ (float x) nlines) org-table-number-fraction)
17974 "right" "left"))) 19670 "right" "left")
19671 (if (memq gr '(:end :startend)) "</colgroup>" "")))
17975 fnum "") 19672 fnum "")
17976 html) 19673 html)
17977 (push org-export-html-table-tag html)) 19674 (push org-export-html-table-tag html))
@@ -17980,34 +19677,52 @@ lang=\"%s\" xml:lang=\"%s\">
17980(defun org-table-clean-before-export (lines) 19677(defun org-table-clean-before-export (lines)
17981 "Check if the table has a marking column. 19678 "Check if the table has a marking column.
17982If yes remove the column and the special lines." 19679If yes remove the column and the special lines."
19680 (setq org-table-colgroup-info nil)
17983 (if (memq nil 19681 (if (memq nil
17984 (mapcar 19682 (mapcar
17985 (lambda (x) (or (string-match "^[ \t]*|-" x) 19683 (lambda (x) (or (string-match "^[ \t]*|-" x)
17986 (string-match "^[ \t]*| *\\([#!$*_^ /]\\) *|" x))) 19684 (string-match "^[ \t]*| *\\([#!$*_^ /]\\) *|" x)))
17987 lines)) 19685 lines))
17988 (progn 19686 (progn
17989 (setq org-table-clean-did-remove-column-1 nil) 19687 (setq org-table-clean-did-remove-column nil)
17990 lines) 19688 (delq nil
17991 (setq org-table-clean-did-remove-column-1 t) 19689 (mapcar
19690 (lambda (x)
19691 (cond
19692 ((string-match "^[ \t]*| */ *|" x)
19693 (setq org-table-colgroup-info
19694 (mapcar (lambda (x)
19695 (cond ((member x '("<" "&lt;")) :start)
19696 ((member x '(">" "&gt;")) :end)
19697 ((member x '("<>" "&lt;&gt;")) :startend)
19698 (t nil)))
19699 (org-split-string x "[ \t]*|[ \t]*")))
19700 nil)
19701 (t x)))
19702 lines)))
19703 (setq org-table-clean-did-remove-column t)
17992 (delq nil 19704 (delq nil
17993 (mapcar 19705 (mapcar
17994 (lambda (x) (if (string-match "^[ \t]*| *[!_^/] *|" x) 19706 (lambda (x)
17995 nil ; ignore this line 19707 (cond
17996 (and (or (string-match "^[ \t]*|-+\\+" x) 19708 ((string-match "^[ \t]*| */ *|" x)
17997 (string-match "^[ \t]*|[^|]*|" x)) 19709 (setq org-table-colgroup-info
17998 (replace-match "|" t t x)))) 19710 (mapcar (lambda (x)
19711 (cond ((member x '("<" "&lt;")) :start)
19712 ((member x '(">" "&gt;")) :end)
19713 ((member x '("<>" "&lt;&gt;")) :startend)
19714 (t nil)))
19715 (cdr (org-split-string x "[ \t]*|[ \t]*"))))
19716 nil)
19717 ((string-match "^[ \t]*| *[!_^/] *|" x)
19718 nil) ; ignore this line
19719 ((or (string-match "^\\([ \t]*\\)|-+\\+" x)
19720 (string-match "^\\([ \t]*\\)|[^|]*|" x))
19721 ;; remove the first column
19722 (replace-match "\\1|" t nil x))
19723 (t (error "This should not happen"))))
17999 lines)))) 19724 lines))))
18000 19725
18001(defun org-fake-empty-table-line (line)
18002 "Replace everything except \"|\" with spaces."
18003 (let ((i (length line))
18004 (newstr (copy-sequence line)))
18005 (while (> i 0)
18006 (setq i (1- i))
18007 (if (not (eq (aref newstr i) ?|))
18008 (aset newstr i ?\ )))
18009 newstr))
18010
18011(defun org-format-table-table-html (lines) 19726(defun org-format-table-table-html (lines)
18012 "Format a table generated by table.el into HTML. 19727 "Format a table generated by table.el into HTML.
18013This conversion does *not* use `table-generate-source' from table.el. 19728This conversion does *not* use `table-generate-source' from table.el.
@@ -18024,17 +19739,21 @@ But it has the disadvantage, that no cell- or row-spanning is allowed."
18024 (progn 19739 (progn
18025 (if field-buffer 19740 (if field-buffer
18026 (progn 19741 (progn
18027 (setq html (concat 19742 (setq
18028 html 19743 html
18029 "<tr>" 19744 (concat
18030 (mapconcat 19745 html
18031 (lambda (x) 19746 "<tr>"
18032 (if (equal x "") (setq x empty)) 19747 (mapconcat
18033 (if head 19748 (lambda (x)
18034 (concat "<th>" x "</th>\n") 19749 (if (equal x "") (setq x empty))
18035 (concat "<td>" x "</td>\n"))) 19750 (if head
18036 field-buffer "\n") 19751 (concat (car org-export-table-header-tags) x
18037 "</tr>\n")) 19752 (cdr org-export-table-header-tags))
19753 (concat (car org-export-table-data-tags) x
19754 (cdr org-export-table-data-tags))))
19755 field-buffer "\n")
19756 "</tr>\n"))
18038 (setq head nil) 19757 (setq head nil)
18039 (setq field-buffer nil))) 19758 (setq field-buffer nil)))
18040 ;; Ignore this line 19759 ;; Ignore this line
@@ -18115,6 +19834,9 @@ But it has the disadvantage, that Org-mode's HTML conversions cannot be used."
18115 (when org-export-remove-timestamps-from-toc 19834 (when org-export-remove-timestamps-from-toc
18116 (while (string-match org-maybe-keyword-time-regexp s) 19835 (while (string-match org-maybe-keyword-time-regexp s)
18117 (setq s (replace-match "" t t s)))) 19836 (setq s (replace-match "" t t s))))
19837 (while (string-match org-bracket-link-regexp s)
19838 (setq s (replace-match (match-string (if (match-end 3) 3 1) s)
19839 t t s)))
18118 s) 19840 s)
18119 19841
18120(defun org-html-expand (string) 19842(defun org-html-expand (string)
@@ -18179,27 +19901,42 @@ stacked delimiters is N. Escaping delimiters is not possible."
18179 "\\(\\(?:\\*\\|[-+]?[^-+*!@#$%^_ \t\r\n,:\"?<>~;./{}=()]+\\)\\)\\)") 19901 "\\(\\(?:\\*\\|[-+]?[^-+*!@#$%^_ \t\r\n,:\"?<>~;./{}=()]+\\)\\)\\)")
18180 "The regular expression matching a sub- or superscript.") 19902 "The regular expression matching a sub- or superscript.")
18181 19903
19904;(let ((s "a\\_b"))
19905; (and (string-match org-match-substring-regexp s)
19906; (conca t (match-string 1 s) ":::" (match-string 2 s))))
19907
18182(defun org-export-html-convert-sub-super (string) 19908(defun org-export-html-convert-sub-super (string)
18183 "Convert sub- and superscripts in STRING to HTML." 19909 "Convert sub- and superscripts in STRING to HTML."
18184 (let (key c) 19910 (let (key c (s 0) (requireb (eq org-export-with-sub-superscripts '{})))
18185 (while (string-match org-match-substring-regexp string) 19911 (while (string-match org-match-substring-regexp string s)
18186 (setq key (if (string= (match-string 2 string) "_") "sub" "sup")) 19912 (if (and requireb (match-end 8))
18187 (setq c (or (match-string 8 string) 19913 (setq s (match-end 2))
18188 (match-string 6 string) 19914 (setq s (match-end 1)
18189 (match-string 5 string))) 19915 key (if (string= (match-string 2 string) "_") "sub" "sup")
18190 (setq string (replace-match 19916 c (or (match-string 8 string)
18191 (concat (match-string 1 string) 19917 (match-string 6 string)
18192 "<" key ">" c "</" key ">") 19918 (match-string 5 string))
18193 t t string))) 19919 string (replace-match
19920 (concat (match-string 1 string)
19921 "<" key ">" c "</" key ">")
19922 t t string))))
18194 (while (string-match "\\\\\\([_^]\\)" string) 19923 (while (string-match "\\\\\\([_^]\\)" string)
18195 (setq string (replace-match (match-string 1 string) t t string)))) 19924 (setq string (replace-match (match-string 1 string) t t string)))
18196 string) 19925 string))
18197 19926
18198(defun org-export-html-convert-emphasize (string) 19927(defun org-export-html-convert-emphasize (string)
18199 "Apply emphasis." 19928 "Apply emphasis."
18200 (while (string-match org-emph-re string) 19929 (let ((s 0))
18201 (setq string (replace-match (concat "\\1" (nth 2 (assoc (match-string 3 string) org-emphasis-alist)) "\\4" (nth 3 (assoc (match-string 3 string) org-emphasis-alist)) "\\5") t nil string))) 19930 (while (string-match org-emph-re string s)
18202 string) 19931 (if (not (equal
19932 (substring string (match-beginning 3) (1+ (match-beginning 3)))
19933 (substring string (match-beginning 4) (1+ (match-beginning 4)))))
19934 (setq string (replace-match
19935 (concat "\\1" (nth 2 (assoc (match-string 3 string) org-emphasis-alist))
19936 "\\4" (nth 3 (assoc (match-string 3 string) org-emphasis-alist))
19937 "\\5") t nil string))
19938 (setq s (1+ s))))
19939 string))
18203 19940
18204(defvar org-par-open nil) 19941(defvar org-par-open nil)
18205(defun org-open-par () 19942(defun org-open-par ()
@@ -18216,10 +19953,6 @@ stacked delimiters is N. Escaping delimiters is not possible."
18216 "Close <li> if necessary." 19953 "Close <li> if necessary."
18217 (org-close-par-maybe) 19954 (org-close-par-maybe)
18218 (insert "</li>\n")) 19955 (insert "</li>\n"))
18219; (when (save-excursion
18220; (re-search-backward "</?\\(ul\\|ol\\|li\\|[hH][0-9]\\)>" nil t))
18221; (if (member (match-string 0) '("</ul>" "</ol>" "<li>"))
18222; (insert "</li>"))))
18223 19956
18224(defun org-html-level-start (level title umax with-toc head-count) 19957(defun org-html-level-start (level title umax with-toc head-count)
18225 "Insert a new level in HTML export. 19958 "Insert a new level in HTML export.
@@ -18260,7 +19993,7 @@ When TITLE is nil, just close all open levels."
18260 (setq title (concat (org-section-number level) " " title))) 19993 (setq title (concat (org-section-number level) " " title)))
18261 (setq level (+ level org-export-html-toplevel-hlevel -1)) 19994 (setq level (+ level org-export-html-toplevel-hlevel -1))
18262 (if with-toc 19995 (if with-toc
18263 (insert (format "\n<h%d><a name=\"sec-%d\">%s</a></h%d>\n" 19996 (insert (format "\n<h%d id=\"sec-%d\">%s</h%d>\n"
18264 level head-count title level)) 19997 level head-count title level))
18265 (insert (format "\n<h%d>%s</h%d>\n" level title level))) 19998 (insert (format "\n<h%d>%s</h%d>\n" level title level)))
18266 (org-open-par))))) 19999 (org-open-par)))))
@@ -18268,7 +20001,7 @@ When TITLE is nil, just close all open levels."
18268(defun org-html-level-close (&rest args) 20001(defun org-html-level-close (&rest args)
18269 "Terminate one level in HTML export." 20002 "Terminate one level in HTML export."
18270 (org-close-li) 20003 (org-close-li)
18271 (insert "</ul>")) 20004 (insert "</ul>\n"))
18272 20005
18273;;; iCalendar export 20006;;; iCalendar export
18274 20007
@@ -18300,11 +20033,13 @@ The file is stored under the name `org-combined-agenda-icalendar-file'."
18300If COMBINE is non-nil, combine all calendar entries into a single large 20033If COMBINE is non-nil, combine all calendar entries into a single large
18301file and store it under the name `org-combined-agenda-icalendar-file'." 20034file and store it under the name `org-combined-agenda-icalendar-file'."
18302 (save-excursion 20035 (save-excursion
20036 (org-prepare-agenda-buffers files)
18303 (let* ((dir (org-export-directory 20037 (let* ((dir (org-export-directory
18304 :ical (list :publishing-directory 20038 :ical (list :publishing-directory
18305 org-export-publishing-directory))) 20039 org-export-publishing-directory)))
18306 file ical-file ical-buffer category started org-agenda-new-buffers) 20040 file ical-file ical-buffer category started org-agenda-new-buffers)
18307 20041
20042 (and (get-buffer "*ical-tmp*") (kill-buffer "*ical-tmp*"))
18308 (when combine 20043 (when combine
18309 (setq ical-file 20044 (setq ical-file
18310 (if (file-name-absolute-p org-combined-agenda-icalendar-file) 20045 (if (file-name-absolute-p org-combined-agenda-icalendar-file)
@@ -18349,70 +20084,112 @@ the iCalendar file.")
18349(defun org-print-icalendar-entries (&optional combine) 20084(defun org-print-icalendar-entries (&optional combine)
18350 "Print iCalendar entries for the current Org-mode file to `standard-output'. 20085 "Print iCalendar entries for the current Org-mode file to `standard-output'.
18351When COMBINE is non nil, add the category to each line." 20086When COMBINE is non nil, add the category to each line."
18352 (let ((re2 (concat "--?-?\\(" org-ts-regexp "\\)")) 20087 (let ((re1 (concat org-ts-regexp "\\|<%%([^>\n]+>"))
20088 (re2 (concat "--?-?\\(" org-ts-regexp "\\)"))
18353 (org-category-table (org-get-category-table)) 20089 (org-category-table (org-get-category-table))
18354 (dts (org-ical-ts-to-string 20090 (dts (org-ical-ts-to-string
18355 (format-time-string (cdr org-time-stamp-formats) (current-time)) 20091 (format-time-string (cdr org-time-stamp-formats) (current-time))
18356 "DTSTART")) 20092 "DTSTART"))
18357 hd ts ts2 state status (inc t) pos 20093 hd ts ts2 state status (inc t) pos b sexp rrule
18358 scheduledp deadlinep tmp pri category) 20094 scheduledp deadlinep tmp pri category
20095 (sexp-buffer (get-buffer-create "*ical-tmp*")))
18359 (save-excursion 20096 (save-excursion
18360 (goto-char (point-min)) 20097 (goto-char (point-min))
18361 (while (re-search-forward org-ts-regexp nil t) 20098 (while (re-search-forward re1 nil t)
18362 (setq pos (match-beginning 0) 20099 (catch :skip
18363 ts (match-string 0) 20100 (org-agenda-skip)
18364 inc t 20101 (setq pos (match-beginning 0)
18365 hd (org-get-heading) 20102 ts (match-string 0)
18366 category (org-get-category)) 20103 inc t
18367 (if (looking-at re2) 20104 hd (org-get-heading)
18368 (progn 20105 category (org-get-category))
18369 (goto-char (match-end 0)) 20106 (if (looking-at re2)
18370 (setq ts2 (match-string 1) inc nil)) 20107 (progn
18371 (setq ts2 ts 20108 (goto-char (match-end 0))
18372 tmp (buffer-substring (max (point-min) 20109 (setq ts2 (match-string 1) inc nil))
20110 (setq ts2 ts
20111 tmp (buffer-substring (max (point-min)
18373 (- pos org-ds-keyword-length)) 20112 (- pos org-ds-keyword-length))
18374 pos) 20113 pos)
18375 deadlinep (string-match org-deadline-regexp tmp) 20114 deadlinep (string-match org-deadline-regexp tmp)
18376 scheduledp (string-match org-scheduled-regexp tmp) 20115 scheduledp (string-match org-scheduled-regexp tmp)
18377 ;; donep (org-entry-is-done-p) 20116 ;; donep (org-entry-is-done-p)
18378 )) 20117 ))
18379 (if (or (string-match org-tr-regexp hd) 20118 (if (or (string-match org-tr-regexp hd)
18380 (string-match org-ts-regexp hd)) 20119 (string-match org-ts-regexp hd))
18381 (setq hd (replace-match "" t t hd))) 20120 (setq hd (replace-match "" t t hd)))
18382 (if (string-match org-bracket-link-regexp hd) 20121 (if (string-match "\\+\\([0-9]+\\)\\([dwmy]\\)>" ts)
18383 (setq hd (replace-match (if (match-end 3) (match-string 3 hd) 20122 (setq rrule
18384 (match-string 1 hd)) 20123 (concat "\nRRULE:FREQ="
18385 t t hd))) 20124 (cdr (assoc
18386 (if deadlinep (setq hd (concat "DL: " hd))) 20125 (match-string 2 ts)
18387 (if scheduledp (setq hd (concat "S: " hd))) 20126 '(("d" . "DAILY")("w" . "WEEKLY")
18388 (princ (format "BEGIN:VEVENT 20127 ("m" . "MONTHLY")("y" . "YEARLY"))))
18389%s 20128 ";INTERVAL=" (match-string 1 ts)))
20129 (setq rrule ""))
20130 (if (string-match org-bracket-link-regexp hd)
20131 (setq hd (replace-match (if (match-end 3) (match-string 3 hd)
20132 (match-string 1 hd))
20133 t t hd)))
20134 (if deadlinep (setq hd (concat "DL: " hd)))
20135 (if scheduledp (setq hd (concat "S: " hd)))
20136 (if (string-match "\\`<%%" ts)
20137 (with-current-buffer sexp-buffer
20138 (insert (substring ts 1 -1) " " hd "\n"))
20139 (princ (format "BEGIN:VEVENT
18390%s 20140%s
20141%s%s
18391SUMMARY:%s 20142SUMMARY:%s
18392CATEGORIES:%s 20143CATEGORIES:%s
18393END:VEVENT\n" 20144END:VEVENT\n"
18394 (org-ical-ts-to-string ts "DTSTART") 20145 (org-ical-ts-to-string ts "DTSTART")
18395 (org-ical-ts-to-string ts2 "DTEND" inc) 20146 (org-ical-ts-to-string ts2 "DTEND" inc)
18396 hd category))) 20147 rrule hd category)))))
20148
20149 (when (and org-icalendar-include-sexps
20150 (condition-case nil (require 'icalendar) (error nil))
20151 (fboundp 'icalendar-export-region))
20152 ;; Get all the literal sexps
20153 (goto-char (point-min))
20154 (while (re-search-forward "^&?%%(" nil t)
20155 (catch :skip
20156 (org-agenda-skip)
20157 (setq b (match-beginning 0))
20158 (goto-char (1- (match-end 0)))
20159 (forward-sexp 1)
20160 (end-of-line 1)
20161 (setq sexp (buffer-substring b (point)))
20162 (with-current-buffer sexp-buffer
20163 (insert sexp "\n"))
20164 (princ (org-diary-to-ical-string sexp-buffer)))))
20165
18397 (when org-icalendar-include-todo 20166 (when org-icalendar-include-todo
18398 (goto-char (point-min)) 20167 (goto-char (point-min))
18399 (while (re-search-forward org-todo-line-regexp nil t) 20168 (while (re-search-forward org-todo-line-regexp nil t)
18400 (setq state (match-string 2)) 20169 (catch :skip
18401 (setq status (if (equal state org-done-string) 20170 (org-agenda-skip)
18402 "COMPLETED" "NEEDS-ACTION")) 20171 (setq state (match-string 2))
18403 (when (and state 20172 (setq status (if (member state org-done-keywords)
18404 (or (not (equal state org-done-string)) 20173 "COMPLETED" "NEEDS-ACTION"))
18405 (eq org-icalendar-include-todo 'all))) 20174 (when (and state
18406 (setq hd (match-string 3)) 20175 (or (not (member state org-done-keywords))
18407 (if (string-match org-priority-regexp hd) 20176 (eq org-icalendar-include-todo 'all))
18408 (setq pri (string-to-char (match-string 2 hd)) 20177 (not (member org-archive-tag (org-get-tags-at)))
18409 hd (concat (substring hd 0 (match-beginning 1)) 20178 )
18410 (substring hd (match-end 1)))) 20179 (setq hd (match-string 3))
18411 (setq pri org-default-priority)) 20180 (if (string-match org-bracket-link-regexp hd)
18412 (setq pri (floor (1+ (* 8. (/ (float (- org-lowest-priority pri)) 20181 (setq hd (replace-match (if (match-end 3) (match-string 3 hd)
18413 (- org-lowest-priority ?A)))))) 20182 (match-string 1 hd))
18414 20183 t t hd)))
18415 (princ (format "BEGIN:VTODO 20184 (if (string-match org-priority-regexp hd)
20185 (setq pri (string-to-char (match-string 2 hd))
20186 hd (concat (substring hd 0 (match-beginning 1))
20187 (substring hd (match-end 1))))
20188 (setq pri org-default-priority))
20189 (setq pri (floor (1+ (* 8. (/ (float (- org-lowest-priority pri))
20190 (- org-lowest-priority org-highest-priority))))))
20191
20192 (princ (format "BEGIN:VTODO
18416%s 20193%s
18417SUMMARY:%s 20194SUMMARY:%s
18418CATEGORIES:%s 20195CATEGORIES:%s
@@ -18420,7 +20197,7 @@ SEQUENCE:1
18420PRIORITY:%d 20197PRIORITY:%d
18421STATUS:%s 20198STATUS:%s
18422END:VTODO\n" 20199END:VTODO\n"
18423 dts hd category pri status)))))))) 20200 dts hd category pri status)))))))))
18424 20201
18425(defun org-start-icalendar-file (name) 20202(defun org-start-icalendar-file (name)
18426 "Start an iCalendar file by inserting the header." 20203 "Start an iCalendar file by inserting the header."
@@ -18545,47 +20322,44 @@ The XOXO buffer is named *xoxo-<source buffer name>*"
18545 20322
18546;;;; Key bindings 20323;;;; Key bindings
18547 20324
18548;; - Bindings in Org-mode map are currently
18549;; 0123456789abcdefghijklmnopqrstuvwxyz!?@#$%^&-+*/=()_{}[]:;"|,.<>~`'\t the alphabet
18550;; abcd fgh j lmnopqrstuvwxyz!? #$ ^ -+*/= [] ; |,.<>~ '\t necessary bindings
18551;; e (?) useful from outline-mode
18552;; i k @ expendable from outline-mode
18553;; 0123456789 % & ()_{} " ` free
18554
18555;; Make `C-c C-x' a prefix key 20325;; Make `C-c C-x' a prefix key
18556(define-key org-mode-map "\C-c\C-x" (make-sparse-keymap)) 20326(org-defkey org-mode-map "\C-c\C-x" (make-sparse-keymap))
18557 20327
18558;; TAB key with modifiers 20328;; TAB key with modifiers
18559(define-key org-mode-map "\C-i" 'org-cycle) 20329(org-defkey org-mode-map "\C-i" 'org-cycle)
18560(define-key org-mode-map [(tab)] 'org-cycle) 20330(org-defkey org-mode-map [(tab)] 'org-cycle)
18561(define-key org-mode-map [(control tab)] 'org-force-cycle-archived) 20331(org-defkey org-mode-map [(control tab)] 'org-force-cycle-archived)
18562(define-key org-mode-map [(meta tab)] 'org-complete) 20332(org-defkey org-mode-map [(meta tab)] 'org-complete)
18563(define-key org-mode-map "\M-\t" 'org-complete) 20333(org-defkey org-mode-map "\M-\t" 'org-complete)
18564(define-key org-mode-map "\M-\C-i" 'org-complete) 20334(org-defkey org-mode-map "\M-\C-i" 'org-complete)
18565;; The following line is necessary under Suse GNU/Linux 20335;; The following line is necessary under Suse GNU/Linux
18566(unless (featurep 'xemacs) 20336(unless (featurep 'xemacs)
18567 (define-key org-mode-map [S-iso-lefttab] 'org-shifttab)) 20337 (org-defkey org-mode-map [S-iso-lefttab] 'org-shifttab))
18568(define-key org-mode-map [(shift tab)] 'org-shifttab) 20338(org-defkey org-mode-map [(shift tab)] 'org-shifttab)
20339(define-key org-mode-map (kbd "<backtab>") 'org-shifttab)
18569 20340
18570(define-key org-mode-map (org-key 'S-return) 'org-table-copy-down) 20341(org-defkey org-mode-map [(shift return)] 'org-table-copy-down)
18571(define-key org-mode-map [(meta shift return)] 'org-insert-todo-heading) 20342(org-defkey org-mode-map [(meta shift return)] 'org-insert-todo-heading)
18572(define-key org-mode-map [(meta return)] 'org-meta-return) 20343(org-defkey org-mode-map [(meta return)] 'org-meta-return)
18573 20344
18574;; Cursor keys with modifiers 20345;; Cursor keys with modifiers
18575(define-key org-mode-map [(meta left)] 'org-metaleft) 20346(org-defkey org-mode-map [(meta left)] 'org-metaleft)
18576(define-key org-mode-map [(meta right)] 'org-metaright) 20347(org-defkey org-mode-map [(meta right)] 'org-metaright)
18577(define-key org-mode-map [(meta up)] 'org-metaup) 20348(org-defkey org-mode-map [(meta up)] 'org-metaup)
18578(define-key org-mode-map [(meta down)] 'org-metadown) 20349(org-defkey org-mode-map [(meta down)] 'org-metadown)
18579 20350
18580(define-key org-mode-map [(meta shift left)] 'org-shiftmetaleft) 20351(org-defkey org-mode-map [(meta shift left)] 'org-shiftmetaleft)
18581(define-key org-mode-map [(meta shift right)] 'org-shiftmetaright) 20352(org-defkey org-mode-map [(meta shift right)] 'org-shiftmetaright)
18582(define-key org-mode-map [(meta shift up)] 'org-shiftmetaup) 20353(org-defkey org-mode-map [(meta shift up)] 'org-shiftmetaup)
18583(define-key org-mode-map [(meta shift down)] 'org-shiftmetadown) 20354(org-defkey org-mode-map [(meta shift down)] 'org-shiftmetadown)
18584 20355
18585(define-key org-mode-map (org-key 'S-up) 'org-shiftup) 20356(org-defkey org-mode-map [(shift up)] 'org-shiftup)
18586(define-key org-mode-map (org-key 'S-down) 'org-shiftdown) 20357(org-defkey org-mode-map [(shift down)] 'org-shiftdown)
18587(define-key org-mode-map (org-key 'S-left) 'org-shiftleft) 20358(org-defkey org-mode-map [(shift left)] 'org-shiftleft)
18588(define-key org-mode-map (org-key 'S-right) 'org-shiftright) 20359(org-defkey org-mode-map [(shift right)] 'org-shiftright)
20360
20361(org-defkey org-mode-map [(control shift right)] 'org-shiftcontrolright)
20362(org-defkey org-mode-map [(control shift left)] 'org-shiftcontrolleft)
18589 20363
18590;;; Extra keys for tty access. 20364;;; Extra keys for tty access.
18591;; We only set them when really needed because otherwise the 20365;; We only set them when really needed because otherwise the
@@ -18593,102 +20367,105 @@ The XOXO buffer is named *xoxo-<source buffer name>*"
18593 20367
18594(when (or (featurep 'xemacs) ;; because XEmacs supports multi-device stuff 20368(when (or (featurep 'xemacs) ;; because XEmacs supports multi-device stuff
18595 (not window-system)) 20369 (not window-system))
18596 (define-key org-mode-map "\C-c\C-xc" 'org-table-copy-down) 20370 (org-defkey org-mode-map "\C-c\C-xc" 'org-table-copy-down)
18597 (define-key org-mode-map "\C-c\C-xM" 'org-insert-todo-heading) 20371 (org-defkey org-mode-map "\C-c\C-xM" 'org-insert-todo-heading)
18598 (define-key org-mode-map "\C-c\C-xm" 'org-meta-return) 20372 (org-defkey org-mode-map "\C-c\C-xm" 'org-meta-return)
18599 (define-key org-mode-map [?\e (return)] 'org-meta-return) 20373 (org-defkey org-mode-map [?\e (return)] 'org-meta-return)
18600 (define-key org-mode-map [?\e (left)] 'org-metaleft) 20374 (org-defkey org-mode-map [?\e (left)] 'org-metaleft)
18601 (define-key org-mode-map "\C-c\C-xl" 'org-metaleft) 20375 (org-defkey org-mode-map "\C-c\C-xl" 'org-metaleft)
18602 (define-key org-mode-map [?\e (right)] 'org-metaright) 20376 (org-defkey org-mode-map [?\e (right)] 'org-metaright)
18603 (define-key org-mode-map "\C-c\C-xr" 'org-metaright) 20377 (org-defkey org-mode-map "\C-c\C-xr" 'org-metaright)
18604 (define-key org-mode-map [?\e (up)] 'org-metaup) 20378 (org-defkey org-mode-map [?\e (up)] 'org-metaup)
18605 (define-key org-mode-map "\C-c\C-xu" 'org-metaup) 20379 (org-defkey org-mode-map "\C-c\C-xu" 'org-metaup)
18606 (define-key org-mode-map [?\e (down)] 'org-metadown) 20380 (org-defkey org-mode-map [?\e (down)] 'org-metadown)
18607 (define-key org-mode-map "\C-c\C-xd" 'org-metadown) 20381 (org-defkey org-mode-map "\C-c\C-xd" 'org-metadown)
18608 (define-key org-mode-map "\C-c\C-xL" 'org-shiftmetaleft) 20382 (org-defkey org-mode-map "\C-c\C-xL" 'org-shiftmetaleft)
18609 (define-key org-mode-map "\C-c\C-xR" 'org-shiftmetaright) 20383 (org-defkey org-mode-map "\C-c\C-xR" 'org-shiftmetaright)
18610 (define-key org-mode-map "\C-c\C-xU" 'org-shiftmetaup) 20384 (org-defkey org-mode-map "\C-c\C-xU" 'org-shiftmetaup)
18611 (define-key org-mode-map "\C-c\C-xD" 'org-shiftmetadown) 20385 (org-defkey org-mode-map "\C-c\C-xD" 'org-shiftmetadown)
18612 (define-key org-mode-map [?\C-c ?\C-x (up)] 'org-shiftup) 20386 (org-defkey org-mode-map [?\C-c (up)] 'org-shiftup)
18613 (define-key org-mode-map [?\C-c ?\C-x (down)] 'org-shiftdown) 20387 (org-defkey org-mode-map [?\C-c (down)] 'org-shiftdown)
18614 (define-key org-mode-map [?\C-c ?\C-x (left)] 'org-shiftleft) 20388 (org-defkey org-mode-map [?\C-c (left)] 'org-shiftleft)
18615 (define-key org-mode-map [?\C-c ?\C-x (right)] 'org-shiftright)) 20389 (org-defkey org-mode-map [?\C-c (right)] 'org-shiftright)
20390 (org-defkey org-mode-map [?\C-c ?\C-x (right)] 'org-shiftcontrolright)
20391 (org-defkey org-mode-map [?\C-c ?\C-x (left)] 'org-shiftcontrolleft))
18616 20392
18617 ;; All the other keys 20393 ;; All the other keys
18618 20394
18619(define-key org-mode-map "\C-c\C-a" 'show-all) ; in case allout messed up. 20395(org-defkey org-mode-map "\C-c\C-a" 'show-all) ; in case allout messed up.
18620(define-key org-mode-map "\C-c\C-r" 'org-reveal) 20396(org-defkey org-mode-map "\C-c\C-r" 'org-reveal)
18621(define-key org-mode-map "\C-xns" 'org-narrow-to-subtree) 20397(org-defkey org-mode-map "\C-xns" 'org-narrow-to-subtree)
18622(define-key org-mode-map "\C-c$" 'org-archive-subtree) 20398(org-defkey org-mode-map "\C-c$" 'org-archive-subtree)
18623(define-key org-mode-map "\C-c\C-x\C-s" 'org-advertized-archive-subtree) 20399(org-defkey org-mode-map "\C-c\C-x\C-s" 'org-advertized-archive-subtree)
18624(define-key org-mode-map "\C-c\C-x\C-a" 'org-toggle-archive-tag) 20400(org-defkey org-mode-map "\C-c\C-x\C-a" 'org-toggle-archive-tag)
18625(define-key org-mode-map "\C-c\C-xb" 'org-tree-to-indirect-buffer) 20401(org-defkey org-mode-map "\C-c\C-xb" 'org-tree-to-indirect-buffer)
18626(define-key org-mode-map "\C-c\C-j" 'org-goto) 20402(org-defkey org-mode-map "\C-c\C-j" 'org-goto)
18627(define-key org-mode-map "\C-c\C-t" 'org-todo) 20403(org-defkey org-mode-map "\C-c\C-t" 'org-todo)
18628(define-key org-mode-map "\C-c\C-s" 'org-schedule) 20404(org-defkey org-mode-map "\C-c\C-s" 'org-schedule)
18629(define-key org-mode-map "\C-c\C-d" 'org-deadline) 20405(org-defkey org-mode-map "\C-c\C-d" 'org-deadline)
18630(define-key org-mode-map "\C-c;" 'org-toggle-comment) 20406(org-defkey org-mode-map "\C-c;" 'org-toggle-comment)
18631(define-key org-mode-map "\C-c\C-v" 'org-show-todo-tree) 20407(org-defkey org-mode-map "\C-c\C-v" 'org-show-todo-tree)
18632(define-key org-mode-map "\C-c\C-w" 'org-check-deadlines) 20408(org-defkey org-mode-map "\C-c\C-w" 'org-check-deadlines)
18633(define-key org-mode-map "\C-c/" 'org-occur) ; Minor-mode reserved 20409(org-defkey org-mode-map "\C-c/" 'org-occur) ; Minor-mode reserved
18634(define-key org-mode-map "\C-c\\" 'org-tags-sparse-tree) ; Minor-mode res. 20410(org-defkey org-mode-map "\C-c\\" 'org-tags-sparse-tree) ; Minor-mode res.
18635(define-key org-mode-map "\C-c\C-m" 'org-insert-heading) 20411(org-defkey org-mode-map "\C-c\C-m" 'org-ctrl-c-ret)
18636(define-key org-mode-map "\M-\C-m" 'org-insert-heading) 20412(org-defkey org-mode-map "\M-\C-m" 'org-insert-heading)
18637(define-key org-mode-map "\C-c\C-x\C-n" 'org-next-link) 20413(org-defkey org-mode-map "\C-c\C-x\C-n" 'org-next-link)
18638(define-key org-mode-map "\C-c\C-x\C-p" 'org-previous-link) 20414(org-defkey org-mode-map "\C-c\C-x\C-p" 'org-previous-link)
18639(define-key org-mode-map "\C-c\C-l" 'org-insert-link) 20415(org-defkey org-mode-map "\C-c\C-l" 'org-insert-link)
18640(define-key org-mode-map "\C-c\C-o" 'org-open-at-point) 20416(org-defkey org-mode-map "\C-c\C-o" 'org-open-at-point)
18641(define-key org-mode-map "\C-c%" 'org-mark-ring-push) 20417(org-defkey org-mode-map "\C-c%" 'org-mark-ring-push)
18642(define-key org-mode-map "\C-c&" 'org-mark-ring-goto) 20418(org-defkey org-mode-map "\C-c&" 'org-mark-ring-goto)
18643(define-key org-mode-map "\C-c\C-z" 'org-time-stamp) ; Alternative binding 20419(org-defkey org-mode-map "\C-c\C-z" 'org-time-stamp) ; Alternative binding
18644(define-key org-mode-map "\C-c." 'org-time-stamp) ; Minor-mode reserved 20420(org-defkey org-mode-map "\C-c." 'org-time-stamp) ; Minor-mode reserved
18645(define-key org-mode-map "\C-c!" 'org-time-stamp-inactive) ; Minor-mode r. 20421(org-defkey org-mode-map "\C-c!" 'org-time-stamp-inactive) ; Minor-mode r.
18646(define-key org-mode-map "\C-c," 'org-priority) ; Minor-mode reserved 20422(org-defkey org-mode-map "\C-c," 'org-priority) ; Minor-mode reserved
18647(define-key org-mode-map "\C-c\C-y" 'org-evaluate-time-range) 20423(org-defkey org-mode-map "\C-c\C-y" 'org-evaluate-time-range)
18648(define-key org-mode-map "\C-c>" 'org-goto-calendar) 20424(org-defkey org-mode-map "\C-c>" 'org-goto-calendar)
18649(define-key org-mode-map "\C-c<" 'org-date-from-calendar) 20425(org-defkey org-mode-map "\C-c<" 'org-date-from-calendar)
18650(define-key org-mode-map [(control ?,)] 'org-cycle-agenda-files) 20426(org-defkey org-mode-map [(control ?,)] 'org-cycle-agenda-files)
18651(define-key org-mode-map [(control ?\')] 'org-cycle-agenda-files) 20427(org-defkey org-mode-map [(control ?\')] 'org-cycle-agenda-files)
18652(define-key org-mode-map "\C-c[" 'org-agenda-file-to-front) 20428(org-defkey org-mode-map "\C-c[" 'org-agenda-file-to-front)
18653(define-key org-mode-map "\C-c]" 'org-remove-file) 20429(org-defkey org-mode-map "\C-c]" 'org-remove-file)
18654(define-key org-mode-map "\C-c-" 'org-table-insert-hline) 20430(org-defkey org-mode-map "\C-c-" 'org-table-insert-hline)
18655(define-key org-mode-map "\C-c^" 'org-sort) 20431(org-defkey org-mode-map "\C-c^" 'org-sort)
18656(define-key org-mode-map "\C-c\C-c" 'org-ctrl-c-ctrl-c) 20432(org-defkey org-mode-map "\C-c\C-c" 'org-ctrl-c-ctrl-c)
18657(define-key org-mode-map "\C-c#" 'org-update-checkbox-count) 20433(org-defkey org-mode-map "\C-c#" 'org-update-checkbox-count)
18658(define-key org-mode-map "\C-m" 'org-return) 20434(org-defkey org-mode-map "\C-m" 'org-return)
18659(define-key org-mode-map "\C-c?" 'org-table-field-info) 20435(org-defkey org-mode-map "\C-c?" 'org-table-field-info)
18660(define-key org-mode-map "\C-c " 'org-table-blank-field) 20436(org-defkey org-mode-map "\C-c " 'org-table-blank-field)
18661(define-key org-mode-map "\C-c+" 'org-table-sum) 20437(org-defkey org-mode-map "\C-c+" 'org-table-sum)
18662(define-key org-mode-map "\C-c=" 'org-table-eval-formula) 20438(org-defkey org-mode-map "\C-c=" 'org-table-eval-formula)
18663(define-key org-mode-map "\C-c'" 'org-table-edit-formulas) 20439(org-defkey org-mode-map "\C-c'" 'org-table-edit-formulas)
18664(define-key org-mode-map "\C-c`" 'org-table-edit-field) 20440(org-defkey org-mode-map "\C-c`" 'org-table-edit-field)
18665(define-key org-mode-map "\C-c|" 'org-table-create-or-convert-from-region) 20441(org-defkey org-mode-map "\C-c|" 'org-table-create-or-convert-from-region)
18666(define-key org-mode-map "\C-c*" 'org-table-recalculate) 20442(org-defkey org-mode-map "\C-c*" 'org-table-recalculate)
18667(define-key org-mode-map [(control ?#)] 'org-table-rotate-recalc-marks) 20443(org-defkey org-mode-map [(control ?#)] 'org-table-rotate-recalc-marks)
18668(define-key org-mode-map "\C-c~" 'org-table-create-with-table.el) 20444(org-defkey org-mode-map "\C-c~" 'org-table-create-with-table.el)
18669(define-key org-mode-map "\C-c\C-q" 'org-table-wrap-region) 20445(org-defkey org-mode-map "\C-c\C-q" 'org-table-wrap-region)
18670(define-key org-mode-map "\C-c}" 'org-table-toggle-coordinate-overlays) 20446(org-defkey org-mode-map "\C-c}" 'org-table-toggle-coordinate-overlays)
18671(define-key org-mode-map "\C-c{" 'org-table-toggle-formula-debugger) 20447(org-defkey org-mode-map "\C-c{" 'org-table-toggle-formula-debugger)
18672(define-key org-mode-map "\C-c\C-e" 'org-export) 20448(org-defkey org-mode-map "\C-c\C-e" 'org-export)
18673(define-key org-mode-map "\C-c:" 'org-toggle-fixed-width-section) 20449(org-defkey org-mode-map "\C-c:" 'org-toggle-fixed-width-section)
18674 20450(org-defkey org-mode-map "\C-c\C-x\C-f" 'org-emphasize)
18675(define-key org-mode-map "\C-c\C-x\C-k" 'org-cut-special) 20451
18676(define-key org-mode-map "\C-c\C-x\C-w" 'org-cut-special) 20452(org-defkey org-mode-map "\C-c\C-x\C-k" 'org-cut-special)
18677(define-key org-mode-map "\C-c\C-x\M-w" 'org-copy-special) 20453(org-defkey org-mode-map "\C-c\C-x\C-w" 'org-cut-special)
18678(define-key org-mode-map "\C-c\C-x\C-y" 'org-paste-special) 20454(org-defkey org-mode-map "\C-c\C-x\M-w" 'org-copy-special)
18679 20455(org-defkey org-mode-map "\C-c\C-x\C-y" 'org-paste-special)
18680(define-key org-mode-map "\C-c\C-x\C-t" 'org-toggle-time-stamp-overlays) 20456
18681(define-key org-mode-map "\C-c\C-x\C-i" 'org-clock-in) 20457(org-defkey org-mode-map "\C-c\C-x\C-t" 'org-toggle-time-stamp-overlays)
18682(define-key org-mode-map "\C-c\C-x\C-o" 'org-clock-out) 20458(org-defkey org-mode-map "\C-c\C-x\C-i" 'org-clock-in)
18683(define-key org-mode-map "\C-c\C-x\C-x" 'org-clock-cancel) 20459(org-defkey org-mode-map "\C-c\C-x\C-o" 'org-clock-out)
18684(define-key org-mode-map "\C-c\C-x\C-d" 'org-clock-display) 20460(org-defkey org-mode-map "\C-c\C-x\C-x" 'org-clock-cancel)
18685(define-key org-mode-map "\C-c\C-x\C-r" 'org-clock-report) 20461(org-defkey org-mode-map "\C-c\C-x\C-d" 'org-clock-display)
18686(define-key org-mode-map "\C-c\C-x\C-u" 'org-dblock-update) 20462(org-defkey org-mode-map "\C-c\C-x\C-r" 'org-clock-report)
18687(define-key org-mode-map "\C-c\C-x\C-l" 'org-preview-latex-fragment) 20463(org-defkey org-mode-map "\C-c\C-x\C-u" 'org-dblock-update)
18688(define-key org-mode-map "\C-c\C-x\C-b" 'org-toggle-checkbox) 20464(org-defkey org-mode-map "\C-c\C-x\C-l" 'org-preview-latex-fragment)
20465(org-defkey org-mode-map "\C-c\C-x\C-b" 'org-toggle-checkbox)
18689 20466
18690(when (featurep 'xemacs) 20467(when (featurep 'xemacs)
18691 (define-key org-mode-map 'button3 'popup-mode-menu)) 20468 (org-defkey org-mode-map 'button3 'popup-mode-menu))
18692 20469
18693(defsubst org-table-p () (org-at-table-p)) 20470(defsubst org-table-p () (org-at-table-p))
18694 20471
@@ -18779,7 +20556,6 @@ because, in this case the deletion might narrow the column."
18779(put 'org-delete-char 'flyspell-delayed t) 20556(put 'org-delete-char 'flyspell-delayed t)
18780(put 'org-delete-backward-char 'flyspell-delayed t) 20557(put 'org-delete-backward-char 'flyspell-delayed t)
18781 20558
18782
18783;; How to do this: Measure non-white length of current string 20559;; How to do this: Measure non-white length of current string
18784;; If equal to column width, we should realign. 20560;; If equal to column width, we should realign.
18785 20561
@@ -18790,7 +20566,7 @@ COMMANDS is a list of alternating OLDDEF NEWDEF command names."
18790 (while commands 20566 (while commands
18791 (setq old (pop commands) new (pop commands)) 20567 (setq old (pop commands) new (pop commands))
18792 (if (fboundp 'command-remapping) 20568 (if (fboundp 'command-remapping)
18793 (define-key map (vector 'remap old) new) 20569 (org-defkey map (vector 'remap old) new)
18794 (substitute-key-definition old new map global-map))))) 20570 (substitute-key-definition old new map global-map)))))
18795 20571
18796(when (eq org-enable-table-editor 'optimized) 20572(when (eq org-enable-table-editor 'optimized)
@@ -18800,7 +20576,7 @@ COMMANDS is a list of alternating OLDDEF NEWDEF command names."
18800 'self-insert-command 'org-self-insert-command 20576 'self-insert-command 'org-self-insert-command
18801 'delete-char 'org-delete-char 20577 'delete-char 'org-delete-char
18802 'delete-backward-char 'org-delete-backward-char) 20578 'delete-backward-char 'org-delete-backward-char)
18803 (define-key org-mode-map "|" 'org-force-self-insert)) 20579 (org-defkey org-mode-map "|" 'org-force-self-insert))
18804 20580
18805(defun org-shiftcursor-error () 20581(defun org-shiftcursor-error ()
18806 "Throw an error because Shift-Cursor command was applied in wrong context." 20582 "Throw an error because Shift-Cursor command was applied in wrong context."
@@ -18821,7 +20597,8 @@ See the individual commands for more information."
18821 20597
18822(defun org-shiftmetaleft () 20598(defun org-shiftmetaleft ()
18823 "Promote subtree or delete table column. 20599 "Promote subtree or delete table column.
18824Calls `org-promote-subtree' or `org-table-delete-column', depending on context. 20600Calls `org-promote-subtree', `org-outdent-item',
20601or `org-table-delete-column', depending on context.
18825See the individual commands for more information." 20602See the individual commands for more information."
18826 (interactive) 20603 (interactive)
18827 (cond 20604 (cond
@@ -18832,7 +20609,8 @@ See the individual commands for more information."
18832 20609
18833(defun org-shiftmetaright () 20610(defun org-shiftmetaright ()
18834 "Demote subtree or insert table column. 20611 "Demote subtree or insert table column.
18835Calls `org-demote-subtree' or `org-table-insert-column', depending on context. 20612Calls `org-demote-subtree', `org-indent-item',
20613or `org-table-insert-column', depending on context.
18836See the individual commands for more information." 20614See the individual commands for more information."
18837 (interactive) 20615 (interactive)
18838 (cond 20616 (cond
@@ -18916,8 +20694,8 @@ commands for more information."
18916 20694
18917(defun org-shiftup (&optional arg) 20695(defun org-shiftup (&optional arg)
18918 "Increase item in timestamp or increase priority of current headline. 20696 "Increase item in timestamp or increase priority of current headline.
18919Calls `org-timestamp-up' or `org-priority-up', depending on context. 20697Calls `org-timestamp-up' or `org-priority-up', or `org-previous-item',
18920See the individual commands for more information." 20698depending on context. See the individual commands for more information."
18921 (interactive "P") 20699 (interactive "P")
18922 (cond 20700 (cond
18923 ((org-at-timestamp-p t) (call-interactively 'org-timestamp-up)) 20701 ((org-at-timestamp-p t) (call-interactively 'org-timestamp-up))
@@ -18927,8 +20705,8 @@ See the individual commands for more information."
18927 20705
18928(defun org-shiftdown (&optional arg) 20706(defun org-shiftdown (&optional arg)
18929 "Decrease item in timestamp or decrease priority of current headline. 20707 "Decrease item in timestamp or decrease priority of current headline.
18930Calls `org-timestamp-down' or `org-priority-down', depending on context. 20708Calls `org-timestamp-down' or `org-priority-down', or `org-next-item'
18931See the individual commands for more information." 20709depending on context. See the individual commands for more information."
18932 (interactive "P") 20710 (interactive "P")
18933 (cond 20711 (cond
18934 ((org-at-timestamp-p t) (call-interactively 'org-timestamp-down)) 20712 ((org-at-timestamp-p t) (call-interactively 'org-timestamp-down))
@@ -18951,6 +20729,27 @@ See the individual commands for more information."
18951 ((org-on-heading-p) (org-call-with-arg 'org-todo 'left)) 20729 ((org-on-heading-p) (org-call-with-arg 'org-todo 'left))
18952 (t (org-shiftcursor-error)))) 20730 (t (org-shiftcursor-error))))
18953 20731
20732(defun org-shiftcontrolright ()
20733 "Switch to next TODO set."
20734 (interactive)
20735 (cond
20736 ((org-on-heading-p) (org-call-with-arg 'org-todo 'nextset))
20737 (t (org-shiftcursor-error))))
20738
20739(defun org-shiftcontrolleft ()
20740 "Switch to previous TODO set."
20741 (interactive)
20742 (cond
20743 ((org-on-heading-p) (org-call-with-arg 'org-todo 'previousset))
20744 (t (org-shiftcursor-error))))
20745
20746(defun org-ctrl-c-ret ()
20747 "Call `org-table-hline-and-move' or `org-insert-heading' dep. on context."
20748 (interactive)
20749 (cond
20750 ((org-at-table-p) (call-interactively 'org-table-hline-and-move))
20751 (t (call-interactively 'org-insert-heading))))
20752
18954(defun org-copy-special () 20753(defun org-copy-special ()
18955 "Copy region in table or copy current subtree. 20754 "Copy region in table or copy current subtree.
18956Calls `org-table-copy' or `org-copy-subtree', depending on context. 20755Calls `org-table-copy' or `org-copy-subtree', depending on context.
@@ -19159,7 +20958,11 @@ See the individual commands for more information."
19159 ["Next Same Level" outline-forward-same-level t] 20958 ["Next Same Level" outline-forward-same-level t]
19160 ["Previous Same Level" outline-backward-same-level t] 20959 ["Previous Same Level" outline-backward-same-level t]
19161 "--" 20960 "--"
19162 ["Jump" org-goto t]) 20961 ["Jump" org-goto t]
20962 "--"
20963 ["C-a finds headline start"
20964 (setq org-special-ctrl-a (not org-special-ctrl-a))
20965 :style toggle :selected org-special-ctrl-a])
19163 ("Edit Structure" 20966 ("Edit Structure"
19164 ["Move Subtree Up" org-shiftmetaup (not (org-at-table-p))] 20967 ["Move Subtree Up" org-shiftmetaup (not (org-at-table-p))]
19165 ["Move Subtree Down" org-shiftmetadown (not (org-at-table-p))] 20968 ["Move Subtree Down" org-shiftmetadown (not (org-at-table-p))]
@@ -19177,6 +20980,8 @@ See the individual commands for more information."
19177 "--" 20980 "--"
19178 ["Convert to odd levels" org-convert-to-odd-levels t] 20981 ["Convert to odd levels" org-convert-to-odd-levels t]
19179 ["Convert to odd/even levels" org-convert-to-oddeven-levels t]) 20982 ["Convert to odd/even levels" org-convert-to-oddeven-levels t])
20983 ("Editing"
20984 ["Emphasis..." org-emphasize t])
19180 ("Archive" 20985 ("Archive"
19181 ["Toggle ARCHIVE tag" org-toggle-archive-tag t] 20986 ["Toggle ARCHIVE tag" org-toggle-archive-tag t]
19182; ["Check and Tag Children" (org-toggle-archive-tag (4)) 20987; ["Check and Tag Children" (org-toggle-archive-tag (4))
@@ -19202,7 +21007,9 @@ See the individual commands for more information."
19202 ("Select keyword" 21007 ("Select keyword"
19203 ["Next keyword" org-shiftright (org-on-heading-p)] 21008 ["Next keyword" org-shiftright (org-on-heading-p)]
19204 ["Previous keyword" org-shiftleft (org-on-heading-p)] 21009 ["Previous keyword" org-shiftleft (org-on-heading-p)]
19205 ["Complete Keyword" org-complete (assq :todo-keyword (org-context))]) 21010 ["Complete Keyword" org-complete (assq :todo-keyword (org-context))]
21011 ["Next keyword set" org-shiftcontrolright (and (> (length org-todo-sets) 1) (org-on-heading-p))]
21012 ["Previous keyword set" org-shiftcontrolright (and (> (length org-todo-sets) 1) (org-on-heading-p))])
19206 ["Show TODO Tree" org-show-todo-tree t] 21013 ["Show TODO Tree" org-show-todo-tree t]
19207 ["Global TODO list" org-todo-list t] 21014 ["Global TODO list" org-todo-list t]
19208 "--" 21015 "--"
@@ -19210,6 +21017,7 @@ See the individual commands for more information."
19210 ["Priority Up" org-shiftup t] 21017 ["Priority Up" org-shiftup t]
19211 ["Priority Down" org-shiftdown t] 21018 ["Priority Down" org-shiftdown t]
19212 "--" 21019 "--"
21020 ;; FIXME: why is this still here????
19213; ["Insert Checkbox" org-insert-todo-heading (org-in-item-p)] 21021; ["Insert Checkbox" org-insert-todo-heading (org-in-item-p)]
19214; ["Toggle Checkbox" org-ctrl-c-ctrl-c (org-at-item-checkbox-p)] 21022; ["Toggle Checkbox" org-ctrl-c-ctrl-c (org-at-item-checkbox-p)]
19215; ["Insert [n/m] cookie" (progn (insert "[/]") (org-update-checkbox-count)) 21023; ["Insert [n/m] cookie" (progn (insert "[/]") (org-update-checkbox-count))
@@ -19245,7 +21053,7 @@ See the individual commands for more information."
19245 ["Record DONE time" 21053 ["Record DONE time"
19246 (progn (setq org-log-done (not org-log-done)) 21054 (progn (setq org-log-done (not org-log-done))
19247 (message "Switching to %s will %s record a timestamp" 21055 (message "Switching to %s will %s record a timestamp"
19248 org-done-string 21056 (car org-done-keywords)
19249 (if org-log-done "automatically" "not"))) 21057 (if org-log-done "automatically" "not")))
19250 :style toggle :selected org-log-done]) 21058 :style toggle :selected org-log-done])
19251 "--" 21059 "--"
@@ -19297,15 +21105,6 @@ See the individual commands for more information."
19297 ["Refresh setup" org-mode-restart t] 21105 ["Refresh setup" org-mode-restart t]
19298 )) 21106 ))
19299 21107
19300(defun org-toggle-log-option (type)
19301 (if (not (listp org-log-done)) (setq org-log-done nil))
19302 (if (memq type org-log-done)
19303 (setq org-log-done (delq type org-log-done))
19304 (add-to-list 'org-log-done type)))
19305
19306(defun org-check-log-option (type)
19307 (and (listp org-log-done) (memq type org-log-done)))
19308
19309(defun org-info (&optional node) 21108(defun org-info (&optional node)
19310 "Read documentation for Org-mode in the info system. 21109 "Read documentation for Org-mode in the info system.
19311With optional NODE, go directly to that node." 21110With optional NODE, go directly to that node."
@@ -19394,7 +21193,7 @@ and :keyword."
19394 (p (point)) clist o) 21193 (p (point)) clist o)
19395 ;; First the large context 21194 ;; First the large context
19396 (cond 21195 (cond
19397 ((org-on-heading-p) 21196 ((org-on-heading-p t)
19398 (push (list :headline (point-at-bol) (point-at-eol)) clist) 21197 (push (list :headline (point-at-bol) (point-at-eol)) clist)
19399 (when (progn 21198 (when (progn
19400 (beginning-of-line 1) 21199 (beginning-of-line 1)
@@ -19404,7 +21203,7 @@ and :keyword."
19404 (push (org-point-in-group p 4 :tags) clist)) 21203 (push (org-point-in-group p 4 :tags) clist))
19405 (goto-char p) 21204 (goto-char p)
19406 (skip-chars-backward "^[\n\r \t") (or (eobp) (backward-char 1)) 21205 (skip-chars-backward "^[\n\r \t") (or (eobp) (backward-char 1))
19407 (if (looking-at "\\[#[A-Z]\\]") 21206 (if (looking-at "\\[#[A-Z0-9]\\]")
19408 (push (org-point-in-group p 0 :priority) clist))) 21207 (push (org-point-in-group p 0 :priority) clist)))
19409 21208
19410 ((org-at-item-p) 21209 ((org-at-item-p)
@@ -19459,6 +21258,7 @@ and :keyword."
19459 (setq clist (nreverse (delq nil clist))) 21258 (setq clist (nreverse (delq nil clist)))
19460 clist)) 21259 clist))
19461 21260
21261;; FIXME Compare with at-regexp-p
19462(defun org-in-regexp (re &optional nlines visually) 21262(defun org-in-regexp (re &optional nlines visually)
19463 "Check if point is inside a match of regexp. 21263 "Check if point is inside a match of regexp.
19464Normally only the current line is checked, but you can include NLINES extra 21264Normally only the current line is checked, but you can include NLINES extra
@@ -19472,10 +21272,34 @@ really on, so that the block visually is on the match."
19472 (save-excursion 21272 (save-excursion
19473 (beginning-of-line (- 1 (or nlines 0))) 21273 (beginning-of-line (- 1 (or nlines 0)))
19474 (while (re-search-forward re eol t) 21274 (while (re-search-forward re eol t)
19475 (if (and (<= (match-beginning 0) pos) 21275 (if (and (<= (match-beginning 0) pos)
19476 (>= (+ inc (match-end 0)) pos)) 21276 (>= (+ inc (match-end 0)) pos))
19477 (throw 'exit (cons (match-beginning 0) (match-end 0))))))))) 21277 (throw 'exit (cons (match-beginning 0) (match-end 0)))))))))
19478 21278
21279(defun org-at-regexp-p (regexp)
21280 "Is point inside a match of REGEXP in the current line?"
21281 (catch 'exit
21282 (save-excursion
21283 (let ((pos (point)) (end (point-at-eol)))
21284 (beginning-of-line 1)
21285 (while (re-search-forward regexp end t)
21286 (if (and (<= (match-beginning 0) pos)
21287 (>= (match-end 0) pos))
21288 (throw 'exit t)))
21289 nil))))
21290
21291(defun org-uniquify (list)
21292 "Remove duplicate elements from LIST."
21293 (let (res)
21294 (mapc (lambda (x) (add-to-list 'res x 'append)) list)
21295 res))
21296
21297(defun org-delete-all (elts list)
21298 "Remove all elements in ELTS from LIST."
21299 (while elts
21300 (setq list (delete (pop elts) list)))
21301 list)
21302
19479(defun org-point-in-group (point group &optional context) 21303(defun org-point-in-group (point group &optional context)
19480 "Check if POINT is in match-group GROUP. 21304 "Check if POINT is in match-group GROUP.
19481If CONTEXT is non-nil, return a list with CONTEXT and the boundaries of the 21305If CONTEXT is non-nil, return a list with CONTEXT and the boundaries of the
@@ -19535,7 +21359,7 @@ The sequences in STRING may contain normal field width and padding information,
19535for example \"%-5s\". Replacements happen in the sequence given by TABLE, 21359for example \"%-5s\". Replacements happen in the sequence given by TABLE,
19536so values can contain further %-escapes if they are define later in TABLE." 21360so values can contain further %-escapes if they are define later in TABLE."
19537 (let ((case-fold-search nil) 21361 (let ((case-fold-search nil)
19538 e re rpl) 21362 e re rpl)
19539 (while (setq e (pop table)) 21363 (while (setq e (pop table))
19540 (setq re (concat "%-?[0-9.]*" (substring (car e) 1))) 21364 (setq re (concat "%-?[0-9.]*" (substring (car e) 1)))
19541 (while (string-match re string) 21365 (while (string-match re string)
@@ -19555,27 +21379,49 @@ Counting starts at 1."
19555 (setq c (1+ c))) 21379 (setq c (1+ c)))
19556 (nreverse rtn))) 21380 (nreverse rtn)))
19557 21381
19558(defun org-at-regexp-p (regexp)
19559 "Is point inside a match of REGEXP in the current line?"
19560 (catch 'exit
19561 (save-excursion
19562 (let ((pos (point)) (end (point-at-eol)))
19563 (beginning-of-line 1)
19564 (while (re-search-forward regexp end t)
19565 (if (and (<= (match-beginning 0) pos)
19566 (>= (match-end 0) pos))
19567 (throw 'exit t)))
19568 nil))))
19569
19570(defun org-find-base-buffer-visiting (file) 21382(defun org-find-base-buffer-visiting (file)
19571 "Like `find-buffer-visiting' but alway return the base buffer and 21383 "Like `find-buffer-visiting' but alway return the base buffer and
19572not an indirect buffer" 21384not an indirect buffer"
19573 (let ((buf (find-buffer-visiting file))) 21385 (let ((buf (find-buffer-visiting file)))
19574 (or (buffer-base-buffer buf) buf))) 21386 (or (buffer-base-buffer buf) buf)))
19575 21387
21388(defun org-image-file-name-regexp ()
21389 "Return regexp matching the file names of images."
21390 (if (fboundp 'image-file-name-regexp)
21391 (image-file-name-regexp)
21392 (let ((image-file-name-extensions
21393 '("png" "jpeg" "jpg" "gif" "tiff" "tif"
21394 "xbm" "xpm" "pbm" "pgm" "ppm")))
21395 (concat "\\."
21396 (regexp-opt (nconc (mapcar 'upcase
21397 image-file-name-extensions)
21398 image-file-name-extensions)
21399 t)
21400 "\\'"))))
21401
21402(defun org-file-image-p (file)
21403 "Return non-nil if FILE is an image."
21404 (save-match-data
21405 (string-match (org-image-file-name-regexp) file)))
21406
19576;;; Paragraph filling stuff. 21407;;; Paragraph filling stuff.
19577;; We want this to be just right, so use the full arsenal. 21408;; We want this to be just right, so use the full arsenal.
19578;; FIXME: configure filladapt for XEmacs 21409
21410(defun org-indent-line-function ()
21411 "Indent line like previous, but further if previous was headline or item."
21412 (interactive)
21413 (let ((column (save-excursion
21414 (beginning-of-line)
21415 (if (looking-at "#") 0
21416 (skip-chars-backward "\n \t")
21417 (beginning-of-line)
21418 (if (or (looking-at "\\*+[ \t]+")
21419 (looking-at "[ \t]*\\([-+*][ \t]+\\|[0-9]+[.)][ \t]+\\)"))
21420 (progn (goto-char (match-end 0)) (current-column))
21421 (current-indentation))))))
21422 (if (<= (current-column) (current-indentation))
21423 (indent-line-to column)
21424 (save-excursion (indent-line-to column)))))
19579 21425
19580(defun org-set-autofill-regexps () 21426(defun org-set-autofill-regexps ()
19581 (interactive) 21427 (interactive)
@@ -19584,6 +21430,7 @@ not an indirect buffer"
19584 ;; fill the headline as well. 21430 ;; fill the headline as well.
19585 (org-set-local 'comment-start-skip "^#+[ \t]*") 21431 (org-set-local 'comment-start-skip "^#+[ \t]*")
19586 (org-set-local 'paragraph-separate "\f\\|\\*\\|[ ]*$\\|[ \t]*[:|]") 21432 (org-set-local 'paragraph-separate "\f\\|\\*\\|[ ]*$\\|[ \t]*[:|]")
21433;; FIXME!!!!!!! (org-set-local 'paragraph-separate "\f\\|[ ]*$")
19587 ;; The paragraph starter includes hand-formatted lists. 21434 ;; The paragraph starter includes hand-formatted lists.
19588 (org-set-local 'paragraph-start 21435 (org-set-local 'paragraph-start
19589 "\f\\|[ ]*$\\|\\([*\f]+\\)\\|[ \t]*\\([-+*][ \t]+\\|[0-9]+[.)][ \t]+\\)\\|[ \t]*[:|]") 21436 "\f\\|[ ]*$\\|\\([*\f]+\\)\\|[ \t]*\\([-+*][ \t]+\\|[0-9]+[.)][ \t]+\\)\\|[ \t]*[:|]")
@@ -19627,30 +21474,12 @@ In particular, this makes sure hanging paragraphs for hand-formatted lists
19627work correctly." 21474work correctly."
19628 (cond ((looking-at "#[ \t]+") 21475 (cond ((looking-at "#[ \t]+")
19629 (match-string 0)) 21476 (match-string 0))
19630 ((looking-at " *\\([-*+] \\|[0-9]+[.)] \\)?") 21477 ((looking-at "[ \t]*\\([-*+] \\|[0-9]+[.)] \\)?")
19631 (make-string (- (match-end 0) (match-beginning 0)) ?\ )) 21478 (save-excursion
21479 (goto-char (match-end 0))
21480 (make-string (current-column) ?\ )))
19632 (t nil))) 21481 (t nil)))
19633 21482
19634
19635(defun org-image-file-name-regexp ()
19636 "Return regexp matching the file names of images."
19637 (if (fboundp 'image-file-name-regexp)
19638 (image-file-name-regexp)
19639 (let ((image-file-name-extensions
19640 '("png" "jpeg" "jpg" "gif" "tiff" "tif"
19641 "xbm" "xpm" "pbm" "pgm" "ppm")))
19642 (concat "\\."
19643 (regexp-opt (nconc (mapcar 'upcase
19644 image-file-name-extensions)
19645 image-file-name-extensions)
19646 t)
19647 "\\'"))))
19648
19649(defun org-file-image-p (file)
19650 "Return non-nil if FILE is an image."
19651 (save-match-data
19652 (string-match (org-image-file-name-regexp) file)))
19653
19654;;;; Functions extending outline functionality 21483;;;; Functions extending outline functionality
19655 21484
19656;; C-a should go to the beginning of a *visible* line, also in the 21485;; C-a should go to the beginning of a *visible* line, also in the
@@ -19659,15 +21488,22 @@ work correctly."
19659 "Go to the beginning of the current line. If that is invisible, continue 21488 "Go to the beginning of the current line. If that is invisible, continue
19660to a visible line beginning. This makes the function of C-a more intuitive." 21489to a visible line beginning. This makes the function of C-a more intuitive."
19661 (interactive) 21490 (interactive)
19662 (beginning-of-line 1) 21491 (let ((pos (point)))
19663 (if (bobp) 21492 (beginning-of-line 1)
19664 nil 21493 (if (bobp)
19665 (backward-char 1) 21494 nil
19666 (if (org-invisible-p) 21495 (backward-char 1)
19667 (while (and (not (bobp)) (org-invisible-p)) 21496 (if (org-invisible-p)
19668 (backward-char 1) 21497 (while (and (not (bobp)) (org-invisible-p))
19669 (beginning-of-line 1)) 21498 (backward-char 1)
19670 (forward-char 1)))) 21499 (beginning-of-line 1))
21500 (forward-char 1)))
21501 (when (and org-special-ctrl-a (looking-at org-todo-line-regexp)
21502 (= (char-after (match-end 1)) ?\ ))
21503 (goto-char
21504 (cond ((> pos (match-beginning 3)) (match-beginning 3))
21505 ((= pos (point)) (match-beginning 3))
21506 (t (point)))))))
19671 21507
19672(define-key org-mode-map "\C-a" 'org-beginning-of-line) 21508(define-key org-mode-map "\C-a" 'org-beginning-of-line)
19673 21509
@@ -19689,6 +21525,9 @@ to a visible line beginning. This makes the function of C-a more intuitive."
19689 21525
19690(defalias 'org-back-to-heading 'outline-back-to-heading) 21526(defalias 'org-back-to-heading 'outline-back-to-heading)
19691(defalias 'org-on-heading-p 'outline-on-heading-p) 21527(defalias 'org-on-heading-p 'outline-on-heading-p)
21528(defalias 'org-at-heading-p 'outline-on-heading-p)
21529(defun org-at-heading-or-item-p ()
21530 (or (org-on-heading-p) (org-at-item-p)))
19692 21531
19693(defun org-on-target-p () 21532(defun org-on-target-p ()
19694 (or (org-in-regexp org-radio-target-regexp) 21533 (or (org-in-regexp org-radio-target-regexp)
@@ -19751,7 +21590,7 @@ When ENTRY is non-nil, show the entire entry."
19751 (save-excursion (outline-end-of-heading) (point)) 21590 (save-excursion (outline-end-of-heading) (point))
19752 flag)))) 21591 flag))))
19753 21592
19754(defun org-end-of-subtree (&optional invisible-OK) 21593(defun org-end-of-subtree (&optional invisible-OK to-heading)
19755 ;; This is an exact copy of the original function, but it uses 21594 ;; This is an exact copy of the original function, but it uses
19756 ;; `org-back-to-heading', to make it work also in invisible 21595 ;; `org-back-to-heading', to make it work also in invisible
19757 ;; trees. And is uses an invisible-OK argument. 21596 ;; trees. And is uses an invisible-OK argument.
@@ -19763,13 +21602,14 @@ When ENTRY is non-nil, show the entire entry."
19763 (or first (> (funcall outline-level) level))) 21602 (or first (> (funcall outline-level) level)))
19764 (setq first nil) 21603 (setq first nil)
19765 (outline-next-heading)) 21604 (outline-next-heading))
19766 (if (memq (preceding-char) '(?\n ?\^M)) 21605 (unless to-heading
19767 (progn 21606 (if (memq (preceding-char) '(?\n ?\^M))
19768 ;; Go to end of line before heading 21607 (progn
19769 (forward-char -1) 21608 ;; Go to end of line before heading
19770 (if (memq (preceding-char) '(?\n ?\^M)) 21609 (forward-char -1)
19771 ;; leave blank line before heading 21610 (if (memq (preceding-char) '(?\n ?\^M))
19772 (forward-char -1))))) 21611 ;; leave blank line before heading
21612 (forward-char -1))))))
19773 (point)) 21613 (point))
19774 21614
19775(defun org-show-subtree () 21615(defun org-show-subtree ()
@@ -19824,7 +21664,13 @@ Show the heading too, if it is currently invisible."
19824 (remove-hook 'post-command-hook 'org-isearch-post-command 'local) 21664 (remove-hook 'post-command-hook 'org-isearch-post-command 'local)
19825 (org-show-context 'isearch)) 21665 (org-show-context 'isearch))
19826 21666
19827;;;; Repair problems with some other packages 21667
21668;;;; Address problems with some other packages
21669
21670;; Make flyspell not check words in links, to not mess up our keymap
21671(defun org-mode-flyspell-verify ()
21672 "Don't let flyspell put overlays at active buttons."
21673 (not (get-text-property (point) 'keymap)))
19828 21674
19829;; Make `bookmark-jump' show the jump location if it was hidden. 21675;; Make `bookmark-jump' show the jump location if it was hidden.
19830(eval-after-load "bookmark" 21676(eval-after-load "bookmark"
@@ -19850,6 +21696,26 @@ Show the heading too, if it is currently invisible."
19850 21696
19851;;;; Experimental code 21697;;;; Experimental code
19852 21698
21699(defun org-closed-in-range ()
21700 "Sparse tree of items closed in a certain time range.
21701Still experimental, may disappear in the furture."
21702 (interactive)
21703 ;; Get the time interval from the user.
21704 (let* ((time1 (time-to-seconds
21705 (org-read-date nil 'to-time nil "Starting date: ")))
21706 (time2 (time-to-seconds
21707 (org-read-date nil 'to-time nil "End date:")))
21708 ;; callback function
21709 (callback (lambda ()
21710 (let ((time
21711 (time-to-seconds
21712 (apply 'encode-time
21713 (org-parse-time-string
21714 (match-string 1))))))
21715 ;; check if time in interval
21716 (and (>= time time1) (<= time time2))))))
21717 ;; make tree, check each match with the callback
21718 (org-occur "CLOSED: +\\[\\(.*?\\)\\]" nil callback)))
19853 21719
19854;;;; Finish up 21720;;;; Finish up
19855 21721
diff --git a/lisp/tutorial.el b/lisp/tutorial.el
index 4856d178056..384b9b8415c 100644
--- a/lisp/tutorial.el
+++ b/lisp/tutorial.el
@@ -155,9 +155,9 @@ options:
155 " RET instead.")) 155 " RET instead."))
156 (insert "\n\nWith your current key bindings" 156 (insert "\n\nWith your current key bindings"
157 " you can use " 157 " you can use "
158 (if (string-equal "the menus" where) 158 (if (string-match "^the .*menus?$" where)
159 "" 159 ""
160 "the key ") 160 "the key")
161 where 161 where
162 " to get the function `" 162 " to get the function `"
163 (format "%s" db) 163 (format "%s" db)
@@ -406,7 +406,7 @@ where
406 WHERE is a text describing the key sequences to which DEF-FUN is 406 WHERE is a text describing the key sequences to which DEF-FUN is
407 bound now (or, if it is remapped, a key sequence 407 bound now (or, if it is remapped, a key sequence
408 for the function it is remapped to) 408 for the function it is remapped to)
409 REMARK is a list with info about rebinding. It has either of 409 REMARK is a list with info about rebinding. It has either of
410 these formats: 410 these formats:
411 411
412 \(TEXT cua-mode) 412 \(TEXT cua-mode)
@@ -434,14 +434,26 @@ where
434 (key-fun (if (eq def-fun 'ESC-prefix) 434 (key-fun (if (eq def-fun 'ESC-prefix)
435 (lookup-key global-map [27]) 435 (lookup-key global-map [27])
436 (key-binding key))) 436 (key-binding key)))
437 (where (where-is-internal (if rem-fun rem-fun def-fun)))) 437 (where (where-is-internal (if rem-fun rem-fun def-fun)))
438 cwhere)
438 (if where 439 (if where
439 (progn 440 (progn
440 (setq where (key-description (car where))) 441 (setq cwhere (car where)
442 where (key-description cwhere))
441 (when (and (< 10 (length where)) 443 (when (and (< 10 (length where))
442 (string= (substring where 0 (length "<menu-bar>")) 444 (string= (substring where 0 (length "<menu-bar>"))
443 "<menu-bar>")) 445 "<menu-bar>"))
444 (setq where "the menus"))) 446 (setq where
447 (if (and (vectorp cwhere)
448 (setq cwhere (elt cwhere 1))
449 (setq cwhere
450 (cadr
451 (assoc cwhere
452 (lookup-key global-map
453 [menu-bar]))))
454 (stringp cwhere))
455 (format "the `%s' menu" cwhere)
456 "the menus"))))
445 (setq where "")) 457 (setq where ""))
446 (setq remark nil) 458 (setq remark nil)
447 (unless 459 (unless
@@ -915,7 +927,7 @@ See `get-lang-string' for more information.")
915In certain places Emacs can replace a string shown to the user with 927In certain places Emacs can replace a string shown to the user with
916a language specific string. This function retrieves such strings. 928a language specific string. This function retrieves such strings.
917 929
918LANG is the language specification. It should be one of those 930LANG is the language specification. It should be one of those
919strings that can be returned by `read-language-name'. STRINGID 931strings that can be returned by `read-language-name'. STRINGID
920is a symbol that specifies the string to retrieve. 932is a symbol that specifies the string to retrieve.
921 933
diff --git a/lisp/version.el b/lisp/version.el
index f3cfe90a9df..5bf987c156d 100644
--- a/lisp/version.el
+++ b/lisp/version.el
@@ -27,6 +27,9 @@
27 27
28;;; Code: 28;;; Code:
29 29
30(defconst emacs-copyright "Copyright (C) 2007 Free Software Foundation, Inc."
31 "Short copyright string for this version of Emacs.")
32
30(defconst emacs-version "23.0.0" "\ 33(defconst emacs-version "23.0.0" "\
31Version numbers of this version of Emacs.") 34Version numbers of this version of Emacs.")
32 35
diff --git a/lispintro/ChangeLog b/lispintro/ChangeLog
index 7000f1fca19..2e08725df69 100644
--- a/lispintro/ChangeLog
+++ b/lispintro/ChangeLog
@@ -1,3 +1,7 @@
12007-06-02 Chong Yidong <cyd@stupidchicken.com>
2
3 * Version 22.1 released.
4
12007-01-30 Robert J. Chassell <bob@rattlesnake.com> 52007-01-30 Robert J. Chassell <bob@rattlesnake.com>
2 6
3 * emacs-lisp-intro.texi (else): Rephrase message of first 7 * emacs-lisp-intro.texi (else): Rephrase message of first
diff --git a/lispref/ChangeLog b/lispref/ChangeLog
index a9d931d3140..7802c74f054 100644
--- a/lispref/ChangeLog
+++ b/lispref/ChangeLog
@@ -1,9 +1,31 @@
12007-06-03 Nick Roberts <nickrob@snap.net.nz>
2
3 * commands.texi (Click Events): Describe width and height when
4 object is nil.
5
12007-05-30 Nick Roberts <nickrob@snap.net.nz> 62007-05-30 Nick Roberts <nickrob@snap.net.nz>
2 7
3 * commands.texi (Click Events): Layout more logically. Describe 8 * commands.texi (Click Events): Layout more logically. Describe
4 width and height. 9 width and height.
5 (Drag Events, Motion Events): Update to new format for position. 10 (Drag Events, Motion Events): Update to new format for position.
6 11
122007-06-02 Richard Stallman <rms@gnu.org>
13
14 * frames.texi (Color Parameters): Add xref to (emacs)Standard Faces.
15
162007-06-02 Chong Yidong <cyd@stupidchicken.com>
17
18 * Version 22.1 released.
19
202007-06-01 Stefan Monnier <monnier@iro.umontreal.ca>
21
22 * text.texi (Special Properties): Correct meaning of fontified
23 face.
24
252007-05-30 Richard Stallman <rms@gnu.org>
26
27 * text.texi (Special Properties): Add link to Adjusting Point.
28
72007-05-12 Richard Stallman <rms@gnu.org> 292007-05-12 Richard Stallman <rms@gnu.org>
8 30
9 * text.texi (Margins): indent-to-left-margin is not the default. 31 * text.texi (Margins): indent-to-left-margin is not the default.
diff --git a/lispref/commands.texi b/lispref/commands.texi
index 10f4555e1f0..fabe38f9428 100644
--- a/lispref/commands.texi
+++ b/lispref/commands.texi
@@ -1225,7 +1225,7 @@ input stream. @xref{Key Sequence Input}.
1225 1225
1226 1226
1227@item @var{x}, @var{y} 1227@item @var{x}, @var{y}
1228These are the pixel-denominated coordinates of the click, relative to 1228These are the pixel coordinates of the click, relative to
1229the top left corner of @var{window}, which is @code{(0 . 0)}. 1229the top left corner of @var{window}, which is @code{(0 . 0)}.
1230For the mode or header line, @var{y} does not have meaningful data. 1230For the mode or header line, @var{y} does not have meaningful data.
1231For the vertical line, @var{x} does not have meaningful data. 1231For the vertical line, @var{x} does not have meaningful data.
@@ -1266,13 +1266,14 @@ This is the image object on which the click occurred. It is either
1266an image object as returned by @code{find-image} if click was in an image. 1266an image object as returned by @code{find-image} if click was in an image.
1267 1267
1268@item @var{dx}, @var{dy} 1268@item @var{dx}, @var{dy}
1269These are the pixel-denominated coordinates of the click, relative to 1269These are the pixel coordinates of the click, relative to
1270the top left corner of @var{object}, which is @code{(0 . 0)}. If 1270the top left corner of @var{object}, which is @code{(0 . 0)}. If
1271@var{object} is @code{nil}, the coordinates are relative to the top 1271@var{object} is @code{nil}, the coordinates are relative to the top
1272left corner of the character glyph clicked on. 1272left corner of the character glyph clicked on.
1273 1273
1274@item @var{width}, @var{height} 1274@item @var{width}, @var{height}
1275These are the pixel-denominated width and height of @var{object}. 1275These are the pixel width and height of @var{object} or, if this is
1276@code{nil}, those of the character glyph clicked on.
1276@end table 1277@end table
1277 1278
1278@sp 1 1279@sp 1
diff --git a/lispref/display.texi b/lispref/display.texi
index acf927b449f..f644a02c2eb 100644
--- a/lispref/display.texi
+++ b/lispref/display.texi
@@ -2505,8 +2505,9 @@ makes @code{modeline} an alias for the @code{mode-line} face.
2505@cindex automatic face assignment 2505@cindex automatic face assignment
2506@cindex faces, automatic choice 2506@cindex faces, automatic choice
2507 2507
2508 This hook is used for automatically assigning faces to text in the 2508 This hook is used for automatically assigning facesto text in the
2509buffer. It is part of the implementation of Font-Lock mode. 2509buffer. It is part of the implementation of Jit-Lock mode, used by
2510Font-Lock.
2510 2511
2511@defvar fontification-functions 2512@defvar fontification-functions
2512This variable holds a list of functions that are called by Emacs 2513This variable holds a list of functions that are called by Emacs
diff --git a/lispref/elisp.texi b/lispref/elisp.texi
index acc963d96fd..accfe05c27d 100644
--- a/lispref/elisp.texi
+++ b/lispref/elisp.texi
@@ -7,7 +7,7 @@
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.990 10@set EMACSVER 22.1.50
11 11
12@dircategory Emacs 12@dircategory Emacs
13@direntry 13@direntry
diff --git a/lispref/frames.texi b/lispref/frames.texi
index 527f27385f3..b8a0d4749e2 100644
--- a/lispref/frames.texi
+++ b/lispref/frames.texi
@@ -706,6 +706,7 @@ results for LCD color displays.
706 706
707These frame parameters are semi-obsolete in that they are automatically 707These frame parameters are semi-obsolete in that they are automatically
708equivalent to particular face attributes of particular faces. 708equivalent to particular face attributes of particular faces.
709@xref{Standard Faces,,, emacs, The Emacs Manual}.
709 710
710@table @code 711@table @code
711@item font 712@item font
diff --git a/lispref/text.texi b/lispref/text.texi
index 8fb155d2109..f05a0cd696a 100644
--- a/lispref/text.texi
+++ b/lispref/text.texi
@@ -2951,6 +2951,11 @@ meanings. The following sections list a few additional special property
2951names that control filling and property inheritance. All other names 2951names that control filling and property inheritance. All other names
2952have no standard meaning, and you can use them as you like. 2952have no standard meaning, and you can use them as you like.
2953 2953
2954 Note: the properties @code{composition}, @code{display},
2955@code{invisible} and @code{intangible} can also cause point to move to
2956an acceptable place, after each Emacs command. @xref{Adjusting
2957Point}.
2958
2954@table @code 2959@table @code
2955@cindex property category of text character 2960@cindex property category of text character
2956@kindex category @r{(text property)} 2961@kindex category @r{(text property)}
@@ -3019,24 +3024,11 @@ that all text between the character and where the mouse is have the same
3019 3024
3020@item fontified 3025@item fontified
3021@kindex fontified @r{(text property)} 3026@kindex fontified @r{(text property)}
3022This property says whether the character has a face assigned to it by font 3027This property says whether the text is ready for display. If
3023locking. The display engine tests it to decide whether a buffer 3028@code{nil}, Emacs's redisplay routine calls the functions in
3024portion needs refontifying before display. @xref{Auto Faces}. It 3029@code{fontification-functions} (@pxref{Auto Faces}) to prepare this
3025takes one of three values: 3030part of the buffer before it is displayed. It is used internally by
3026 3031the ``just in time'' font locking code.
3027@table @asis
3028@item @code{nil}
3029Font locking is disabled, or the character's @code{face} property, if
3030any, is invalid.
3031
3032@item @code{defer}
3033This value is only used when ``just in time'' font locking is enabled
3034and it means that the character's @code{face} property is invalid and
3035needs deferred fontification.
3036
3037@item @code{t}
3038The character's @code{face} property, or absence of one, is valid.
3039@end table
3040 3032
3041@item display 3033@item display
3042This property activates various features that change the 3034This property activates various features that change the
@@ -3138,6 +3130,10 @@ If you try to move point forward into the group, point actually moves to
3138the end of the group. If you try to move point backward into the group, 3130the end of the group. If you try to move point backward into the group,
3139point actually moves to the start of the group. 3131point actually moves to the start of the group.
3140 3132
3133If consecutive characters have unequal non-@code{nil}
3134@code{intangible} properties, they belong to separate groups; each
3135group is separately treated as described above.
3136
3141When the variable @code{inhibit-point-motion-hooks} is non-@code{nil}, 3137When the variable @code{inhibit-point-motion-hooks} is non-@code{nil},
3142the @code{intangible} property is ignored. 3138the @code{intangible} property is ignored.
3143 3139
diff --git a/lwlib/ChangeLog b/lwlib/ChangeLog
index 5396754d142..f6764e87e17 100644
--- a/lwlib/ChangeLog
+++ b/lwlib/ChangeLog
@@ -1,3 +1,7 @@
12007-06-02 Chong Yidong <cyd@stupidchicken.com>
2
3 * Version 22.1 released.
4
12007-02-28 Glenn Morris <rgm@gnu.org> 52007-02-28 Glenn Morris <rgm@gnu.org>
2 6
3 * Makefile.in (distclean): Delete Makefile. 7 * Makefile.in (distclean): Delete Makefile.
diff --git a/mac/ChangeLog b/mac/ChangeLog
index 5ce1044bc23..5413a1f04bb 100644
--- a/mac/ChangeLog
+++ b/mac/ChangeLog
@@ -1,3 +1,7 @@
12007-06-02 Chong Yidong <cyd@stupidchicken.com>
2
3 * Version 22.1 released.
4
12007-05-24 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 52007-05-24 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2 6
3 * INSTALL: Add note about moving self-contained application bundle 7 * INSTALL: Add note about moving self-contained application bundle
diff --git a/man/ChangeLog b/man/ChangeLog
index d6ebb72db4b..e216f6ab7c3 100644
--- a/man/ChangeLog
+++ b/man/ChangeLog
@@ -1,10 +1,33 @@
12007-05-28 Michael Albinus <michael.albinus@gmx.de> 12007-06-06 Andreas Seltenreich <andreas@gate450.dyndns.org>
2
3 * gnus.texi (Misc Group Stuff, Summary Buffer)
4 (Server Commands, Article Keymap): Fix typo. s/function/command/.
5
62007-06-07 Alan Mackenzie <acm@muc.de>
7
8 * display.texi (Optional Mode Line): Document the new form of
9 line+column numbers, "(561,2)".
10
112007-06-06 Juanma Barranquero <lekktu@gmail.com>
12
13 * cc-mode.texi (Comment Commands, Getting Started, Style Variables):
14 * gnus.texi (Article Buttons, Mail Source Customization)
15 (Sending or Not Sending, Customizing NNDiary):
16 * maintaining.texi (Create Tags Table):
17 * message.texi (Message Headers):
18 * mh-e.texi (HTML): Fix typos.
19
202007-06-07 Michael Albinus <michael.albinus@gmx.de>
2 21
3 Sync with Tramp 2.0.56. 22 Sync with Tramp 2.0.56.
4 23
5 * tramp.texi (Frequently Asked Questions): Improve ~/.zshrc 24 * tramp.texi (Frequently Asked Questions): Improve ~/.zshrc
6 settings. Reported by Ted Zlatanov <tzz@lifelogs.com>. 25 settings. Reported by Ted Zlatanov <tzz@lifelogs.com>.
7 26
272007-06-02 Chong Yidong <cyd@stupidchicken.com>
28
29 * Version 22.1 released.
30
82007-05-26 Michael Olson <mwolson@gnu.org> 312007-05-26 Michael Olson <mwolson@gnu.org>
9 32
10 * erc.texi (Modules): Fix references to completion modules. 33 * erc.texi (Modules): Fix references to completion modules.
@@ -15,12 +38,12 @@
15 38
162007-05-09 Didier Verna <didier@xemacs.org> 392007-05-09 Didier Verna <didier@xemacs.org>
17 40
18 * gnus.texi (Email Based Diary): New. Proper documentation for the 41 * gnus.texi (Email Based Diary): New. Proper documentation for the
19 nndiary back end and the gnus-diary library. 42 nndiary back end and the gnus-diary library.
20 43
212007-05-07 Karl Berry <karl@gnu.org> 442007-05-07 Karl Berry <karl@gnu.org>
22 45
23 * emacs.texi (EMACSVER): back to 22. 46 * emacs.texi (EMACSVER): Back to 22.
24 47
252007-05-06 Richard Stallman <rms@gnu.org> 482007-05-06 Richard Stallman <rms@gnu.org>
26 49
@@ -39,9 +62,9 @@
39 62
40 * emacs.texi (EMACSVER) [smallbook]: 22 for printed version. 63 * emacs.texi (EMACSVER) [smallbook]: 22 for printed version.
41 64
42 * .cvsignore (*.pdf): new entry. 65 * .cvsignore (*.pdf): New entry.
43 66
44 * texinfo.tex: update from current version for better pdf generation. 67 * texinfo.tex: Update from current version for better pdf generation.
45 68
46 * emacs.texi (\urlcolor, \linkcolor) [smallbook]: \let to \Black 69 * emacs.texi (\urlcolor, \linkcolor) [smallbook]: \let to \Black
47 for printing. 70 for printing.
@@ -1375,9 +1398,9 @@
1375 * emacs.texi (\hbadness): Set to 6000 so we aren't bothered by 1398 * emacs.texi (\hbadness): Set to 6000 so we aren't bothered by
1376 not-too-underfull hboxes in the TeX output. 1399 not-too-underfull hboxes in the TeX output.
1377 * abbrevs.texi, buffers.texi, building.texi, calendar.texi, 1400 * abbrevs.texi, buffers.texi, building.texi, calendar.texi,
1378 cmdargs.texi, custom.texi, dired.texi, macos.texi, 1401 * cmdargs.texi, custom.texi, dired.texi, macos.texi,
1379 maintaining.texi, misc.texi, mule.texi, programs.texi, rmail.texi, 1402 * maintaining.texi, misc.texi, mule.texi, programs.texi, rmail.texi,
1380 sending.texi, text.texi: fix overfull/underfull boxes. 1403 * sending.texi, text.texi: Fix overfull/underfull boxes.
1381 1404
13822006-07-03 Romain Francoise <romain@orebokech.com> 14052006-07-03 Romain Francoise <romain@orebokech.com>
1383 1406
@@ -1460,7 +1483,7 @@
1460 1483
14612006-06-25 Nick Roberts <nickrob@snap.net.nz> 14842006-06-25 Nick Roberts <nickrob@snap.net.nz>
1462 1485
1463 * frames.texi (XTerm Mouse) Rename to... 1486 * frames.texi (XTerm Mouse): Rename to...
1464 (Text-Only Mouse): ...this. Mention t-mouse-mode. 1487 (Text-Only Mouse): ...this. Mention t-mouse-mode.
1465 1488
1466 * emacs.texi (Top): Use new node name. 1489 * emacs.texi (Top): Use new node name.
@@ -1803,7 +1826,7 @@
18032006-05-06 Eli Zaretskii <eliz@gnu.org> 18262006-05-06 Eli Zaretskii <eliz@gnu.org>
1804 1827
1805 * makefile.w32-in (emacs.dvi): 1828 * makefile.w32-in (emacs.dvi):
1806 * Makefile.in (emacs.dvi): Add xresmini.texi 1829 * Makefile.in (emacs.dvi): Add xresmini.texi.
1807 1830
1808 * xresmini.texi (Table of Resources): Remove xref to non-existent 1831 * xresmini.texi (Table of Resources): Remove xref to non-existent
1809 node "LessTif Resources". 1832 node "LessTif Resources".
@@ -1889,7 +1912,7 @@
1889 Next, and Up links. 1912 Next, and Up links.
1890 1913
1891 * emacs.texi (Top) [ifnottex]: Add menu entries for "Picture Mode" 1914 * emacs.texi (Top) [ifnottex]: Add menu entries for "Picture Mode"
1892 and its sections. @include picture-xtra.texi 1915 and its sections. @include picture-xtra.texi.
1893 1916
1894 * maintaining.texi (Maintaining) [ifnottex]: Add menu entry for 1917 * maintaining.texi (Maintaining) [ifnottex]: Add menu entry for
1895 "Emerge". 1918 "Emerge".
@@ -1944,11 +1967,11 @@
1944 1967
19452006-05-05 Karl Berry <karl@gnu.org> 19682006-05-05 Karl Berry <karl@gnu.org>
1946 1969
1947 * texinfo.tex (\definetextfonsizexi, \definetextfonsizex): new cmds. 1970 * texinfo.tex (\definetextfonsizexi, \definetextfonsizex): New cmds.
1948 (\fonttextsize): new user-level command to change text font size. 1971 (\fonttextsize): New user-level command to change text font size.
1949 * emacs.texi: call @fonttextsize 10, inside @tex to avoid 1972 * emacs.texi: Call @fonttextsize 10, inside @tex to avoid
1950 errors from the current release of makeinfo (4.8). 1973 errors from the current release of makeinfo (4.8).
1951 * help.texi (Library Keywords): change widest word in multitable 1974 * help.texi (Library Keywords): Change widest word in multitable
1952 template from `emulations' to `convenience'. (Not sure if this is 1975 template from `emulations' to `convenience'. (Not sure if this is
1953 related to the font change.) 1976 related to the font change.)
1954 1977
@@ -2148,7 +2171,7 @@
2148 (Inserting Version Control Headers, Customizing VC, General Options) 2171 (Inserting Version Control Headers, Customizing VC, General Options)
2149 (Options for RCS and SCCS, Options specific for CVS): Move all 2172 (Options for RCS and SCCS, Options specific for CVS): Move all
2150 these nodes to emacs-xtra.texi, for brevity. 2173 these nodes to emacs-xtra.texi, for brevity.
2151 * cmdargs.texi, files.texi: change cross-references. 2174 * cmdargs.texi, files.texi: Change cross-references.
2152 2175
21532006-04-11 Reiner Steib <Reiner.Steib@gmx.de> 21762006-04-11 Reiner Steib <Reiner.Steib@gmx.de>
2154 2177
@@ -2179,13 +2202,13 @@
2179 2202
21802006-04-09 Karl Berry <karl@gnu.org> 22032006-04-09 Karl Berry <karl@gnu.org>
2181 2204
2182 * msdog.texi, emacs-xtra.texi: move all the MS-DOS material to 2205 * msdog.texi, emacs-xtra.texi: Move all the MS-DOS material to
2183 emacs-xtra.texi, leaving only MS Windows information. 2206 emacs-xtra.texi, leaving only MS Windows information.
2184 * building.texi, emacs.texi, frames.texi, gnu.texi, macos.texi, 2207 * building.texi, emacs.texi, frames.texi, gnu.texi, macos.texi,
2185 msdog.texi, mule.texi, trouble.texi: change cross-references and 2208 * msdog.texi, mule.texi, trouble.texi: Change cross-references and
2186 node names. 2209 node names.
2187 2210
2188 * emacs.texi: move @summarycontents and @contents to the beginning 2211 * emacs.texi: Move @summarycontents and @contents to the beginning
2189 of the file. 2212 of the file.
2190 2213
21912006-04-07 Reiner Steib <Reiner.Steib@gmx.de> 22142006-04-07 Reiner Steib <Reiner.Steib@gmx.de>
@@ -2264,7 +2287,7 @@
2264 2287
2265 * sending.texi (Mail Sending): pxref to Top needs five args. 2288 * sending.texi (Mail Sending): pxref to Top needs five args.
2266 2289
2267 * texinfo.tex: update to current version (2006-03-21.13). 2290 * texinfo.tex: Update to current version (2006-03-21.13).
2268 2291
22692006-04-02 Bill Wohler <wohler@newt.com> 22922006-04-02 Bill Wohler <wohler@newt.com>
2270 2293
@@ -2913,7 +2936,7 @@
2913 * mark.texi: Minor clarifications. 2936 * mark.texi: Minor clarifications.
2914 (Selective Undo): Node deleted. 2937 (Selective Undo): Node deleted.
2915 2938
2916 * m-x.texi: Minor clarifications 2939 * m-x.texi: Minor clarifications.
2917 2940
2918 * killing.texi: Minor clarifications. 2941 * killing.texi: Minor clarifications.
2919 Refer to "graphical" terminals, rather than window systems. 2942 Refer to "graphical" terminals, rather than window systems.
@@ -3603,7 +3626,7 @@
3603 3626
36042005-11-04 Carsten Dominik <dominik@science.uva.nl> 36272005-11-04 Carsten Dominik <dominik@science.uva.nl>
3605 3628
3606 * org.texi: Version number changed to 3.19 3629 * org.texi: Version number changed to 3.19.
3607 3630
36082005-11-04 Romain Francoise <romain@orebokech.com> 36312005-11-04 Romain Francoise <romain@orebokech.com>
3609 3632
@@ -3802,7 +3825,7 @@
3802 3825
38032005-10-10 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> 38262005-10-10 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
3804 3827
3805 * cmdargs.texi (Icons X): -nb => -nbi 3828 * cmdargs.texi (Icons X): -nb => -nbi.
3806 3829
38072005-10-10 Chong Yidong <cyd@stupidchicken.com> 38302005-10-10 Chong Yidong <cyd@stupidchicken.com>
3808 3831
@@ -3893,7 +3916,7 @@
3893 3916
38942005-09-23 Carsten Dominik <dominik@science.uva.nl> 39172005-09-23 Carsten Dominik <dominik@science.uva.nl>
3895 3918
3896 * org.texi Version 3.16 3919 * org.texi Version 3.16.
3897 3920
38982005-09-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 39212005-09-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3899 3922
@@ -4153,11 +4176,11 @@
4153 4176
41542005-07-19 Carsten Dominik <dominik@science.uva.nl> 41772005-07-19 Carsten Dominik <dominik@science.uva.nl>
4155 4178
4156 * org.texi: Version 3.14 4179 * org.texi: Version 3.14.
4157 4180
41582005-07-04 Carsten Dominik <dominik@science.uva.nl> 41812005-07-04 Carsten Dominik <dominik@science.uva.nl>
4159 4182
4160 * org.texi: Version 3.13 4183 * org.texi: Version 3.13.
4161 4184
41622005-07-19 Juri Linkov <juri@jurta.org> 41852005-07-19 Juri Linkov <juri@jurta.org>
4163 4186
@@ -4261,7 +4284,7 @@
4261 4284
42622005-06-29 Carsten Dominik <dominik@science.uva.nl> 42852005-06-29 Carsten Dominik <dominik@science.uva.nl>
4263 4286
4264 * org.texi: Version 3.12 4287 * org.texi: Version 3.12.
4265 4288
42662005-06-24 Richard M. Stallman <rms@gnu.org> 42892005-06-24 Richard M. Stallman <rms@gnu.org>
4267 4290
@@ -4341,7 +4364,7 @@
4341 4364
43422005-06-13 Carsten Dominik <dominik@science.uva.nl> 43652005-06-13 Carsten Dominik <dominik@science.uva.nl>
4343 4366
4344 * org.texi: Version 3.11 4367 * org.texi: Version 3.11.
4345 4368
43462005-06-12 Jay Belanger <belanger@truman.edu> 43692005-06-12 Jay Belanger <belanger@truman.edu>
4347 4370
@@ -4487,11 +4510,11 @@
4487 4510
44882005-05-20 Carsten Dominik <dominik@science.uva.nl> 45112005-05-20 Carsten Dominik <dominik@science.uva.nl>
4489 4512
4490 * org.texi: Version 3.09 4513 * org.texi: Version 3.09.
4491 4514
44922005-05-18 Carsten Dominik <dominik@science.uva.nl> 45152005-05-18 Carsten Dominik <dominik@science.uva.nl>
4493 4516
4494 * reftex.texi: Version 4.28 4517 * reftex.texi: Version 4.28.
4495 4518
44962005-05-18 Luc Teirlinck <teirllm@auburn.edu> 45192005-05-18 Luc Teirlinck <teirllm@auburn.edu>
4497 4520
@@ -4639,7 +4662,7 @@
4639 4662
46402005-04-25 Chong Yidong <cyd@stupidchicken.com> 46632005-04-25 Chong Yidong <cyd@stupidchicken.com>
4641 4664
4642 * ack.texi (Acknowledgments): Delete info about iso-acc.el 4665 * ack.texi (Acknowledgments): Delete info about iso-acc.el.
4643 4666
4644 * dired.texi (Misc Dired Features): Document 4667 * dired.texi (Misc Dired Features): Document
4645 dired-compare-directories. 4668 dired-compare-directories.
@@ -6199,7 +6222,7 @@
6199 6222
62002004-09-10 Eli Zaretskii <eliz@gnu.org> 62232004-09-10 Eli Zaretskii <eliz@gnu.org>
6201 6224
6202 * Makefile.in (../info/gnus, gnus.dvi): Depend on gnus-faq.texi 6225 * Makefile.in (../info/gnus, gnus.dvi): Depend on gnus-faq.texi.
6203 6226
62042004-09-09 Kim F. Storm <storm@cua.dk> 62272004-09-09 Kim F. Storm <storm@cua.dk>
6205 6228
@@ -7305,7 +7328,7 @@
7305 7328
73062003-02-17 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> 73292003-02-17 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
7307 7330
7308 * xresources.texi (GTK names in Emacs): Add emacs-toolbar - GtkToolbar 7331 * xresources.texi (GTK names in Emacs): Add emacs-toolbar - GtkToolbar.
7309 7332
73102003-02-05 Kai Gro,A_(Bjohann <kai.grossjohann@uni-duisburg.de> 73332003-02-05 Kai Gro,A_(Bjohann <kai.grossjohann@uni-duisburg.de>
7311 7334
@@ -7375,8 +7398,8 @@
7375 Also use @ifnottex instead of @ifinfo around the top node, where 7398 Also use @ifnottex instead of @ifinfo around the top node, where
7376 needed for the sake of the HTML output. 7399 needed for the sake of the HTML output.
7377 (The Gnus manual is not fixed since it's not clear to me how it 7400 (The Gnus manual is not fixed since it's not clear to me how it
7378 works; and the Tramp manual already uses @copying, although in an 7401 works; and the Tramp manual already uses @copying, although in an
7379 unusual way. All others were changed.) 7402 unusual way. All others were changed.)
7380 7403
73812002-09-10 Jonathan Yavner <jyavner@engineer.com> 74042002-09-10 Jonathan Yavner <jyavner@engineer.com>
7382 7405
@@ -7501,7 +7524,7 @@
75011999-10-12 Stefan Monnier <monnier@cs.yale.edu> 75241999-10-12 Stefan Monnier <monnier@cs.yale.edu>
7502 7525
7503 * Makefile.in (faq): Use ../info/emacs-faq.info (as specified in the 7526 * Makefile.in (faq): Use ../info/emacs-faq.info (as specified in the
7504 faq.texi file) rather than ../info/faq. 7527 faq.texi file) rather than ../info/faq.
7505 7528
75061999-10-07 Gerd Moellmann <gerd@gnu.org> 75291999-10-07 Gerd Moellmann <gerd@gnu.org>
7507 7530
diff --git a/man/cc-mode.texi b/man/cc-mode.texi
index 217c32ff911..3cb670b3b53 100644
--- a/man/cc-mode.texi
+++ b/man/cc-mode.texi
@@ -236,113 +236,113 @@ functions, classes etc - there are other packages for that.
236@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 236@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
237 237
238@menu 238@menu
239* Introduction:: 239* Introduction::
240* Overview:: 240* Overview::
241* Getting Started:: 241* Getting Started::
242* Commands:: 242* Commands::
243* Font Locking:: 243* Font Locking::
244* Config Basics:: 244* Config Basics::
245* Custom Filling and Breaking:: 245* Custom Filling and Breaking::
246* Custom Auto-newlines:: 246* Custom Auto-newlines::
247* Clean-ups:: 247* Clean-ups::
248* Indentation Engine Basics:: 248* Indentation Engine Basics::
249* Customizing Indentation:: 249* Customizing Indentation::
250* Custom Macros:: 250* Custom Macros::
251* Odds and Ends:: 251* Odds and Ends::
252* Sample .emacs File:: 252* Sample .emacs File::
253* Performance Issues:: 253* Performance Issues::
254* Limitations and Known Bugs:: 254* Limitations and Known Bugs::
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* GNU Free Documentation License::
259* Command and Function Index:: 259* Command and Function Index::
260* Variable Index:: 260* Variable Index::
261* Concept and Key Index:: 261* Concept and Key Index::
262 262
263@detailmenu 263@detailmenu
264 --- The Detailed Node Listing --- 264 --- The Detailed Node Listing ---
265 265
266Commands 266Commands
267 267
268* Indentation Commands:: 268* Indentation Commands::
269* Comment Commands:: 269* Comment Commands::
270* Movement Commands:: 270* Movement Commands::
271* Filling and Breaking:: 271* Filling and Breaking::
272* Minor Modes:: 272* Minor Modes::
273* Electric Keys:: 273* Electric Keys::
274* Auto-newlines:: 274* Auto-newlines::
275* Hungry WS Deletion:: 275* Hungry WS Deletion::
276* Subword Movement:: 276* Subword Movement::
277* Other Commands:: 277* Other Commands::
278 278
279Font Locking 279Font Locking
280 280
281* Font Locking Preliminaries:: 281* Font Locking Preliminaries::
282* Faces:: 282* Faces::
283* Doc Comments:: 283* Doc Comments::
284* AWK Mode Font Locking:: 284* AWK Mode Font Locking::
285 285
286Configuration Basics 286Configuration Basics
287 287
288* CC Hooks:: 288* CC Hooks::
289* Style Variables:: 289* Style Variables::
290* Styles:: 290* Styles::
291 291
292Styles 292Styles
293 293
294* Built-in Styles:: 294* Built-in Styles::
295* Choosing a Style:: 295* Choosing a Style::
296* Adding Styles:: 296* Adding Styles::
297* File Styles:: 297* File Styles::
298 298
299Customizing Auto-newlines 299Customizing Auto-newlines
300 300
301* Hanging Braces:: 301* Hanging Braces::
302* Hanging Colons:: 302* Hanging Colons::
303* Hanging Semicolons and Commas:: 303* Hanging Semicolons and Commas::
304 304
305Hanging Braces 305Hanging Braces
306 306
307* Custom Braces:: 307* Custom Braces::
308 308
309Indentation Engine Basics 309Indentation Engine Basics
310 310
311* Syntactic Analysis:: 311* Syntactic Analysis::
312* Syntactic Symbols:: 312* Syntactic Symbols::
313* Indentation Calculation:: 313* Indentation Calculation::
314 314
315Syntactic Symbols 315Syntactic Symbols
316 316
317* Function Symbols:: 317* Function Symbols::
318* Class Symbols:: 318* Class Symbols::
319* Conditional Construct Symbols:: 319* Conditional Construct Symbols::
320* Switch Statement Symbols:: 320* Switch Statement Symbols::
321* Brace List Symbols:: 321* Brace List Symbols::
322* External Scope Symbols:: 322* External Scope Symbols::
323* Paren List Symbols:: 323* Paren List Symbols::
324* Literal Symbols:: 324* Literal Symbols::
325* Multiline Macro Symbols:: 325* Multiline Macro Symbols::
326* Objective-C Method Symbols:: 326* Objective-C Method Symbols::
327* Anonymous Class Symbol:: 327* Anonymous Class Symbol::
328* Statement Block Symbols:: 328* Statement Block Symbols::
329* K&R Symbols:: 329* K&R Symbols::
330 330
331Customizing Indentation 331Customizing Indentation
332 332
333* c-offsets-alist:: 333* c-offsets-alist::
334* Interactive Customization:: 334* Interactive Customization::
335* Line-Up Functions:: 335* Line-Up Functions::
336* Custom Line-Up:: 336* Custom Line-Up::
337* Other Indentation:: 337* Other Indentation::
338 338
339Line-Up Functions 339Line-Up Functions
340 340
341* Brace/Paren Line-Up:: 341* Brace/Paren Line-Up::
342* List Line-Up:: 342* List Line-Up::
343* Operator Line-Up:: 343* Operator Line-Up::
344* Comment Line-Up:: 344* Comment Line-Up::
345* Misc Line-Up:: 345* Misc Line-Up::
346 346
347@end detailmenu 347@end detailmenu
348@end menu 348@end menu
@@ -534,7 +534,7 @@ is no ``easy customization'' facility for making this change.}:
534@end example 534@end example
535 535
536@noindent 536@noindent
537Details of of this and other similar ``Minor Modes'' appear in the 537Details of this and other similar ``Minor Modes'' appear in the
538section @ref{Minor Modes}. 538section @ref{Minor Modes}.
539 539
540@item Making the @key{RET} key indent the new line 540@item Making the @key{RET} key indent the new line
@@ -613,16 +613,16 @@ structures.
613 613
614 614
615@menu 615@menu
616* Indentation Commands:: 616* Indentation Commands::
617* Comment Commands:: 617* Comment Commands::
618* Movement Commands:: 618* Movement Commands::
619* Filling and Breaking:: 619* Filling and Breaking::
620* Minor Modes:: 620* Minor Modes::
621* Electric Keys:: 621* Electric Keys::
622* Auto-newlines:: 622* Auto-newlines::
623* Hungry WS Deletion:: 623* Hungry WS Deletion::
624* Subword Movement:: 624* Subword Movement::
625* Other Commands:: 625* Other Commands::
626@end menu 626@end menu
627 627
628@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 628@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -852,7 +852,7 @@ actions describing how they should be handled. If a certain line type
852isn't present on the list then the line is indented to the column 852isn't present on the list then the line is indented to the column
853specified by @code{comment-column}. 853specified by @code{comment-column}.
854 854
855See the documentation string for for a full description of this 855See the documentation string for a full description of this
856variable (use @kbd{C-h v c-indent-comment-alist}). 856variable (use @kbd{C-h v c-indent-comment-alist}).
857@end defopt 857@end defopt
858 858
@@ -1810,10 +1810,10 @@ chapter, @ref{AWK Mode Font Locking}, applies to AWK. The other
1810sections apply to the other languages. 1810sections apply to the other languages.
1811 1811
1812@menu 1812@menu
1813* Font Locking Preliminaries:: 1813* Font Locking Preliminaries::
1814* Faces:: 1814* Faces::
1815* Doc Comments:: 1815* Doc Comments::
1816* AWK Mode Font Locking:: 1816* AWK Mode Font Locking::
1817@end menu 1817@end menu
1818 1818
1819 1819
@@ -2318,9 +2318,9 @@ have it enabled by default by placing the following in your
2318@end table 2318@end table
2319 2319
2320@menu 2320@menu
2321* CC Hooks:: 2321* CC Hooks::
2322* Style Variables:: 2322* Style Variables::
2323* Styles:: 2323* Styles::
2324@end menu 2324@end menu
2325 2325
2326@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2326@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -2409,7 +2409,7 @@ The variables that @ccmode{}'s style system control are called
2409@dfn{style variables}. Note that style variables are ordinary Lisp 2409@dfn{style variables}. Note that style variables are ordinary Lisp
2410variables, which the style system initializes; you can change their 2410variables, which the style system initializes; you can change their
2411values at any time (e.g. in a hook function). The style system can 2411values at any time (e.g. in a hook function). The style system can
2412also also set other variables, to some extent. @xref{Styles}. 2412also set other variables, to some extent. @xref{Styles}.
2413 2413
2414@dfn{Style variables} are handled specially in several ways: 2414@dfn{Style variables} are handled specially in several ways:
2415 2415
@@ -2509,10 +2509,10 @@ for any particular style, and pretty easily start editing new or
2509existing code using these styles. 2509existing code using these styles.
2510 2510
2511@menu 2511@menu
2512* Built-in Styles:: 2512* Built-in Styles::
2513* Choosing a Style:: 2513* Choosing a Style::
2514* Adding Styles:: 2514* Adding Styles::
2515* File Styles:: 2515* File Styles::
2516@end menu 2516@end menu
2517 2517
2518 2518
@@ -3059,9 +3059,9 @@ to remove these automatically added newlines in certain specific
3059circumstances. @xref{Clean-ups}. 3059circumstances. @xref{Clean-ups}.
3060 3060
3061@menu 3061@menu
3062* Hanging Braces:: 3062* Hanging Braces::
3063* Hanging Colons:: 3063* Hanging Colons::
3064* Hanging Semicolons and Commas:: 3064* Hanging Semicolons and Commas::
3065@end menu 3065@end menu
3066 3066
3067 3067
@@ -3212,7 +3212,7 @@ themselves.
3212@end defopt 3212@end defopt
3213 3213
3214@menu 3214@menu
3215* Custom Braces:: 3215* Custom Braces::
3216@end menu 3216@end menu
3217 3217
3218@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 3218@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -3732,9 +3732,9 @@ of the variables associated with indentation, not even
3732@end defopt 3732@end defopt
3733 3733
3734@menu 3734@menu
3735* Syntactic Analysis:: 3735* Syntactic Analysis::
3736* Syntactic Symbols:: 3736* Syntactic Symbols::
3737* Indentation Calculation:: 3737* Indentation Calculation::
3738@end menu 3738@end menu
3739 3739
3740 3740
@@ -4113,19 +4113,19 @@ Java. @ref{Anonymous Class Symbol}.
4113@end table 4113@end table
4114 4114
4115@menu 4115@menu
4116* Function Symbols:: 4116* Function Symbols::
4117* Class Symbols:: 4117* Class Symbols::
4118* Conditional Construct Symbols:: 4118* Conditional Construct Symbols::
4119* Switch Statement Symbols:: 4119* Switch Statement Symbols::
4120* Brace List Symbols:: 4120* Brace List Symbols::
4121* External Scope Symbols:: 4121* External Scope Symbols::
4122* Paren List Symbols:: 4122* Paren List Symbols::
4123* Literal Symbols:: 4123* Literal Symbols::
4124* Multiline Macro Symbols:: 4124* Multiline Macro Symbols::
4125* Objective-C Method Symbols:: 4125* Objective-C Method Symbols::
4126* Anonymous Class Symbol:: 4126* Anonymous Class Symbol::
4127* Statement Block Symbols:: 4127* Statement Block Symbols::
4128* K&R Symbols:: 4128* K&R Symbols::
4129@end menu 4129@end menu
4130 4130
4131@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 4131@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -5019,11 +5019,11 @@ can install functions here to make ad-hoc adjustments to any line's
5019indentation. 5019indentation.
5020 5020
5021@menu 5021@menu
5022* c-offsets-alist:: 5022* c-offsets-alist::
5023* Interactive Customization:: 5023* Interactive Customization::
5024* Line-Up Functions:: 5024* Line-Up Functions::
5025* Custom Line-Up:: 5025* Custom Line-Up::
5026* Other Indentation:: 5026* Other Indentation::
5027@end menu 5027@end menu
5028 5028
5029 5029
@@ -5371,11 +5371,11 @@ Works with:
5371@end iftex 5371@end iftex
5372 5372
5373@menu 5373@menu
5374* Brace/Paren Line-Up:: 5374* Brace/Paren Line-Up::
5375* List Line-Up:: 5375* List Line-Up::
5376* Operator Line-Up:: 5376* Operator Line-Up::
5377* Comment Line-Up:: 5377* Comment Line-Up::
5378* Misc Line-Up:: 5378* Misc Line-Up::
5379@end menu 5379@end menu
5380 5380
5381@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 5381@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
diff --git a/man/display.texi b/man/display.texi
index 6cb2d857165..21a65999ec3 100644
--- a/man/display.texi
+++ b/man/display.texi
@@ -922,8 +922,18 @@ accessible part of the buffer is shown.
922Number mode is enabled. Use the command @kbd{M-x line-number-mode} to 922Number mode is enabled. Use the command @kbd{M-x line-number-mode} to
923turn this mode on and off; normally it is on. The line number appears 923turn this mode on and off; normally it is on. The line number appears
924after the buffer percentage @var{pos}, with the letter @samp{L} to 924after the buffer percentage @var{pos}, with the letter @samp{L} to
925indicate what it is. @xref{Minor Modes}, for more information about 925indicate what it is.
926minor modes and about how to use this command. 926
927@cindex Column Number mode
928@cindex mode, Column Number
929@findex column-number-mode
930 Similarly, you can display the current column number by turning on
931Column number mode with @kbd{M-x column-number-mode}. The column
932number is indicated by the letter @samp{C}. However, when both of
933these modes are enabled, the line and column numbers are displayed in
934parentheses, the line number first, rather than with @samp{L} and
935@samp{C}. For example: @samp{(561,2)}. @xref{Minor Modes}, for more
936information about minor modes and about how to use these commands.
927 937
928@cindex narrowing, and line number display 938@cindex narrowing, and line number display
929 If you have narrowed the buffer (@pxref{Narrowing}), the displayed 939 If you have narrowed the buffer (@pxref{Narrowing}), the displayed
@@ -946,13 +956,6 @@ larger than the value of the variable
946@code{line-number-display-limit-width}. The default value is 200 956@code{line-number-display-limit-width}. The default value is 200
947characters. 957characters.
948 958
949@cindex Column Number mode
950@cindex mode, Column Number
951@findex column-number-mode
952 You can also display the current column number by turning on Column
953Number mode. It displays the current column number preceded by the
954letter @samp{C}. Type @kbd{M-x column-number-mode} to toggle this mode.
955
956@findex display-time 959@findex display-time
957@cindex time (on mode line) 960@cindex time (on mode line)
958 Emacs can optionally display the time and system load in all mode 961 Emacs can optionally display the time and system load in all mode
diff --git a/man/gnus.texi b/man/gnus.texi
index dc02efa766f..85167d53432 100644
--- a/man/gnus.texi
+++ b/man/gnus.texi
@@ -4084,8 +4084,8 @@ happens. You just have to be careful if you do stuff like that.
4084@item v 4084@item v
4085@kindex v (Group) 4085@kindex v (Group)
4086@cindex keys, reserved for users (Group) 4086@cindex keys, reserved for users (Group)
4087The key @kbd{v} is reserved for users. You can bind it key to some 4087The key @kbd{v} is reserved for users. You can bind it to some
4088function or better use it as a prefix key. For example: 4088command or better use it as a prefix key. For example:
4089 4089
4090@lisp 4090@lisp
4091(define-key gnus-group-mode-map (kbd "v j d") 4091(define-key gnus-group-mode-map (kbd "v j d")
@@ -4498,8 +4498,8 @@ available in Emacs.
4498 4498
4499@kindex v (Summary) 4499@kindex v (Summary)
4500@cindex keys, reserved for users (Summary) 4500@cindex keys, reserved for users (Summary)
4501The key @kbd{v} is reserved for users. You can bind it key to some 4501The key @kbd{v} is reserved for users. You can bind it to some
4502function or better use it as a prefix key. For example: 4502command or better use it as a prefix key. For example:
4503@lisp 4503@lisp
4504(define-key gnus-summary-mode-map (kbd "v -") "LrS") ;; lower subthread 4504(define-key gnus-summary-mode-map (kbd "v -") "LrS") ;; lower subthread
4505@end lisp 4505@end lisp
@@ -8936,7 +8936,7 @@ This variable determines what to do when the button on a string as
8936message ID or a mail address. If it is one of the symbols @code{mid} or 8936message ID or a mail address. If it is one of the symbols @code{mid} or
8937@code{mail}, Gnus will always assume that the string is a message ID or 8937@code{mail}, Gnus will always assume that the string is a message ID or
8938a mail address, respectively. If this variable is set to the symbol 8938a mail address, respectively. If this variable is set to the symbol
8939@code{ask}, always query the user what do do. If it is a function, this 8939@code{ask}, always query the user what to do. If it is a function, this
8940function will be called with the string as its only argument. The 8940function will be called with the string as its only argument. The
8941function must return @code{mid}, @code{mail}, @code{invalid} or 8941function must return @code{mid}, @code{mail}, @code{invalid} or
8942@code{ask}. The default value is the function 8942@code{ask}. The default value is the function
@@ -11422,8 +11422,8 @@ buffer.
11422 11422
11423@kindex v (Article) 11423@kindex v (Article)
11424@cindex keys, reserved for users (Article) 11424@cindex keys, reserved for users (Article)
11425The key @kbd{v} is reserved for users. You can bind it key to some 11425The key @kbd{v} is reserved for users. You can bind it to some
11426function or better use it as a prefix key. 11426command or better use it as a prefix key.
11427 11427
11428A few additional keystrokes are available: 11428A few additional keystrokes are available:
11429 11429
@@ -12460,8 +12460,8 @@ Also @pxref{Formatting Variables}.
12460@item v 12460@item v
12461@kindex v (Server) 12461@kindex v (Server)
12462@cindex keys, reserved for users (Server) 12462@cindex keys, reserved for users (Server)
12463The key @kbd{v} is reserved for users. You can bind it key to some 12463The key @kbd{v} is reserved for users. You can bind it to some
12464function or better use it as a prefix key. 12464command or better use it as a prefix key.
12465 12465
12466@item a 12466@item a
12467@kindex a (Server) 12467@kindex a (Server)
@@ -14034,7 +14034,7 @@ files. If a positive number, delete files older than number of days
14034 14034
14035@item mail-source-delete-old-incoming-confirm 14035@item mail-source-delete-old-incoming-confirm
14036@vindex mail-source-delete-old-incoming-confirm 14036@vindex mail-source-delete-old-incoming-confirm
14037If non-@code{nil}, ask for for confirmation before deleting old incoming 14037If non-@code{nil}, ask for confirmation before deleting old incoming
14038files. This variable only applies when 14038files. This variable only applies when
14039@code{mail-source-delete-incoming} is a positive number. 14039@code{mail-source-delete-incoming} is a positive number.
14040 14040
@@ -16589,7 +16589,7 @@ Probably the only useful value to change this to is
16589messages instead of the internal article date. See section 6.4.4 of 16589messages instead of the internal article date. See section 6.4.4 of
16590RFC 2060 for more information on valid strings. 16590RFC 2060 for more information on valid strings.
16591 16591
16592However, if @code{nnimap-search-uids-not-since-is-evil} 16592However, if @code{nnimap-search-uids-not-since-is-evil}
16593is true, this variable has no effect since the search logic 16593is true, this variable has no effect since the search logic
16594is reversed, as described below. 16594is reversed, as described below.
16595 16595
@@ -18107,7 +18107,7 @@ two variables are probably the only ones you will want to change:
18107 18107
18108@defvar nndiary-reminders 18108@defvar nndiary-reminders
18109This is the list of times when you want to be reminded of your 18109This is the list of times when you want to be reminded of your
18110appointements (e.g. 3 weeks before, then 2 days before, then 1 hour 18110appointments (e.g. 3 weeks before, then 2 days before, then 1 hour
18111before and that's it). Remember that ``being reminded'' means that the 18111before and that's it). Remember that ``being reminded'' means that the
18112diary message will pop up as brand new and unread again when you get new 18112diary message will pop up as brand new and unread again when you get new
18113mail. 18113mail.
@@ -18258,14 +18258,14 @@ automatically (although not filled with proper values yet).
18258@node Sending or Not Sending 18258@node Sending or Not Sending
18259@subsection Sending or Not Sending 18259@subsection Sending or Not Sending
18260 18260
18261Well, assuming you've read of of the above, here are two final notes on 18261Well, assuming you've read all of the above, here are two final notes on
18262mail sending with @code{nndiary}: 18262mail sending with @code{nndiary}:
18263 18263
18264@itemize @bullet 18264@itemize @bullet
18265@item 18265@item
18266@code{nndiary} is a @emph{real} mail back end. You really send real diary 18266@code{nndiary} is a @emph{real} mail back end. You really send real diary
18267messsages for real. This means for instance that you can give 18267messsages for real. This means for instance that you can give
18268appointements to anybody (provided they use Gnus and @code{nndiary}) by 18268appointments to anybody (provided they use Gnus and @code{nndiary}) by
18269sending the diary message to them as well. 18269sending the diary message to them as well.
18270@item 18270@item
18271However, since @code{nndiary} also has a @code{request-post} method, you 18271However, since @code{nndiary} also has a @code{request-post} method, you
diff --git a/man/maintaining.texi b/man/maintaining.texi
index c9e77ede2a1..988d5890b8c 100644
--- a/man/maintaining.texi
+++ b/man/maintaining.texi
@@ -409,8 +409,8 @@ source files, and the tags file will still refer correctly to the source
409files. If the tags file is in @file{/dev}, however, the file names are 409files. If the tags file is in @file{/dev}, however, the file names are
410made relative to the current working directory. This is useful, for 410made relative to the current working directory. This is useful, for
411example, when writing the tags to @file{/dev/stdout}. 411example, when writing the tags to @file{/dev/stdout}.
412 412
413 When using a a relative file name, it should not be a symbolic link 413 When using a relative file name, it should not be a symbolic link
414pointing to a tags file in a different directory, because this would 414pointing to a tags file in a different directory, because this would
415generally render the file names invalid. 415generally render the file names invalid.
416 416
diff --git a/man/message.texi b/man/message.texi
index c843d8c58d9..eef4d77205a 100644
--- a/man/message.texi
+++ b/man/message.texi
@@ -1450,7 +1450,7 @@ responding to a message:
1450@vindex message-subject-trailing-was-regexp 1450@vindex message-subject-trailing-was-regexp
1451Controls what to do with trailing @samp{(was: <old subject>)} in subject 1451Controls what to do with trailing @samp{(was: <old subject>)} in subject
1452lines. If @code{nil}, leave the subject unchanged. If it is the symbol 1452lines. If @code{nil}, leave the subject unchanged. If it is the symbol
1453@code{ask}, query the user what do do. In this case, the subject is 1453@code{ask}, query the user what to do. In this case, the subject is
1454matched against @code{message-subject-trailing-was-ask-regexp}. If 1454matched against @code{message-subject-trailing-was-ask-regexp}. If
1455@code{message-subject-trailing-was-query} is @code{t}, always strip the 1455@code{message-subject-trailing-was-query} is @code{t}, always strip the
1456trailing old subject. In this case, 1456trailing old subject. In this case,
diff --git a/man/mh-e.texi b/man/mh-e.texi
index 707e5e44b98..76697cbdcf5 100644
--- a/man/mh-e.texi
+++ b/man/mh-e.texi
@@ -132,64 +132,64 @@ Fifth Floor, Boston, MA 02110-1301, USA.
132 132
133Tour Through MH-E 133Tour Through MH-E
134 134
135* Sending Mail Tour:: 135* Sending Mail Tour::
136* Reading Mail Tour:: 136* Reading Mail Tour::
137* Processing Mail Tour:: 137* Processing Mail Tour::
138* Leaving MH-E:: 138* Leaving MH-E::
139* More About MH-E:: 139* More About MH-E::
140 140
141Using This Manual 141Using This Manual
142 142
143* Options:: 143* Options::
144* Ranges:: 144* Ranges::
145* Folder Selection:: 145* Folder Selection::
146 146
147Reading Your Mail 147Reading Your Mail
148 148
149* Viewing:: 149* Viewing::
150* Viewing Attachments:: 150* Viewing Attachments::
151* HTML:: 151* HTML::
152* Digests:: 152* Digests::
153* Reading PGP:: 153* Reading PGP::
154* Printing:: 154* Printing::
155* Files and Pipes:: 155* Files and Pipes::
156* Navigating:: 156* Navigating::
157* Miscellaneous Commands and Options:: 157* Miscellaneous Commands and Options::
158 158
159Sending Mail 159Sending Mail
160 160
161* Composing:: 161* Composing::
162* Replying:: 162* Replying::
163* Forwarding:: 163* Forwarding::
164* Redistributing:: 164* Redistributing::
165* Editing Again:: 165* Editing Again::
166 166
167Editing a Draft 167Editing a Draft
168 168
169* Editing Message:: 169* Editing Message::
170* Inserting Letter:: 170* Inserting Letter::
171* Inserting Messages:: 171* Inserting Messages::
172* Signature:: 172* Signature::
173* Picture:: 173* Picture::
174* Adding Attachments:: 174* Adding Attachments::
175* Sending PGP:: 175* Sending PGP::
176* Checking Recipients:: 176* Checking Recipients::
177* Sending Message:: 177* Sending Message::
178* Killing Draft:: 178* Killing Draft::
179 179
180Odds and Ends 180Odds and Ends
181 181
182* Bug Reports:: 182* Bug Reports::
183* Mailing Lists:: 183* Mailing Lists::
184* MH FAQ and Support:: 184* MH FAQ and Support::
185* Getting MH-E:: 185* Getting MH-E::
186 186
187History of MH-E 187History of MH-E
188 188
189* From Brian Reid:: 189* From Brian Reid::
190* From Jim Larus:: 190* From Jim Larus::
191* From Stephen Gildea:: 191* From Stephen Gildea::
192* From Bill Wohler:: 192* From Bill Wohler::
193 193
194@end detailmenu 194@end detailmenu
195@end menu 195@end menu
@@ -360,7 +360,7 @@ mode (@pxref{Reading Mail Tour}). In this mode, simply enter the
360numerical argument before entering the command. 360numerical argument before entering the command.
361@end quotation 361@end quotation
362@sp 1 362@sp 1
363 363
364@cindex @file{.emacs} 364@cindex @file{.emacs}
365@cindex Emacs, variables 365@cindex Emacs, variables
366@cindex files, @file{.emacs} 366@cindex files, @file{.emacs}
@@ -415,7 +415,7 @@ Face Customization} in @cite{The GNU Emacs Manual}.
415@findex customize-option 415@findex customize-option
416 416
417Commands often offer @dfn{hooks} which enable you to extend or modify 417Commands often offer @dfn{hooks} which enable you to extend or modify
418the way a command works. 418the way a command works.
419@ifnothtml 419@ifnothtml
420@ref{Hooks, , Hooks, emacs, The GNU Emacs Manual}, in @cite{The GNU 420@ref{Hooks, , Hooks, emacs, The GNU Emacs Manual}, in @cite{The GNU
421Emacs Manual} 421Emacs Manual}
@@ -673,11 +673,11 @@ use all the features of MH-E. I suggest you read this chapter first to
673get the big picture, and then you can read the manual as you wish. 673get the big picture, and then you can read the manual as you wish.
674 674
675@menu 675@menu
676* Sending Mail Tour:: 676* Sending Mail Tour::
677* Reading Mail Tour:: 677* Reading Mail Tour::
678* Processing Mail Tour:: 678* Processing Mail Tour::
679* Leaving MH-E:: 679* Leaving MH-E::
680* More About MH-E:: 680* More About MH-E::
681@end menu 681@end menu
682 682
683@node Sending Mail Tour, Reading Mail Tour, Tour Through MH-E, Tour Through MH-E 683@node Sending Mail Tour, Reading Mail Tour, Tour Through MH-E, Tour Through MH-E
@@ -843,10 +843,10 @@ sending the original message, like this:
843 843
844@cartouche 844@cartouche
845@smallexample 845@smallexample
846To: 846To:
847cc: 847cc:
848Subject: Re: Test 848Subject: Re: Test
849In-reply-to: <31054.1142621351@@stop.mail-abuse.org> 849In-reply-to: <31054.1142621351@@stop.mail-abuse.org>
850References: <31054.1142621351@@stop.mail-abuse.org> 850References: <31054.1142621351@@stop.mail-abuse.org>
851Comments: In-reply-to Bill Wohler <wohler@@stop.mail-abuse.org> 851Comments: In-reply-to Bill Wohler <wohler@@stop.mail-abuse.org>
852 message dated "Fri, 17 Mar 2006 10:49:11 -0800." 852 message dated "Fri, 17 Mar 2006 10:49:11 -0800."
@@ -1161,9 +1161,9 @@ conflicts with existing MH-E symbols, use a prefix like @samp{my-} or
1161your initials. (Unless, of course, your initials happen to be @emph{mh}!) 1161your initials. (Unless, of course, your initials happen to be @emph{mh}!)
1162 1162
1163@menu 1163@menu
1164* Options:: 1164* Options::
1165* Ranges:: 1165* Ranges::
1166* Folder Selection:: 1166* Folder Selection::
1167@end menu 1167@end menu
1168 1168
1169@node Options, Ranges, Using This Manual, Using This Manual 1169@node Options, Ranges, Using This Manual, Using This Manual
@@ -2001,15 +2001,15 @@ The functions and variables introduced here are explained in more
2001detail in the following sections. 2001detail in the following sections.
2002 2002
2003@menu 2003@menu
2004* Viewing:: 2004* Viewing::
2005* Viewing Attachments:: 2005* Viewing Attachments::
2006* HTML:: 2006* HTML::
2007* Digests:: 2007* Digests::
2008* Reading PGP:: 2008* Reading PGP::
2009* Printing:: 2009* Printing::
2010* Files and Pipes:: 2010* Files and Pipes::
2011* Navigating:: 2011* Navigating::
2012* Miscellaneous Commands and Options:: 2012* Miscellaneous Commands and Options::
2013@end menu 2013@end menu
2014 2014
2015@node Viewing, Viewing Attachments, Reading Mail, Reading Mail 2015@node Viewing, Viewing Attachments, Reading Mail, Reading Mail
@@ -2047,7 +2047,7 @@ The option @code{mh-show-maximum-size} provides an opportunity to skip
2047over large messages which may be slow to load. The default value of 0 2047over large messages which may be slow to load. The default value of 0
2048means that all message are shown regardless of size. 2048means that all message are shown regardless of size.
2049 2049
2050A litany of options control what displayed messages look like. 2050A litany of options control what displayed messages look like.
2051 2051
2052@vindex mh-show-cc 2052@vindex mh-show-cc
2053@vindex mh-show-date 2053@vindex mh-show-date
@@ -2637,7 +2637,7 @@ the Gnus command @kbd{W h} (@pxref{Article Washing,,,gnus},).
2637@end ifinfo 2637@end ifinfo
2638@ifnotinfo 2638@ifnotinfo
2639see section @uref{http://www.gnus.org/manual/emacs-mime_6.html, 2639see section @uref{http://www.gnus.org/manual/emacs-mime_6.html,
2640Display Customization} in the @cite{The Emacs MIME Manual} and the the 2640Display Customization} in the @cite{The Emacs MIME Manual} and the
2641documentation for the Gnus command @kbd{W h} (see section 2641documentation for the Gnus command @kbd{W h} (see section
2642@uref{http://www.gnus.org/manual/gnus_99.html, Article Washing} in the 2642@uref{http://www.gnus.org/manual/gnus_99.html, Article Washing} in the
2643@cite{The Gnus Manual}). 2643@cite{The Gnus Manual}).
@@ -2808,7 +2808,7 @@ The latter is used whether the signature is unknown or untrusted.
2808@cindex customization group, @samp{pgg} 2808@cindex customization group, @samp{pgg}
2809 2809
2810The @samp{pgg} customization group may have some settings which may 2810The @samp{pgg} customization group may have some settings which may
2811interest you. 2811interest you.
2812@iftex 2812@iftex
2813See @cite{The PGG Manual}. 2813See @cite{The PGG Manual}.
2814@end iftex 2814@end iftex
@@ -3942,11 +3942,11 @@ The functions and options introduced here are explained in more detail
3942in the following sections. 3942in the following sections.
3943 3943
3944@menu 3944@menu
3945* Composing:: 3945* Composing::
3946* Replying:: 3946* Replying::
3947* Forwarding:: 3947* Forwarding::
3948* Redistributing:: 3948* Redistributing::
3949* Editing Again:: 3949* Editing Again::
3950@end menu 3950@end menu
3951 3951
3952@node Composing, Replying, Sending Mail, Sending Mail 3952@node Composing, Replying, Sending Mail, Sending Mail
@@ -4686,16 +4686,16 @@ The commands and options introduced here are explained in more
4686detail in the following sections. 4686detail in the following sections.
4687 4687
4688@menu 4688@menu
4689* Editing Message:: 4689* Editing Message::
4690* Inserting Letter:: 4690* Inserting Letter::
4691* Inserting Messages:: 4691* Inserting Messages::
4692* Signature:: 4692* Signature::
4693* Picture:: 4693* Picture::
4694* Adding Attachments:: 4694* Adding Attachments::
4695* Sending PGP:: 4695* Sending PGP::
4696* Checking Recipients:: 4696* Checking Recipients::
4697* Sending Message:: 4697* Sending Message::
4698* Killing Draft:: 4698* Killing Draft::
4699@end menu 4699@end menu
4700 4700
4701@node Editing Message, Inserting Letter, Editing Drafts, Editing Drafts 4701@node Editing Message, Inserting Letter, Editing Drafts, Editing Drafts
@@ -4795,7 +4795,7 @@ the alias expansion in the minibuffer if
4795@code{mh-alias-flash-on-comma} is turned on. 4795@code{mh-alias-flash-on-comma} is turned on.
4796 4796
4797@c XXX Document the replacement for the inaccessible 'long argument. 4797@c XXX Document the replacement for the inaccessible 'long argument.
4798 4798
4799@findex mh-letter-toggle-header-field-display 4799@findex mh-letter-toggle-header-field-display
4800@kindex C-c C-t 4800@kindex C-c C-t
4801 4801
@@ -5543,7 +5543,7 @@ mechanisms include vanilla @samp{PGP} and @samp{S/MIME}.
5543@cindex customization group, @samp{pgg} 5543@cindex customization group, @samp{pgg}
5544 5544
5545The @samp{pgg} customization group may have some settings which may 5545The @samp{pgg} customization group may have some settings which may
5546interest you. 5546interest you.
5547@iftex 5547@iftex
5548See @cite{The PGG Manual}. 5548See @cite{The PGG Manual}.
5549@end iftex 5549@end iftex
@@ -5954,7 +5954,7 @@ mh-alias-apropos} to show all aliases or addresses that match a
5954regular expression 5954regular expression
5955@ifnothtml 5955@ifnothtml
5956(@pxref{Regexps, , Syntax of Regular Expressions, emacs, The 5956(@pxref{Regexps, , Syntax of Regular Expressions, emacs, The
5957GNU Emacs Manual}). 5957GNU Emacs Manual}).
5958@end ifnothtml 5958@end ifnothtml
5959@ifhtml 5959@ifhtml
5960(see the section 5960(see the section
@@ -6104,7 +6104,7 @@ customize @code{mh-auto-fields-list}, click on the @samp{INS} button
6104and enter a regular expression for the recipient's address 6104and enter a regular expression for the recipient's address
6105@ifnothtml 6105@ifnothtml
6106(@pxref{Regexps, , Syntax of Regular Expressions, emacs, The 6106(@pxref{Regexps, , Syntax of Regular Expressions, emacs, The
6107GNU Emacs Manual}). 6107GNU Emacs Manual}).
6108@end ifnothtml 6108@end ifnothtml
6109@ifhtml 6109@ifhtml
6110(see the section 6110(see the section
@@ -6142,7 +6142,7 @@ recipient is also listed there so that he receives replies to your
6142reply. 6142reply.
6143@c ------------------------- 6143@c -------------------------
6144@item Other Field 6144@item Other Field
6145Other header fields may be added using this menu item. 6145Other header fields may be added using this menu item.
6146@end table 6146@end table
6147 6147
6148@findex mh-insert-auto-fields 6148@findex mh-insert-auto-fields
@@ -6181,7 +6181,7 @@ added. To customize @code{mh-identity-handlers}, replace the name of
6181an existing handler function associated with the field you want to 6181an existing handler function associated with the field you want to
6182change with the name of a function you have written. You can also 6182change with the name of a function you have written. You can also
6183click on an @samp{INS} button and insert a field of your choice and 6183click on an @samp{INS} button and insert a field of your choice and
6184the name of the function you have written to handle it. 6184the name of the function you have written to handle it.
6185 6185
6186@vindex mh-identity-list 6186@vindex mh-identity-list
6187 6187
@@ -6210,7 +6210,7 @@ containing the value for the field is given.
6210@kindex M-x speedbar 6210@kindex M-x speedbar
6211@kindex Mouse-2 6211@kindex Mouse-2
6212 6212
6213You can also use the speedbar 6213You can also use the speedbar
6214@ifnothtml 6214@ifnothtml
6215(@pxref{Speedbar, , Speedbar Frames, emacs, The GNU Emacs Manual},) 6215(@pxref{Speedbar, , Speedbar Frames, emacs, The GNU Emacs Manual},)
6216@end ifnothtml 6216@end ifnothtml
@@ -6573,7 +6573,7 @@ There is one option from the @samp{mh-search} customization group used
6573in searching. 6573in searching.
6574 6574
6575@vtable @code 6575@vtable @code
6576@item mh-search-program 6576@item mh-search-program
6577Search program that MH-E shall use (default: @samp{Auto-detect}). 6577Search program that MH-E shall use (default: @samp{Auto-detect}).
6578@end vtable 6578@end vtable
6579 6579
@@ -7145,7 +7145,7 @@ Limit to messages with the same @samp{Cc:} field
7145@c ------------------------- 7145@c -------------------------
7146@kindex / m 7146@kindex / m
7147@findex mh-narrow-to-from 7147@findex mh-narrow-to-from
7148@item / m 7148@item / m
7149Limit to messages with the same @samp{From:} field 7149Limit to messages with the same @samp{From:} field
7150(@code{mh-narrow-to-from}). 7150(@code{mh-narrow-to-from}).
7151@c ------------------------- 7151@c -------------------------
@@ -7635,7 +7635,7 @@ If you don't use @command{spamc}, use @samp{spamassassin -P -a}.
7635 7635
7636Note that one of the recipes above throws away messages with a score 7636Note that one of the recipes above throws away messages with a score
7637greater than or equal to 10. Here's how you can determine a value that 7637greater than or equal to 10. Here's how you can determine a value that
7638works best for you. 7638works best for you.
7639 7639
7640First, run @samp{spamassassin -t} on every mail message in your 7640First, run @samp{spamassassin -t} on every mail message in your
7641archive and use @command{gnumeric} to verify that the average plus the 7641archive and use @command{gnumeric} to verify that the average plus the
@@ -8579,10 +8579,10 @@ tell you how to report bugs and how to get on the MH-E mailing lists.
8579I also point out some additional sources of information. 8579I also point out some additional sources of information.
8580 8580
8581@menu 8581@menu
8582* Bug Reports:: 8582* Bug Reports::
8583* Mailing Lists:: 8583* Mailing Lists::
8584* MH FAQ and Support:: 8584* MH FAQ and Support::
8585* Getting MH-E:: 8585* Getting MH-E::
8586@end menu 8586@end menu
8587 8587
8588@node Bug Reports, Mailing Lists, Odds and Ends, Odds and Ends 8588@node Bug Reports, Mailing Lists, Odds and Ends, Odds and Ends
@@ -8713,10 +8713,10 @@ development to @uref{http://sourceforge.net/, SourceForge} where it
8713lives today. 8713lives today.
8714 8714
8715@menu 8715@menu
8716* From Brian Reid:: 8716* From Brian Reid::
8717* From Jim Larus:: 8717* From Jim Larus::
8718* From Stephen Gildea:: 8718* From Stephen Gildea::
8719* From Bill Wohler:: 8719* From Bill Wohler::
8720@end menu 8720@end menu
8721 8721
8722@node From Brian Reid, From Jim Larus, History, History 8722@node From Brian Reid, From Jim Larus, History, History
@@ -9715,7 +9715,7 @@ Public License instead of this License.
9715@c The following are words that ispell should ignore that would not 9715@c The following are words that ispell should ignore that would not
9716@c normally be in a dictionary (global or personal). Be careful not to 9716@c normally be in a dictionary (global or personal). Be careful not to
9717@c include words here that could potentially be typos of other words 9717@c include words here that could potentially be typos of other words
9718@c (such as url, elisp, or MHE). 9718@c (such as url, elisp, or MHE).
9719@c 9719@c
9720@c LocalWords: CTRL ESC SPC f's 9720@c LocalWords: CTRL ESC SPC f's
9721@c LocalWords: addr Aliasfile alist 9721@c LocalWords: addr Aliasfile alist
diff --git a/man/org.texi b/man/org.texi
index aacc2929d13..22d217c1c89 100644
--- a/man/org.texi
+++ b/man/org.texi
@@ -3,8 +3,8 @@
3@setfilename ../info/org 3@setfilename ../info/org
4@settitle Org Mode Manual 4@settitle Org Mode Manual
5 5
6@set VERSION 4.67 6@set VERSION 4.77
7@set DATE February 2007 7@set DATE June 2007
8 8
9@dircategory Emacs 9@dircategory Emacs
10@direntry 10@direntry
@@ -89,7 +89,6 @@ 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.
93* Index:: The fast road to specific information 92* Index:: The fast road to specific information
94* Key Index:: Key bindings and where they are described 93* Key Index:: Key bindings and where they are described
95 94
@@ -123,6 +122,7 @@ Tables
123 122
124* Built-in table editor:: Simple tables 123* Built-in table editor:: Simple tables
125* Narrow columns:: Stop wasting space in tables 124* Narrow columns:: Stop wasting space in tables
125* Column groups:: Grouping to trigger vertical lines
126* orgtbl-mode:: The table editor as minor mode 126* orgtbl-mode:: The table editor as minor mode
127* The spreadsheet:: The table editor has spreadsheet capabilities. 127* The spreadsheet:: The table editor has spreadsheet capabilities.
128 128
@@ -163,26 +163,32 @@ TODO items
163* TODO basics:: Marking and displaying TODO entries 163* TODO basics:: Marking and displaying TODO entries
164* TODO extensions:: Workflow and assignments 164* TODO extensions:: Workflow and assignments
165* Priorities:: Some things are more important than others 165* Priorities:: Some things are more important than others
166* Breaking down tasks:: Splitting a task into managable pieces 166* Breaking down tasks:: Splitting a task into manageable pieces
167* Checkboxes:: Tick-off lists 167* Checkboxes:: Tick-off lists
168 168
169Extended use of TODO keywords 169Extended use of TODO keywords
170 170
171* Workflow states:: From TODO to DONE in steps 171* Workflow states:: From TODO to DONE in steps
172* TODO types:: I do this, Fred the rest 172* TODO types:: I do this, Fred the rest
173* Multiple sets in one file:: Mixing it all, and still finding your way
173* Per file keywords:: Different files, different requirements 174* Per file keywords:: Different files, different requirements
174 175
175Timestamps 176Timestamps
176 177
177* Time stamps:: Assigning a time to a tree entry 178* Time stamps:: Assigning a time to a tree entry
178* Creating timestamps:: Commands which insert timestamps 179* Creating timestamps:: Commands which insert timestamps
179* Custom time format:: If you cannot work with the ISO format 180* Deadlines and scheduling:: Planning your work
180* Repeating items:: Deadlines that come back again and again
181* Progress logging:: Documenting when what work was done. 181* Progress logging:: Documenting when what work was done.
182 182
183Creating timestamps 183Creating timestamps
184 184
185* The date/time prompt:: How org-mode helps you entering date and time 185* The date/time prompt:: How org-mode helps you entering date and time
186* Custom time format:: Making dates look differently
187
188Deadlines and Scheduling
189
190* Inserting deadline/schedule::
191* Repeated tasks::
186 192
187Progress Logging 193Progress Logging
188 194
@@ -224,7 +230,8 @@ Custom agenda views
224* Storing searches:: Type once, use often 230* Storing searches:: Type once, use often
225* Block agenda:: All the stuff you need in a single buffer 231* Block agenda:: All the stuff you need in a single buffer
226* Setting Options:: Changing the rules 232* Setting Options:: Changing the rules
227* Batch processing:: Agenda views from the command line 233* Exporting Agenda Views:: Writing agendas to files.
234* Extracting Agenda Information for other programs::
228 235
229Embedded LaTeX 236Embedded LaTeX
230 237
@@ -244,7 +251,7 @@ Exporting
244 251
245HTML export 252HTML export
246 253
247* Export commands:: How to invode HTML export 254* Export commands:: How to invoke HTML export
248* Quoting HTML tags:: Using direct HTML in Org-mode 255* Quoting HTML tags:: Using direct HTML in Org-mode
249* Links:: How hyperlinks get transferred to HTML 256* Links:: How hyperlinks get transferred to HTML
250* Images:: To inline or not to inline? 257* Images:: To inline or not to inline?
@@ -253,6 +260,8 @@ HTML export
253Text interpretation by the exporter 260Text interpretation by the exporter
254 261
255* Comment lines:: Some lines will not be exported 262* Comment lines:: Some lines will not be exported
263* Initial text:: Text before the first headline
264* Footnotes:: Numbers like [1]
256* Enhancing text:: Subscripts, symbols and more 265* Enhancing text:: Subscripts, symbols and more
257* Export options:: How to influence the export settings 266* Export options:: How to influence the export settings
258 267
@@ -371,7 +380,7 @@ example as:
371Org-mode's automatic, context sensitive table editor with spreadsheet 380Org-mode's automatic, context sensitive table editor with spreadsheet
372capabilities can be integrated into any major mode by activating the 381capabilities can be integrated into any major mode by activating the
373minor Orgtbl-mode. Using a translation step, it can be used to maintain 382minor Orgtbl-mode. Using a translation step, it can be used to maintain
374tables in arbitray file types, for example in LaTeX. 383tables in arbitrary file types, for example in LaTeX.
375 384
376@cindex FAQ 385@cindex FAQ
377There is a website for Org-mode which provides links to the newest 386There is a website for Org-mode which provides links to the newest
@@ -578,8 +587,9 @@ key.
578@cindex outline tree 587@cindex outline tree
579 588
580Headlines define the structure of an outline tree. The headlines in 589Headlines define the structure of an outline tree. The headlines in
581Org-mode start with one or more stars, on the left margin. For 590Org-mode start with one or more stars, on the left margin@footnote{See
582example: 591the variable @code{org-special-ctrl-a} to configure special behavior of
592@kbd{C-a} in headlines.}. For example:
583 593
584@example 594@example
585* Top level headline 595* Top level headline
@@ -588,6 +598,7 @@ example:
588 some text 598 some text
589*** 3rd level 599*** 3rd level
590 more text 600 more text
601
591* Another top level headline 602* Another top level headline
592@end example 603@end example
593 604
@@ -595,6 +606,12 @@ example:
595outline that has whitespace followed by a single star as headline 606outline that has whitespace followed by a single star as headline
596starters. @ref{Clean view} describes a setup to realize this. 607starters. @ref{Clean view} describes a setup to realize this.
597 608
609An empty line after the end of a subtree is considered part of it and
610will be hidden when the subtree is folded. However, if you leave at
611least two empty lines, one empty line will remain visible after folding
612the subtree, in order to structure the collapsed view. See the
613variable @code{org-cycle-separator-lines} for modifying this behavior.
614
598@node Visibility cycling, Motion, Headlines, Document structure 615@node Visibility cycling, Motion, Headlines, Document structure
599@section Visibility cycling 616@section Visibility cycling
600@cindex cycling, visibility 617@cindex cycling, visibility
@@ -615,7 +632,7 @@ Org-mode uses just two commands, bound to @key{TAB} and
615@table @kbd 632@table @kbd
616@kindex @key{TAB} 633@kindex @key{TAB}
617@item @key{TAB} 634@item @key{TAB}
618@emph{Subtree cycling}: Rotate current subtree between the states 635@emph{Subtree cycling}: Rotate current subtree among the states
619 636
620@example 637@example
621,-> FOLDED -> CHILDREN -> SUBTREE --. 638,-> FOLDED -> CHILDREN -> SUBTREE --.
@@ -637,7 +654,7 @@ argument (@kbd{C-u @key{TAB}}), global cycling is invoked.
637@kindex S-@key{TAB} 654@kindex S-@key{TAB}
638@item S-@key{TAB} 655@item S-@key{TAB}
639@itemx C-u @key{TAB} 656@itemx C-u @key{TAB}
640@emph{Global cycling}: Rotate the entire buffer between the states 657@emph{Global cycling}: Rotate the entire buffer among the states
641 658
642@example 659@example
643,-> OVERVIEW -> CONTENTS -> SHOW ALL --. 660,-> OVERVIEW -> CONTENTS -> SHOW ALL --.
@@ -662,13 +679,19 @@ level, all sibling headings.
662@kindex C-c C-x b 679@kindex C-c C-x b
663@item C-c C-x b 680@item C-c C-x b
664Show the current subtree in an indirect buffer@footnote{The indirect 681Show the current subtree in an indirect buffer@footnote{The indirect
665buffer (@pxref{Indirect Buffers,Indirect Buffers,Indirect 682buffer
666Buffers,emacs,GNU Emacs Manual}) will contain the entire buffer, but 683@ifinfo
667will be narrowed to the current tree. Editing the indirect buffer will 684(@pxref{Indirect Buffers,,,emacs,GNU Emacs Manual})
668also change the original buffer, but without affecting visibility in 685@end ifinfo
669that buffer.}. With numerical prefix ARG, go up to this level and then 686@ifnotinfo
670take that tree. If ARG is negative, go up that many levels. With 687(see the Emacs manual for more information about indirect buffers)
671@kbd{C-u} prefix, do not remove the previously used indirect buffer. 688@end ifnotinfo
689will contain the entire buffer, but will be narrowed to the current
690tree. Editing the indirect buffer will also change the original buffer,
691but without affecting visibility in that buffer.}. With numerical
692prefix ARG, go up to this level and then take that tree. If ARG is
693negative, go up that many levels. With @kbd{C-u} prefix, do not remove
694the previously used indirect buffer.
672@end table 695@end table
673 696
674When Emacs first visits an Org-mode file, the global state is set to 697When Emacs first visits an Org-mode file, the global state is set to
@@ -710,10 +733,16 @@ Backward to higher level heading.
710@item C-c C-j 733@item C-c C-j
711Jump to a different place without changing the current outline 734Jump to a different place without changing the current outline
712visibility. Shows the document structure in a temporary buffer, where 735visibility. Shows the document structure in a temporary buffer, where
713you can use visibility cycling (@key{TAB}) to find your destination. 736you can use the following keys to find your destination:
714After pressing @key{RET}, the cursor moves to the selected location in 737@example
715the original buffer, and the headings hierarchy above it is made 738@key{TAB} @r{Cycle visibility.}
716visible. 739@key{down} / @key{up} @r{Next/previous visible headline.}
740n / p @r{Next/previous visible headline.}
741f / b @r{Next/previous headline same level.}
742u @r{One level up.}
7430-9 @r{Digit argument.}
744@key{RET} @r{Select this location.}
745@end example
717@end table 746@end table
718 747
719@node Structure editing, Archiving, Motion, Document structure 748@node Structure editing, Archiving, Motion, Document structure
@@ -980,14 +1009,17 @@ bullet, lines must be indented or they will be seen as top-level
980headlines. Also, when you are hiding leading stars to get a clean 1009headlines. Also, when you are hiding leading stars to get a clean
981outline view, plain list items starting with a star are visually 1010outline view, plain list items starting with a star are visually
982indistinguishable from true headlines. In short: even though @samp{*} 1011indistinguishable from true headlines. In short: even though @samp{*}
983is supported, it may be better not to use it for plain list items} as 1012is supported, it may be better not to use it for plain list items.} as
984bullets. Ordered list items start with @samp{1.} or @samp{1)}. Items 1013bullets. Ordered list items start with @samp{1.} or @samp{1)}. Items
985belonging to the same list must have the same indentation on the first 1014belonging to the same list must have the same indentation on the first
986line. In particular, if an ordered list reaches number @samp{10.}, then 1015line. In particular, if an ordered list reaches number @samp{10.}, then
987the 2--digit numbers must be written left-aligned with the other numbers 1016the 2--digit numbers must be written left-aligned with the other numbers
988in the list. Indentation also determines the end of a list item. It 1017in the list. Indentation also determines the end of a list item. It
989ends before the next line that is indented like the bullet/number, or 1018ends before the next line that is indented like the bullet/number, or
990less. For example: 1019less. Empty lines are part of the previous item, so you can have
1020several paragraphs in one item. If you would like an emtpy line to
1021terminate all currently open plain lists, configure the variable
1022@code{org-empty-line-terminates-plain-lists}. Here is an for example:
991 1023
992@example 1024@example
993@group 1025@group
@@ -1078,6 +1110,7 @@ Emacs @file{calc} package.
1078@menu 1110@menu
1079* Built-in table editor:: Simple tables 1111* Built-in table editor:: Simple tables
1080* Narrow columns:: Stop wasting space in tables 1112* Narrow columns:: Stop wasting space in tables
1113* Column groups:: Grouping to trigger vertical lines
1081* orgtbl-mode:: The table editor as minor mode 1114* orgtbl-mode:: The table editor as minor mode
1082* The spreadsheet:: The table editor has spreadsheet capabilities. 1115* The spreadsheet:: The table editor has spreadsheet capabilities.
1083@end menu 1116@end menu
@@ -1141,16 +1174,16 @@ table. But it's easier just to start typing, like
1141@kindex C-c C-c 1174@kindex C-c C-c
1142@item C-c C-c 1175@item C-c C-c
1143Re-align the table without moving the cursor. 1176Re-align the table without moving the cursor.
1144 1177@c
1145@kindex @key{TAB} 1178@kindex @key{TAB}
1146@item @key{TAB} 1179@item @key{TAB}
1147Re-align the table, move to the next field. Creates a new row if 1180Re-align the table, move to the next field. Creates a new row if
1148necessary. 1181necessary.
1149 1182@c
1150@kindex S-@key{TAB} 1183@kindex S-@key{TAB}
1151@item S-@key{TAB} 1184@item S-@key{TAB}
1152Re-align, move to previous field. 1185Re-align, move to previous field.
1153 1186@c
1154@kindex @key{RET} 1187@kindex @key{RET}
1155@item @key{RET} 1188@item @key{RET}
1156Re-align the table and move down to next row. Creates a new row if 1189Re-align the table and move down to next row. Creates a new row if
@@ -1163,34 +1196,34 @@ NEWLINE, so it can be used to split a table.
1163@item M-@key{left} 1196@item M-@key{left}
1164@itemx M-@key{right} 1197@itemx M-@key{right}
1165Move the current column left/right. 1198Move the current column left/right.
1166 1199@c
1167@kindex M-S-@key{left} 1200@kindex M-S-@key{left}
1168@item M-S-@key{left} 1201@item M-S-@key{left}
1169Kill the current column. 1202Kill the current column.
1170 1203@c
1171@kindex M-S-@key{right} 1204@kindex M-S-@key{right}
1172@item M-S-@key{right} 1205@item M-S-@key{right}
1173Insert a new column to the left of the cursor position. 1206Insert a new column to the left of the cursor position.
1174 1207@c
1175@kindex M-@key{up} 1208@kindex M-@key{up}
1176@kindex M-@key{down} 1209@kindex M-@key{down}
1177@item M-@key{up} 1210@item M-@key{up}
1178@itemx M-@key{down} 1211@itemx M-@key{down}
1179Move the current row up/down. 1212Move the current row up/down.
1180 1213@c
1181@kindex M-S-@key{up} 1214@kindex M-S-@key{up}
1182@item M-S-@key{up} 1215@item M-S-@key{up}
1183Kill the current row or horizontal line. 1216Kill the current row or horizontal line.
1184 1217@c
1185@kindex M-S-@key{down} 1218@kindex M-S-@key{down}
1186@item M-S-@key{down} 1219@item M-S-@key{down}
1187Insert a new row above (with arg: below) the current row. 1220Insert a new row above (with arg: below) the current row.
1188 1221@c
1189@kindex C-c - 1222@kindex C-c -
1190@item C-c - 1223@item C-c -
1191Insert a horizontal line below current row. With prefix arg, the line 1224Insert a horizontal line below current row. With prefix arg, the line
1192is created above the current line. 1225is created above the current line.
1193 1226@c
1194@kindex C-c ^ 1227@kindex C-c ^
1195@item C-c ^ 1228@item C-c ^
1196Sort the table lines in the region. The position of point indicates the 1229Sort the table lines in the region. The position of point indicates the
@@ -1209,10 +1242,12 @@ argument, alphabetic sorting will be case-sensitive.
1209Copy a rectangular region from a table to a special clipboard. Point 1242Copy a rectangular region from a table to a special clipboard. Point
1210and mark determine edge fields of the rectangle. The process ignores 1243and mark determine edge fields of the rectangle. The process ignores
1211horizontal separator lines. 1244horizontal separator lines.
1245@c
1212@kindex C-c C-x C-w 1246@kindex C-c C-x C-w
1213@item C-c C-x C-w 1247@item C-c C-x C-w
1214Copy a rectangular region from a table to a special clipboard, and 1248Copy a rectangular region from a table to a special clipboard, and
1215blank all fields in the rectangle. So this is the ``cut'' operation. 1249blank all fields in the rectangle. So this is the ``cut'' operation.
1250@c
1216@kindex C-c C-x C-y 1251@kindex C-c C-x C-y
1217@item C-c C-x C-y 1252@item C-c C-x C-y
1218Paste a rectangular region into a table. 1253Paste a rectangular region into a table.
@@ -1220,6 +1255,7 @@ The upper right corner ends up in the current field. All involved fields
1220will be overwritten. If the rectangle does not fit into the present table, 1255will be overwritten. If the rectangle does not fit into the present table,
1221the table is enlarged as needed. The process ignores horizontal separator 1256the table is enlarged as needed. The process ignores horizontal separator
1222lines. 1257lines.
1258@c
1223@kindex C-c C-q 1259@kindex C-c C-q
1224@item C-c C-q 1260@item C-c C-q
1225Wrap several fields in a column like a paragraph. If there is an active 1261Wrap several fields in a column like a paragraph. If there is an active
@@ -1235,7 +1271,6 @@ above.
1235@tsubheading{Calculations} 1271@tsubheading{Calculations}
1236@cindex formula, in tables 1272@cindex formula, in tables
1237@cindex calculations, in tables 1273@cindex calculations, in tables
1238
1239@cindex region, active 1274@cindex region, active
1240@cindex active region 1275@cindex active region
1241@cindex transient-mark-mode 1276@cindex transient-mark-mode
@@ -1244,7 +1279,7 @@ above.
1244Sum the numbers in the current column, or in the rectangle defined by 1279Sum the numbers in the current column, or in the rectangle defined by
1245the active region. The result is shown in the echo area and can 1280the active region. The result is shown in the echo area and can
1246be inserted with @kbd{C-y}. 1281be inserted with @kbd{C-y}.
1247 1282@c
1248@kindex S-@key{RET} 1283@kindex S-@key{RET}
1249@item S-@key{RET} 1284@item S-@key{RET}
1250When current field is empty, copy from first non-empty field above. 1285When current field is empty, copy from first non-empty field above.
@@ -1261,12 +1296,12 @@ Edit the current field in a separate window. This is useful for fields
1261that are not fully visible (@pxref{Narrow columns}). When called with a 1296that are not fully visible (@pxref{Narrow columns}). When called with a
1262@kbd{C-u} prefix, just make the full field visible, so that it can be 1297@kbd{C-u} prefix, just make the full field visible, so that it can be
1263edited in place. 1298edited in place.
1264 1299@c
1265@kindex C-c @key{TAB} 1300@kindex C-c @key{TAB}
1266@item C-c @key{TAB} 1301@item C-c @key{TAB}
1267This is an alias for @kbd{C-u C-c `} to make the current field fully 1302This is an alias for @kbd{C-u C-c `} to make the current field fully
1268visible. 1303visible.
1269 1304@c
1270@item M-x org-table-import 1305@item M-x org-table-import
1271Import a file as a table. The table should be TAB- or whitespace 1306Import a file as a table. The table should be TAB- or whitespace
1272separated. Useful, for example, to import an Excel table or data from a 1307separated. Useful, for example, to import an Excel table or data from a
@@ -1274,11 +1309,14 @@ database, because these programs generally can write TAB-separated text
1274files. This command works by inserting the file into the buffer and 1309files. This command works by inserting the file into the buffer and
1275then converting the region to a table. Any prefix argument is passed on 1310then converting the region to a table. Any prefix argument is passed on
1276to the converter, which uses it to determine the separator. 1311to the converter, which uses it to determine the separator.
1277 1312@item C-c |
1313Tables can also be imported by pasting tabular text into the org-mode
1314buffer, selecting the pasted text with @kbd{C-x C-x} and then using the
1315@kbd{C-c |} command (see above under @i{Creation and conversion}.
1316@c
1278@item M-x org-table-export 1317@item M-x org-table-export
1279Export the table as a TAB-separated file. Useful for data exchange with, 1318Export the table as a TAB-separated file. Useful for data exchange with,
1280for example, Excel or database programs. 1319for example, Excel or database programs.
1281
1282@end table 1320@end table
1283 1321
1284If you don't like the automatic table editor because it gets in your 1322If you don't like the automatic table editor because it gets in your
@@ -1292,7 +1330,7 @@ it off with
1292@noindent Then the only table command that still works is 1330@noindent Then the only table command that still works is
1293@kbd{C-c C-c} to do a manual re-align. 1331@kbd{C-c C-c} to do a manual re-align.
1294 1332
1295@node Narrow columns, orgtbl-mode, Built-in table editor, Tables 1333@node Narrow columns, Column groups, Built-in table editor, Tables
1296@section Narrow columns 1334@section Narrow columns
1297@cindex narrow columns in tables 1335@cindex narrow columns in tables
1298 1336
@@ -1320,7 +1358,7 @@ value.
1320@noindent 1358@noindent
1321Fields that are wider become clipped and end in the string @samp{=>}. 1359Fields that are wider become clipped and end in the string @samp{=>}.
1322Note that the full text is still in the buffer, it is only invisible. 1360Note that the full text is still in the buffer, it is only invisible.
1323To see the full text, hold the mouse over the field - a tooltip window 1361To see the full text, hold the mouse over the field - a tool-tip window
1324will show the full content. To edit such a field, use the command 1362will show the full content. To edit such a field, use the command
1325@kbd{C-c `} (that is @kbd{C-c} followed by the backquote). This will 1363@kbd{C-c `} (that is @kbd{C-c} followed by the backquote). This will
1326open a new window with the full field. Edit it and finish with @kbd{C-c 1364open a new window with the full field. Edit it and finish with @kbd{C-c
@@ -1338,7 +1376,42 @@ on a per-file basis with:
1338#+STARTUP: noalign 1376#+STARTUP: noalign
1339@end example 1377@end example
1340 1378
1341@node orgtbl-mode, The spreadsheet, Narrow columns, Tables 1379@node Column groups, orgtbl-mode, Narrow columns, Tables
1380@section Column groups
1381@cindex grouping columns in tables
1382
1383When Org-mode exports tables, it does so by default without vertical
1384lines because that is visually more satisfying in general. Occasionally
1385however, vertical lines can be useful to structure a table into groups
1386of columns, much like horizontal lines can do for groups of rows. In
1387order to specify column groups, you can use a special row where the
1388first field contains only @samp{/}. The further fields can either
1389contain @samp{<} to indicate that this column should start a group,
1390@samp{>} to indicate the end of a column, or @samp{<>} to make a column
1391a group of its own. Boundaries between colum groups will upon export be
1392marked with vertical lines. Here is an example:
1393
1394@example
1395| | N | N^2 | N^3 | N^4 | sqrt(n) | sqrt[4](N) |
1396|---+----+-----+-----+-----+---------+------------|
1397| / | <> | < | | > | < | > |
1398| # | 1 | 1 | 1 | 1 | 1 | 1 |
1399| # | 2 | 4 | 8 | 16 | 1.4142 | 1.1892 |
1400| # | 3 | 9 | 27 | 81 | 1.7321 | 1.3161 |
1401|---+----+-----+-----+-----+---------+------------|
1402#+TBLFM: $3=$2^2::$4=$2^3::$5=$2^4::$6=sqrt($2)::$7=sqrt(sqrt(($2))
1403@end example
1404
1405It is also sufficient to just insert the colum group starters after
1406every vertical line you'd like to have:
1407
1408@example
1409| N | N^2 | N^3 | N^4 | sqrt(n) | sqrt[4](N) |
1410|----+-----+-----+-----+---------+------------|
1411| / | < | | | < | |
1412@end example
1413
1414@node orgtbl-mode, The spreadsheet, Column groups, Tables
1342@section The Orgtbl minor mode 1415@section The Orgtbl minor mode
1343@cindex orgtbl-mode 1416@cindex orgtbl-mode
1344@cindex minor mode for tables 1417@cindex minor mode for tables
@@ -1356,7 +1429,7 @@ example in mail mode, use
1356Furthermore, with some special setup, it is possible to maintain tables 1429Furthermore, with some special setup, it is possible to maintain tables
1357in arbitrary syntax with Orgtbl-mode. For example, it is possible to 1430in arbitrary syntax with Orgtbl-mode. For example, it is possible to
1358construct LaTeX tables with the underlying ease and power of 1431construct LaTeX tables with the underlying ease and power of
1359Orgtbl-mode, including spreadsheet capabulities. For details, see 1432Orgtbl-mode, including spreadsheet capabilities. For details, see
1360@ref{Tables in arbitrary syntax}. 1433@ref{Tables in arbitrary syntax}.
1361 1434
1362@node The spreadsheet, , orgtbl-mode, Tables 1435@node The spreadsheet, , orgtbl-mode, Tables
@@ -1367,7 +1440,12 @@ Orgtbl-mode, including spreadsheet capabulities. For details, see
1367 1440
1368The table editor makes use of the Emacs @file{calc} package to implement 1441The table editor makes use of the Emacs @file{calc} package to implement
1369spreadsheet-like capabilities. It can also evaluate Emacs Lisp forms to 1442spreadsheet-like capabilities. It can also evaluate Emacs Lisp forms to
1370derive fields from other fields. 1443derive fields from other fields. While fully featured, Org-mode's
1444implementation is not identical to other spreadsheets. For example,
1445Org-mode knows the concept of a @emph{column formula} that will be
1446applied to all non-header fields in a column without having to copy the
1447formula to each relevant field.
1448
1371@menu 1449@menu
1372* References:: How to refer to another field or range 1450* References:: How to refer to another field or range
1373* Formula syntax for Calc:: Using Calc to compute stuff 1451* Formula syntax for Calc:: Using Calc to compute stuff
@@ -1387,17 +1465,26 @@ To compute fields in the table from other fields, formulas must
1387reference other fields or ranges. In Org-mode, fields can be referenced 1465reference other fields or ranges. In Org-mode, fields can be referenced
1388by name, by absolute coordinates, and by relative coordinates. To find 1466by name, by absolute coordinates, and by relative coordinates. To find
1389out what the coordinates of a field are, press @kbd{C-c ?} in that 1467out what the coordinates of a field are, press @kbd{C-c ?} in that
1390field. 1468field, or press @kbd{C-c @}} to toggle the display of a grid.
1391 1469
1392@subsubheading Field references 1470@subsubheading Field references
1393@cindex field references 1471@cindex field references
1394@cindex references, to fields 1472@cindex references, to fields
1395 1473
1396Formulas can reference the value of another field with the operator 1474Formulas can reference the value of another field in two ways. Like in
1475any other spreadsheet, you may reference fields with a letter/number
1476combination like @code{B3}, meaning the 2nd field in the 3rd row.
1477@c Such references are always fixed to that field, they don't change
1478@c when you copy and paste a formula to a different field. So
1479@c Org-mode's @code{B3} behaves like @code{$B$3} in other spreadsheets.
1480
1481@noindent
1482Org-mode also uses another, more general operator that looks like this:
1397@example 1483@example
1398@@row$column 1484@@row$column
1399@end example 1485@end example
1400 1486
1487@noindent
1401Column references can be absolute like @samp{1}, @samp{2},...@samp{N}, 1488Column references can be absolute like @samp{1}, @samp{2},...@samp{N},
1402or relative to the current column like @samp{+1} or @samp{-2}. 1489or relative to the current column like @samp{+1} or @samp{-2}.
1403 1490
@@ -1417,18 +1504,20 @@ directly at the hline is used.
1417either the column or the row part of the reference, the current 1504either the column or the row part of the reference, the current
1418row/column is implied. 1505row/column is implied.
1419 1506
1420Org-mode's references with @emph{positive} numbers correspond to fixed 1507Org-mode's references with @emph{unsigned} numbers are fixed references
1421references in other spreadsheet programs. For example, @code{@@3$28} 1508in the sense that if you use the same reference in the formula for two
1422corresponds to @code{$AB$3}. Org-mode's references with @emph{negative} 1509different fields, the same field will be referenced each time.
1423numbers behave similar to non-fixed references in other spreadsheet 1510Org-mode's references with @emph{signed} numbers are floating
1424programs, because when the same formula is used in several fields, 1511references because the same reference operator can reference different
1425different fields are referenced each time. 1512fields depending on the field being calculated by the formula.
1426 1513
1427Here are a few examples: 1514Here are a few examples:
1428 1515
1429@example 1516@example
1430@@2$3 @r{2nd row, 3rd column} 1517@@2$3 @r{2nd row, 3rd column}
1518C2 @r{same as previous}
1431$5 @r{column 5 in the current row} 1519$5 @r{column 5 in the current row}
1520E& @r{same as previous}
1432@@2 @r{current column, row 2} 1521@@2 @r{current column, row 2}
1433@@-1$-3 @r{the field one row up, three columns to the left} 1522@@-1$-3 @r{the field one row up, three columns to the left}
1434@@-I$2 @r{field just under hline above current row, column 2} 1523@@-I$2 @r{field just under hline above current row, column 2}
@@ -1449,6 +1538,7 @@ format at least for the first field (i.e the reference must start with
1449$1..$3 @r{First three fields in the current row.} 1538$1..$3 @r{First three fields in the current row.}
1450$P..$Q @r{Range, using column names (see under Advanced)} 1539$P..$Q @r{Range, using column names (see under Advanced)}
1451@@2$1..@@4$3 @r{6 fields between these two fields.} 1540@@2$1..@@4$3 @r{6 fields between these two fields.}
1541A2..C4 @r{Same as above.}
1452@@-1$-2..@@-1 @r{3 numbers from the column to the left, 2 up to current row} 1542@@-1$-2..@@-1 @r{3 numbers from the column to the left, 2 up to current row}
1453@end example 1543@end example
1454 1544
@@ -1466,12 +1556,18 @@ see the @samp{E} mode switch below). If there are no non-empty fields,
1466 1556
1467@samp{$name} is interpreted as the name of a column, parameter or 1557@samp{$name} is interpreted as the name of a column, parameter or
1468constant. Constants are defined globally through the variable 1558constant. Constants are defined globally through the variable
1469@code{org-table-formula-constants}. If you have the 1559@code{org-table-formula-constants}. If you have the @file{constants.el}
1470@file{constants.el} package, it will also be used to resolve 1560package, it will also be used to resolve constants, including natural
1471constants, including natural constants like @samp{$h} for Planck's 1561constants like @samp{$h} for Planck's constant, and units like
1472constant, and units like @samp{$km} for kilometers. Column names and 1562@samp{$km} for kilometers@footnote{@file{Constant.el} can supply the
1473parameters can be specified in special table lines. These are 1563values of constants in two different unit systems, @code{SI} and
1474described below, see @ref{Advanced features}. 1564@code{cgs}. Which one is used depends on the value of the variable
1565@code{constants-unit-system}. You can use the @code{#+STARTUP} options
1566@code{constSI} and @code{constcgs} to set this value for the current
1567buffer.}. Column names and parameters can be specified in special table
1568lines. These are described below, see @ref{Advanced features}. All
1569names must start with a letter, and further consist of letters and
1570numbers.
1475 1571
1476@node Formula syntax for Calc, Formula syntax for Lisp, References, The spreadsheet 1572@node Formula syntax for Calc, Formula syntax for Lisp, References, The spreadsheet
1477@subsection Formula syntax for Calc 1573@subsection Formula syntax for Calc
@@ -1485,6 +1581,7 @@ non-standard convention that @samp{/} has lower precedence than
1485evaluation by @code{calc-eval} (@pxref{Calling Calc from 1581evaluation by @code{calc-eval} (@pxref{Calling Calc from
1486Your Programs,calc-eval,Calling calc from Your Lisp Programs,calc,GNU 1582Your Programs,calc-eval,Calling calc from Your Lisp Programs,calc,GNU
1487Emacs Calc Manual}), 1583Emacs Calc Manual}),
1584@c FIXME: The link to the calc manual in HTML does not work.
1488variable substitution takes place according to the rules described above. 1585variable substitution takes place according to the rules described above.
1489@cindex vectors, in table calculations 1586@cindex vectors, in table calculations
1490The range vectors can be directly fed into the calc vector functions 1587The range vectors can be directly fed into the calc vector functions
@@ -1518,7 +1615,7 @@ reformat the final result. A few examples:
1518$1+$2 @r{Sum of first and second field} 1615$1+$2 @r{Sum of first and second field}
1519$1+$2;%.2f @r{Same, format result to two decimals} 1616$1+$2;%.2f @r{Same, format result to two decimals}
1520exp($2)+exp($1) @r{Math functions can be used} 1617exp($2)+exp($1) @r{Math functions can be used}
1521$;%.1f @r{Reformat current cell to 1 decimal} 1618$0;%.1f @r{Reformat current cell to 1 decimal}
1522($3-32)*5/9 @r{Degrees F -> C conversion} 1619($3-32)*5/9 @r{Degrees F -> C conversion}
1523$c/$1/$cm @r{Hz -> cm conversion, using @file{constants.el}} 1620$c/$1/$cm @r{Hz -> cm conversion, using @file{constants.el}}
1524tan($1);Dp3s1 @r{Compute in degrees, precision 3, display SCI 1} 1621tan($1);Dp3s1 @r{Compute in degrees, precision 3, display SCI 1}
@@ -1528,21 +1625,28 @@ vmean($2..$7);EN @r{Same, but treat empty fields as 0}
1528taylor($3,x=7,2) @r{taylor series of $3, at x=7, second degree} 1625taylor($3,x=7,2) @r{taylor series of $3, at x=7, second degree}
1529@end example 1626@end example
1530 1627
1628Calc also contains a complete set of logical operations. For example
1629
1630@example
1631if($1<20,teen,string("")) @r{``teen'' if age $1 less than 20, else empty}
1632@end example
1633
1531@node Formula syntax for Lisp, Field formulas, Formula syntax for Calc, The spreadsheet 1634@node Formula syntax for Lisp, Field formulas, Formula syntax for Calc, The spreadsheet
1532@subsection Emacs Lisp forms as formulas 1635@subsection Emacs Lisp forms as formulas
1533@cindex Lisp forms, as table formulas 1636@cindex Lisp forms, as table formulas
1534 1637
1535It is also possible to write a formula in Emacs Lisp; this can be useful 1638It is also possible to write a formula in Emacs Lisp; this can be useful
1536for string manipulation and control structures. If a formula starts 1639for string manipulation and control structures, if the Calc's
1537with a single quote followed by an opening parenthesis, then it is 1640functionality is not enough. If a formula starts with a single quote
1538evaluated as a lisp form. The evaluation should return either a string 1641followed by an opening parenthesis, then it is evaluated as a lisp form.
1539or a number. Just as with @file{calc} formulas, you can specify modes 1642The evaluation should return either a string or a number. Just as with
1540and a printf format after a semicolon. A reference will be replaced 1643@file{calc} formulas, you can specify modes and a printf format after a
1541with a string (in double quotes) containing the field. If you provide 1644semicolon. A reference will be replaced with a string (in double
1542the @samp{N} mode switch, all referenced elements will be numbers. 1645quotes) containing the field. If you provide the @samp{N} mode switch,
1543Ranges are inserted as space-separated fields, so you can embed them in 1646all referenced elements will be numbers. Ranges are inserted as
1544list or vector syntax. A few examples, note how the @samp{N} mode is 1647space-separated fields, so you can embed them in list or vector syntax.
1545used when we do computations in lisp. 1648A few examples, note how the @samp{N} mode is used when we do
1649computations in lisp.
1546 1650
1547@example 1651@example
1548@r{Swap the first two characters of the content of column 1} 1652@r{Swap the first two characters of the content of column 1}
@@ -1567,12 +1671,11 @@ evaluated, and the current field replaced with the result.
1567Formulas are stored in a special line starting with @samp{#+TBLFM:} 1671Formulas are stored in a special line starting with @samp{#+TBLFM:}
1568directly below the table. If you typed the equation in the 4th field of 1672directly below the table. If you typed the equation in the 4th field of
1569the 3rd data line in the table, the formula will look like 1673the 3rd data line in the table, the formula will look like
1570@samp{@@3$2=$1+$2}. When inserting/deleting/swapping column and rows 1674@samp{@@3$4=$1+$2}. When inserting/deleting/swapping column and rows
1571with the appropriate commands, @i{absolute references} (but not relative 1675with the appropriate commands, @i{absolute references} (but not relative
1572ones) in stored formulas are modified in order to 1676ones) in stored formulas are modified in order to still reference the
1573still reference the same field. Of cause this is not true if you edit 1677same field. Of cause this is not true if you edit the table structure
1574the table structure with normal editing commands - then you must go and 1678with normal editing commands - then you must fix the equations yourself.
1575fix equations yourself.
1576 1679
1577Instead of typing an equation into the field, you may also use the 1680Instead of typing an equation into the field, you may also use the
1578following command 1681following command
@@ -1593,7 +1696,9 @@ it to the current field and stores it.
1593Often in a table, the same formula should be used for all fields in a 1696Often in a table, the same formula should be used for all fields in a
1594particular column. Instead of having to copy the formula to all fields 1697particular column. Instead of having to copy the formula to all fields
1595in that column, org-mode allows to assign a single formula to an entire 1698in that column, org-mode allows to assign a single formula to an entire
1596column. 1699column. If the table contains horizontal separator hlines, everything
1700before the first such line is considered part of the table @emph{header}
1701and will not be modified by column formulas.
1597 1702
1598To assign a formula to a column, type it directly into any field in the 1703To assign a formula to a column, type it directly into any field in the
1599column, preceded by an equal sign, like @samp{=$1+$2}. When you press 1704column, preceded by an equal sign, like @samp{=$1+$2}. When you press
@@ -1626,7 +1731,11 @@ will apply it to that many consecutive fields in the current column.
1626 1731
1627You can edit individual formulas in the minibuffer or directly in the 1732You can edit individual formulas in the minibuffer or directly in the
1628field. Org-mode can also prepare a special buffer with all active 1733field. Org-mode can also prepare a special buffer with all active
1629formulas of a table. 1734formulas of a table. When offering a formula for editing, Org-mode
1735converts references to the standard format (like @code{B3} or @code{D&})
1736if possible. If you prefer to only work with the internal format (like
1737@code{@@3$2} or @code{$4}), configure the variable
1738@code{org-table-use-standard-references}.
1630 1739
1631@table @kbd 1740@table @kbd
1632@kindex C-c = 1741@kindex C-c =
@@ -1645,21 +1754,36 @@ minibuffer is that you can use the command @kbd{C-c ?}.
1645@item C-c ? 1754@item C-c ?
1646While editing a formula in a table field, highlight the field(s) 1755While editing a formula in a table field, highlight the field(s)
1647referenced by the reference at the cursor position in the formula. 1756referenced by the reference at the cursor position in the formula.
1757@kindex C-c @}
1758@item C-c @}
1759Toggle the display of row and column numbers for a table, using
1760overlays. These are updated each time the table is aligned, you can
1761force it with @kbd{C-c C-c}.
1762@kindex C-c @{
1763@item C-c @{
1764Toggle the formula debugger on and off. See below.
1648@kindex C-c ' 1765@kindex C-c '
1649@item C-c ' 1766@item C-c '
1650Edit all formulas for the current table in a special buffer, where the 1767Edit all formulas for the current table in a special buffer, where the
1651formulas will be displayed one per line. 1768formulas will be displayed one per line. If the current field has an
1769active formula, the cursor in the formula editor will mark it.
1652While inside the special buffer, Org-mode will automatically highlight 1770While inside the special buffer, Org-mode will automatically highlight
1653any field or range reference at the cursor position. You may edit, 1771any field or range reference at the cursor position. You may edit,
1654remove and add formulas, and use the following commands: 1772remove and add formulas, and use the following commands:
1655@table @kbd 1773@table @kbd
1656@kindex C-c C-c 1774@kindex C-c C-c
1775@kindex C-x C-s
1657@item C-c C-c 1776@item C-c C-c
1658Exit the buffer and store the modified formulas. With @kbd{C-u} prefix, 1777@itemx C-x C-s
1659also apply the new formulas to the entire table. 1778Exit the formula editor and store the modified formulas. With @kbd{C-u}
1779prefix, also apply the new formulas to the entire table.
1660@kindex C-c C-q 1780@kindex C-c C-q
1661@item C-c C-q 1781@item C-c C-q
1662Exit the buffer without installing changes. 1782Exit the formula editor without installing changes.
1783@kindex C-c C-r
1784@item C-c C-r
1785Toggle all references in the formula editor between standard (like
1786@code{B3}) and internal (like @code{@@3$2}).
1663@kindex @key{TAB} 1787@kindex @key{TAB}
1664@item @key{TAB} 1788@item @key{TAB}
1665Pretty-print or indent lisp formula at point. When in a line containing 1789Pretty-print or indent lisp formula at point. When in a line containing
@@ -1671,23 +1795,25 @@ formula, @key{TAB} re-indents just like in Emacs-lisp-mode.
1671Complete Lisp symbols, just like in Emacs-lisp-mode. 1795Complete Lisp symbols, just like in Emacs-lisp-mode.
1672@kindex S-@key{up} 1796@kindex S-@key{up}
1673@kindex S-@key{down} 1797@kindex S-@key{down}
1674@item S-@key{up}/@key{down} 1798@kindex S-@key{left}
1675Move the reference line in the Org-mode buffer up and down. This is 1799@kindex S-@key{right}
1676important for highlighting the references of column formulas for 1800@item S-@key{up}/@key{down}/@key{left}/@key{right}
1677different rows. 1801Shift the reference at point. For example, if the reference is
1802@code{B3} and you press @kbd{S-@key{right}}, it will become @code{C3}.
1803This also works for relative references, and for hline references.
1804@kindex M-S-@key{up}
1805@kindex M-S-@key{down}
1806@item M-S-@key{up}/@key{down}
1807Move the test line for column formulas in the Org-mode buffer up and
1808down.
1678@kindex M-@key{up} 1809@kindex M-@key{up}
1679@kindex M-@key{down} 1810@kindex M-@key{down}
1680@item M-@key{up}/@key{down} 1811@item M-@key{up}/@key{down}
1681Scroll the window displaying the table. 1812Scroll the window displaying the table.
1682@end table
1683@kindex C-c @} 1813@kindex C-c @}
1684@item C-c @} 1814@item C-c @}
1685Toggle the display of row and column numbers for a table, using 1815Turn the coordinate grid in the table on and off.
1686overlays. These are uptated each time the table is aligned, you can 1816@end table
1687force it with @kbd{C-c C-c}.
1688@kindex C-c @{
1689@item C-c @{
1690Toggle the formula debugger on and off. See below.
1691@end table 1817@end table
1692 1818
1693Making a table field blank does not remove the formula associated with 1819Making a table field blank does not remove the formula associated with
@@ -1708,8 +1834,8 @@ When the evaluation of a formula leads to an error, the field content
1708becomes the string @samp{#ERROR}. If you would like see what is going 1834becomes the string @samp{#ERROR}. If you would like see what is going
1709on during variable substitution and calculation in order to find a bug, 1835on during variable substitution and calculation in order to find a bug,
1710turn on formula debugging in the @code{Tbl} menu and repeat the 1836turn on formula debugging in the @code{Tbl} menu and repeat the
1711calculation, for example by pressing @kbd{C-c = @key{RET}} in a field. 1837calculation, for example by pressing @kbd{C-u C-u C-c = @key{RET}} in a
1712Detailed information will be displayed. 1838field. Detailed information will be displayed.
1713 1839
1714@node Updating the table, Advanced features, Editing and debugging formulas, The spreadsheet 1840@node Updating the table, Advanced features, Editing and debugging formulas, The spreadsheet
1715@subsection Updating the Table 1841@subsection Updating the Table
@@ -1728,14 +1854,14 @@ following commands:
1728@item C-c * 1854@item C-c *
1729Recalculate the current row by first applying the stored column formulas 1855Recalculate the current row by first applying the stored column formulas
1730from left to right, and all field formulas in the current row. 1856from left to right, and all field formulas in the current row.
1731 1857@c
1732@kindex C-u C-c * 1858@kindex C-u C-c *
1733@item C-u C-c * 1859@item C-u C-c *
1734@kindex C-u C-c C-c 1860@kindex C-u C-c C-c
1735@itemx C-u C-c C-c 1861@itemx C-u C-c C-c
1736Recompute the entire table, line by line. Any lines before the first 1862Recompute the entire table, line by line. Any lines before the first
1737hline are left alone, assuming that these are part of the table header. 1863hline are left alone, assuming that these are part of the table header.
1738 1864@c
1739@kindex C-u C-u C-c * 1865@kindex C-u C-u C-c *
1740@item C-u C-u C-c * 1866@item C-u C-u C-c *
1741Iterate the table by recomputing it until no further changes occur. 1867Iterate the table by recomputing it until no further changes occur.
@@ -1743,7 +1869,6 @@ This may be necessary if some computed fields use the value of other
1743fields that are computed @i{later} in the calculation sequence. 1869fields that are computed @i{later} in the calculation sequence.
1744@end table 1870@end table
1745 1871
1746
1747@node Advanced features, , Updating the table, The spreadsheet 1872@node Advanced features, , Updating the table, The spreadsheet
1748@subsection Advanced features 1873@subsection Advanced features
1749 1874
@@ -2058,7 +2183,7 @@ automatically created link is not working correctly or accurately
2058enough, you can write custom functions to select the search string and 2183enough, you can write custom functions to select the search string and
2059to do the search for particular file types - see @ref{Custom searches}. 2184to do the search for particular file types - see @ref{Custom searches}.
2060The key binding @kbd{C-c l} is only a suggestion - see @ref{Installation}. 2185The key binding @kbd{C-c l} is only a suggestion - see @ref{Installation}.
2061 2186@c
2062@kindex C-c C-l 2187@kindex C-c C-l
2063@cindex link completion 2188@cindex link completion
2064@cindex completion, of links 2189@cindex completion, of links
@@ -2068,24 +2193,26 @@ Insert a link. This prompts for a link to be inserted into the buffer.
2068You can just type a link, using text for an internal link, or one of the 2193You can just type a link, using text for an internal link, or one of the
2069link type prefixes mentioned in the examples above. All links stored 2194link type prefixes mentioned in the examples above. All links stored
2070during the current session are part of the history for this prompt, so 2195during the current session are part of the history for this prompt, so
2071you can access them with @key{up} and @key{down}, or with 2196you can access them with @key{up} and @key{down}. Completion, on the
2072completion@footnote{After insertion of a stored link, the link will be 2197other hand, will help you to insert valid link prefixes like
2073removed from the list of stored links. To keep it in the list later 2198@samp{http:} or @samp{ftp:}, including the prefixes defined through link
2199abbreviations (@pxref{Link abbreviations}). The link will be inserted
2200into the buffer@footnote{After insertion of a stored link, the link will
2201be removed from the list of stored links. To keep it in the list later
2074use, use a triple @kbd{C-u} prefix to @kbd{C-c C-l}, or configure the 2202use, use a triple @kbd{C-u} prefix to @kbd{C-c C-l}, or configure the
2075option @code{org-keep-stored-link-after-insertion}.}. The link will be 2203option @code{org-keep-stored-link-after-insertion}.}, along with a
2076inserted into the buffer, along with a descriptive text. If some text 2204descriptive text. If some text was selected when this command is
2077was selected when this command is called, the selected text becomes the 2205called, the selected text becomes the default description.@* Note that
2078default description.@* Note that you don't have to use this command to 2206you don't have to use this command to insert a link. Links in Org-mode
2079insert a link. Links in Org-mode are plain text, and you can type or 2207are plain text, and you can type or paste them straight into the buffer.
2080paste them straight into the buffer. By using this command, the links 2208By using this command, the links are automatically enclosed in double
2081are automatically enclosed in double brackets, and you will be asked for 2209brackets, and you will be asked for the optional descriptive text.
2082the optional descriptive text. 2210@c
2083
2084@c If the link is a @samp{file:} link and 2211@c If the link is a @samp{file:} link and
2085@c the linked file is located in the same directory as the current file or 2212@c the linked file is located in the same directory as the current file or
2086@c a subdirectory of it, the path of the file will be inserted relative to 2213@c a subdirectory of it, the path of the file will be inserted relative to
2087@c the current directory. 2214@c the current directory.
2088 2215@c
2089@kindex C-u C-c C-l 2216@kindex C-u C-c C-l
2090@cindex file name completion 2217@cindex file name completion
2091@cindex completion, of file names 2218@cindex completion, of file names
@@ -2098,11 +2225,11 @@ directory or in a subdirectory of it, or if the path is written relative
2098to the current directory using @samp{../}. Otherwise an absolute path 2225to the current directory using @samp{../}. Otherwise an absolute path
2099is used, if possible with @samp{~/} for your home directory. You can 2226is used, if possible with @samp{~/} for your home directory. You can
2100force an absolute path with two @kbd{C-u} prefixes. 2227force an absolute path with two @kbd{C-u} prefixes.
2101 2228@c
2102@item C-c C-l @r{with cursor on existing link} 2229@item C-c C-l @r{(with cursor on existing link)}
2103When the cursor is on an existing link, @kbd{C-c C-l} allows you to edit the 2230When the cursor is on an existing link, @kbd{C-c C-l} allows you to edit the
2104link and description parts of the link. 2231link and description parts of the link.
2105 2232@c
2106@cindex following links 2233@cindex following links
2107@kindex C-c C-o 2234@kindex C-c C-o
2108@item C-c C-o 2235@item C-c C-o
@@ -2118,26 +2245,26 @@ suitable application for local non-text files. Classification of files
2118is based on file extension only. See option @code{org-file-apps}. If 2245is based on file extension only. See option @code{org-file-apps}. If
2119you want to override the default application and visit the file with 2246you want to override the default application and visit the file with
2120Emacs, use a @kbd{C-u} prefix. 2247Emacs, use a @kbd{C-u} prefix.
2121 2248@c
2122@kindex mouse-2 2249@kindex mouse-2
2123@kindex mouse-1 2250@kindex mouse-1
2124@item mouse-2 2251@item mouse-2
2125@itemx mouse-1 2252@itemx mouse-1
2126On links, @kbd{mouse-2} will open the link just as @kbd{C-c C-o} 2253On links, @kbd{mouse-2} will open the link just as @kbd{C-c C-o}
2127would. Under Emacs 22, also @kbd{mouse-1} will follow a link. 2254would. Under Emacs 22, also @kbd{mouse-1} will follow a link.
2128 2255@c
2129@kindex mouse-3 2256@kindex mouse-3
2130@item mouse-3 2257@item mouse-3
2131Like @kbd{mouse-2}, but force file links to be opened with Emacs, and 2258Like @kbd{mouse-2}, but force file links to be opened with Emacs, and
2132internal links to be displayed in another window@footnote{See the 2259internal links to be displayed in another window@footnote{See the
2133variable @code{org-display-internal-link-with-indirect-buffer}}. 2260variable @code{org-display-internal-link-with-indirect-buffer}}.
2134 2261@c
2135@cindex mark ring 2262@cindex mark ring
2136@kindex C-c % 2263@kindex C-c %
2137@item C-c % 2264@item C-c %
2138Push the current position onto the mark ring, to be able to return 2265Push the current position onto the mark ring, to be able to return
2139easily. Commands following an internal link do this automatically. 2266easily. Commands following an internal link do this automatically.
2140 2267@c
2141@cindex links, returning to 2268@cindex links, returning to
2142@kindex C-c & 2269@kindex C-c &
2143@item C-c & 2270@item C-c &
@@ -2145,7 +2272,7 @@ Jump back to a recorded position. A position is recorded by the
2145commands following internal links, and by @kbd{C-c %}. Using this 2272commands following internal links, and by @kbd{C-c %}. Using this
2146command several times in direct succession moves through a ring of 2273command several times in direct succession moves through a ring of
2147previously recorded positions. 2274previously recorded positions.
2148 2275@c
2149@kindex C-c C-x C-n 2276@kindex C-c C-x C-n
2150@kindex C-c C-x C-p 2277@kindex C-c C-x C-p
2151@cindex links, finding next/previous 2278@cindex links, finding next/previous
@@ -2341,8 +2468,8 @@ use:
2341@noindent In these entries, the character specifies how to select the 2468@noindent In these entries, the character specifies how to select the
2342template. The first string specifies the template. Two more (optional) 2469template. The first string specifies the template. Two more (optional)
2343strings give the file in which, and the headline under which the new 2470strings give the file in which, and the headline under which the new
2344note should be stored. The file defaults to 2471note should be stored. The file defaults (if not present or @code{nil})
2345@code{org-default-notes-file}, the heading to 2472to @code{org-default-notes-file}, the heading to
2346@code{org-remember-default-headline}. Both defaults help to get to the 2473@code{org-remember-default-headline}. Both defaults help to get to the
2347storing location quickly, but you can change the location interactively 2474storing location quickly, but you can change the location interactively
2348while storing the note. 2475while storing the note.
@@ -2398,8 +2525,7 @@ calendar | %:date"
2398@end example 2525@end example
2399 2526
2400@noindent 2527@noindent
2401If you would like to have the cursor in a specific position after the 2528To place the cursor after template expansion use:
2402template has been expanded:
2403 2529
2404@example 2530@example
2405%? @r{After completing the template, position cursor here.} 2531%? @r{After completing the template, position cursor here.}
@@ -2408,7 +2534,7 @@ template has been expanded:
2408@noindent 2534@noindent
2409If you change you mind about which template to use, call 2535If you change you mind about which template to use, call
2410@code{org-remember} in the remember buffer. You may then select a new 2536@code{org-remember} in the remember buffer. You may then select a new
2411template that will be filled with the previoous context information. 2537template that will be filled with the previous context information.
2412 2538
2413@node Storing notes, , Remember templates, Remember 2539@node Storing notes, , Remember templates, Remember
2414@subsection Storing notes 2540@subsection Storing notes
@@ -2419,20 +2545,27 @@ target file - if you press @key{RET}, the value specified for the
2419template is used. Then the command offers the headings tree of the 2545template is used. Then the command offers the headings tree of the
2420selected file, with the cursor position at the default headline (if you 2546selected file, with the cursor position at the default headline (if you
2421had specified one in the template). You can either immediately press 2547had specified one in the template). You can either immediately press
2422@key{RET} to get the note placed there. Or you can use vertical cursor 2548@key{RET} to get the note placed there. Or you can use the following
2423motion (@key{up} and @key{down}) and visibility cycling (@key{TAB}) to 2549keys to find a better location:
2424find a better place. Pressing @key{RET} or @key{left} or @key{right} 2550@example
2551@key{TAB} @r{Cycle visibility.}
2552@key{down} / @key{up} @r{Next/previous visible headline.}
2553n / p @r{Next/previous visible headline.}
2554f / b @r{Next/previous headline same level.}
2555u @r{One level up.}
2556@c 0-9 @r{Digit argument.}
2557@end example
2558@noindent
2559Pressing @key{RET} or @key{left} or @key{right}
2425then leads to the following result. 2560then leads to the following result.
2426 2561
2427@multitable @columnfractions 0.2 0.1 0.7 2562@multitable @columnfractions 0.2 0.15 0.65
2428@item @b{Cursor position} @tab @b{Key} @tab @b{Note gets inserted} 2563@item @b{Cursor position} @tab @b{Key} @tab @b{Note gets inserted}
2429@item buffer-start @tab @key{RET} @tab as level 2 heading at end of file 2564@item buffer-start @tab @key{RET} @tab as level 2 heading at end of file
2430@item on headline @tab @key{RET} @tab as sublevel of the heading at cursor 2565@item on headline @tab @key{RET} @tab as sublevel of the heading at cursor
2431@item @tab @key{left} @tab as same level, before current heading 2566@item @tab @key{left}/@key{right} @tab as same level, before/after current heading
2432@item @tab @key{right} @tab as same level, after current heading
2433@item not on headline @tab @key{RET} 2567@item not on headline @tab @key{RET}
2434 @tab at cursor position, level taken from context. 2568 @tab at cursor position, level taken from context.
2435 Or use prefix arg to specify level manually.
2436@end multitable 2569@end multitable
2437 2570
2438So a fast way to store the note to its default location is to press 2571So a fast way to store the note to its default location is to press
@@ -2467,7 +2600,7 @@ things you have to do.
2467* TODO basics:: Marking and displaying TODO entries 2600* TODO basics:: Marking and displaying TODO entries
2468* TODO extensions:: Workflow and assignments 2601* TODO extensions:: Workflow and assignments
2469* Priorities:: Some things are more important than others 2602* Priorities:: Some things are more important than others
2470* Breaking down tasks:: Splitting a task into managable pieces 2603* Breaking down tasks:: Splitting a task into manageable pieces
2471* Checkboxes:: Tick-off lists 2604* Checkboxes:: Tick-off lists
2472@end menu 2605@end menu
2473 2606
@@ -2488,7 +2621,7 @@ The most important commands to work with TODO entries are:
2488@kindex C-c C-t 2621@kindex C-c C-t
2489@cindex cycling, of TODO states 2622@cindex cycling, of TODO states
2490@item C-c C-t 2623@item C-c C-t
2491Rotate the TODO state of the current item between 2624Rotate the TODO state of the current item among
2492 2625
2493@example 2626@example
2494,-> (unmarked) -> TODO -> DONE --. 2627,-> (unmarked) -> TODO -> DONE --.
@@ -2508,9 +2641,11 @@ useful if more than two TODO states are possible (@pxref{TODO extensions}).
2508@item C-c C-v 2641@item C-c C-v
2509View TODO items in a @emph{sparse tree} (@pxref{Sparse trees}). Folds 2642View TODO items in a @emph{sparse tree} (@pxref{Sparse trees}). Folds
2510the entire buffer, but shows all TODO items and the headings hierarchy 2643the entire buffer, but shows all TODO items and the headings hierarchy
2511above them. With prefix arg, show also the DONE entries. With 2644above them. With prefix arg, search for a specific TODO. You will be
2512numerical prefix N, show the tree for the Nth keyword in the variable 2645prompted for the keyword, and you can also give a list of keywords like
2513@code{org-todo-keywords}. 2646@code{kwd1|kwd2|...}. With numerical prefix N, show the tree for the
2647Nth keyword in the variable @code{org-todo-keywords}. With two prefix
2648args, find all TODO and DONE entries.
2514@kindex C-c a t 2649@kindex C-c a t
2515@item C-c a t 2650@item C-c a t
2516Show the global TODO list. This collects the TODO items from all 2651Show the global TODO list. This collects the TODO items from all
@@ -2523,16 +2658,14 @@ the TODO entries directly from that buffer (@pxref{Agenda commands}).
2523@c agenda, customize the variable @code{org-agenda-include-all-todo}. 2658@c agenda, customize the variable @code{org-agenda-include-all-todo}.
2524@end table 2659@end table
2525 2660
2526
2527@node TODO extensions, Priorities, TODO basics, TODO items 2661@node TODO extensions, Priorities, TODO basics, TODO items
2528@section Extended use of TODO keywords 2662@section Extended use of TODO keywords
2529@cindex extended TODO keywords 2663@cindex extended TODO keywords
2530 2664
2531The default implementation of TODO entries is just two states: TODO and 2665The default implementation of TODO entries is just two states: TODO and
2532DONE. You can, however, use the TODO feature for more complicated 2666DONE. You can use the TODO feature for more complicated things by
2533things by configuring the variables @code{org-todo-keywords} and 2667configuring the variable @code{org-todo-keywords}. With special setup,
2534@code{org-todo-interpretation}. Using special setup, you can even use 2668the TODO keyword system can work differently in different files.
2535TODO keywords in different ways in different org files.
2536 2669
2537Note that @i{tags} are another way to classify headlines in general and 2670Note that @i{tags} are another way to classify headlines in general and
2538TODO items in particular (@pxref{Tags}). 2671TODO items in particular (@pxref{Tags}).
@@ -2540,6 +2673,7 @@ TODO items in particular (@pxref{Tags}).
2540@menu 2673@menu
2541* Workflow states:: From TODO to DONE in steps 2674* Workflow states:: From TODO to DONE in steps
2542* TODO types:: I do this, Fred the rest 2675* TODO types:: I do this, Fred the rest
2676* Multiple sets in one file:: Mixing it all, and still finding your way
2543* Per file keywords:: Different files, different requirements 2677* Per file keywords:: Different files, different requirements
2544@end menu 2678@end menu
2545 2679
@@ -2548,103 +2682,149 @@ TODO items in particular (@pxref{Tags}).
2548@cindex TODO workflow 2682@cindex TODO workflow
2549@cindex workflow states as TODO keywords 2683@cindex workflow states as TODO keywords
2550 2684
2551You can use TODO keywords to indicate different states in the process 2685You can use TODO keywords to indicate different @emph{sequential} states
2552of working on an item, for example: 2686in the process of working on an item, for example@footnote{Changing
2687this variable only becomes effective after restarting Org-mode in a
2688buffer.}:
2553 2689
2554@lisp 2690@lisp
2555(setq org-todo-keywords '("TODO" "FEEDBACK" "VERIFY" "DONE") 2691(setq org-todo-keywords
2556 org-todo-interpretation 'sequence) 2692 '((sequence "TODO" "FEEDBACK" "VERIFY" "|" "DONE" "DELEGATED")))
2557@end lisp 2693@end lisp
2558 2694
2695The vertical bar separates the TODO keywords (states that @emph{need
2696action}) from the DONE states (which need @emph{no further action}. If
2697you don't provide the separator bar, the last state is used as the DONE
2698state.
2559@cindex completion, of TODO keywords 2699@cindex completion, of TODO keywords
2560Changing these variables only becomes effective in a new Emacs session. 2700With this setup, the command @kbd{C-c C-t} will cycle an entry from TODO
2561With this setup, the command @kbd{C-c C-t} will cycle an entry from 2701to FEEDBACK, then to VERIFY, and finally to DONE and DELEGATED. You may
2562TODO to FEEDBACK, then to VERIFY, and finally to DONE. You may also 2702also use a prefix argument to quickly select a specific state. For
2563use a prefix argument to quickly select a specific state. For example 2703example @kbd{C-3 C-c C-t} will change the state immediately to VERIFY.
2564@kbd{C-3 C-c C-t} will change the state immediately to VERIFY.
2565If you define many keywords, you can use in-buffer completion (see 2704If you define many keywords, you can use in-buffer completion (see
2566@ref{Completion}) to insert these words into the buffer. Changing a todo 2705@ref{Completion}) to insert these words into the buffer. Changing a
2567state can be logged with a timestamp, see @ref{Tracking TODO state 2706todo state can be logged with a timestamp, see @ref{Tracking TODO state
2568changes} for more information. 2707changes} for more information.
2569 2708
2570@node TODO types, Per file keywords, Workflow states, TODO extensions 2709@node TODO types, Multiple sets in one file, Workflow states, TODO extensions
2571@subsection TODO keywords as types 2710@subsection TODO keywords as types
2572@cindex TODO types 2711@cindex TODO types
2573@cindex names as TODO keywords 2712@cindex names as TODO keywords
2574@cindex types as TODO keywords 2713@cindex types as TODO keywords
2575 2714
2576The second possibility is to use TODO keywords to indicate different 2715The second possibility is to use TODO keywords to indicate different
2577types of action items. For example, you might want to indicate that 2716@emph{types} of action items. For example, you might want to indicate
2578items are for ``work'' or ``home''. If you are into David Allen's 2717that items are for ``work'' or ``home''. Or, when you work with several
2579@emph{Getting Things DONE}, you might want to use todo types 2718people on a single project, you might want to assign action items
2580@samp{NEXTACTION}, @samp{WAITING}, @samp{MAYBE}. Or, when you work 2719directly to persons, by using their names as TODO keywords. This would
2581with several people on a single project, you might want to assign 2720be set up like this:
2582action items directly to persons, by using their names as TODO 2721
2583keywords. This would be set up like this: 2722@lisp
2723(setq org-todo-keywords '((type "Fred" "Sara" "Lucy" "|" "DONE")))
2724@end lisp
2725
2726In this case, different keywords do not indicate a sequence, but rather
2727different types. So the normal work flow would be to assign a task to a
2728person, and later to mark it DONE. Org-mode supports this style by
2729adapting the workings of the command @kbd{C-c C-t}@footnote{This is also
2730true for the @kbd{t} command in the timeline and agenda buffers.}. When
2731used several times in succession, it will still cycle through all names,
2732in order to first select the right type for a task. But when you return
2733to the item after some time and execute @kbd{C-c C-t} again, it will
2734switch from any name directly to DONE. Use prefix arguments or
2735completion to quickly select a specific name. You can also review the
2736items of a specific TODO type in a sparse tree by using a numeric prefix
2737to @kbd{C-c C-v}. For example, to see all things Lucy has to do, you
2738would use @kbd{C-3 C-c C-v}. To collect Lucy's items from all agenda
2739files into a single buffer, you would use the prefix arg as well when
2740creating the global todo list: @kbd{C-3 C-c t}.
2741
2742@node Multiple sets in one file, Per file keywords, TODO types, TODO extensions
2743@subsection Multiple keyword sets in one file
2744@cindex todo keyword sets
2745
2746Sometimes you may want to use different sets of TODO keywords in
2747parallel. For example, you may want to have the basic
2748@code{TODO}/@code{DONE}, but also a workflow for bug fixing, and a
2749separate state indicating that an item has been canceled (so it is not
2750DONE, but also does not require action). Your setup would then look
2751like this:
2584 2752
2585@lisp 2753@lisp
2586(setq org-todo-keywords '("Fred" "Sara" "Lucy" "Mike" "DONE") 2754(setq org-todo-keywords
2587 org-todo-interpretation 'type) 2755 '((sequence "TODO" "|" "DONE")
2756 (sequence "REPORT" "BUG" "KNOWNCAUSE" "|" "FIXED")
2757 (sequence "|" "CANCELED")))
2588@end lisp 2758@end lisp
2589 2759
2590In this case, different keywords do not indicate a sequence, but 2760The keywords should all be different, this helps Org-mode to keep track
2591rather different types. So it is normally not useful to change from 2761of which subsequence should be used for a given entry. In this setup,
2592one type to another. Therefore, in this case the behavior of the 2762@kbd{C-c C-t} only operates within a subsequence, so it switches from
2593command @kbd{C-c C-t} is changed slightly@footnote{This is also true 2763@code{DONE} to (nothing) to @code{TODO}, and from @code{FIXED} to
2594for the @kbd{t} command in the timeline and agenda buffers.}. When 2764(nothing) to @code{REPORT}. Therefore you need a mechanism to initially
2595used several times in succession, it will still cycle through all 2765select the correct sequence. Besides the obvious ways like typing a
2596names. But when you return to the item after some time and execute 2766keyword or using completion, you may also apply the following commands:
2597@kbd{C-c C-t} again, it will switch from each name directly to DONE. 2767
2598Use prefix arguments or completion to quickly select a specific name. 2768@table @kbd
2599You can also review the items of a specific TODO type in a sparse tree 2769@kindex C-S-@key{right}
2600by using a numeric prefix to @kbd{C-c C-v}. For example, to see all 2770@kindex C-S-@key{left}
2601things Lucy has to do, you would use @kbd{C-3 C-c C-v}. To collect 2771@item C-S-@key{right}
2602Lucy's items from all agenda files into a single buffer, you 2772@itemx C-S-@key{left}
2603would use the prefix arg as well when creating the global todo list: 2773These keys jump from one TODO subset to the next. In the above example,
2604@kbd{C-3 C-c t}. 2774@kbd{C-S-@key{right}} would jump from @code{TODO} or @code{DONE} to
2605 2775@code{REPORT}, and any of the words in the second row to @code{CANCELED}.
2606@node Per file keywords, , TODO types, TODO extensions 2776@kindex S-@key{right}
2607@subsection Setting up TODO keywords for individual files 2777@kindex S-@key{left}
2778@item S-@key{right}
2779@itemx S-@key{left}
2780@kbd{S-@key{<left>}} and @kbd{S-@key{<right>}} and walk through
2781@emph{all} keywords from all sets, so for example @kbd{S-@key{<right>}}
2782would switch from @code{DONE} to @code{REPORT} in the example above.
2783@end table
2784
2785@node Per file keywords, , Multiple sets in one file, TODO extensions
2786@subsection Setting up keywords for individual files
2608@cindex keyword options 2787@cindex keyword options
2609@cindex per file keywords 2788@cindex per file keywords
2610 2789
2611It can be very useful to use different aspects of the TODO mechanism 2790It can be very useful to use different aspects of the TODO mechanism in
2612in different files, which is not possible with the global settings 2791different files. For file-local settings, you need to add special lines
2613described above. For file-local settings, you need to add special 2792to the file which set the keywords and interpretation for that file
2614lines to the file which set the keywords and interpretation for that 2793only. For example, to set one of the two examples discussed above, you
2615file only. For example, to set one of the two examples discussed 2794need one of the following lines, starting in column zero anywhere in the
2616above, you need one of the following lines, starting in column zero 2795file:
2617anywhere in the file: 2796
2797@example
2798#+SEQ_TODO: TODO FEEDBACK VERIFY | DONE CANCELED
2799@end example
2800or
2801@example
2802#+TYP_TODO: Fred Sara Lucy Mike | DONE
2803@end example
2804
2805A setup for using several sets in parallel would be:
2618 2806
2619@example 2807@example
2620#+SEQ_TODO: TODO FEEDBACK VERIFY DONE 2808#+SEQ_TODO: "TODO" "|" "DONE"
2621#+TYP_TODO: Fred Sara Lucy Mike DONE 2809#+SEQ_TODO: "REPORT" "BUG" "KNOWNCAUSE" "|" "FIXED"
2810#+SEQ_TODO: "|" "CANCELED"
2622@end example 2811@end example
2623 2812
2813
2624@cindex completion, of option keywords 2814@cindex completion, of option keywords
2625@kindex M-@key{TAB} 2815@kindex M-@key{TAB}
2626@noindent To make sure you are using the correct keyword, type 2816@noindent To make sure you are using the correct keyword, type
2627@samp{#+} into the buffer and then use @kbd{M-@key{TAB}} completion. 2817@samp{#+} into the buffer and then use @kbd{M-@key{TAB}} completion.
2628 2818
2629@cindex DONE, final TODO keyword 2819@cindex DONE, final TODO keyword
2630Remember that the last keyword must always mean that the item is DONE 2820Remember that the keywords after the vertical bar (or the last keyword
2631(although you may use a different word). Also note that in each file, 2821if no bar is there) must always mean that the item is DONE (although you
2632only one of the two aspects of TODO keywords can be used. After 2822may use a different word). After changing one of these lines, use
2633changing one of these lines, use @kbd{C-c C-c} with the cursor still 2823@kbd{C-c C-c} with the cursor still in the line to make the changes
2634in the line to make the changes known to Org-mode@footnote{Org-mode 2824known to Org-mode@footnote{Org-mode parses these lines only when
2635parses these lines only when Org-mode is activated after visiting a 2825Org-mode is activated after visiting a file. @kbd{C-c C-c} with the
2636file. @kbd{C-c C-c} with the cursor in a line starting with @samp{#+} 2826cursor in a line starting with @samp{#+} is simply restarting Org-mode
2637is simply restarting Org-mode for the current buffer.}. 2827for the current buffer.}.
2638
2639If you want to use very many keywords, for example when working with a
2640large group of people, you may split the names over several lines:
2641
2642@example
2643#+TYP_TODO: Fred Sara Lucy Mike
2644#+TYP_TODO: Luis George Jules Jessica
2645#+TYP_TODO: Kim Arnold Peter
2646#+TYP_TODO: DONE
2647@end example
2648 2828
2649@node Priorities, Breaking down tasks, TODO extensions, TODO items 2829@node Priorities, Breaking down tasks, TODO extensions, TODO items
2650@section Priorities 2830@section Priorities
@@ -2673,7 +2853,7 @@ priority character @samp{A}, @samp{B} or @samp{C}. When you press
2673@key{SPC} instead, the priority cookie is removed from the headline. 2853@key{SPC} instead, the priority cookie is removed from the headline.
2674The priorities can also be changed ``remotely'' from the timeline and 2854The priorities can also be changed ``remotely'' from the timeline and
2675agenda buffer with the @kbd{,} command (@pxref{Agenda commands}). 2855agenda buffer with the @kbd{,} command (@pxref{Agenda commands}).
2676 2856@c
2677@kindex S-@key{up} 2857@kindex S-@key{up}
2678@kindex S-@key{down} 2858@kindex S-@key{down}
2679@item S-@key{up} 2859@item S-@key{up}
@@ -2683,11 +2863,22 @@ are also used to modify time stamps (@pxref{Creating timestamps}).
2683Furthermore, these keys are also used by CUA-mode (@pxref{Conflicts}). 2863Furthermore, these keys are also used by CUA-mode (@pxref{Conflicts}).
2684@end table 2864@end table
2685 2865
2866You can change the range of allowed priorities by setting the variables
2867@code{org-highest-priority}, @code{org-lowest-priority}, and
2868@code{org-default-priority}. For an individual buffer, you may set
2869these values (highest, lowest, default) like this (please make sure that
2870the highest priority is earlier in the alphabet than the lowest
2871priority):
2872
2873@example
2874#+PRIORITIES: A C B
2875@end example
2876
2686@node Breaking down tasks, Checkboxes, Priorities, TODO items 2877@node Breaking down tasks, Checkboxes, Priorities, TODO items
2687@section Breaking tasks down into subtasks 2878@section Breaking tasks down into subtasks
2688@cindex tasks, breaking down 2879@cindex tasks, breaking down
2689 2880
2690It is often advisable to break down large tasks into smaller, managable 2881It is often advisable to break down large tasks into smaller, manageable
2691subtasks. You can do this by creating an outline tree below a TODO 2882subtasks. You can do this by creating an outline tree below a TODO
2692item, with detailed subtasks on the tree@footnote{To keep subtasks out 2883item, with detailed subtasks on the tree@footnote{To keep subtasks out
2693of the global TODO list, see the 2884of the global TODO list, see the
@@ -2780,8 +2971,7 @@ planning.
2780@menu 2971@menu
2781* Time stamps:: Assigning a time to a tree entry 2972* Time stamps:: Assigning a time to a tree entry
2782* Creating timestamps:: Commands which insert timestamps 2973* Creating timestamps:: Commands which insert timestamps
2783* Custom time format:: If you cannot work with the ISO format 2974* Deadlines and scheduling:: Planning your work
2784* Repeating items:: Deadlines that come back again and again
2785* Progress logging:: Documenting when what work was done. 2975* Progress logging:: Documenting when what work was done.
2786@end menu 2976@end menu
2787 2977
@@ -2799,7 +2989,7 @@ special format, either @samp{<2003-09-16 Tue>} or @samp{<2003-09-16 Tue
279909:39>}@footnote{This is the standard ISO date/time format. If you 298909:39>}@footnote{This is the standard ISO date/time format. If you
2800cannot get used to these, see @ref{Custom time format}}. A time stamp 2990cannot get used to these, see @ref{Custom time format}}. A time stamp
2801can appear anywhere in the headline or body of an org-tree entry. Its 2991can appear anywhere in the headline or body of an org-tree entry. Its
2802presence allows entries to be shown on specific dates in the agenda 2992presence causes entries to be shown on specific dates in the agenda
2803(@pxref{Weekly/Daily agenda}). We distinguish: 2993(@pxref{Weekly/Daily agenda}). We distinguish:
2804 2994
2805@table @var 2995@table @var
@@ -2815,76 +3005,53 @@ associated with a plain time stamp will be shown exactly on that date.
2815* Meet Peter at the movies <2006-11-01 Wed 19:15> 3005* Meet Peter at the movies <2006-11-01 Wed 19:15>
2816@end example 3006@end example
2817 3007
2818@item Inactive time stamp 3008@item Time stamp with repeater interval
2819@cindex timestamp, inactive 3009@cindex timestamp, with repeater interval
2820@cindex inactive timestamp 3010A time stamp may contain a @emph{repeater interval}, indicating that it
2821Just like a plain time stamp, but with square brackets instead of 3011applies not only on the given date, but again and again after a certain
2822angular ones. These time stamps are inactive in the sense that they do 3012interval of N days (d), weeks (w), months(m), or years(y). The
2823@emph{not} trigger an entry to show up in the agenda. 3013following will show up in the agenda every Wednesday:
2824 3014
2825@example 3015@example
2826* Gillian comes late for the fifth time [2006-11-01 Wed] 3016* Pick up Sam at school <2007-05-16 Wed 12:30 +1w>
2827@end example 3017@end example
2828 3018
2829@item Time stamp range 3019@item Diary-style sexp entries
2830@cindex timerange 3020For more complex date specifications, Org-mode supports using the
2831Two time stamps connected by @samp{--} denote a time range. The 3021special sexp diary entries implemented in the Emacs calendar/diary
2832headline will be shown on the first and last day of the range, and on 3022package. For example
2833any dates that are displayed and fall in the range. Here is an
2834example:
2835 3023
2836@example 3024@example
2837** Meeting in Amsterdam 3025* The nerd meeting on every 2nd Thursday of the month
2838 <2004-08-23 Mon>--<2004-08-26 Thu> 3026 <%%(diary-float t 4 2)>
2839@end example 3027@end example
2840 3028
2841@item Time stamp with SCHEDULED keyword 3029@item Time/Date range
2842@cindex SCHEDULED keyword 3030@cindex timerange
2843If a time stamp is preceded by the word @samp{SCHEDULED:}, it means you 3031@cindex date range
2844are planning to start working on that task on the given date. So this is 3032Two time stamps connected by @samp{--} denote a range. The headline
2845not about recording an event, but about planning your work. The 3033will be shown on the first and last day of the range, and on any dates
2846headline will be listed under the given date@footnote{It will still be 3034that are displayed and fall in the range. Here is an example:
2847listed on that date after it has been marked DONE. If you don't like
2848this, set the variable @code{org-agenda-skip-scheduled-if-done}.}. In
2849addition, a reminder that the scheduled date has passed will be present
2850in the compilation for @emph{today}, until the entry is marked DONE.
2851I.e., the task will automatically be forwarded until completed.
2852 3035
2853@example 3036@example
2854*** TODO Call Trillian for a date on New Years Eve. 3037** Meeting in Amsterdam
2855 SCHEDULED: <2004-12-25 Sat> 3038 <2004-08-23 Mon>--<2004-08-26 Thu>
2856@end example 3039@end example
2857 3040
2858@item Time stamp with DEADLINE keyword 3041@item Inactive time stamp
2859@cindex DEADLINE keyword 3042@cindex timestamp, inactive
2860If a time stamp is preceded by the word @samp{DEADLINE:}, the task 3043@cindex inactive timestamp
2861(most likely a TODO item) is supposed to be finished on that date, and 3044Just like a plain time stamp, but with square brackets instead of
2862it will be listed then. In addition, the compilation for @emph{today} 3045angular ones. These time stamps are inactive in the sense that they do
2863will carry a warning about the approaching or missed deadline, 3046@emph{not} trigger an entry to show up in the agenda.
2864starting @code{org-deadline-warning-days} before the due date, and
2865continuing until the entry is marked DONE. An example:
2866 3047
2867@example 3048@example
2868*** TODO write article about the Earth for the Guide 3049* Gillian comes late for the fifth time [2006-11-01 Wed]
2869 The editor in charge is [[bbdb:Ford Prefect]]
2870 DEADLINE: <2004-02-29 Sun>
2871@end example 3050@end example
2872@item Time stamp with CLOSED keyword 3051
2873@cindex CLOSED keyword
2874When @code{org-log-done} is non-nil, Org-mode will automatically insert
2875a special time stamp each time a TODO entry is marked done
2876(@pxref{Progress logging}). This time stamp is enclosed in square
2877brackets instead of angular brackets.
2878
2879@item Time range with CLOCK keyword
2880@cindex CLOCK keyword
2881When using the clock to time the work that is being done on specific
2882items, time ranges preceded by the CLOCK keyword are inserted
2883automatically into the file. The time stamps are enclosed in square
2884brackets instead of angular brackets. @xref{Clocking work time}.
2885@end table 3052@end table
2886 3053
2887@node Creating timestamps, Custom time format, Time stamps, Timestamps 3054@node Creating timestamps, Deadlines and scheduling, Time stamps, Timestamps
2888@section Creating timestamps 3055@section Creating timestamps
2889@cindex creating timestamps 3056@cindex creating timestamps
2890@cindex timestamps, creating 3057@cindex timestamps, creating
@@ -2899,61 +3066,40 @@ format.
2899Prompt for a date and insert a corresponding time stamp. When the 3066Prompt for a date and insert a corresponding time stamp. When the
2900cursor is at a previously used time stamp, it is updated to NOW. When 3067cursor is at a previously used time stamp, it is updated to NOW. When
2901this command is used twice in succession, a time range is inserted. 3068this command is used twice in succession, a time range is inserted.
2902 3069@c
2903@kindex C-u C-c . 3070@kindex C-u C-c .
2904@item C-u C-c . 3071@item C-u C-c .
2905Like @kbd{C-c .}, but use the alternative format which contains date 3072Like @kbd{C-c .}, but use the alternative format which contains date
2906and time. The default time can be rounded to multiples of 5 minutes, 3073and time. The default time can be rounded to multiples of 5 minutes,
2907see the option @code{org-time-stamp-rounding-minutes}. 3074see the option @code{org-time-stamp-rounding-minutes}.
2908 3075@c
2909@kindex C-c ! 3076@kindex C-c !
2910@item C-c ! 3077@item C-c !
2911Like @kbd{C-c .}, but insert an inactive time stamp not triggering the 3078Like @kbd{C-c .}, but insert an inactive time stamp that will not cause
2912agenda. 3079an agenda entry.
2913 3080@c
2914@kindex C-c < 3081@kindex C-c <
2915@item C-c < 3082@item C-c <
2916Insert a time stamp corresponding to the cursor date in the Calendar. 3083Insert a time stamp corresponding to the cursor date in the Calendar.
2917 3084@c
2918@kindex C-c > 3085@kindex C-c >
2919@item C-c > 3086@item C-c >
2920Access the Emacs calendar for the current date. If there is a 3087Access the Emacs calendar for the current date. If there is a
2921timestamp in the current line, goto the corresponding date 3088timestamp in the current line, goto the corresponding date
2922instead. 3089instead.
2923 3090@c
2924@kindex C-c C-o 3091@kindex C-c C-o
2925@item C-c C-o 3092@item C-c C-o
2926Access the agenda for the date given by the time stamp or -range at 3093Access the agenda for the date given by the time stamp or -range at
2927point (@pxref{Weekly/Daily agenda}). 3094point (@pxref{Weekly/Daily agenda}).
2928 3095@c
2929@kindex C-c C-d
2930@item C-c C-d
2931Insert @samp{DEADLINE} keyword along with a stamp. The insertion will
2932happen in the line directly following the headline.
2933@c FIXME Any CLOSED timestamp will be removed.????????
2934
2935@kindex C-c C-w
2936@cindex sparse tree, for deadlines
2937@item C-c C-w
2938Create a sparse tree with all deadlines that are either past-due, or
2939which will become due within @code{org-deadline-warning-days}.
2940With @kbd{C-u} prefix, show all deadlines in the file. With a numeric
2941prefix, check that many days. For example, @kbd{C-1 C-c C-w} shows
2942all deadlines due tomorrow.
2943
2944@kindex C-c C-s
2945@item C-c C-s
2946Insert @samp{SCHEDULED} keyword along with a stamp. The insertion will
2947happen in the line directly following the headline. Any CLOSED
2948timestamp will be removed.
2949
2950@kindex S-@key{left} 3096@kindex S-@key{left}
2951@kindex S-@key{right} 3097@kindex S-@key{right}
2952@item S-@key{left} 3098@item S-@key{left}
2953@itemx S-@key{right} 3099@itemx S-@key{right}
2954Change date at cursor by one day. These key bindings conflict with 3100Change date at cursor by one day. These key bindings conflict with
2955CUA-mode (@pxref{Conflicts}). 3101CUA-mode (@pxref{Conflicts}).
2956 3102@c
2957@kindex S-@key{up} 3103@kindex S-@key{up}
2958@kindex S-@key{down} 3104@kindex S-@key{down}
2959@item S-@key{up} 3105@item S-@key{up}
@@ -2963,8 +3109,7 @@ year, month, day, hour or minute. Note that if the cursor is in a
2963headline and not at a time stamp, these same keys modify the priority of 3109headline and not at a time stamp, these same keys modify the priority of
2964an item. (@pxref{Priorities}). The key bindings also conflict with 3110an item. (@pxref{Priorities}). The key bindings also conflict with
2965CUA-mode (@pxref{Conflicts}). 3111CUA-mode (@pxref{Conflicts}).
2966 3112@c
2967
2968@kindex C-c C-y 3113@kindex C-c C-y
2969@cindex evaluate time range 3114@cindex evaluate time range
2970@item C-c C-y 3115@item C-c C-y
@@ -2976,9 +3121,10 @@ into the following column).
2976 3121
2977@menu 3122@menu
2978* The date/time prompt:: How org-mode helps you entering date and time 3123* The date/time prompt:: How org-mode helps you entering date and time
3124* Custom time format:: Making dates look differently
2979@end menu 3125@end menu
2980 3126
2981@node The date/time prompt, , Creating timestamps, Creating timestamps 3127@node The date/time prompt, Custom time format, Creating timestamps, Creating timestamps
2982@subsection The date/time prompt 3128@subsection The date/time prompt
2983@cindex date, reading in minibuffer 3129@cindex date, reading in minibuffer
2984@cindex time, reading in minibuffer 3130@cindex time, reading in minibuffer
@@ -3047,8 +3193,8 @@ One month back.
3047Choose date in calendar (only if nothing was typed into minibuffer). 3193Choose date in calendar (only if nothing was typed into minibuffer).
3048@end table 3194@end table
3049 3195
3050@node Custom time format, Repeating items, Creating timestamps, Timestamps 3196@node Custom time format, , The date/time prompt, Creating timestamps
3051@section Custom time format 3197@subsection Custom time format
3052@cindex custom date/time format 3198@cindex custom date/time format
3053@cindex time format, custom 3199@cindex time format, custom
3054@cindex date format, custom 3200@cindex date format, custom
@@ -3090,48 +3236,119 @@ using dates in tables, table alignment will be messed up. If the custom
3090format is shorter, things do work as expected. 3236format is shorter, things do work as expected.
3091@end itemize 3237@end itemize
3092 3238
3093@node Repeating items, Progress logging, Custom time format, Timestamps
3094@section Repeating items
3095@cindex TODO items, repeating
3096@cindex deadlines, repeating
3097@cindex scheduling, repeating
3098
3099Org-mode integrates with the Emacs calendar and diary to display cyclic
3100appointments, anniversaries and other special entries in the agenda
3101(@pxref{Weekly/Daily agenda}). However, it can be useful to have
3102certain deadlines and scheduling items to auto-repeat. The advantage of
3103a deadline or scheduled item is that the they produce warnings ahead of
3104time and automatically forward themselves in the agenda until they are
3105done. The abstract difference is therefore between cyclic
3106@i{appointments} and cyclic @i{action items}. For appointments you
3107should use the diary, for actions you can uses an org-mode deadline or
3108scheduling time stamp together with a REPEAT cookie. For example:
3109 3239
3240@node Deadlines and scheduling, Progress logging, Creating timestamps, Timestamps
3241@section Deadlines and Scheduling
3242
3243A time stamp may be preceded by special keywords to facilitate planning
3244of work:
3245
3246@table @var
3247@item DEADLINE
3248@cindex DEADLINE keyword
3249The task (most likely a TODO item) is supposed to be finished on that
3250date, and it will be listed then. In addition, the compilation for
3251@emph{today} will carry a warning about the approaching or missed
3252deadline, starting @code{org-deadline-warning-days} before the due date,
3253and continuing until the entry is marked DONE. An example:
3254
3255@example
3256*** TODO write article about the Earth for the Guide
3257 The editor in charge is [[bbdb:Ford Prefect]]
3258 DEADLINE: <2004-02-29 Sun>
3259@end example
3260
3261@item SCHEDULED
3262@cindex SCHEDULED keyword
3263You are planning to start working on that task on the given date. The
3264headline will be listed under the given date@footnote{It will still be
3265listed on that date after it has been marked DONE. If you don't like
3266this, set the variable @code{org-agenda-skip-scheduled-if-done}.}. In
3267addition, a reminder that the scheduled date has passed will be present
3268in the compilation for @emph{today}, until the entry is marked DONE.
3269I.e., the task will automatically be forwarded until completed.
3270
3271@example
3272*** TODO Call Trillian for a date on New Years Eve.
3273 SCHEDULED: <2004-12-25 Sat>
3274@end example
3275@end table
3276
3277@menu
3278* Inserting deadline/schedule::
3279* Repeated tasks::
3280@end menu
3281
3282@node Inserting deadline/schedule, Repeated tasks, Deadlines and scheduling, Deadlines and scheduling
3283@subsection Inserting deadline/schedule
3284
3285The following commands allow to quickly insert a deadline or to schedule
3286an item:
3287
3288@table @kbd
3289@c
3290@kindex C-c C-d
3291@item C-c C-d
3292Insert @samp{DEADLINE} keyword along with a stamp. The insertion will
3293happen in the line directly following the headline.
3294@c FIXME Any CLOSED timestamp will be removed.????????
3295@c
3296@kindex C-c C-w
3297@cindex sparse tree, for deadlines
3298@item C-c C-w
3299Create a sparse tree with all deadlines that are either past-due, or
3300which will become due within @code{org-deadline-warning-days}.
3301With @kbd{C-u} prefix, show all deadlines in the file. With a numeric
3302prefix, check that many days. For example, @kbd{C-1 C-c C-w} shows
3303all deadlines due tomorrow.
3304@c
3305@kindex C-c C-s
3306@item C-c C-s
3307Insert @samp{SCHEDULED} keyword along with a stamp. The insertion will
3308happen in the line directly following the headline. Any CLOSED
3309timestamp will be removed.
3310@end table
3311
3312@node Repeated tasks, , Inserting deadline/schedule, Deadlines and scheduling
3313@subsection Repeated Tasks
3314
3315Some tasks need to be repeated again and again, and Org-mode therefore
3316allows to use a repeater in a DEADLINE or SCHEDULED time stamp, for
3317example:
3110@example 3318@example
3111* TODO Replace batteries in smoke detector REPEAT(+18m) 3319** TODO Pay the rent
3112 SCHEDULED: <2007-01-01 Mon> 3320 DEADLINE: <2005-10-01 Sat +1m>
3321@end example
3113 3322
3114* TODO Get dentist appointment REPEAT(+6m) 3323Deadlines and scheduled items produce entries in the agenda when they
3115 SCHEDULED: <2006-12-19 Tue> 3324are over-due, so it is important to be able to mark such an entry as
3325completed once you have done so. When you mark a DEADLINE or a SCHEDULE
3326with the todo keyword DONE, it will no longer produce entries in the
3327agenda. The problem with this is, however, that then also the
3328@emph{next} instance of the repeated entry will not be active. Org-mode
3329deals with this in the following way: When you try to mark such an entry
3330DONE (using @kbd{C-c C-t}), it will shift the base date of the repeating
3331time stamp by the repeater interval, and immediately set the entry state
3332back to TODO. In the example above, setting the state to DONE would
3333actually switch the date like this:
3116 3334
3117* TODO Tax report to IRS REPEAT(+1y) 3335@example
3118 DEADLINE: <2007-04-01 Sun> 3336** TODO Pay the rent
3337 DEADLINE: <2005-11-01 Tue +1m>
3119@end example 3338@end example
3120 3339
3121Each time you try to mark one of these entries DONE using @kbd{C-c C-t}, 3340You will also be prompted for a note that will be put under the DEADLINE
3122they will automatically switch back to the state TODO, and the 3341line to keep a record that you actually acted on the previous instance
3123deadline/scheduling will be shifted accordingly. The time units 3342of this deadline.
3124recognized by org-mode are year (y), month (m), week (w), and day (d). 3343
3125Org-mode will also prompt you for a note and record the fact that you 3344As a consequence of shifting the base date, this entry will no longer be
3126have closed this item in a note under the headline. 3345visible in the agenda when checking past dates, but all future instances
3346will be visible.
3127 3347
3128One unusual property of these repeating items is that only one instance 3348You may have both scheduling and deadline information for a specific
3129of each exist at any given time. So if you look back or ahead in the 3349task - just make sure that the repeater intervals on both are the same.
3130agenda, you will not find past and future instances, only the current
3131one will show up. Use a cyclic diary entry if you need all past and
3132future instances to be visible in the agenda.
3133 3350
3134@node Progress logging, , Repeating items, Timestamps 3351@node Progress logging, , Deadlines and scheduling, Timestamps
3135@section Progress Logging 3352@section Progress Logging
3136@cindex progress logging 3353@cindex progress logging
3137@cindex logging, of progress 3354@cindex logging, of progress
@@ -3199,6 +3416,7 @@ these into a separate file that starts with:
3199#+STARTUP: lognotestate 3416#+STARTUP: lognotestate
3200@end example 3417@end example
3201 3418
3419
3202@node Clocking work time, , Tracking TODO state changes, Progress logging 3420@node Clocking work time, , Tracking TODO state changes, Progress logging
3203@subsection Clocking work time 3421@subsection Clocking work time
3204 3422
@@ -3743,6 +3961,23 @@ Sunrise/Sunset times, show lunar phases and to convert to other
3743calendars, respectively. @kbd{c} can be used to switch back and forth 3961calendars, respectively. @kbd{c} can be used to switch back and forth
3744between calendar and agenda. 3962between calendar and agenda.
3745 3963
3964If you are using the diary only for sexp entries and holidays, it is
3965faster to not use the above setting, but instead to copy or even move
3966the entries into an Org-mode file. Org-mode evaluates diary-style sexp
3967entries, and does it faster because there is no overhead for first
3968creating the diary display. Note that the sexp entries must start at
3969the left margin, no white space is allowed before them. For example,
3970the following segment of an Org-mode file will be processed and entries
3971will be made in the agenda:
3972
3973@example
3974* Birthdays and similar stuff
3975#+CATEGORY: Holiday
3976%%(org-calendar-holiday) ; special function for holiday names
3977#+CATEGORY: Ann
3978%%(diary-anniversary 14 5 1956) Artur Dent %d is years old
3979%%(diary-anniversary 2 10 1869) Mahatma Gandhi would be %d years old
3980@end example
3746 3981
3747@node Global TODO list, Matching headline tags, Weekly/Daily agenda, Built-in agenda views 3982@node Global TODO list, Matching headline tags, Weekly/Daily agenda, Built-in agenda views
3748@subsection The global TODO list 3983@subsection The global TODO list
@@ -3762,10 +3997,12 @@ the TODO entries directly from that buffer (@pxref{Agenda commands}).
3762@kindex C-c a T 3997@kindex C-c a T
3763@item C-c a T 3998@item C-c a T
3764@cindex TODO keyword matching 3999@cindex TODO keyword matching
3765Like the above, but allows selection of a specific TODO keyword. You can 4000Like the above, but allows selection of a specific TODO keyword. You
3766also do this by specifying a prefix argument to @kbd{C-c a t}. With a 4001can also do this by specifying a prefix argument to @kbd{C-c a t}. With
3767@kbd{C-u} prefix you are prompted for a keyword. With a numeric 4002a @kbd{C-u} prefix you are prompted for a keyword, and you may also
3768prefix, the Nth keyword in @code{org-todo-keywords} is selected. 4003specify several keywords by separating them with @samp{|} as boolean OR
4004operator. With a numeric prefix, the Nth keyword in
4005@code{org-todo-keywords} is selected.
3769@kindex r 4006@kindex r
3770The @kbd{r} key in the agenda buffer regenerates it, and you can give 4007The @kbd{r} key in the agenda buffer regenerates it, and you can give
3771a prefix argument to this command to change the selected TODO keyword, 4008a prefix argument to this command to change the selected TODO keyword,
@@ -3875,16 +4112,18 @@ Lets assume that you, in your own way of using Org-mode, identify
3875projects with a tag PROJECT, and that you use a todo keyword MAYBE to 4112projects with a tag PROJECT, and that you use a todo keyword MAYBE to
3876indicate a project that should not be considered yet. Lets further 4113indicate a project that should not be considered yet. Lets further
3877assume that the todo keyword DONE marks finished projects, and that NEXT 4114assume that the todo keyword DONE marks finished projects, and that NEXT
3878and TODO indicate next actions. Finally, the tag @@SHOP indicates 4115and TODO indicate next actions. The tag @@SHOP indicates shopping and
3879shopping and is a next action even without the NEXT tag. In this case 4116is a next action even without the NEXT tag. Finally, if the project
3880you would start by identifying eligible projects with a tags/todo match 4117contains the special word IGNORE anywhere, it should not be listed
3881@samp{+PROJECT/-MAYBE-DONE}, and then check for TODO, NEXT and @@SHOP in 4118either. In this case you would start by identifying eligible projects
3882the subtree to identify projects that are not stuck. The correct 4119with a tags/todo match @samp{+PROJECT/-MAYBE-DONE}, and then check for
3883customization for this is 4120TODO, NEXT, @@SHOP, and IGNORE in the subtree to identify projects that
4121are not stuck. The correct customization for this is
3884 4122
3885@lisp 4123@lisp
3886(setq org-stuck-projects 4124(setq org-stuck-projects
3887 ("+PROJECT/-MAYBE-DONE" ("NEXT" "TODO") ("@@SHOP"))) 4125 '("+PROJECT/-MAYBE-DONE" ("NEXT" "TODO") ("@@SHOP")
4126 "\\<IGNORE\\>"))
3888@end lisp 4127@end lisp
3889 4128
3890 4129
@@ -4031,11 +4270,11 @@ Previous line (same as @key{down}).
4031@item mouse-3 4270@item mouse-3
4032@itemx @key{SPC} 4271@itemx @key{SPC}
4033Display the original location of the item in another window. 4272Display the original location of the item in another window.
4034 4273@c
4035@kindex L 4274@kindex L
4036@item L 4275@item L
4037Display original location and recenter that window. 4276Display original location and recenter that window.
4038 4277@c
4039@kindex mouse-2 4278@kindex mouse-2
4040@kindex mouse-1 4279@kindex mouse-1
4041@kindex @key{TAB} 4280@kindex @key{TAB}
@@ -4044,11 +4283,11 @@ Display original location and recenter that window.
4044@itemx @key{TAB} 4283@itemx @key{TAB}
4045Go to the original location of the item in another window. Under Emacs 4284Go to the original location of the item in another window. Under Emacs
404622, @kbd{mouse-1} will also works for this. 428522, @kbd{mouse-1} will also works for this.
4047 4286@c
4048@kindex @key{RET} 4287@kindex @key{RET}
4049@itemx @key{RET} 4288@itemx @key{RET}
4050Go to the original location of the item and delete other windows. 4289Go to the original location of the item and delete other windows.
4051 4290@c
4052@kindex f 4291@kindex f
4053@item f 4292@item f
4054Toggle Follow mode. In Follow mode, as you move the cursor through 4293Toggle Follow mode. In Follow mode, as you move the cursor through
@@ -4056,14 +4295,14 @@ the agenda buffer, the other window always shows the corresponding
4056location in the org file. The initial setting for this mode in new 4295location in the org file. The initial setting for this mode in new
4057agenda buffers can be set with the variable 4296agenda buffers can be set with the variable
4058@code{org-agenda-start-with-follow-mode}. 4297@code{org-agenda-start-with-follow-mode}.
4059 4298@c
4060@kindex b 4299@kindex b
4061@item b 4300@item b
4062Display the entire subtree of the current item in an indirect buffer. 4301Display the entire subtree of the current item in an indirect buffer.
4063With numerical prefix ARG, go up to this level and then take that tree. 4302With numerical prefix ARG, go up to this level and then take that tree.
4064If ARG is negative, go up that many levels. With @kbd{C-u} prefix, do 4303If ARG is negative, go up that many levels. With @kbd{C-u} prefix, do
4065not remove the previously used indirect buffer. 4304not remove the previously used indirect buffer.
4066 4305@c
4067@kindex l 4306@kindex l
4068@item l 4307@item l
4069Toggle Logbook mode. In Logbook mode, entries that where marked DONE while 4308Toggle Logbook mode. In Logbook mode, entries that where marked DONE while
@@ -4075,24 +4314,24 @@ as are entries that have been clocked on that day.
4075@kindex o 4314@kindex o
4076@item o 4315@item o
4077Delete other windows. 4316Delete other windows.
4078 4317@c
4079@kindex w 4318@kindex w
4080@item w 4319@item w
4081Switch to weekly view (7 days displayed together). 4320Switch to weekly view (7 days displayed together).
4082 4321@c
4083@kindex d 4322@kindex d
4084@item d 4323@item d
4085Switch to daily view (just one day displayed). 4324Switch to daily view (just one day displayed).
4086 4325@c
4087@kindex D 4326@kindex D
4088@item D 4327@item D
4089Toggle the inclusion of diary entries. See @ref{Weekly/Daily agenda}. 4328Toggle the inclusion of diary entries. See @ref{Weekly/Daily agenda}.
4090 4329@c
4091@kindex g 4330@kindex g
4092@item g 4331@item g
4093Toggle the time grid on and off. See also the variables 4332Toggle the time grid on and off. See also the variables
4094@code{org-agenda-use-time-grid} and @code{org-agenda-time-grid}. 4333@code{org-agenda-use-time-grid} and @code{org-agenda-time-grid}.
4095 4334@c
4096@kindex r 4335@kindex r
4097@item r 4336@item r
4098Recreate the agenda buffer, for example to reflect the changes 4337Recreate the agenda buffer, for example to reflect the changes
@@ -4100,21 +4339,21 @@ after modification of the time stamps of items with S-@key{left} and
4100S-@key{right}. When the buffer is the global todo list, a prefix 4339S-@key{right}. When the buffer is the global todo list, a prefix
4101argument is interpreted to create a selective list for a specific TODO 4340argument is interpreted to create a selective list for a specific TODO
4102keyword. 4341keyword.
4103 4342@c
4104@kindex s 4343@kindex s
4105@item s 4344@item s
4106Save all Org-mode buffers in the current Emacs session. 4345Save all Org-mode buffers in the current Emacs session.
4107 4346@c
4108@kindex @key{right} 4347@kindex @key{right}
4109@item @key{right} 4348@item @key{right}
4110Display the following @code{org-agenda-ndays} days. For example, if 4349Display the following @code{org-agenda-ndays} days. For example, if
4111the display covers a week, switch to the following week. With prefix 4350the display covers a week, switch to the following week. With prefix
4112arg, go forward that many times @code{org-agenda-ndays} days. 4351arg, go forward that many times @code{org-agenda-ndays} days.
4113 4352@c
4114@kindex @key{left} 4353@kindex @key{left}
4115@item @key{left} 4354@item @key{left}
4116Display the previous dates. 4355Display the previous dates.
4117 4356@c
4118@kindex . 4357@kindex .
4119@item . 4358@item .
4120Goto today. 4359Goto today.
@@ -4124,53 +4363,53 @@ Goto today.
4124 4363
4125@item 0-9 4364@item 0-9
4126Digit argument. 4365Digit argument.
4127 4366@c
4128@cindex undoing remote-editing events 4367@cindex undoing remote-editing events
4129@cindex remote editing, undo 4368@cindex remote editing, undo
4130@kindex C-_ 4369@kindex C-_
4131@item C-_ 4370@item C-_
4132Undo a change due to a remote editing command. The change is undone 4371Undo a change due to a remote editing command. The change is undone
4133both in the agenda buffer and in the remote buffer. 4372both in the agenda buffer and in the remote buffer.
4134 4373@c
4135@kindex t 4374@kindex t
4136@item t 4375@item t
4137Change the TODO state of the item, both in the agenda and in the 4376Change the TODO state of the item, both in the agenda and in the
4138original org file. 4377original org file.
4139 4378@c
4140@kindex C-k 4379@kindex C-k
4141@item C-k 4380@item C-k
4142Delete the current agenda item along with the entire subtree belonging 4381Delete the current agenda item along with the entire subtree belonging
4143to it in the original Org-mode file. If the text to be deleted remotely 4382to it in the original Org-mode file. If the text to be deleted remotely
4144is longer than one line, the kill needs to be confirmed by the user. See 4383is longer than one line, the kill needs to be confirmed by the user. See
4145variable @code{org-agenda-confirm-kill}. 4384variable @code{org-agenda-confirm-kill}.
4146 4385@c
4147@kindex $ 4386@kindex $
4148@item $ 4387@item $
4149Archive the subtree corresponding to the current headline. 4388Archive the subtree corresponding to the current headline.
4150 4389@c
4151@kindex T 4390@kindex T
4152@item T 4391@item T
4153Show all tags associated with the current item. Because of 4392Show all tags associated with the current item. Because of
4154inheritance, this may be more than the tags listed in the line itself. 4393inheritance, this may be more than the tags listed in the line itself.
4155 4394@c
4156@kindex : 4395@kindex :
4157@item : 4396@item :
4158Set tags for the current headline. 4397Set tags for the current headline.
4159 4398@c
4160@kindex a 4399@kindex a
4161@item a 4400@item a
4162Toggle the ARCHIVE tag for the current headline. 4401Toggle the ARCHIVE tag for the current headline.
4163 4402@c
4164@kindex , 4403@kindex ,
4165@item , 4404@item ,
4166Set the priority for the current item. Org-mode prompts for the 4405Set the priority for the current item. Org-mode prompts for the
4167priority character. If you reply with @key{SPC}, the priority cookie 4406priority character. If you reply with @key{SPC}, the priority cookie
4168is removed from the entry. 4407is removed from the entry.
4169 4408@c
4170@kindex P 4409@kindex P
4171@item P 4410@item P
4172Display weighted priority of current item. 4411Display weighted priority of current item.
4173 4412@c
4174@kindex + 4413@kindex +
4175@kindex S-@key{up} 4414@kindex S-@key{up}
4176@item + 4415@item +
@@ -4178,21 +4417,21 @@ Display weighted priority of current item.
4178Increase the priority of the current item. The priority is changed in 4417Increase the priority of the current item. The priority is changed in
4179the original buffer, but the agenda is not resorted. Use the @kbd{r} 4418the original buffer, but the agenda is not resorted. Use the @kbd{r}
4180key for this. 4419key for this.
4181 4420@c
4182@kindex - 4421@kindex -
4183@kindex S-@key{down} 4422@kindex S-@key{down}
4184@item - 4423@item -
4185@itemx S-@key{down} 4424@itemx S-@key{down}
4186Decrease the priority of the current item. 4425Decrease the priority of the current item.
4187 4426@c
4188@kindex C-c C-s 4427@kindex C-c C-s
4189@item C-c C-s 4428@item C-c C-s
4190Schedule this item 4429Schedule this item
4191 4430@c
4192@kindex C-c C-d 4431@kindex C-c C-d
4193@item C-c C-d 4432@item C-c C-d
4194Set a deadline for this item. 4433Set a deadline for this item.
4195 4434@c
4196@kindex S-@key{right} 4435@kindex S-@key{right}
4197@item S-@key{right} 4436@item S-@key{right}
4198Change the time stamp associated with the current line by one day into 4437Change the time stamp associated with the current line by one day into
@@ -4201,25 +4440,27 @@ example, @kbd{3 6 5 S-@key{right}} will change it by a year. The
4201stamp is changed in the original org file, but the change is not 4440stamp is changed in the original org file, but the change is not
4202directly reflected in the agenda buffer. Use the 4441directly reflected in the agenda buffer. Use the
4203@kbd{r} key to update the buffer. 4442@kbd{r} key to update the buffer.
4204 4443@c
4205@kindex S-@key{left} 4444@kindex S-@key{left}
4206@item S-@key{left} 4445@item S-@key{left}
4207Change the time stamp associated with the current line by one day 4446Change the time stamp associated with the current line by one day
4208into the past. 4447into the past.
4209 4448@c
4210@kindex > 4449@kindex >
4211@item > 4450@item >
4212Change the time stamp associated with the current line to today. 4451Change the time stamp associated with the current line to today.
4213The key @kbd{>} has been chosen, because it is the same as @kbd{S-.} 4452The key @kbd{>} has been chosen, because it is the same as @kbd{S-.}
4214on my keyboard. 4453on my keyboard.
4215 4454@c
4216@kindex I 4455@kindex I
4217@item I 4456@item I
4218Start the clock on the current item. If a clock is running already, it 4457Start the clock on the current item. If a clock is running already, it
4219is stopped first. 4458is stopped first.
4459@c
4220@kindex O 4460@kindex O
4221@item O 4461@item O
4222Stop the previously started clock. 4462Stop the previously started clock.
4463@c
4223@kindex X 4464@kindex X
4224@item X 4465@item X
4225Cancel the currently running clock. 4466Cancel the currently running clock.
@@ -4229,11 +4470,11 @@ Cancel the currently running clock.
4229@kindex c 4470@kindex c
4230@item c 4471@item c
4231Open the Emacs calendar and move to the date at the agenda cursor. 4472Open the Emacs calendar and move to the date at the agenda cursor.
4232 4473@c
4233@item c 4474@item c
4234When in the calendar, compute and show the Org-mode agenda for the 4475When in the calendar, compute and show the Org-mode agenda for the
4235date at the cursor. 4476date at the cursor.
4236 4477@c
4237@cindex diary entries, creating from agenda 4478@cindex diary entries, creating from agenda
4238@kindex i 4479@kindex i
4239@item i 4480@item i
@@ -4241,42 +4482,53 @@ Insert a new entry into the diary. Prompts for the type of entry
4241(day, weekly, monthly, yearly, anniversary, cyclic) and creates a new 4482(day, weekly, monthly, yearly, anniversary, cyclic) and creates a new
4242entry in the diary, just as @kbd{i d} etc. would do in the calendar. 4483entry in the diary, just as @kbd{i d} etc. would do in the calendar.
4243The date is taken from the cursor position. 4484The date is taken from the cursor position.
4244 4485@c
4245@kindex M 4486@kindex M
4246@item M 4487@item M
4247Show the phases of the moon for the three months around current date. 4488Show the phases of the moon for the three months around current date.
4248 4489@c
4249@kindex S 4490@kindex S
4250@item S 4491@item S
4251Show sunrise and sunset times. The geographical location must be set 4492Show sunrise and sunset times. The geographical location must be set
4252with calendar variables, see documentation of the Emacs calendar. 4493with calendar variables, see documentation of the Emacs calendar.
4253 4494@c
4254@kindex C 4495@kindex C
4255@item C 4496@item C
4256Convert the date at cursor into many other cultural and historic 4497Convert the date at cursor into many other cultural and historic
4257calendars. 4498calendars.
4258 4499@c
4259@kindex H 4500@kindex H
4260@item H 4501@item H
4261Show holidays for three month around the cursor date. 4502Show holidays for three month around the cursor date.
4262 4503@c
4263@c FIXME: This should be a different key. 4504@c FIXME: This should be a different key.
4264@kindex C-c C-x C-c 4505@kindex C-c C-x C-c
4265@item C-c C-x C-c 4506@item C-c C-x C-c
4266Export a single iCalendar file containing entries from all agenda files. 4507Export a single iCalendar file containing entries from all agenda files.
4267 4508
4509@tsubheading{Exporting to a file}
4510@kindex C-x C-w
4511@item C-x C-w
4512@cindex exporting agenda views
4513@cindex agenda views, exporting
4514Write the agenda view to a file. Depending on the extension of the
4515selected file name, the view will be exported as HTML (extension
4516@file{.html} or @file{.htm}), Postscript (extension @file{.ps}), or
4517plain text (any other extension). Use the variable
4518@code{org-agenda-exporter-settings} to set options for @file{ps-print}
4519and for @file{htmlize} to be used during export.
4520
4268@tsubheading{Quit and Exit} 4521@tsubheading{Quit and Exit}
4269@kindex q 4522@kindex q
4270@item q 4523@item q
4271Quit agenda, remove the agenda buffer. 4524Quit agenda, remove the agenda buffer.
4272 4525@c
4273@kindex x 4526@kindex x
4274@cindex agenda files, removing buffers 4527@cindex agenda files, removing buffers
4275@item x 4528@item x
4276Exit agenda, remove the agenda buffer and all buffers loaded by Emacs 4529Exit agenda, remove the agenda buffer and all buffers loaded by Emacs
4277for the compilation of the agenda. Buffers created by the user to 4530for the compilation of the agenda. Buffers created by the user to
4278visit org files will not be removed. 4531visit org files will not be removed.
4279
4280@end table 4532@end table
4281 4533
4282 4534
@@ -4294,7 +4546,8 @@ dispatcher (@pxref{Agenda dispatcher}), just like the default commands.
4294* Storing searches:: Type once, use often 4546* Storing searches:: Type once, use often
4295* Block agenda:: All the stuff you need in a single buffer 4547* Block agenda:: All the stuff you need in a single buffer
4296* Setting Options:: Changing the rules 4548* Setting Options:: Changing the rules
4297* Batch processing:: Agenda views from the command line 4549* Exporting Agenda Views:: Writing agendas to files.
4550* Extracting Agenda Information for other programs::
4298@end menu 4551@end menu
4299 4552
4300@node Storing searches, Block agenda, Custom agenda views, Custom agenda views 4553@node Storing searches, Block agenda, Custom agenda views, Custom agenda views
@@ -4386,7 +4639,7 @@ your agenda for the current week, all TODO items that carry the tag
4386command @kbd{C-c a o} provides a similar view for office tasks. 4639command @kbd{C-c a o} provides a similar view for office tasks.
4387 4640
4388 4641
4389@node Setting Options, Batch processing, Block agenda, Custom agenda views 4642@node Setting Options, Exporting Agenda Views, Block agenda, Custom agenda views
4390@subsection Setting Options for custom commands 4643@subsection Setting Options for custom commands
4391@cindex options, for custom agenda views 4644@cindex options, for custom agenda views
4392 4645
@@ -4434,7 +4687,8 @@ the results for GARDEN tags query in the opposite order,
4434 '(("h" "Agenda and Home-related tasks" 4687 '(("h" "Agenda and Home-related tasks"
4435 ((agenda) 4688 ((agenda)
4436 (tags-todo "HOME") 4689 (tags-todo "HOME")
4437 (tags "GARDEN" ((org-agenda-sorting-strategy '(priority-up))))) 4690 (tags "GARDEN"
4691 ((org-agenda-sorting-strategy '(priority-up)))))
4438 ((org-agenda-sorting-strategy '(priority-down)))) 4692 ((org-agenda-sorting-strategy '(priority-down))))
4439 ("o" "Agenda and Office-related tasks" 4693 ("o" "Agenda and Office-related tasks"
4440 ((agenda) 4694 ((agenda)
@@ -4450,36 +4704,234 @@ this interface, the @emph{values} are just lisp expressions. So if the
4450value is a string, you need to add the double quotes around the value 4704value is a string, you need to add the double quotes around the value
4451yourself. 4705yourself.
4452 4706
4453@node Batch processing, , Setting Options, Custom agenda views
4454@subsection Creating agenda views in batch processing
4455@cindex agenda, batch production
4456 4707
4457If you want to print or otherwise reprocess agenda views, it can be 4708@node Exporting Agenda Views, Extracting Agenda Information for other programs, Setting Options, Custom agenda views
4458useful to create an agenda from the command line. This is the purpose 4709@subsection Exporting Agenda Views
4459of the function @code{org-batch-agenda}. It takes as a parameter one of 4710@cindex agenda views, exporting
4460the strings that are the keys in @code{org-agenda-custom-commands}. For 4711
4461example, to directly print the current TODO list, you could use 4712If you are away from your computer, it can be very useful to have a
4713printed version of some agenda views to carry around. Org-mode can
4714export custom agenda views as plain text, HTML@footnote{You need to
4715install Hrvoje Niksic' @file{htmlize.el}.} and postscript. If you want
4716to do this only occasionally, use the commend
4717
4718@table @kbd
4719@kindex C-x C-w
4720@item C-x C-w
4721@cindex exporting agenda views
4722@cindex agenda views, exporting
4723Write the agenda view to a file. Depending on the extension of the
4724selected file name, the view will be exported as HTML (extension
4725@file{.html} or @file{.htm}), Postscript (extension @file{.ps}), or
4726plain text (any other extension). Use the variable
4727@code{org-agenda-exporter-settings} to set options for @file{ps-print}
4728and for @file{htmlize} to be used during export, for example
4729@lisp
4730(setq org-agenda-exporter-settings
4731 '((ps-number-of-columns 2)
4732 (ps-landscape-mode t)
4733 (htmlize-output-type 'css)))
4734@end lisp
4735@end table
4736
4737If you need to export certain agenda views frequently, you can associate
4738any custom agenda command with a list of output file names
4739@footnote{If you want to store standard views like the weekly agenda
4740or the global TODO list as well, you need to define custom commands for
4741them in order to be able to specify filenames.}. Here is an example
4742that first does define custom commands for the agenda and the global
4743todo list, together with a number of files to which to export them.
4744Then we define two block agenda commands and specify filenames for them
4745as well. File names can be relative to the current working directory,
4746or absolute.
4747
4748@lisp
4749@group
4750(setq org-agenda-custom-commands
4751 '(("X" agenda "" nil ("agenda.html" "agenda.ps"))
4752 ("Y" alltodo "" nil ("todo.html" "todo.txt" "todo.ps"))
4753 ("h" "Agenda and Home-related tasks"
4754 ((agenda)
4755 (tags-todo "HOME")
4756 (tags "GARDEN"))
4757 nil
4758 ("~/views/home.html"))
4759 ("o" "Agenda and Office-related tasks"
4760 ((agenda)
4761 (tags-todo "WORK")
4762 (tags "OFFICE"))
4763 nil
4764 ("~/views/office.ps"))))
4765@end group
4766@end lisp
4767
4768The extension of the file name determines the type of export. If it is
4769@file{.html}, Org-mode will use the @file{htmlize.el} package to convert
4770the buffer to HTML and save it to this file name. If the extension is
4771@file{.ps}, @code{ps-print-buffer-with-faces} is used to produce
4772postscript output. Any other extension produces a plain ASCII file.
4773
4774The export files are @emph{not} created when you use one of those
4775commands interactively. Instead, there is a special command to produce
4776@emph{all} specified files in one step:
4777
4778@table @kbd
4779@kindex C-c a e
4780@item C-c a e
4781Export all agenda views that have export filenames associated with
4782them.
4783@end table
4784
4785You can use the options section of the custom agenda commands to also
4786set options for the export commands. For example:
4787
4788@lisp
4789(setq org-agenda-custom-commands
4790 '(("X" agenda ""
4791 ((ps-number-of-columns 2)
4792 (ps-landscape-mode t)
4793 (org-agenda-prefix-format " [ ] ")
4794 (org-agenda-with-colors nil)
4795 (org-agenda-remove-tags t))
4796 ("theagenda.ps"))))
4797@end lisp
4798
4799@noindent
4800This command sets two options for the postscript exporter, to make it
4801print in two columns in landscape format - the resulting page can be cut
4802in two and then used in a paper agenda. The remaining settings modify
4803the agenda prefix to omit category and scheduling information, and
4804instead include a checkbox to check off items. We also remove the tags
4805to make the lines compact, and we don't want to use colors for the
4806black-and-white printer. Settings specified in
4807@code{org-agenda-exporter-settings} will also apply, but the settings
4808in @code{org-agenda-custom-commands} take precedence.
4809
4810@noindent
4811From the command line you may also use
4812@example
4813emacs -f org-batch-store-agenda-views -kill
4814@end example
4815@noindent
4816or, if you need to modify some parameters
4817@example
4818emacs -eval '(org-batch-store-agenda-views \
4819 org-agenda-ndays 30 \
4820 org-agenda-include-diary nil \
4821 org-agenda-files (quote ("~/org/project.org")))' \
4822 -kill
4823@end example
4824@noindent
4825which will create the agenda views restricted to the file
4826@file{~/org/project.org}, without diary entries and with 30 days
4827extent.
4828
4829@node Extracting Agenda Information for other programs, , Exporting Agenda Views, Custom agenda views
4830@subsection Extracting Agenda Information for other programs
4831@cindex agenda, pipe
4832@cindex Scripts, for agenda processing
4833
4834Org-mode provides commands to access agenda information for the command
4835line in emacs batch mode. This extracted information can be sent
4836directly to a printer, or it can be read by a program that does further
4837processing of the data. The first of these commands is the function
4838@code{org-batch-agenda}, that produces an agenda view and sends it as
4839ASCII text to STDOUT. The command takes a single string as parameter.
4840If the string has length 1, it is used as a key to one of the commands
4841you have configured in @code{org-agenda-custom-commands}, basically any
4842key you can use after @kbd{C-c a}. For example, to directly print the
4843current TODO list, you could use
4462 4844
4463@example 4845@example
4464emacs -batch -l ~/.emacs -eval '(org-batch-agenda "t")' | lpr 4846emacs -batch -l ~/.emacs -eval '(org-batch-agenda "t")' | lpr
4465@end example 4847@end example
4466 4848
4849If the parameter is a string with 2 or more characters, it is used as a
4850tags/todo match string. For example, to print your local shopping list
4851(all items with the tag @samp{shop}, but excluding the tag
4852@samp{NewYork}), you could use
4853
4854@example
4855emacs -batch -l ~/.emacs \
4856 -eval '(org-batch-agenda "+shop-NewYork")' | lpr
4857@end example
4858
4467@noindent 4859@noindent
4468You may also modify parameters on the fly like this: 4860You may also modify parameters on the fly like this:
4469 4861
4470@example 4862@example
4471emacs -batch -l ~/.emacs \ 4863emacs -batch -l ~/.emacs \
4472 -eval '(org-batch-agenda "a" \ 4864 -eval '(org-batch-agenda "a" \
4473 org-agenda-ndays 300 \ 4865 org-agenda-ndays 30 \
4474 org-agenda-include-diary nil \ 4866 org-agenda-include-diary nil \
4475 org-agenda-files (quote ("~/org/project.org")))' \ 4867 org-agenda-files (quote ("~/org/project.org")))' \
4476 | lpr 4868 | lpr
4477@end example 4869@end example
4478 4870
4479@noindent 4871@noindent
4480which will produce a 300 day agenda, fully restricted to the Org file 4872which will produce a 30 day agenda, fully restricted to the Org file
4481@file{~/org/projects.org}, not even including the diary. 4873@file{~/org/projects.org}, not even including the diary.
4482 4874
4875If you want to process the agenda data in more sophisticated ways, you
4876can use the command @code{org-batch-agenda-csv} to get a comma-separated
4877list of values for each agenda item. Each line in the output will
4878contain a number of fields separated by commas. The fields in a line
4879are:
4880
4881@example
4882category @r{The category of the item}
4883head @r{The headline, without TODO kwd, TAGS and PRIORITY}
4884type @r{The type of the agenda entry, can be}
4885 todo @r{selected in TODO match}
4886 tagsmatch @r{selected in tags match}
4887 diary @r{imported from diary}
4888 deadline @r{a deadline}
4889 scheduled @r{scheduled}
4890 timestamp @r{appointment, selected by timestamp}
4891 closed @r{entry was closed on date}
4892 upcoming-deadline @r{warning about nearing deadline}
4893 past-scheduled @r{forwarded scheduled item}
4894 block @r{entry has date block including date}
4895todo @r{The todo keyword, if any}
4896tags @r{All tags including inherited ones, separated by colons}
4897date @r{The relevant date, like 2007-2-14}
4898time @r{The time, like 15:00-16:50}
4899extra @r{String with extra planning info}
4900priority-l @r{The priority letter if any was given}
4901priority-n @r{The computed numerical priority}
4902@end example
4903
4904@noindent
4905Time and date will only be given if a timestamp (or deadline/scheduled)
4906lead to the selection of the item.
4907
4908A CSV list like this is very easy to use in a post processing script.
4909For example, here is a Perl program that gets the TODO list from
4910Emacs/org-mode and prints all the items, preceded by a checkbox:
4911
4912@example
4913@group
4914#!/usr/bin/perl
4915
4916# define the Emacs command to run
4917$cmd = "emacs -batch -l ~/.emacs -eval '(org-batch-agenda-csv \"t\")'";
4918
4919# run it and capture the output
4920$agenda = qx@{$cmd 2>/dev/null@};
4921
4922# loop over all lines
4923foreach $line (split(/\n/,$agenda)) @{
4924
4925 # get the individual values
4926 ($category,$head,$type,$todo,$tags,$date,$time,$extra,
4927 $priority_l,$priority_n) = split(/,/,$line);
4928
4929 # proccess and print
4930 print "[ ] $head\n";
4931@}
4932@end group
4933@end example
4934
4483@node Embedded LaTeX, Exporting, Agenda views, Top 4935@node Embedded LaTeX, Exporting, Agenda views, Top
4484@chapter Embedded LaTeX 4936@chapter Embedded LaTeX
4485@cindex @TeX{} interpretation 4937@cindex @TeX{} interpretation
@@ -4566,7 +5018,9 @@ preview the typeset result of these fragments, and upon export to HTML,
4566all fragments will be converted to images and inlined into the HTML 5018all fragments will be converted to images and inlined into the HTML
4567document. For this to work you need to be on a system with a working 5019document. For this to work you need to be on a system with a working
4568La@TeX{} installation. You also need the @file{dvipng} program, 5020La@TeX{} installation. You also need the @file{dvipng} program,
4569available at @url{http://sourceforge.net/projects/dvipng/}. 5021available at @url{http://sourceforge.net/projects/dvipng/}. The LaTeX
5022header that will be used when processing a fragment can be configured
5023with the variable @code{org-format-latex-header}.
4570 5024
4571La@TeX{} fragments don't need any special marking at all. The following 5025La@TeX{} fragments don't need any special marking at all. The following
4572snippets will be identified as LaTeX source code: 5026snippets will be identified as LaTeX source code:
@@ -4773,7 +5227,7 @@ HTML formatting, in ways similar to John Grubers @emph{markdown}
4773language, but with additional support for tables. 5227language, but with additional support for tables.
4774 5228
4775@menu 5229@menu
4776* Export commands:: How to invode HTML export 5230* Export commands:: How to invoke HTML export
4777* Quoting HTML tags:: Using direct HTML in Org-mode 5231* Quoting HTML tags:: Using direct HTML in Org-mode
4778* Links:: How hyperlinks get transferred to HTML 5232* Links:: How hyperlinks get transferred to HTML
4779* Images:: To inline or not to inline? 5233* Images:: To inline or not to inline?
@@ -4793,11 +5247,27 @@ Export as HTML file @file{myfile.html}.
4793@kindex C-c C-e b 5247@kindex C-c C-e b
4794@item C-c C-e b 5248@item C-c C-e b
4795Export as HTML file and open it with a browser. 5249Export as HTML file and open it with a browser.
5250@kindex C-c C-e H
5251@item C-c C-e H
5252Export to a temporary buffer, do not create a file.
5253@kindex C-c C-e R
5254@item C-c C-e H
5255Export the active region to a temporary buffer. With prefix arg, do not
5256produce file header and foot, but just the plain HTML section for the
5257region. This is good for cut-and-paste operations.
4796@kindex C-c C-e v h 5258@kindex C-c C-e v h
4797@kindex C-c C-e v b 5259@kindex C-c C-e v b
5260@kindex C-c C-e v H
5261@kindex C-c C-e v R
4798@item C-c C-e v h 5262@item C-c C-e v h
4799@item C-c C-e v b 5263@item C-c C-e v b
5264@item C-c C-e v H
5265@item C-c C-e v R
4800Export only the visible part of the document. 5266Export only the visible part of the document.
5267@item M-x org-export-region-as-html
5268Convert the region to HTML under the assumption that it was org-mode
5269syntax before. This is a global command that can be invoked in any
5270buffer.
4801@end table 5271@end table
4802 5272
4803@cindex headline levels, for exporting 5273@cindex headline levels, for exporting
@@ -4975,19 +5445,20 @@ in order to produce better output.
4975 5445
4976@menu 5446@menu
4977* Comment lines:: Some lines will not be exported 5447* Comment lines:: Some lines will not be exported
5448* Initial text:: Text before the first headline
5449* Footnotes:: Numbers like [1]
4978* Enhancing text:: Subscripts, symbols and more 5450* Enhancing text:: Subscripts, symbols and more
4979* Export options:: How to influence the export settings 5451* Export options:: How to influence the export settings
4980@end menu 5452@end menu
4981 5453
4982@node Comment lines, Enhancing text, Text interpretation, Text interpretation 5454@node Comment lines, Initial text, Text interpretation, Text interpretation
4983@subsection Comment lines 5455@subsection Comment lines
4984@cindex comment lines 5456@cindex comment lines
4985@cindex exporting, not 5457@cindex exporting, not
4986 5458
4987Lines starting with @samp{#} in column zero are treated as comments 5459Lines starting with @samp{#} in column zero are treated as comments
4988and will never be exported. Also entire subtrees starting with the 5460and will never be exported. Also entire subtrees starting with the
4989word @samp{COMMENT} will never be exported. Finally, any text before 5461word @samp{COMMENT} will never be exported.
4990the first headline will not be exported either.
4991 5462
4992@table @kbd 5463@table @kbd
4993@kindex C-c ; 5464@kindex C-c ;
@@ -4995,7 +5466,70 @@ the first headline will not be exported either.
4995Toggle the COMMENT keyword at the beginning of an entry. 5466Toggle the COMMENT keyword at the beginning of an entry.
4996@end table 5467@end table
4997 5468
4998@node Enhancing text, Export options, Comment lines, Text interpretation 5469@node Initial text, Footnotes, Comment lines, Text interpretation
5470@subsection Text before the first headline
5471
5472Org-mode normally ignores any text before the first headline when
5473exporting, leaving this region for internal links to speed up navigation
5474etc. However, in publishing-oriented files, you might want to have some
5475text before the first headline, like a small introduction, special HTML
5476code with a navigation bar, etc. You can ask to have this part of the
5477file exported as well by setting the variable
5478@code{org-export-skip-text-before-1st-heading} to @code{nil}. On a
5479per-file basis, you can get the same effect with
5480
5481@example
5482#+OPTIONS: skip:nil
5483@end example
5484
5485The text before the first headline will be fully processed
5486(@pxref{Enhancing text}), and the first non-comment line becomes the
5487title of the exported document. If you need to include literal HTML,
5488use the special constructs described in @ref{Quoting HTML tags}. The
5489table of contents is normally inserted directly before the first
5490headline of the file. If you would like to get it to a different
5491location, insert the string @code{[TABLE-OF-CONTENTS]} on a line by
5492itself at the desired location.
5493
5494Finally, if you want to use the space before the first headline for
5495internal purposes, but @emph{still} want to place something before the
5496first headline when exporting the file, you can use the @code{#+TEXT}
5497construct:
5498
5499@example
5500#+OPTIONS: skip:t
5501#+TEXT: This text will go before the *first* headline.
5502#+TEXT: We place the table of contents here:
5503#+TEXT: [TABLE-OF-CONTENTS]
5504#+TEXT: This goes between the table of contents and the first headline
5505@end example
5506
5507@node Footnotes, Enhancing text, Initial text, Text interpretation
5508@subsection Footnotes
5509@cindex footnotes
5510@cindex @file{footnote.el}
5511
5512Numbers in square brackets are treated as footnotes, so that you can use
5513the Emacs package @file{footnote.el} to create footnotes. For example:
5514
5515@example
5516The org-mode homepage[1] clearly needs help from
5517a good web designer.
5518
5519[1] The link is: http://www.astro.uva.nl/~dominik/Tools/org
5520@end example
5521
5522@noindent
5523@kindex C-c !
5524Note that the @file{footnote} package uses @kbd{C-c !} to invoke its
5525commands. This binding conflicts with the org-mode command for
5526inserting inactive time stamps. You could use the variable
5527@code{footnote-prefix} to switch footnotes commands to another key. Or,
5528if you are too used to this binding, you could use
5529@code{org-replace-disputed-keys} and @code{org-disputed-keys} to change
5530the settings in Org-mode.
5531
5532@node Enhancing text, Export options, Footnotes, Text interpretation
4999@subsection Enhancing text for export 5533@subsection Enhancing text for export
5000@cindex enhancing text 5534@cindex enhancing text
5001@cindex richer text 5535@cindex richer text
@@ -5019,7 +5553,9 @@ backend supports lists. See @xref{Plain lists}.
5019@cindex italic text 5553@cindex italic text
5020@item 5554@item
5021You can make words @b{*bold*}, @i{/italic/}, _underlined_, 5555You can make words @b{*bold*}, @i{/italic/}, _underlined_,
5022@code{=code=}, and @samp{+strikethrough+}. 5556@code{=code=}, and even @samp{+strikethrough+}@footnote{but remember
5557that strikethrough is typographically evil and should @i{never} be
5558used.}.
5023 5559
5024@cindex horizontal rules, in exported files 5560@cindex horizontal rules, in exported files
5025@item 5561@item
@@ -5057,7 +5593,7 @@ this position.
5057@end itemize 5593@end itemize
5058 5594
5059If these conversions conflict with your habits of typing ASCII text, 5595If these conversions conflict with your habits of typing ASCII text,
5060they can all be turned off with corresponding variables (see the 5596they can all be turned off with corresponding variables. See the
5061customization group @code{org-export-general}, and the following section 5597customization group @code{org-export-general}, and the following section
5062which explains how to set export options with special lines in a 5598which explains how to set export options with special lines in a
5063buffer. 5599buffer.
@@ -5088,7 +5624,7 @@ Insert template with export options, see example below.
5088#+LANGUAGE: language for HTML, e.g. @samp{en} (@code{org-export-default-language}) 5624#+LANGUAGE: language for HTML, e.g. @samp{en} (@code{org-export-default-language})
5089#+TEXT: Some descriptive text to be inserted at the beginning. 5625#+TEXT: Some descriptive text to be inserted at the beginning.
5090#+TEXT: Several lines may be given. 5626#+TEXT: Several lines may be given.
5091#+OPTIONS: H:2 num:t toc:t \n:nil @@:t ::t |:t ^:t *:nil TeX:t LaTeX:t 5627#+OPTIONS: H:2 num:t toc:t \n:nil @@:t ::t |:t ^:t *:nil TeX:t LaTeX:t skip:t
5092@end example 5628@end example
5093 5629
5094@noindent 5630@noindent
@@ -5113,10 +5649,13 @@ toc: @r{turn on/off table of contents, or set level limit (integer)}
5113@@: @r{turn on/off quoted HTML tags} 5649@@: @r{turn on/off quoted HTML tags}
5114:: @r{turn on/off fixed-width sections} 5650:: @r{turn on/off fixed-width sections}
5115|: @r{turn on/off tables} 5651|: @r{turn on/off tables}
5116^: @r{turn on/off @TeX{}-like syntax for sub- and superscripts.} 5652^: @r{turn on/off @TeX{}-like syntax for sub- and superscripts. If}
5653 @r{you write "^:@{@}", @code{a_@{b@}} will be interpreted, but}
5654 @r{the simple @code{a_b} will be left as it is.}
5117*: @r{turn on/off emphasized text (bold, italic, underlined)} 5655*: @r{turn on/off emphasized text (bold, italic, underlined)}
5118TeX: @r{turn on/off simple @TeX{} macros in plain text} 5656TeX: @r{turn on/off simple @TeX{} macros in plain text}
5119LaTeX: @r{turn on/off La@TeX{} fragments} 5657LaTeX: @r{turn on/off La@TeX{} fragments}
5658skip: @r{turn on/off skipping the text before the first heading}
5120@end example 5659@end example
5121 5660
5122@node Publishing, Miscellaneous, Exporting, Top 5661@node Publishing, Miscellaneous, Exporting, Top
@@ -5444,13 +5983,13 @@ Once org-publish is properly configured, you can publish with the
5444following functions: 5983following functions:
5445 5984
5446@table @kbd 5985@table @kbd
5447@item C-c C-e c 5986@item C-c C-e C
5448Prompt for a specific project and publish all files that belong to it. 5987Prompt for a specific project and publish all files that belong to it.
5449@item C-c C-e p 5988@item C-c C-e P
5450Publish the project containing the current file. 5989Publish the project containing the current file.
5451@item C-c C-e f 5990@item C-c C-e F
5452Publish only the current file. 5991Publish only the current file.
5453@item C-c C-e a 5992@item C-c C-e A
5454Publish all projects. 5993Publish all projects.
5455@end table 5994@end table
5456 5995
@@ -5584,11 +6123,15 @@ Logging TODO state changes and clock intervals (variable
5584@cindex @code{lognotedone}, STARTUP keyword 6123@cindex @code{lognotedone}, STARTUP keyword
5585@cindex @code{lognoteclock-out}, STARTUP keyword 6124@cindex @code{lognoteclock-out}, STARTUP keyword
5586@cindex @code{lognotestate}, STARTUP keyword 6125@cindex @code{lognotestate}, STARTUP keyword
6126@cindex @code{logrepeat}, STARTUP keyword
6127@cindex @code{nologrepeat}, STARTUP keyword
5587@example 6128@example
5588logging @r{record a timestamp when an item is marked DONE} 6129logging @r{record a timestamp when an item is marked DONE}
5589nologging @r{don't record when items are marked DONE} 6130nologging @r{don't record when items are marked DONE}
5590lognotedone @r{record timestamp and a note when DONE} 6131lognotedone @r{record timestamp and a note when DONE}
5591lognotestate @r{record timestamp, note when TODO state changes} 6132lognotestate @r{record timestamp, note when TODO state changes}
6133logrepeat @r{record a not when re-instating a repeating item}
6134nologrepeat @r{do not record when re-instating repeating item}
5592lognoteclock-out @r{record timestamp and a note when clocking out} 6135lognoteclock-out @r{record timestamp and a note when clocking out}
5593@end example 6136@end example
5594Here are the options for hiding leading stars in outline headings. The 6137Here are the options for hiding leading stars in outline headings. The
@@ -5612,6 +6155,14 @@ To turn on custom format overlays over time stamps (variables
5612@example 6155@example
5613customtime @r{overlay custom time format} 6156customtime @r{overlay custom time format}
5614@end example 6157@end example
6158The following options influence the table spreadsheet (variable
6159@code{constants-unit-system}).
6160@cindex @code{constcgs}, STARTUP keyword
6161@cindex @code{constSI}, STARTUP keyword
6162@example
6163constcgs @r{@file{constants.el} should use the c-g-s unit system}
6164constSI @r{@file{constants.el} should use the SI unit system}
6165@end example
5615@item #+SEQ_TODO: #+TYP_TODO: 6166@item #+SEQ_TODO: #+TYP_TODO:
5616These lines set the TODO keywords and their interpretation in the 6167These lines set the TODO keywords and their interpretation in the
5617current file. The corresponding variables are @code{org-todo-keywords} 6168current file. The corresponding variables are @code{org-todo-keywords}
@@ -5633,6 +6184,10 @@ This line sets the archive location for the agenda file. It applies for
5633all subsequent lines until the next @samp{#+CATEGORY} line, or the end 6184all subsequent lines until the next @samp{#+CATEGORY} line, or the end
5634of the file. The first such line also applies to any entries before it. 6185of the file. The first such line also applies to any entries before it.
5635The corresponding variable is @code{org-archive-location}. 6186The corresponding variable is @code{org-archive-location}.
6187@item #+PRIORITIES: highest lowest default
6188This line sets the limits and the default for the priorities. All three
6189must be either letters A-Z or numbers 0-9. The highest priority must
6190have a lower ASCII number that the lowest priority.
5636@item #+TBLFM: 6191@item #+TBLFM:
5637This line contains the formulas for the table directly above the line. 6192This line contains the formulas for the table directly above the line.
5638@item #+TITLE:, #+AUTHOR:, #+EMAIL:, #+LANGUAGE:, #+TEXT:, #+OPTIONS: 6193@item #+TITLE:, #+AUTHOR:, #+EMAIL:, #+LANGUAGE:, #+TEXT:, #+OPTIONS:
@@ -5816,10 +6371,12 @@ rather use @kbd{C-c .} to re-insert the timestamp.
5816@item @kbd{S-@key{RET}} @tab @kbd{C-c C-x c} @tab 6371@item @kbd{S-@key{RET}} @tab @kbd{C-c C-x c} @tab
5817@item @kbd{M-@key{RET}} @tab @kbd{C-c C-x m} @tab @kbd{@key{Esc} @key{RET}} 6372@item @kbd{M-@key{RET}} @tab @kbd{C-c C-x m} @tab @kbd{@key{Esc} @key{RET}}
5818@item @kbd{M-S-@key{RET}} @tab @kbd{C-c C-x M} @tab 6373@item @kbd{M-S-@key{RET}} @tab @kbd{C-c C-x M} @tab
5819@item @kbd{S-@key{left}} @tab @kbd{C-c C-x @key{left}} @tab 6374@item @kbd{S-@key{left}} @tab @kbd{C-c @key{left}} @tab
5820@item @kbd{S-@key{right}} @tab @kbd{C-c C-x @key{right}} @tab 6375@item @kbd{S-@key{right}} @tab @kbd{C-c @key{right}} @tab
5821@item @kbd{S-@key{up}} @tab @kbd{C-c C-x @key{up}} @tab 6376@item @kbd{S-@key{up}} @tab @kbd{C-c @key{up}} @tab
5822@item @kbd{S-@key{down}} @tab @kbd{C-c C-x @key{down}} @tab 6377@item @kbd{S-@key{down}} @tab @kbd{C-c @key{down}} @tab
6378@item @kbd{C-S-@key{left}} @tab @kbd{C-c C-x @key{left}} @tab
6379@item @kbd{C-S-@key{right}} @tab @kbd{C-c C-x @key{right}} @tab
5823@end multitable 6380@end multitable
5824 6381
5825@node Interaction, Bugs, TTY keys, Miscellaneous 6382@node Interaction, Bugs, TTY keys, Miscellaneous
@@ -5887,7 +6444,7 @@ to execute Org-mode-related commands, leave the table.
5887@item C-c C-c 6444@item C-c C-c
5888Recognize @file{table.el} table. Works when the cursor is in a 6445Recognize @file{table.el} table. Works when the cursor is in a
5889table.el table. 6446table.el table.
5890 6447@c
5891@kindex C-c ~ 6448@kindex C-c ~
5892@item C-c ~ 6449@item C-c ~
5893Insert a table.el table. If there is already a table at point, this 6450Insert a table.el table. If there is already a table at point, this
@@ -5897,6 +6454,10 @@ format. See the documentation string of the command
5897possible. 6454possible.
5898@end table 6455@end table
5899@file{table.el} is part of Emacs 22. 6456@file{table.el} is part of Emacs 22.
6457@cindex @file{footnote.el}
6458@item @file{footnote.el} by Steven L. Baur
6459Org-mode recognizes numerical footnotes as provided by this package
6460(@pxref{Footnotes}).
5900@end table 6461@end table
5901 6462
5902@node Conflicts, , Cooperation, Interaction 6463@node Conflicts, , Cooperation, Interaction
@@ -5927,7 +6488,6 @@ during date selection).
5927@example 6488@example
5928S-UP -> M-p S-DOWN -> M-n 6489S-UP -> M-p S-DOWN -> M-n
5929S-LEFT -> M-- S-RIGHT -> M-+ 6490S-LEFT -> M-- S-RIGHT -> M-+
5930S-RET -> C-S-RET
5931@end example 6491@end example
5932 6492
5933Yes, these are unfortunately more difficult to remember. If you want 6493Yes, these are unfortunately more difficult to remember. If you want
@@ -5937,6 +6497,16 @@ to have other replacement keys, look at the variable
5937@cindex @file{windmove.el} 6497@cindex @file{windmove.el}
5938Also this package uses the @kbd{S-<cursor>} keys, so everything written 6498Also this package uses the @kbd{S-<cursor>} keys, so everything written
5939in the paragraph above about CUA mode also applies here. 6499in the paragraph above about CUA mode also applies here.
6500
6501@cindex @file{footnote.el}
6502@item @file{footnote.el} by Steven L. Baur
6503Org-mode supports the syntax of the footnote package, but only the
6504numerical footnote markers. Also, the default key for footnote
6505commands, @kbd{C-c !} is already used by org-mode. You could use the
6506variable @code{footnote-prefix} to switch footnotes commands to another
6507key. Or, you could use @code{org-replace-disputed-keys} and
6508@code{org-disputed-keys} to change the settings in Org-mode.
6509
5940@end table 6510@end table
5941 6511
5942 6512
@@ -6417,7 +6987,7 @@ MATCH is being ignored."
6417@end lisp 6987@end lisp
6418 6988
6419 6989
6420@node History and Acknowledgments, GNU Free Documentation License, Extensions and Hacking, Top 6990@node History and Acknowledgments, Index, Extensions and Hacking, Top
6421@appendix History and Acknowledgments 6991@appendix History and Acknowledgments
6422@cindex acknowledgments 6992@cindex acknowledgments
6423@cindex history 6993@cindex history
@@ -6478,6 +7048,9 @@ asked for a way to narrow wide table columns.
6478@i{Christian Egli} converted the documentation into TeXInfo format, 7048@i{Christian Egli} converted the documentation into TeXInfo format,
6479patched CSS formatting into the HTML exporter, and inspired the agenda. 7049patched CSS formatting into the HTML exporter, and inspired the agenda.
6480@item 7050@item
7051@i{David Emery} provided a patch for custom CSS support in exported
7052HTML agendas.
7053@item
6481@i{Nic Ferrier} contributed mailcap and XOXO support. 7054@i{Nic Ferrier} contributed mailcap and XOXO support.
6482@item 7055@item
6483@i{John Foerch} figured out how to make incremental search show context 7056@i{John Foerch} figured out how to make incremental search show context
@@ -6490,13 +7063,19 @@ translated David O'Toole's tutorial into French.
6490@item 7063@item
6491@i{Kai Grossjohann} pointed out key-binding conflicts with other packages. 7064@i{Kai Grossjohann} pointed out key-binding conflicts with other packages.
6492@item 7065@item
6493@i{Shidai Liu} (``Leo'') provided extensive feedback and some patches. 7066@i{Shidai Liu} ("Leo") asked for embedded LaTeX and tested it. He also
7067provided frequent feedback and some patches.
6494@item 7068@item
6495@i{Leon Liu} asked for embedded LaTeX and tested it. 7069@i{Jason F. McBrayer} suggested agenda export to CSV format.
7070@item
7071@i{Dmitri Minaev} sent a patch to set priority limits on a per-file
7072basis.
6496@item 7073@item
6497@i{Stefan Monnier} provided a patch to keep the Emacs-Lisp compiler 7074@i{Stefan Monnier} provided a patch to keep the Emacs-Lisp compiler
6498happy. 7075happy.
6499@item 7076@item
7077@i{Rick Moynihan} proposed to allow multiple TODO sequences in a file.
7078@item
6500@i{Todd Neal} provided patches for links to Info files and elisp forms. 7079@i{Todd Neal} provided patches for links to Info files and elisp forms.
6501@item 7080@item
6502@i{Tim O'Callaghan} suggested in-file links, search options for general 7081@i{Tim O'Callaghan} suggested in-file links, search options for general
@@ -6568,12 +7147,8 @@ work on a tty.
6568and contributed various ideas and code snippets. 7147and contributed various ideas and code snippets.
6569@end itemize 7148@end itemize
6570 7149
6571@node GNU Free Documentation License, Index, History and Acknowledgments, Top
6572@appendix GNU Free Documentation License
6573@include doclicense.texi
6574
6575 7150
6576@node Index, Key Index, GNU Free Documentation License, Top 7151@node Index, Key Index, History and Acknowledgments, Top
6577@unnumbered Index 7152@unnumbered Index
6578 7153
6579@printindex cp 7154@printindex cp
diff --git a/msdos/ChangeLog b/msdos/ChangeLog
index 24f83276b92..4c7c136c187 100644
--- a/msdos/ChangeLog
+++ b/msdos/ChangeLog
@@ -1,3 +1,7 @@
12007-06-02 Chong Yidong <cyd@stupidchicken.com>
2
3 * Version 22.1 released.
4
12007-02-10 Glenn Morris <rgm@gnu.org> 52007-02-10 Glenn Morris <rgm@gnu.org>
2 6
3 * COPYING.DJ: Remove file since it is no longer needed (see README 7 * COPYING.DJ: Remove file since it is no longer needed (see README
diff --git a/nt/ChangeLog b/nt/ChangeLog
index 03584981bf5..c2f784da78a 100644
--- a/nt/ChangeLog
+++ b/nt/ChangeLog
@@ -1,3 +1,7 @@
12007-06-02 Chong Yidong <cyd@stupidchicken.com>
2
3 * Version 22.1 released.
4
12007-05-22 Eli Zaretskii <eliz@gnu.org> 52007-05-22 Eli Zaretskii <eliz@gnu.org>
2 6
3 * INSTALL: Add information about where to find GDB, and warn 7 * INSTALL: Add information about where to find GDB, and warn
diff --git a/oldXMenu/ChangeLog b/oldXMenu/ChangeLog
index 9a7f01ed901..95fe90f5e64 100644
--- a/oldXMenu/ChangeLog
+++ b/oldXMenu/ChangeLog
@@ -1,3 +1,12 @@
12007-06-04 Ulrich Mueller <ulm@gentoo.org> (tiny change)
2
3 * ChgPane.c, ChgSel.c: Quiet --with-x-toolkit=no
4 compilation warnings: #include <config.h>.
5
62007-06-02 Chong Yidong <cyd@stupidchicken.com>
7
8 * Version 22.1 released.
9
12007-05-30 Ulrich Mueller <ulm@gentoo.org> (tiny change) 102007-05-30 Ulrich Mueller <ulm@gentoo.org> (tiny change)
2 11
3 * XMakeAssoc.c (XMakeAssoc): Use malloc rather than xmalloc. 12 * XMakeAssoc.c (XMakeAssoc): Use malloc rather than xmalloc.
diff --git a/oldXMenu/ChgPane.c b/oldXMenu/ChgPane.c
index 35caf0917c9..06b2faa4451 100644
--- a/oldXMenu/ChgPane.c
+++ b/oldXMenu/ChgPane.c
@@ -13,6 +13,7 @@
13 * 13 *
14 */ 14 */
15 15
16#include <config.h>
16#include "XMenuInt.h" 17#include "XMenuInt.h"
17 18
18int 19int
diff --git a/oldXMenu/ChgSel.c b/oldXMenu/ChgSel.c
index 4d246f7bdbc..9a1230bd39b 100644
--- a/oldXMenu/ChgSel.c
+++ b/oldXMenu/ChgSel.c
@@ -13,6 +13,7 @@
13 * 13 *
14 */ 14 */
15 15
16#include <config.h>
16#include "XMenuInt.h" 17#include "XMenuInt.h"
17 18
18int 19int
diff --git a/src/ChangeLog b/src/ChangeLog
index 31b8f51bf18..ea0d71f90db 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,224 @@
12007-06-10 Jason Rumney <jasonr@gnu.org>
2
3 * w32fns.c (Fx_file_dialog): Take size from struct not pointer.
4
52007-06-08 Juanma Barranquero <lekktu@gmail.com>
6
7 * callint.c (Fcall_interactively):
8 * editfns.c (Fdelete_and_extract_region):
9 * fileio.c (Fread_file_name):
10 * fns.c (Fmapconcat):
11 * keyboard.c (cmd_error_internal):
12 * keymap.c (Fkey_description):
13 * lread.c (openp):
14 * minibuf.c (read_minibuf):
15 * search.c (wordify):
16 * sunfns.c (sel_read):
17 * xdisp.c (Fformat_mode_line, syms_of_xdisp):
18 * xfns.c (x_default_scroll_bar_color_parameter):
19 * xmenu.c (menu_help_callback):
20 * xselect.c (Fx_get_atom_name):
21 * xterm.c (x_term_init): Use empty_unibyte_string.
22
232007-06-08 Dmitry Antipov <dmitry.antipov@mail.ru> (tiny change)
24
25 * alloc.c (init_strings): Initialize canonical empty strings.
26 (make_uninit_string, make_uninit_multibyte_string): Return appropriate
27 canonical empty string when the requested size is 0.
28
29 * emacs.c (empty_unibyte_string): Rename from empty_string.
30 (empty_multibyte_string): New canonical empty string.
31 (syms_of_emacs): Don't initialize empty_string.
32
33 * lisp.h (STRING_SET_UNIBYTE): Return the canonical empty unibyte
34 string, if appropriate.
35 (empty_unibyte_string, empty_multibyte_string): New externs.
36 (empty_string): Remove extern.
37
38 * lread.c (syms_of_lread): Use empty_unibyte_string.
39
402007-06-07 Jason Rumney <jasonr@gnu.org>
41
42 * s/ms-w32.h: Don't define HAVE_TZNAME.
43
44 * editfns.c (Fcurrent_time_zone): Remove hack for Japanese Windows.
45
462007-06-07 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
47
48 * mac.c (xrm_get_preference_database): Remove BLOCK_INPUT.
49
50 * macfns.c (mac_get_window_bounds): Move extern to macterm.h.
51 (compute_tip_xy) [TARGET_API_MAC_CARBON]: Use GetGlobalMouse.
52
53 * macmenu.c [TARGET_API_MAC_CARBON] (menu_target_item_handler):
54 Don't call next handler.
55 [TARGET_API_MAC_CARBON] (install_menu_target_item_handler):
56 Remove argument. Install handler to application.
57 (set_frame_menubar): Don't change deep_p.
58 (mac_menu_show): Use FRAME_OUTER_TO_INNER_DIFF_X and
59 FRAME_OUTER_TO_INNER_DIFF_Y.
60 (DIALOG_BUTTON_COMMAND_ID_OFFSET, DIALOG_BUTTON_COMMAND_ID_P)
61 (DIALOG_BUTTON_COMMAND_ID_VALUE, DIALOG_BUTTON_MAKE_COMMAND_ID)
62 [HAVE_DIALOGS]: New macros.
63 [HAVE_DIALOGS] (mac_handle_dialog_event, create_and_show_dialog):
64 Use them.
65 (fill_menubar) [TARGET_API_MAC_CARBON]: Use CFString.
66
67 * macselect.c [MAC_OSX] (install_service_handler): Rename from
68 init_service_handler. All callers changed. Return OSStatus value.
69
70 * macterm.c (mac_begin_cg_clip): New arg F. Call SetPortWindowPort.
71 All callers changed so as not to call SetPortWindowPort.
72 (mac_begin_cg_clip) [USE_CG_DRAWING]: Call mac_prepare_for_quickdraw.
73 (mac_draw_image_string_atsui) [USE_ATSUI]: New function created from
74 mac_draw_string_common.
75 (mac_draw_image_string_qd): Likewise.
76 (mac_draw_string_common): Use them. Add INLINE.
77 (XTmouse_position, x_scroll_bar_report_motion) [TARGET_API_MAC_CARBON]:
78 Use FRAME_OUTER_TO_INNER_DIFF_X, FRAME_OUTER_TO_INNER_DIFF_Y, and
79 GetGlobalMouse.
80 (x_set_mouse_pixel_position) [MAC_OSX]: Use FRAME_OUTER_TO_INNER_DIFF_X
81 and FRAME_OUTER_TO_INNER_DIFF_Y.
82 [TARGET_API_MAC_CARBON] (mac_handle_mouse_event): Likewise.
83 [USE_MAC_TSM] (mac_handle_text_input_event): Likewise.
84 (x_make_frame_visible) [TARGET_API_MAC_CARBON]: Move code for
85 repositioning window to mac_handle_window_event.
86 (x_make_frame_invisible) [TARGET_API_MAC_CARBON]: Move code for
87 saving window location to mac_handle_window_event
88 [USE_MAC_FONT_PANEL] (mac_show_hide_font_panel): Install handler here.
89 (install_menu_target_item_handler): Remove argument in extern.
90 [TARGET_API_MAC_CARBON] (mac_event_to_emacs_modifiers):
91 Also accept command events.
92 (do_keystroke): New function created from XTread_socket.
93 (init_command_handler): Remove functions.
94 [TARGET_API_MAC_CARBON] (mac_handle_window_event): Reposition window
95 and save window location by kEventWindowShowing and kEventWindowHiding
96 handlers here. Don't call next handler for window state change and
97 focus events.
98 (mac_handle_application_event, mac_handle_keyboard_event)
99 [TARGET_API_MAC_CARBON]: New functions.
100 (install_window_handler) [TARGET_API_MAC_CARBON]: Register handlers for
101 kEventWindowShowing and kEventWindowHiding events. Move installation
102 of mouse, font, text input and menu target item handlers to
103 install_application_handler.
104 (install_application_handler) [TARGET_API_MAC_CARBON]: New function.
105 (mac_handle_cg_display_reconfig) [MAC_OS_X_VERSION_MAX_ALLOWED >= 1030]:
106 New function.
107 (init_dm_notification_handler) [MAC_OS_X_VERSION_MAX_ALLOWED >= 1030]:
108 Register it.
109 (XTread_socket) [TARGET_API_MAC_CARBON]: Consolidate
110 SendEventToEventTarget calls. Use FRAME_OUTER_TO_INNER_DIFF_X and
111 FRAME_OUTER_TO_INNER_DIFF_Y. Move application activation handler
112 to mac_handle_application_event. Move keyboard handler to
113 mac_handle_keyboard_event.
114 (XTread_socket) [!TARGET_API_MAC_CARBON]: Use do_keystroke.
115 (mac_initialize) [TARGET_API_MAC_CARBON]: Don't call
116 init_command_handler. Call install_application_handler.
117
118 * macterm.h (mac_get_window_bounds): Move extern from macfns.c.
119 (FRAME_OUTER_TO_INNER_DIFF_X, FRAME_OUTER_TO_INNER_DIFF_Y): New macros.
120
1212007-06-07 Glenn Morris <rgm@gnu.org>
122
123 * emacs.c (main): Use `emacs-copyright' in --version output.
124
1252007-06-06 Chong Yidong <cyd@stupidchicken.com>
126
127 * image.c (xpm_load): Remove spurious call to
128 xpm_init_color_cache.
129
1302007-06-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
131
132 * macfns.c (mac_window): Replace WindowPtr with WindowRef.
133
134 * macgui.h: Replace WindowPtr with WindowRef.
135
136 * macmenu.c: Replace MenuHandle and GetMenuHandle with MenuRef and
137 GetMenuRef, respectively. Replace WindowPtr with WindowRef.
138 Replace ControlHandle with ControlRef.
139 (install_menu_quit_handler): Rename arg MENU_HANDLE to ROOT_MENU.
140
141 * macterm.c: Replace MenuHandle and GetMenuHandle with MenuRef and
142 GetMenuRef, respectively. Replace WindowPtr with WindowRef.
143 Replace ControlHandle with ControlRef.
144 (USE_CARBON_EVENTS): Remove. Use TARGET_API_MAC_CARBON instead.
145 [MAC_OS8] (do_get_menus): Rename variable `menu_handle' to `menu'.
146
147 * macterm.h (struct scroll_bar): Rename member control_handle_low
148 and control_handle_high to control_ref_low and control_ref_high.
149 All uses changed.
150 (SCROLL_BAR_CONTROL_REF, SET_SCROLL_BAR_CONTROL_REF): Rename from
151 SCROLL_BAR_CONTROL_HANDLE and SET_SCROLL_BAR_CONTROL_HANDLE,
152 respectively. All uses changed.
153 (XCreatePixmap, XCreatePixmapFromBitmapData, XSetWindowBackground)
154 (install_window_handler, remove_window_handler): Replace WindowPtr
155 with WindowRef in externs.
156
1572007-06-05 Juanma Barranquero <lekktu@gmail.com>
158
159 * xfaces.c (Finternal_lisp_face_p): Signal error for face alias loops.
160
1612007-06-03 Nick Roberts <nickrob@snap.net.nz>
162
163 * keyboard.c (discard_mouse_events): Add GPM_CLICK_EVENT case.
164
165 * frame.c (Fmouse_position, Fmouse_pixel_position):
166 Condition on HAVE_GPM too.
167
168 * term.c (term_mouse_highlight): Remove unused variables.
169 (Fterm_open_connection): Set gpm_zerobased to 1.
170 (term_mouse_movement, term_mouse_click, handle_one_term_event):
171 Use zero based co-ordinates.
172 (handle_one_term_event): Report a drag as mouse movement too.
173
174 * Makefile.in (MOUSE_SUPPORT): Define for HAVE_GPM.
175
1762007-06-03 Chong Yidong <cyd@stupidchicken.com>
177
178 * image.c (search_image_cache): New function. Require background
179 color match if background color is unspecified in the image spec.
180 (uncache_image, lookup_image): Use it.
181
1822007-06-01 Juanma Barranquero <lekktu@gmail.com>
183
184 * window.c (Fshrink_window): Reflow docstring.
185
1862007-06-02 Chong Yidong <cyd@stupidchicken.com>
187
188 * Version 22.1 released.
189
1902007-06-01 Richard Stallman <rms@gnu.org>
191
192 * xfns.c (x_encode_text): Add GCPRO.
193
1942007-06-01 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
195
196 * xfns.c (x_set_name_internal): Save encoded name before
197 x_encode_text in case string data is relocated.
198
1992007-05-31 Richard Stallman <rms@gnu.org>
200
201 * buffer.c (syms_of_buffer): Doc fix.
202
2032007-05-30 Nick Roberts <nickrob@snap.net.nz>
204
205 * sysdep.c (init_sys_modes): Add rather than replace with
206 O_NONBLOCK.
207
208 * frame.c [HAVE_GPM] (Fset_mouse_pixel_position): Add call to
209 term_mouse_moveto.
210
211 * termhooks.h (term_mouse_moveto): New extern.
212
213 * term.c (mouse_face_window): Rename...
214 (Qmouse_face_window): ...to this.
215 (term_show_mouse_face, term_clear_mouse_face)
216 (term_mouse_highlight): Use Qmouse_face_window.
217 (term_mouse_moveto): New function.
218 (term_mouse_position): Make it work.
219 (syms_of_term): Uncomment assignment to mouse_position_hook.
220 Staticpro Qmouse_face_window.
221
12007-05-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 2222007-05-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2 223
3 * xdisp.c (redisplay_internal): Bind inhibit-point-motion-hooks to t 224 * xdisp.c (redisplay_internal): Bind inhibit-point-motion-hooks to t
@@ -6,14 +227,14 @@
62007-05-26 Dan Nicolaescu <dann@ics.uci.edu> 2272007-05-26 Dan Nicolaescu <dann@ics.uci.edu>
7 228
8 * xfaces.c (syms_of_xfaces): Delete stray semicolon. 229 * xfaces.c (syms_of_xfaces): Delete stray semicolon.
9 * xdisp.c (next_element_from_buffer): 230 * xdisp.c (next_element_from_buffer):
10 * window.c (delete_window): 231 * window.c (delete_window):
11 * term.c (term_mouse_highlight): 232 * term.c (term_mouse_highlight):
12 * msdos.c (getdefdir): 233 * msdos.c (getdefdir):
13 * macterm.c (mac_create_bitmap_from_bitmap_data) 234 * macterm.c (mac_create_bitmap_from_bitmap_data)
14 (init_font_name_table): 235 (init_font_name_table):
15 * fns.c (Fsxhash): 236 * fns.c (Fsxhash):
16 * data.c (Fmake_local_variable): 237 * data.c (Fmake_local_variable):
17 * ccl.c (ccl_driver): Likewise. 238 * ccl.c (ccl_driver): Likewise.
18 239
192007-05-24 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 2402007-05-24 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
@@ -25,7 +246,7 @@
25 246
26 * image.c (uncache_image): Fix typo. 247 * image.c (uncache_image): Fix typo.
27 248
282007-05-23 Johannes Weiner <hannes@saeurebad.de> (tiny change) 2492007-05-23 Johannes Weiner <hannes@saeurebad.de> (tiny change)
29 250
30 * keyboard.c (make_lispy_movement): Condition on HAVE_GPM too. 251 * keyboard.c (make_lispy_movement): Condition on HAVE_GPM too.
31 252
@@ -78,7 +299,7 @@
78 299
79 * termhooks.h [HAVE_GPM_H] (enum event_kind): Add GPM_CLICK_EVENT. 300 * termhooks.h [HAVE_GPM_H] (enum event_kind): Add GPM_CLICK_EVENT.
80 Include gpm.h. 301 Include gpm.h.
81 (handle_one_term_event, term_gpm) New externs. 302 (handle_one_term_event, term_gpm): New externs.
82 303
83 * sysdep.c [HAVE_GPM_H] (init_sys_modes): Make gpm_fd nonblocking 304 * sysdep.c [HAVE_GPM_H] (init_sys_modes): Make gpm_fd nonblocking
84 and allow it to be interrupted by SIGIO. 305 and allow it to be interrupted by SIGIO.
@@ -144,11 +365,12 @@
144 365
1452007-05-07 Stefan Monnier <monnier@iro.umontreal.ca> 3662007-05-07 Stefan Monnier <monnier@iro.umontreal.ca>
146 367
147 * editfns.c (Ftranspose_regions): Yet another int/Lisp_Object mixup (YAILOM) 368 * editfns.c (Ftranspose_regions): Yet another int/Lisp_Object
369 mixup (YAILOM).
148 370
1492007-05-07 Andreas Schwab <schwab@suse.de> 3712007-05-07 Andreas Schwab <schwab@suse.de>
150 372
151 * keymap.c (Flookup_key): Fix typo in last change. 373 * keymap.c (Flookup_key): Fix typo in last change.
152 374
1532007-05-07 Stefan Monnier <monnier@iro.umontreal.ca> 3752007-05-07 Stefan Monnier <monnier@iro.umontreal.ca>
154 376
@@ -2599,7 +2821,7 @@
2599 for writing files. Call gtk_file_chooser_set_current_name to keep 2821 for writing files. Call gtk_file_chooser_set_current_name to keep
2600 default filename. 2822 default filename.
2601 2823
2602 * minibuf.c (Finternal_complete_buffer): Move after DEFUN:s it calls 2824 * minibuf.c (Finternal_complete_buffer): Move after DEFUN:s it calls.
2603 2825
26042006-09-02 Jindrich Makovicka <makovick@gmail.com> (tiny change) 28262006-09-02 Jindrich Makovicka <makovick@gmail.com> (tiny change)
2605 2827
@@ -2856,7 +3078,7 @@
2856 * xterm.h (struct x_display_info): Add x_dnd_atoms* to keep track 3078 * xterm.h (struct x_display_info): Add x_dnd_atoms* to keep track
2857 of drag and drop Atoms. 3079 of drag and drop Atoms.
2858 3080
2859 * xterm.c (x_term_init): Initialize dpyinfo->x_dnd_atoms* 3081 * xterm.c (x_term_init): Initialize dpyinfo->x_dnd_atoms*.
2860 3082
28612006-08-10 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> 30832006-08-10 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
2862 3084
@@ -4022,7 +4244,7 @@
4022 4244
40232006-05-23 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> 42452006-05-23 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
4024 4246
4025 * xterm.c: Remove declarations already in xterm.h 4247 * xterm.c: Remove declarations already in xterm.h.
4026 4248
4027 * xterm.h: Add extern declarations for x_clear_errors, 4249 * xterm.h: Add extern declarations for x_clear_errors,
4028 x_fully_uncatch_errors, x_catching_errors and 4250 x_fully_uncatch_errors, x_catching_errors and
@@ -4763,7 +4985,8 @@
4763 4985
4764 * puresize.h (pure_write_error): Mark as NO_RETURN. 4986 * puresize.h (pure_write_error): Mark as NO_RETURN.
4765 4987
4766 * lisp.h (args_out_of_range, args_out_of_range_3) 4988 * lisp.h (args_out_of_range, args_out_of_range_3, Fkill_emacs):
4989 Likewise.
4767 4990
47682006-04-08 Eli Zaretskii <eliz@gnu.org> 49912006-04-08 Eli Zaretskii <eliz@gnu.org>
4769 4992
@@ -6380,7 +6603,7 @@
6380 6603
6381 * macterm.c (Qmac_ready_for_drag_n_drop, Qapplication, Qabout) 6604 * macterm.c (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
6382 (Qpreferences): Remove variables. 6605 (Qpreferences): Remove variables.
6383 (syms_of_macterm) : Don't initialize them. 6606 (syms_of_macterm): Don't initialize them.
6384 (Qhicommand) [USE_CARBON_EVENTS]: New variable. 6607 (Qhicommand) [USE_CARBON_EVENTS]: New variable.
6385 (syms_of_macterm) [USE_CARBON_EVENTS]: Initialize it. 6608 (syms_of_macterm) [USE_CARBON_EVENTS]: Initialize it.
6386 (init_required_apple_events, do_ae_open_application) 6609 (init_required_apple_events, do_ae_open_application)
@@ -7062,7 +7285,7 @@
7062 7285
7063 * mac.c [TARGET_API_MAC_CARBON] (get_cfstring_encoding_from_lisp): 7286 * mac.c [TARGET_API_MAC_CARBON] (get_cfstring_encoding_from_lisp):
7064 Allow nil as argument. 7287 Allow nil as argument.
7065 [TARGET_API_MAC_CARBON] (Fmac_code_convert_string): Regard nil 7288 [TARGET_API_MAC_CARBON] (Fmac_code_convert_string): Regard nil
7066 for encoding arguments as UTF-16 in native byte order, no BOM. 7289 for encoding arguments as UTF-16 in native byte order, no BOM.
7067 7290
7068 * macfns.c (Fx_create_frame): Add debugging code. 7291 * macfns.c (Fx_create_frame): Add debugging code.
@@ -9998,7 +10221,7 @@
9998 (cfobject_desc_to_lisp, cfproperty_list_to_lisp): Likewise. 10221 (cfobject_desc_to_lisp, cfproperty_list_to_lisp): Likewise.
9999 10222
10000 * process.c (init_process): Change `#ifdef DARWIN' to `#if 10223 * process.c (init_process): Change `#ifdef DARWIN' to `#if
10001 defined (DARWIN) || defined (MAC_OSX)' 10224 defined (DARWIN) || defined (MAC_OSX)'.
10002 10225
10003 * s/darwin.h (DARWIN): Don't define. 10226 * s/darwin.h (DARWIN): Don't define.
10004 10227
@@ -10535,7 +10758,7 @@
105352005-02-03 Kim F. Storm <storm@cua.dk> 107582005-02-03 Kim F. Storm <storm@cua.dk>
10536 10759
10537 * dispnew.c (build_frame_matrix_from_leaf_window) 10760 * dispnew.c (build_frame_matrix_from_leaf_window)
10538 [!GLYPH_DEBUG]: Fix xassert. 10761 [!GLYPH_DEBUG]: Fix xassert.
10539 10762
10540 * xfaces.c (x_free_gc) [!GLYPH_DEBUG]: Fix xassert. 10763 * xfaces.c (x_free_gc) [!GLYPH_DEBUG]: Fix xassert.
10541 10764
@@ -11425,7 +11648,7 @@
11425 11648
114262004-12-20 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 116492004-12-20 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
11427 11650
11428 * macterm.c (mac_do_list_fonts): Fix memory leak 11651 * macterm.c (mac_do_list_fonts): Fix memory leak.
11429 11652
114302004-12-20 Richard M. Stallman <rms@gnu.org> 116532004-12-20 Richard M. Stallman <rms@gnu.org>
11431 11654
@@ -12205,7 +12428,7 @@
12205 * Makefile.in (SOME_MACHINE_OBJECTS): Add fringe.o, image.o 12428 * Makefile.in (SOME_MACHINE_OBJECTS): Add fringe.o, image.o
12206 and w32*.o. 12429 and w32*.o.
12207 (temacs${EXEEXT}): Generate buildobj.lst when temacs is linked. 12430 (temacs${EXEEXT}): Generate buildobj.lst when temacs is linked.
12208 (mostlyclean): Rm buildobj.lst 12431 (mostlyclean): Rm buildobj.lst.
12209 12432
12210 * makefile.w32-in ($(TEMACS)): Generate buildobj.lst when temacs 12433 * makefile.w32-in ($(TEMACS)): Generate buildobj.lst when temacs
12211 is linked. 12434 is linked.
@@ -12543,7 +12766,7 @@
12543 (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Increment it when malloc is used. 12766 (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Increment it when malloc is used.
12544 (SAFE_FREE): Test it to determine if we need to unwind to free. 12767 (SAFE_FREE): Test it to determine if we need to unwind to free.
12545 Remove size arg. All users changed. 12768 Remove size arg. All users changed.
12546 (SAFE_FREE_LISP) Remove. All users changed to use SAFE_FREE. 12769 (SAFE_FREE_LISP): Remove. All users changed to use SAFE_FREE.
12547 12770
125482004-10-26 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> 127712004-10-26 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
12549 12772
@@ -13200,7 +13423,7 @@
13200 (single_submenu): Use ENCODE_MENU_STRING 13423 (single_submenu): Use ENCODE_MENU_STRING
13201 (mac_menu_show): Use ENCODE_MENU_STRING. Reset grabbed because 13424 (mac_menu_show): Use ENCODE_MENU_STRING. Reset grabbed because
13202 button release isn't passed to event loop 13425 button release isn't passed to event loop
13203 (add_menu_item): Use SetMenuItemWithCFString 13426 (add_menu_item): Use SetMenuItemWithCFString.
13204 13427
132052004-08-26 Steven Tamm <steventamm@mac.com> 134282004-08-26 Steven Tamm <steventamm@mac.com>
13206 13429
@@ -13469,7 +13692,7 @@
13469 blocking on event queue only by calling ReceiveNextEvent 13692 blocking on event queue only by calling ReceiveNextEvent
13470 instead of select (since GUI events aren't on an fd). 13693 instead of select (since GUI events aren't on an fd).
13471 (sys_read): Remove function 13694 (sys_read): Remove function
13472 * sysdep.c: Remove redefine of read to sys_read if HAVE_CARBON 13695 * sysdep.c: Remove redefine of read to sys_read if HAVE_CARBON.
13473 13696
134742004-07-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 136972004-07-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
13475 13698
@@ -13479,12 +13702,12 @@
13479 * macterm.c (x_make_frame_visible): Comment in polling on 13702 * macterm.c (x_make_frame_visible): Comment in polling on
13480 frame creation. 13703 frame creation.
13481 13704
13482 * keyboard.c: Undef SIGIO on Carbon 13705 * keyboard.c: Undef SIGIO on Carbon.
13483 13706
13484 * atimer.c (alarm_signal_handler): Call alarm handlers after 13707 * atimer.c (alarm_signal_handler): Call alarm handlers after
13485 scheduling. 13708 scheduling.
13486 13709
13487 * eval.c (Feval): Remove quit_char test 13710 * eval.c (Feval): Remove quit_char test.
13488 13711
13489 * process.c (wait_reading_process_input): Remove clearing 13712 * process.c (wait_reading_process_input): Remove clearing
13490 stdin for select call on process input. 13713 stdin for select call on process input.
@@ -14436,7 +14659,7 @@
144362004-05-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 146592004-05-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
14437 14660
14438 * macterm.c (x_flush, XTframe_up_to_date): Use FRAME_MAC_P 14661 * macterm.c (x_flush, XTframe_up_to_date): Use FRAME_MAC_P
14439 instead of FRAME_X_P 14662 instead of FRAME_X_P.
14440 14663
144412004-05-11 Kim F. Storm <storm@cua.dk> 146642004-05-11 Kim F. Storm <storm@cua.dk>
14442 14665
@@ -14606,7 +14829,7 @@
14606 14829
146072004-05-01 Jason Rumney <jasonr@gnu.org> 148302004-05-01 Jason Rumney <jasonr@gnu.org>
14608 14831
14609 * w32term.c (x_draw_hollow_cursor): Sync with xterm.c 14832 * w32term.c (x_draw_hollow_cursor): Sync with xterm.c.
14610 14833
146112004-04-30 Kim F. Storm <storm@cua.dk> 148342004-04-30 Kim F. Storm <storm@cua.dk>
14612 14835
@@ -17399,7 +17622,7 @@
17399 17622
17400 * makefile.w32-in (alloca.o): Remove. 17623 * makefile.w32-in (alloca.o): Remove.
17401 (coding.o): Depend on intervals.h 17624 (coding.o): Depend on intervals.h
17402 (emacs.o, bytecode.o): Depend on window.h 17625 (emacs.o, bytecode.o): Depend on window.h.
17403 17626
174042003-09-01 Dave Love <fx@gnu.org> 176272003-09-01 Dave Love <fx@gnu.org>
17405 17628
@@ -18180,7 +18403,7 @@
18180 * gtkutil.c: Include keyboard.h, charset.h, coding.h. 18403 * gtkutil.c: Include keyboard.h, charset.h, coding.h.
18181 (xg_create_frame_widgets): Use ENCODE_UTF_8. 18404 (xg_create_frame_widgets): Use ENCODE_UTF_8.
18182 18405
18183 * xterm.c (Qutf_8): Move to coding.c 18406 * xterm.c (Qutf_8): Move to coding.c.
18184 18407
18185 * xmenu.c (ENCODE_MENU_STRING): New. 18408 * xmenu.c (ENCODE_MENU_STRING): New.
18186 (list_of_panes, list_of_items, digest_single_submenu, xmenu_show): 18409 (list_of_panes, list_of_items, digest_single_submenu, xmenu_show):
@@ -20909,7 +21132,7 @@
20909 (redisplay_internal): Add check for USE_GTK and popup_activated. 21132 (redisplay_internal): Add check for USE_GTK and popup_activated.
20910 (redisplay_window): Add check for USE_GTK and FRAME_EXTERNAL_MENU_BAR. 21133 (redisplay_window): Add check for USE_GTK and FRAME_EXTERNAL_MENU_BAR.
20911 (redisplay_window): Add check for USE_GTK and FRAME_EXTERNAL_TOOL_BAR. 21134 (redisplay_window): Add check for USE_GTK and FRAME_EXTERNAL_TOOL_BAR.
20912 (display_menu_bar): Add check for USE_GTK 21135 (display_menu_bar): Add check for USE_GTK.
20913 21136
20914 * lisp.h (Vx_resource_name): Declare extern. 21137 * lisp.h (Vx_resource_name): Declare extern.
20915 21138
@@ -22027,7 +22250,7 @@
22027 22250
22028 * buffer.c (assoc_ignore_text_properties, Fother_buffer, Fkill_buffer) 22251 * buffer.c (assoc_ignore_text_properties, Fother_buffer, Fkill_buffer)
22029 (call_overlay_mod_hooks): Use CONSP and XCAR/XCDR. 22252 (call_overlay_mod_hooks): Use CONSP and XCAR/XCDR.
22030 (Fget_buffer_create, advance_to_char_boundary): Use BEG and BEG_BYTE; 22253 (Fget_buffer_create, advance_to_char_boundary): Use BEG and BEG_BYTE.
22031 22254
220322002-10-21 Stefan Monnier <monnier@cs.yale.edu> 222552002-10-21 Stefan Monnier <monnier@cs.yale.edu>
22033 22256
@@ -23726,8 +23949,8 @@
23726 * fns.c (Fstring_make_unibyte): Doc fix. 23949 * fns.c (Fstring_make_unibyte): Doc fix.
23727 23950
23728 * xselect.c (lisp_data_to_selection_data): If the requested type 23951 * xselect.c (lisp_data_to_selection_data): If the requested type
23729 is STRING, call string_make_unibyte to encode the selected text 23952 is STRING, call string_make_unibyte to encode the selected text
23730 as a string. 23953 as a string.
23731 23954
23732 * window.c (Fset_window_hscroll): Doc fix. 23955 * window.c (Fset_window_hscroll): Doc fix.
23733 23956
diff --git a/src/Makefile.in b/src/Makefile.in
index f0733a7c125..9506d49e16b 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -691,8 +691,12 @@ otherobj= $(termcapobj) lastfile.o $(mallocobj) $(allocaobj) $(widgetobj) $(LIBO
691#define MOUSE_SUPPORT ${lispsource}mouse.elc \ 691#define MOUSE_SUPPORT ${lispsource}mouse.elc \
692 ${lispsource}select.elc ${lispsource}scroll-bar.elc 692 ${lispsource}select.elc ${lispsource}scroll-bar.elc
693#else 693#else
694#ifdef HAVE_GPM
695#define MOUSE_SUPPORT ${lispsource}mouse.elc
696#else
694#define MOUSE_SUPPORT 697#define MOUSE_SUPPORT
695#endif 698#endif
699#endif
696 700
697#ifdef VMS 701#ifdef VMS
698#define VMS_SUPPORT ${lispsource}vmsproc.elc ${lispsource}vms-patch.elc 702#define VMS_SUPPORT ${lispsource}vmsproc.elc ${lispsource}vms-patch.elc
diff --git a/src/alloc.c b/src/alloc.c
index 6c757567354..5e9979d1f6e 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -1756,6 +1756,8 @@ init_strings ()
1756 string_blocks = NULL; 1756 string_blocks = NULL;
1757 n_string_blocks = 0; 1757 n_string_blocks = 0;
1758 string_free_list = NULL; 1758 string_free_list = NULL;
1759 empty_unibyte_string = make_pure_string ("", 0, 0, 0);
1760 empty_multibyte_string = make_pure_string ("", 0, 0, 1);
1759} 1761}
1760 1762
1761 1763
@@ -2479,6 +2481,9 @@ make_uninit_string (length)
2479 int length; 2481 int length;
2480{ 2482{
2481 Lisp_Object val; 2483 Lisp_Object val;
2484
2485 if (!length)
2486 return empty_unibyte_string;
2482 val = make_uninit_multibyte_string (length, length); 2487 val = make_uninit_multibyte_string (length, length);
2483 STRING_SET_UNIBYTE (val); 2488 STRING_SET_UNIBYTE (val);
2484 return val; 2489 return val;
@@ -2497,6 +2502,8 @@ make_uninit_multibyte_string (nchars, nbytes)
2497 2502
2498 if (nchars < 0) 2503 if (nchars < 0)
2499 abort (); 2504 abort ();
2505 if (!nbytes)
2506 return empty_multibyte_string;
2500 2507
2501 s = allocate_string (); 2508 s = allocate_string ();
2502 allocate_string_data (s, nchars, nbytes); 2509 allocate_string_data (s, nchars, nbytes);
diff --git a/src/buffer.c b/src/buffer.c
index 895bb2b32e8..331df150f62 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -6002,7 +6002,7 @@ same format as a regular save would use. */);
6002The default is t, which means that text is invisible 6002The default is t, which means that text is invisible
6003if it has a non-nil `invisible' property. 6003if it has a non-nil `invisible' property.
6004If the value is a list, a text character is invisible if its `invisible' 6004If the value is a list, a text character is invisible if its `invisible'
6005property is an element in that list. 6005property is an element in that list (or is a list with members in common).
6006If an element is a cons cell of the form (PROP . ELLIPSIS), 6006If an element is a cons cell of the form (PROP . ELLIPSIS),
6007then characters with property value PROP are invisible, 6007then characters with property value PROP are invisible,
6008and they have an ellipsis as well if ELLIPSIS is non-nil. */); 6008and they have an ellipsis as well if ELLIPSIS is non-nil. */);
diff --git a/src/callint.c b/src/callint.c
index 39b2046e8fc..a989f9afe6d 100644
--- a/src/callint.c
+++ b/src/callint.c
@@ -585,7 +585,7 @@ invoke it. If KEYS is omitted or nil, the return value of
585 case 'G': /* Possibly nonexistent file name, 585 case 'G': /* Possibly nonexistent file name,
586 default to directory alone. */ 586 default to directory alone. */
587 args[i] = Fread_file_name (callint_message, 587 args[i] = Fread_file_name (callint_message,
588 Qnil, Qnil, Qnil, build_string (""), Qnil); 588 Qnil, Qnil, Qnil, empty_unibyte_string, Qnil);
589 break; 589 break;
590 590
591 case 'i': /* Ignore an argument -- Does not do I/O */ 591 case 'i': /* Ignore an argument -- Does not do I/O */
diff --git a/src/editfns.c b/src/editfns.c
index 6cdd63f2fd1..22aa47688a5 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -1972,6 +1972,7 @@ the data it can't find. */)
1972 int offset = tm_diff (t, &gmt); 1972 int offset = tm_diff (t, &gmt);
1973 char *s = 0; 1973 char *s = 0;
1974 char buf[6]; 1974 char buf[6];
1975
1975#ifdef HAVE_TM_ZONE 1976#ifdef HAVE_TM_ZONE
1976 if (t->tm_zone) 1977 if (t->tm_zone)
1977 s = (char *)t->tm_zone; 1978 s = (char *)t->tm_zone;
@@ -1982,19 +1983,6 @@ the data it can't find. */)
1982#endif 1983#endif
1983#endif /* not HAVE_TM_ZONE */ 1984#endif /* not HAVE_TM_ZONE */
1984 1985
1985#if defined HAVE_TM_ZONE || defined HAVE_TZNAME
1986 if (s)
1987 {
1988 /* On Japanese w32, we can get a Japanese string as time
1989 zone name. Don't accept that. */
1990 char *p;
1991 for (p = s; *p && (isalnum ((unsigned char)*p) || *p == ' '); ++p)
1992 ;
1993 if (p == s || *p)
1994 s = NULL;
1995 }
1996#endif
1997
1998 if (!s) 1986 if (!s)
1999 { 1987 {
2000 /* No local time zone name is available; use "+-NNNN" instead. */ 1988 /* No local time zone name is available; use "+-NNNN" instead. */
@@ -2002,6 +1990,7 @@ the data it can't find. */)
2002 sprintf (buf, "%c%02d%02d", (offset < 0 ? '-' : '+'), am/60, am%60); 1990 sprintf (buf, "%c%02d%02d", (offset < 0 ? '-' : '+'), am/60, am%60);
2003 s = buf; 1991 s = buf;
2004 } 1992 }
1993
2005 return Fcons (make_number (offset), Fcons (build_string (s), Qnil)); 1994 return Fcons (make_number (offset), Fcons (build_string (s), Qnil));
2006 } 1995 }
2007 else 1996 else
@@ -3174,7 +3163,7 @@ DEFUN ("delete-and-extract-region", Fdelete_and_extract_region,
3174{ 3163{
3175 validate_region (&start, &end); 3164 validate_region (&start, &end);
3176 if (XINT (start) == XINT (end)) 3165 if (XINT (start) == XINT (end))
3177 return build_string (""); 3166 return empty_unibyte_string;
3178 return del_range_1 (XINT (start), XINT (end), 1, 1); 3167 return del_range_1 (XINT (start), XINT (end), 1, 1);
3179} 3168}
3180 3169
diff --git a/src/emacs.c b/src/emacs.c
index 8336981e66c..961a1799955 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -133,8 +133,8 @@ Lisp_Object Vinstallation_directory;
133/* Hook run by `kill-emacs' before it does really anything. */ 133/* Hook run by `kill-emacs' before it does really anything. */
134Lisp_Object Vkill_emacs_hook; 134Lisp_Object Vkill_emacs_hook;
135 135
136/* An empty lisp string. To avoid having to build any other. */ 136/* Empty lisp strings. To avoid having to build any others. */
137Lisp_Object empty_string; 137Lisp_Object empty_unibyte_string, empty_multibyte_string;
138 138
139/* Search path separator. */ 139/* Search path separator. */
140Lisp_Object Vpath_separator; 140Lisp_Object Vpath_separator;
@@ -859,17 +859,23 @@ main (argc, argv
859 So ignore --version otherwise. */ 859 So ignore --version otherwise. */
860 && initialized) 860 && initialized)
861 { 861 {
862 Lisp_Object tem; 862 Lisp_Object tem, tem2;
863 tem = Fsymbol_value (intern ("emacs-version")); 863 tem = Fsymbol_value (intern ("emacs-version"));
864 tem2 = Fsymbol_value (intern ("emacs-copyright"));
864 if (!STRINGP (tem)) 865 if (!STRINGP (tem))
865 { 866 {
866 fprintf (stderr, "Invalid value of `emacs-version'\n"); 867 fprintf (stderr, "Invalid value of `emacs-version'\n");
867 exit (1); 868 exit (1);
868 } 869 }
870 if (!STRINGP (tem2))
871 {
872 fprintf (stderr, "Invalid value of `emacs-copyright'\n");
873 exit (1);
874 }
869 else 875 else
870 { 876 {
871 printf ("GNU Emacs %s\n", SDATA (tem)); 877 printf ("GNU Emacs %s\n", SDATA (tem));
872 printf ("Copyright (C) 2007 Free Software Foundation, Inc.\n"); 878 printf ("%s\n", SDATA(tem2));
873 printf ("GNU Emacs comes with ABSOLUTELY NO WARRANTY.\n"); 879 printf ("GNU Emacs comes with ABSOLUTELY NO WARRANTY.\n");
874 printf ("You may redistribute copies of Emacs\n"); 880 printf ("You may redistribute copies of Emacs\n");
875 printf ("under the terms of the GNU General Public License.\n"); 881 printf ("under the terms of the GNU General Public License.\n");
@@ -2494,9 +2500,6 @@ see `kill-emacs-query-functions' instead.
2494The hook is not run in batch mode, i.e., if `noninteractive' is non-nil. */); 2500The hook is not run in batch mode, i.e., if `noninteractive' is non-nil. */);
2495 Vkill_emacs_hook = Qnil; 2501 Vkill_emacs_hook = Qnil;
2496 2502
2497 empty_string = build_string ("");
2498 staticpro (&empty_string);
2499
2500 DEFVAR_INT ("emacs-priority", &emacs_priority, 2503 DEFVAR_INT ("emacs-priority", &emacs_priority,
2501 doc: /* Priority for Emacs to run at. 2504 doc: /* Priority for Emacs to run at.
2502This value is effective only if set before Emacs is dumped, 2505This value is effective only if set before Emacs is dumped,
diff --git a/src/fileio.c b/src/fileio.c
index d24d26561f2..90ee5064c07 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -6346,7 +6346,7 @@ and `read-file-name-function'. */)
6346 if (! replace_in_history) 6346 if (! replace_in_history)
6347 add_to_history = 1; 6347 add_to_history = 1;
6348 6348
6349 val = empty_string; 6349 val = empty_unibyte_string;
6350 } 6350 }
6351 6351
6352 unbind_to (count, Qnil); 6352 unbind_to (count, Qnil);
diff --git a/src/fns.c b/src/fns.c
index 9460a7c87c2..626aaa62821 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -2497,7 +2497,7 @@ SEQUENCE may be a list, a vector, a bool-vector, or a string. */)
2497 wrong_type_argument (Qlistp, sequence); 2497 wrong_type_argument (Qlistp, sequence);
2498 leni = XINT (len); 2498 leni = XINT (len);
2499 nargs = leni + leni - 1; 2499 nargs = leni + leni - 1;
2500 if (nargs < 0) return build_string (""); 2500 if (nargs < 0) return empty_unibyte_string;
2501 2501
2502 SAFE_ALLOCA_LISP (args, nargs); 2502 SAFE_ALLOCA_LISP (args, nargs);
2503 2503
diff --git a/src/frame.c b/src/frame.c
index 4b26e087c85..8d73df140b7 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -1460,7 +1460,7 @@ and returns whatever that function returns. */)
1460 f = SELECTED_FRAME (); 1460 f = SELECTED_FRAME ();
1461 x = y = Qnil; 1461 x = y = Qnil;
1462 1462
1463#ifdef HAVE_MOUSE 1463#if defined (HAVE_MOUSE) || defined (HAVE_GPM)
1464 /* It's okay for the hook to refrain from storing anything. */ 1464 /* It's okay for the hook to refrain from storing anything. */
1465 if (mouse_position_hook) 1465 if (mouse_position_hook)
1466 (*mouse_position_hook) (&f, -1, 1466 (*mouse_position_hook) (&f, -1,
@@ -1504,7 +1504,7 @@ and nil for X and Y. */)
1504 f = SELECTED_FRAME (); 1504 f = SELECTED_FRAME ();
1505 x = y = Qnil; 1505 x = y = Qnil;
1506 1506
1507#ifdef HAVE_MOUSE 1507#if defined (HAVE_MOUSE) || defined (HAVE_GPM)
1508 /* It's okay for the hook to refrain from storing anything. */ 1508 /* It's okay for the hook to refrain from storing anything. */
1509 if (mouse_position_hook) 1509 if (mouse_position_hook)
1510 (*mouse_position_hook) (&f, -1, 1510 (*mouse_position_hook) (&f, -1,
@@ -1591,6 +1591,13 @@ before calling this function on it, like this.
1591 Fselect_frame (frame); 1591 Fselect_frame (frame);
1592 mouse_moveto (XINT (x), XINT (y)); 1592 mouse_moveto (XINT (x), XINT (y));
1593 } 1593 }
1594#else
1595#ifdef HAVE_GPM
1596 {
1597 Fselect_frame (frame);
1598 term_mouse_moveto (XINT (x), XINT (y));
1599 }
1600#endif
1594#endif 1601#endif
1595#endif 1602#endif
1596 1603
diff --git a/src/image.c b/src/image.c
index 11f4425136c..9cfcd5a63f8 100644
--- a/src/image.c
+++ b/src/image.c
@@ -1609,6 +1609,7 @@ x_alloc_image_color (f, img, color_name, dflt)
1609 Image Cache 1609 Image Cache
1610 ***********************************************************************/ 1610 ***********************************************************************/
1611 1611
1612static struct image *search_image_cache P_ ((struct frame *, Lisp_Object, unsigned));
1612static void cache_image P_ ((struct frame *f, struct image *img)); 1613static void cache_image P_ ((struct frame *f, struct image *img));
1613static void postprocess_image P_ ((struct frame *, struct image *)); 1614static void postprocess_image P_ ((struct frame *, struct image *));
1614 1615
@@ -1631,24 +1632,47 @@ make_image_cache ()
1631} 1632}
1632 1633
1633 1634
1634/* Search frame F for an images with spec SPEC, and free it. */ 1635/* Find an image matching SPEC in the cache, and return it. If no
1635 1636 image is found, return NULL. */
1636static void 1637static struct image *
1637uncache_image (f, spec) 1638search_image_cache (f, spec, hash)
1638 struct frame *f; 1639 struct frame *f;
1639 Lisp_Object spec; 1640 Lisp_Object spec;
1641 unsigned hash;
1640{ 1642{
1641 struct image_cache *c = FRAME_X_IMAGE_CACHE (f);
1642 struct image *img; 1643 struct image *img;
1643 unsigned hash = sxhash (spec, 0); 1644 struct image_cache *c = FRAME_X_IMAGE_CACHE (f);
1645 Lisp_Object specified_bg = image_spec_value (spec, QCbackground, NULL);
1644 int i = hash % IMAGE_CACHE_BUCKETS_SIZE; 1646 int i = hash % IMAGE_CACHE_BUCKETS_SIZE;
1645 1647
1648 /* If the image spec does not specify a background color, the cached
1649 image must have the same background color as the current frame.
1650 The following code be improved. For example, jpeg does not
1651 support transparency, but currently a jpeg image spec won't match
1652 a cached spec created with a different frame background. The
1653 extra memory usage is probably negligible in practice. */
1654 if (!c) return NULL;
1655
1646 for (img = c->buckets[i]; img; img = img->next) 1656 for (img = c->buckets[i]; img; img = img->next)
1647 if (img->hash == hash && !NILP (Fequal (img->spec, spec))) 1657 if (img->hash == hash
1648 { 1658 && !NILP (Fequal (img->spec, spec))
1649 free_image (f, img); 1659 && (STRINGP (specified_bg)
1650 break; 1660 || img->background == FRAME_BACKGROUND_PIXEL (f)))
1651 } 1661 break;
1662 return img;
1663}
1664
1665
1666/* Search frame F for an image with spec SPEC, and free it. */
1667
1668static void
1669uncache_image (f, spec)
1670 struct frame *f;
1671 Lisp_Object spec;
1672{
1673 struct image *img = search_image_cache (f, spec, sxhash (spec, 0));
1674 if (img)
1675 free_image (f, img);
1652} 1676}
1653 1677
1654 1678
@@ -1875,9 +1899,7 @@ lookup_image (f, spec)
1875 struct frame *f; 1899 struct frame *f;
1876 Lisp_Object spec; 1900 Lisp_Object spec;
1877{ 1901{
1878 struct image_cache *c = FRAME_X_IMAGE_CACHE (f);
1879 struct image *img; 1902 struct image *img;
1880 int i;
1881 unsigned hash; 1903 unsigned hash;
1882 struct gcpro gcpro1; 1904 struct gcpro gcpro1;
1883 EMACS_TIME now; 1905 EMACS_TIME now;
@@ -1891,12 +1913,7 @@ lookup_image (f, spec)
1891 1913
1892 /* Look up SPEC in the hash table of the image cache. */ 1914 /* Look up SPEC in the hash table of the image cache. */
1893 hash = sxhash (spec, 0); 1915 hash = sxhash (spec, 0);
1894 i = hash % IMAGE_CACHE_BUCKETS_SIZE; 1916 img = search_image_cache (f, spec, hash);
1895
1896 for (img = c->buckets[i]; img; img = img->next)
1897 if (img->hash == hash && !NILP (Fequal (img->spec, spec)))
1898 break;
1899
1900 if (img && img->load_failed_p) 1917 if (img && img->load_failed_p)
1901 { 1918 {
1902 free_image (f, img); 1919 free_image (f, img);
@@ -3961,9 +3978,6 @@ xpm_load (f, img)
3961 attrs.valuemask |= XpmCloseness; 3978 attrs.valuemask |= XpmCloseness;
3962#endif /* not XpmAllocCloseColors */ 3979#endif /* not XpmAllocCloseColors */
3963#endif /* ALLOC_XPM_COLORS */ 3980#endif /* ALLOC_XPM_COLORS */
3964#ifdef ALLOC_XPM_COLORS
3965 xpm_init_color_cache (f, &attrs);
3966#endif
3967 3981
3968 /* If image specification contains symbolic color definitions, add 3982 /* If image specification contains symbolic color definitions, add
3969 these to `attrs'. */ 3983 these to `attrs'. */
diff --git a/src/keyboard.c b/src/keyboard.c
index bcc4a5fd655..6df2d1b0b25 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -1249,7 +1249,7 @@ cmd_error_internal (data, context)
1249 /* Use user's specified output function if any. */ 1249 /* Use user's specified output function if any. */
1250 if (!NILP (Vcommand_error_function)) 1250 if (!NILP (Vcommand_error_function))
1251 call3 (Vcommand_error_function, data, 1251 call3 (Vcommand_error_function, data,
1252 build_string (context ? context : ""), 1252 context ? build_string (context) : empty_unibyte_string,
1253 Vsignaling_function); 1253 Vsignaling_function);
1254 /* If the window system or terminal frame hasn't been initialized 1254 /* If the window system or terminal frame hasn't been initialized
1255 yet, or we're not interactive, write the message to stderr and exit. */ 1255 yet, or we're not interactive, write the message to stderr and exit. */
@@ -3918,6 +3918,9 @@ discard_mouse_events ()
3918#ifdef WINDOWSNT 3918#ifdef WINDOWSNT
3919 || sp->kind == W32_SCROLL_BAR_CLICK_EVENT 3919 || sp->kind == W32_SCROLL_BAR_CLICK_EVENT
3920#endif 3920#endif
3921#ifdef HAVE_GPM
3922 || sp->kind == GPM_CLICK_EVENT
3923#endif
3921 || sp->kind == SCROLL_BAR_CLICK_EVENT) 3924 || sp->kind == SCROLL_BAR_CLICK_EVENT)
3922 { 3925 {
3923 sp->kind = NO_EVENT; 3926 sp->kind = NO_EVENT;
diff --git a/src/keymap.c b/src/keymap.c
index 95534f9efa6..3649177d045 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -2218,7 +2218,7 @@ spaces are put between sequence elements, etc. */)
2218 len += 2; 2218 len += 2;
2219 } 2219 }
2220 else if (len == 0) 2220 else if (len == 0)
2221 return empty_string; 2221 return empty_unibyte_string;
2222 return Fconcat (len - 1, args); 2222 return Fconcat (len - 1, args);
2223 } 2223 }
2224 2224
diff --git a/src/lisp.h b/src/lisp.h
index 407c59e0c63..df62a261fe4 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -704,7 +704,10 @@ extern int string_bytes P_ ((struct Lisp_String *));
704#endif /* not GC_CHECK_STRING_BYTES */ 704#endif /* not GC_CHECK_STRING_BYTES */
705 705
706/* Mark STR as a unibyte string. */ 706/* Mark STR as a unibyte string. */
707#define STRING_SET_UNIBYTE(STR) (XSTRING (STR)->size_byte = -1) 707#define STRING_SET_UNIBYTE(STR) \
708 do { if (EQ (STR, empty_multibyte_string)) \
709 (STR) = empty_unibyte_string; \
710 else XSTRING (STR)->size_byte = -1; } while (0)
708 711
709/* Get text properties. */ 712/* Get text properties. */
710#define STRING_INTERVALS(STR) (XSTRING (STR)->intervals + 0) 713#define STRING_INTERVALS(STR) (XSTRING (STR)->intervals + 0)
@@ -3098,7 +3101,8 @@ extern void syms_of_frame P_ ((void));
3098/* defined in emacs.c */ 3101/* defined in emacs.c */
3099extern Lisp_Object decode_env_path P_ ((char *, char *)); 3102extern Lisp_Object decode_env_path P_ ((char *, char *));
3100extern Lisp_Object Vinvocation_name, Vinvocation_directory; 3103extern Lisp_Object Vinvocation_name, Vinvocation_directory;
3101extern Lisp_Object Vinstallation_directory, empty_string; 3104extern Lisp_Object Vinstallation_directory;
3105extern Lisp_Object empty_unibyte_string, empty_multibyte_string;
3102EXFUN (Fkill_emacs, 1); 3106EXFUN (Fkill_emacs, 1);
3103#if HAVE_SETLOCALE 3107#if HAVE_SETLOCALE
3104void fixup_locale P_ ((void)); 3108void fixup_locale P_ ((void));
diff --git a/src/lread.c b/src/lread.c
index ebc42e361ef..0a1260eda4e 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -1397,7 +1397,7 @@ openp (path, str, suffixes, storeptr, predicate)
1397 fn = (char *) alloca (fn_size = 100 + want_size); 1397 fn = (char *) alloca (fn_size = 100 + want_size);
1398 1398
1399 /* Loop over suffixes. */ 1399 /* Loop over suffixes. */
1400 for (tail = NILP (suffixes) ? Fcons (build_string (""), Qnil) : suffixes; 1400 for (tail = NILP (suffixes) ? Fcons (empty_unibyte_string, Qnil) : suffixes;
1401 CONSP (tail); tail = XCDR (tail)) 1401 CONSP (tail); tail = XCDR (tail))
1402 { 1402 {
1403 int lsuffix = SBYTES (XCAR (tail)); 1403 int lsuffix = SBYTES (XCAR (tail));
@@ -4201,8 +4201,7 @@ and, if so, which suffixes they should try to append to the file name
4201in order to do so. However, if you want to customize which suffixes 4201in order to do so. However, if you want to customize which suffixes
4202the loading functions recognize as compression suffixes, you should 4202the loading functions recognize as compression suffixes, you should
4203customize `jka-compr-load-suffixes' rather than the present variable. */); 4203customize `jka-compr-load-suffixes' rather than the present variable. */);
4204 /* We don't use empty_string because it's not initialized yet. */ 4204 Vload_file_rep_suffixes = Fcons (empty_unibyte_string, Qnil);
4205 Vload_file_rep_suffixes = Fcons (build_string (""), Qnil);
4206 4205
4207 DEFVAR_BOOL ("load-in-progress", &load_in_progress, 4206 DEFVAR_BOOL ("load-in-progress", &load_in_progress,
4208 doc: /* Non-nil iff inside of `load'. */); 4207 doc: /* Non-nil iff inside of `load'. */);
diff --git a/src/mac.c b/src/mac.c
index 8e3f49d2bfe..d783243399d 100644
--- a/src/mac.c
+++ b/src/mac.c
@@ -1826,8 +1826,6 @@ xrm_get_preference_database (application)
1826 1826
1827 GCPRO3 (database, quarks, value); 1827 GCPRO3 (database, quarks, value);
1828 1828
1829 BLOCK_INPUT;
1830
1831 app_id = kCFPreferencesCurrentApplication; 1829 app_id = kCFPreferencesCurrentApplication;
1832 if (application) 1830 if (application)
1833 { 1831 {
@@ -1879,8 +1877,6 @@ xrm_get_preference_database (application)
1879 CFRelease (key_set); 1877 CFRelease (key_set);
1880 CFRelease (app_id); 1878 CFRelease (app_id);
1881 1879
1882 UNBLOCK_INPUT;
1883
1884 UNGCPRO; 1880 UNGCPRO;
1885 1881
1886 return database; 1882 return database;
diff --git a/src/macfns.c b/src/macfns.c
index 849b24ea69b..b3ab709116a 100644
--- a/src/macfns.c
+++ b/src/macfns.c
@@ -218,9 +218,6 @@ void x_explicitly_set_name P_ ((struct frame *, Lisp_Object, Lisp_Object));
218void x_set_menu_bar_lines P_ ((struct frame *, Lisp_Object, Lisp_Object)); 218void x_set_menu_bar_lines P_ ((struct frame *, Lisp_Object, Lisp_Object));
219void x_set_title P_ ((struct frame *, Lisp_Object, Lisp_Object)); 219void x_set_title P_ ((struct frame *, Lisp_Object, Lisp_Object));
220void x_set_tool_bar_lines P_ ((struct frame *, Lisp_Object, Lisp_Object)); 220void x_set_tool_bar_lines P_ ((struct frame *, Lisp_Object, Lisp_Object));
221
222extern void mac_get_window_bounds P_ ((struct frame *, Rect *, Rect *));
223
224 221
225 222
226/* Store the screen positions of frame F into XPTR and YPTR. 223/* Store the screen positions of frame F into XPTR and YPTR.
@@ -2263,11 +2260,11 @@ mac_window (f)
2263 FRAME_MAC_WINDOW (f) = NULL; 2260 FRAME_MAC_WINDOW (f) = NULL;
2264 } 2261 }
2265 } 2262 }
2266#else 2263#else /* !TARGET_API_MAC_CARBON */
2267 FRAME_MAC_WINDOW (f) 2264 FRAME_MAC_WINDOW (f)
2268 = NewCWindow (NULL, &r, "\p", false, zoomDocProc, 2265 = NewCWindow (NULL, &r, "\p", false, zoomDocProc,
2269 (WindowPtr) -1, 1, (long) f->output_data.mac); 2266 (WindowRef) -1, 1, (long) f->output_data.mac);
2270#endif 2267#endif /* !TARGET_API_MAC_CARBON */
2271 /* so that update events can find this mac_output struct */ 2268 /* so that update events can find this mac_output struct */
2272 f->output_data.mac->mFP = f; /* point back to emacs frame */ 2269 f->output_data.mac->mFP = f; /* point back to emacs frame */
2273 2270
@@ -3120,7 +3117,7 @@ If omitted or nil, that stands for the selected frame's display. */)
3120 UNBLOCK_INPUT; 3117 UNBLOCK_INPUT;
3121 } 3118 }
3122#if MAC_OS_X_VERSION_MIN_REQUIRED == 1020 3119#if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
3123 else 3120 else /* CGDisplayScreenSize == NULL */
3124#endif 3121#endif
3125#endif /* MAC_OS_X_VERSION_MAX_ALLOWED >= 1030 */ 3122#endif /* MAC_OS_X_VERSION_MAX_ALLOWED >= 1030 */
3126#if MAC_OS_X_VERSION_MAX_ALLOWED < 1030 || MAC_OS_X_VERSION_MIN_REQUIRED == 1020 3123#if MAC_OS_X_VERSION_MAX_ALLOWED < 1030 || MAC_OS_X_VERSION_MIN_REQUIRED == 1020
@@ -3157,7 +3154,7 @@ If omitted or nil, that stands for the selected frame's display. */)
3157 UNBLOCK_INPUT; 3154 UNBLOCK_INPUT;
3158 } 3155 }
3159#if MAC_OS_X_VERSION_MIN_REQUIRED == 1020 3156#if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
3160 else 3157 else /* CGDisplayScreenSize == NULL */
3161#endif 3158#endif
3162#endif /* MAC_OS_X_VERSION_MAX_ALLOWED >= 1030 */ 3159#endif /* MAC_OS_X_VERSION_MAX_ALLOWED >= 1030 */
3163#if MAC_OS_X_VERSION_MAX_ALLOWED < 1030 || MAC_OS_X_VERSION_MIN_REQUIRED == 1020 3160#if MAC_OS_X_VERSION_MAX_ALLOWED < 1030 || MAC_OS_X_VERSION_MIN_REQUIRED == 1020
@@ -4076,8 +4073,12 @@ compute_tip_xy (f, parms, dx, dy, width, height, root_x, root_y)
4076 Point mouse_pos; 4073 Point mouse_pos;
4077 4074
4078 BLOCK_INPUT; 4075 BLOCK_INPUT;
4076#if TARGET_API_MAC_CARBON
4077 GetGlobalMouse (&mouse_pos);
4078#else
4079 GetMouse (&mouse_pos); 4079 GetMouse (&mouse_pos);
4080 LocalToGlobal (&mouse_pos); 4080 LocalToGlobal (&mouse_pos);
4081#endif
4081 *root_x = mouse_pos.h; 4082 *root_x = mouse_pos.h;
4082 *root_y = mouse_pos.v; 4083 *root_y = mouse_pos.v;
4083 UNBLOCK_INPUT; 4084 UNBLOCK_INPUT;
diff --git a/src/macgui.h b/src/macgui.h
index 3c37b86e22a..34a3f905487 100644
--- a/src/macgui.h
+++ b/src/macgui.h
@@ -71,7 +71,7 @@ typedef unsigned long Time;
71#undef Z 71#undef Z
72#define Z (current_buffer->text->z) 72#define Z (current_buffer->text->z)
73#else /* not HAVE_CARBON */ 73#else /* not HAVE_CARBON */
74#include <QuickDraw.h> /* for WindowPtr */ 74#include <QuickDraw.h> /* for WindowRef */
75#include <QDOffscreen.h> /* for GWorldPtr */ 75#include <QDOffscreen.h> /* for GWorldPtr */
76#include <Appearance.h> /* for ThemeCursor */ 76#include <Appearance.h> /* for ThemeCursor */
77#include <Windows.h> 77#include <Windows.h>
@@ -119,7 +119,7 @@ typedef unsigned long Time;
119#endif 119#endif
120#endif 120#endif
121 121
122typedef WindowPtr Window; 122typedef WindowRef Window;
123typedef GWorldPtr Pixmap; 123typedef GWorldPtr Pixmap;
124 124
125#define Cursor ThemeCursor 125#define Cursor ThemeCursor
diff --git a/src/macmenu.c b/src/macmenu.c
index a5196a156eb..5e6ad6f7d10 100644
--- a/src/macmenu.c
+++ b/src/macmenu.c
@@ -200,7 +200,7 @@ static void list_of_items P_ ((Lisp_Object));
200 200
201static void find_and_call_menu_selection P_ ((FRAME_PTR, int, Lisp_Object, 201static void find_and_call_menu_selection P_ ((FRAME_PTR, int, Lisp_Object,
202 void *)); 202 void *));
203static int fill_menu P_ ((MenuHandle, widget_value *, enum mac_menu_kind, int)); 203static int fill_menu P_ ((MenuRef, widget_value *, enum mac_menu_kind, int));
204static void fill_menubar P_ ((widget_value *, int)); 204static void fill_menubar P_ ((widget_value *, int));
205static void dispose_menus P_ ((enum mac_menu_kind, int)); 205static void dispose_menus P_ ((enum mac_menu_kind, int));
206 206
@@ -1162,7 +1162,7 @@ x_activate_menubar (f)
1162#endif 1162#endif
1163 if (menu_id) 1163 if (menu_id)
1164 { 1164 {
1165 MenuHandle menu = GetMenuHandle (menu_id); 1165 MenuRef menu = GetMenuRef (menu_id);
1166 1166
1167 if (menu) 1167 if (menu)
1168 { 1168 {
@@ -1595,15 +1595,13 @@ menu_target_item_handler (next_handler, event, data)
1595 EventRef event; 1595 EventRef event;
1596 void *data; 1596 void *data;
1597{ 1597{
1598 OSStatus err, result; 1598 OSStatus err;
1599 MenuRef menu; 1599 MenuRef menu;
1600 MenuItemIndex menu_item; 1600 MenuItemIndex menu_item;
1601 Lisp_Object help; 1601 Lisp_Object help;
1602 GrafPtr port; 1602 GrafPtr port;
1603 int specpdl_count = SPECPDL_INDEX (); 1603 int specpdl_count = SPECPDL_INDEX ();
1604 1604
1605 result = CallNextEventHandler (next_handler, event);
1606
1607 err = GetEventParameter (event, kEventParamDirectObject, typeMenuRef, 1605 err = GetEventParameter (event, kEventParamDirectObject, typeMenuRef,
1608 NULL, sizeof (MenuRef), NULL, &menu); 1606 NULL, sizeof (MenuRef), NULL, &menu);
1609 if (err == noErr) 1607 if (err == noErr)
@@ -1626,30 +1624,21 @@ menu_target_item_handler (next_handler, event, data)
1626 SetPort (port); 1624 SetPort (port);
1627 unbind_to (specpdl_count, Qnil); 1625 unbind_to (specpdl_count, Qnil);
1628 1626
1629 return err == noErr ? noErr : result; 1627 return err == noErr ? noErr : eventNotHandledErr;
1630} 1628}
1631#endif
1632 1629
1633OSStatus 1630OSStatus
1634install_menu_target_item_handler (window) 1631install_menu_target_item_handler ()
1635 WindowPtr window;
1636{ 1632{
1637 OSStatus err = noErr;
1638#if TARGET_API_MAC_CARBON
1639 static const EventTypeSpec specs[] = 1633 static const EventTypeSpec specs[] =
1640 {{kEventClassMenu, kEventMenuTargetItem}}; 1634 {{kEventClassMenu, kEventMenuTargetItem}};
1641 static EventHandlerUPP menu_target_item_handlerUPP = NULL;
1642
1643 if (menu_target_item_handlerUPP == NULL)
1644 menu_target_item_handlerUPP =
1645 NewEventHandlerUPP (menu_target_item_handler);
1646 1635
1647 err = InstallWindowEventHandler (window, menu_target_item_handlerUPP, 1636 return InstallApplicationEventHandler (NewEventHandlerUPP
1648 GetEventTypeCount (specs), specs, 1637 (menu_target_item_handler),
1649 NULL, NULL); 1638 GetEventTypeCount (specs),
1650#endif 1639 specs, NULL, NULL);
1651 return err;
1652} 1640}
1641#endif /* TARGET_API_MAC_CARBON */
1653 1642
1654/* Event handler function that pops down a menu on C-g. We can only pop 1643/* Event handler function that pops down a menu on C-g. We can only pop
1655 down menus if CancelMenuTracking is present (OSX 10.3 or later). */ 1644 down menus if CancelMenuTracking is present (OSX 10.3 or later). */
@@ -1687,15 +1676,15 @@ menu_quit_handler (nextHandler, theEvent, userData)
1687} 1676}
1688#endif /* MAC_OS_X_VERSION_MAX_ALLOWED >= 1030 */ 1677#endif /* MAC_OS_X_VERSION_MAX_ALLOWED >= 1030 */
1689 1678
1690/* Add event handler to all menus that belong to KIND so we can detect C-g. 1679/* Add event handler to all menus that belong to KIND so we can detect
1691 MENU_HANDLE is the root menu of the tracking session to dismiss 1680 C-g. ROOT_MENU is the root menu of the tracking session to dismiss
1692 when C-g is detected. NULL means the menu bar. 1681 when C-g is detected. NULL means the menu bar. If
1693 If CancelMenuTracking isn't available, do nothing. */ 1682 CancelMenuTracking isn't available, do nothing. */
1694 1683
1695static void 1684static void
1696install_menu_quit_handler (kind, menu_handle) 1685install_menu_quit_handler (kind, root_menu)
1697 enum mac_menu_kind kind; 1686 enum mac_menu_kind kind;
1698 MenuHandle menu_handle; 1687 MenuRef root_menu;
1699{ 1688{
1700#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1030 1689#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
1701 static const EventTypeSpec typesList[] = 1690 static const EventTypeSpec typesList[] =
@@ -1708,13 +1697,13 @@ install_menu_quit_handler (kind, menu_handle)
1708#endif 1697#endif
1709 for (id = min_menu_id[kind]; id < min_menu_id[kind + 1]; id++) 1698 for (id = min_menu_id[kind]; id < min_menu_id[kind + 1]; id++)
1710 { 1699 {
1711 MenuHandle menu = GetMenuHandle (id); 1700 MenuRef menu = GetMenuRef (id);
1712 1701
1713 if (menu == NULL) 1702 if (menu == NULL)
1714 break; 1703 break;
1715 InstallMenuEventHandler (menu, menu_quit_handler, 1704 InstallMenuEventHandler (menu, menu_quit_handler,
1716 GetEventTypeCount (typesList), 1705 GetEventTypeCount (typesList),
1717 typesList, menu_handle, NULL); 1706 typesList, root_menu, NULL);
1718 } 1707 }
1719#endif /* MAC_OS_X_VERSION_MAX_ALLOWED >= 1030 */ 1708#endif /* MAC_OS_X_VERSION_MAX_ALLOWED >= 1030 */
1720} 1709}
@@ -1738,10 +1727,13 @@ set_frame_menubar (f, first_time, deep_p)
1738 1727
1739 XSETFRAME (Vmenu_updating_frame, f); 1728 XSETFRAME (Vmenu_updating_frame, f);
1740 1729
1730 /* This seems to be unnecessary for Carbon. */
1731#if 0
1741 if (! menubar_widget) 1732 if (! menubar_widget)
1742 deep_p = 1; 1733 deep_p = 1;
1743 else if (pending_menu_activation && !deep_p) 1734 else if (pending_menu_activation && !deep_p)
1744 deep_p = 1; 1735 deep_p = 1;
1736#endif
1745 1737
1746 if (deep_p) 1738 if (deep_p)
1747 { 1739 {
@@ -1978,7 +1970,7 @@ pop_down_menu (arg)
1978{ 1970{
1979 struct Lisp_Save_Value *p = XSAVE_VALUE (arg); 1971 struct Lisp_Save_Value *p = XSAVE_VALUE (arg);
1980 FRAME_PTR f = p->pointer; 1972 FRAME_PTR f = p->pointer;
1981 MenuHandle menu = GetMenuHandle (min_menu_id[MAC_MENU_POPUP]); 1973 MenuRef menu = GetMenuRef (min_menu_id[MAC_MENU_POPUP]);
1982 1974
1983 BLOCK_INPUT; 1975 BLOCK_INPUT;
1984 1976
@@ -2024,8 +2016,7 @@ mac_menu_show (f, x, y, for_click, keymaps, title, error)
2024 int i; 2016 int i;
2025 int menu_item_choice; 2017 int menu_item_choice;
2026 UInt32 menu_item_selection; 2018 UInt32 menu_item_selection;
2027 MenuHandle menu; 2019 MenuRef menu;
2028 Point pos;
2029 widget_value *wv, *save_wv = 0, *first_wv = 0, *prev_wv = 0; 2020 widget_value *wv, *save_wv = 0, *first_wv = 0, *prev_wv = 0;
2030 widget_value **submenu_stack 2021 widget_value **submenu_stack
2031 = (widget_value **) alloca (menu_items_used * sizeof (widget_value *)); 2022 = (widget_value **) alloca (menu_items_used * sizeof (widget_value *));
@@ -2231,11 +2222,8 @@ mac_menu_show (f, x, y, for_click, keymaps, title, error)
2231 free_menubar_widget_value_tree (first_wv); 2222 free_menubar_widget_value_tree (first_wv);
2232 2223
2233 /* Adjust coordinates to be root-window-relative. */ 2224 /* Adjust coordinates to be root-window-relative. */
2234 pos.h = x; 2225 x += f->left_pos + FRAME_OUTER_TO_INNER_DIFF_X (f);
2235 pos.v = y; 2226 y += f->top_pos + FRAME_OUTER_TO_INNER_DIFF_Y (f);
2236
2237 SetPortWindowPort (FRAME_MAC_WINDOW (f));
2238 LocalToGlobal (&pos);
2239 2227
2240 /* No selection has been chosen yet. */ 2228 /* No selection has been chosen yet. */
2241 menu_item_selection = 0; 2229 menu_item_selection = 0;
@@ -2248,13 +2236,13 @@ mac_menu_show (f, x, y, for_click, keymaps, title, error)
2248 2236
2249 /* Display the menu. */ 2237 /* Display the menu. */
2250 popup_activated_flag = 1; 2238 popup_activated_flag = 1;
2251 menu_item_choice = PopUpMenuSelect (menu, pos.v, pos.h, 0); 2239 menu_item_choice = PopUpMenuSelect (menu, y, x, 0);
2252 popup_activated_flag = 0; 2240 popup_activated_flag = 0;
2253 2241
2254 /* Get the refcon to find the correct item */ 2242 /* Get the refcon to find the correct item */
2255 if (menu_item_choice) 2243 if (menu_item_choice)
2256 { 2244 {
2257 MenuHandle sel_menu = GetMenuHandle (HiWord (menu_item_choice)); 2245 MenuRef sel_menu = GetMenuRef (HiWord (menu_item_choice));
2258 2246
2259 if (sel_menu) 2247 if (sel_menu)
2260 GetMenuItemRefCon (sel_menu, LoWord (menu_item_choice), 2248 GetMenuItemRefCon (sel_menu, LoWord (menu_item_choice),
@@ -2330,6 +2318,14 @@ mac_menu_show (f, x, y, for_click, keymaps, title, error)
2330 2318
2331#if TARGET_API_MAC_CARBON 2319#if TARGET_API_MAC_CARBON
2332 2320
2321#define DIALOG_BUTTON_COMMAND_ID_OFFSET 'Bt\0\0'
2322#define DIALOG_BUTTON_COMMAND_ID_P(id) \
2323 (((id) & ~0xffff) == DIALOG_BUTTON_COMMAND_ID_OFFSET)
2324#define DIALOG_BUTTON_COMMAND_ID_VALUE(id) \
2325 ((id) - DIALOG_BUTTON_COMMAND_ID_OFFSET)
2326#define DIALOG_BUTTON_MAKE_COMMAND_ID(value) \
2327 ((value) + DIALOG_BUTTON_COMMAND_ID_OFFSET)
2328
2333static pascal OSStatus 2329static pascal OSStatus
2334mac_handle_dialog_event (next_handler, event, data) 2330mac_handle_dialog_event (next_handler, event, data)
2335 EventHandlerCallRef next_handler; 2331 EventHandlerCallRef next_handler;
@@ -2349,7 +2345,7 @@ mac_handle_dialog_event (next_handler, event, data)
2349 typeHICommand, NULL, sizeof (HICommand), 2345 typeHICommand, NULL, sizeof (HICommand),
2350 NULL, &command); 2346 NULL, &command);
2351 if (err == noErr) 2347 if (err == noErr)
2352 if ((command.commandID & ~0xffff) == 'Bt\0\0') 2348 if (DIALOG_BUTTON_COMMAND_ID_P (command.commandID))
2353 { 2349 {
2354 SetWRefCon (window, command.commandID); 2350 SetWRefCon (window, command.commandID);
2355 err = QuitAppModalLoopForWindow (window); 2351 err = QuitAppModalLoopForWindow (window);
@@ -2402,7 +2398,10 @@ mac_handle_dialog_event (next_handler, event, data)
2402 break; 2398 break;
2403 } 2399 }
2404 2400
2405 return err == noErr ? noErr : result; 2401 if (err == noErr)
2402 result = noErr;
2403
2404 return result;
2406 } 2405 }
2407 break; 2406 break;
2408 2407
@@ -2518,14 +2517,16 @@ create_and_show_dialog (f, first_wv)
2518 } 2517 }
2519 if (err == noErr) 2518 if (err == noErr)
2520 { 2519 {
2520 UInt32 command_id;
2521
2521 OffsetRect (&rects[i], -rects[i].left, -rects[i].top); 2522 OffsetRect (&rects[i], -rects[i].left, -rects[i].top);
2522 if (rects[i].right < DIALOG_BUTTON_MIN_WIDTH) 2523 if (rects[i].right < DIALOG_BUTTON_MIN_WIDTH)
2523 rects[i].right = DIALOG_BUTTON_MIN_WIDTH; 2524 rects[i].right = DIALOG_BUTTON_MIN_WIDTH;
2524 else if (rects[i].right > DIALOG_MAX_INNER_WIDTH) 2525 else if (rects[i].right > DIALOG_MAX_INNER_WIDTH)
2525 rects[i].right = DIALOG_MAX_INNER_WIDTH; 2526 rects[i].right = DIALOG_MAX_INNER_WIDTH;
2526 2527
2527 err = SetControlCommandID (buttons[i], 2528 command_id = DIALOG_BUTTON_MAKE_COMMAND_ID ((int) wv->call_data);
2528 'Bt\0\0' + (int) wv->call_data); 2529 err = SetControlCommandID (buttons[i], command_id);
2529 } 2530 }
2530 if (err != noErr) 2531 if (err != noErr)
2531 break; 2532 break;
@@ -2702,8 +2703,8 @@ create_and_show_dialog (f, first_wv)
2702 { 2703 {
2703 UInt32 command_id = GetWRefCon (window); 2704 UInt32 command_id = GetWRefCon (window);
2704 2705
2705 if ((command_id & ~0xffff) == 'Bt\0\0') 2706 if (DIALOG_BUTTON_COMMAND_ID_P (command_id))
2706 result = command_id - 'Bt\0\0'; 2707 result = DIALOG_BUTTON_COMMAND_ID_VALUE (command_id);
2707 } 2708 }
2708 2709
2709 if (window) 2710 if (window)
@@ -2724,8 +2725,8 @@ mac_dialog (widget_value *wv)
2724 int i; 2725 int i;
2725 int dialog_width; 2726 int dialog_width;
2726 Rect rect; 2727 Rect rect;
2727 WindowPtr window_ptr; 2728 WindowRef window_ptr;
2728 ControlHandle ch; 2729 ControlRef ch;
2729 int left; 2730 int left;
2730 EventRecord event_record; 2731 EventRecord event_record;
2731 SInt16 part_code; 2732 SInt16 part_code;
@@ -2754,7 +2755,7 @@ mac_dialog (widget_value *wv)
2754 wv = wv->next; 2755 wv = wv->next;
2755 } 2756 }
2756 2757
2757 window_ptr = GetNewCWindow (DIALOG_WINDOW_RESOURCE, NULL, (WindowPtr) -1); 2758 window_ptr = GetNewCWindow (DIALOG_WINDOW_RESOURCE, NULL, (WindowRef) -1);
2758 2759
2759 SetPortWindowPort (window_ptr); 2760 SetPortWindowPort (window_ptr);
2760 2761
@@ -3031,7 +3032,7 @@ name_is_separator (name)
3031 3032
3032static void 3033static void
3033add_menu_item (menu, pos, wv) 3034add_menu_item (menu, pos, wv)
3034 MenuHandle menu; 3035 MenuRef menu;
3035 int pos; 3036 int pos;
3036 widget_value *wv; 3037 widget_value *wv;
3037{ 3038{
@@ -3108,7 +3109,7 @@ add_menu_item (menu, pos, wv)
3108 3109
3109static int 3110static int
3110fill_menu (menu, wv, kind, submenu_id) 3111fill_menu (menu, wv, kind, submenu_id)
3111 MenuHandle menu; 3112 MenuRef menu;
3112 widget_value *wv; 3113 widget_value *wv;
3113 enum mac_menu_kind kind; 3114 enum mac_menu_kind kind;
3114 int submenu_id; 3115 int submenu_id;
@@ -3120,7 +3121,7 @@ fill_menu (menu, wv, kind, submenu_id)
3120 add_menu_item (menu, pos, wv); 3121 add_menu_item (menu, pos, wv);
3121 if (wv->contents && submenu_id < min_menu_id[kind + 1]) 3122 if (wv->contents && submenu_id < min_menu_id[kind + 1])
3122 { 3123 {
3123 MenuHandle submenu = NewMenu (submenu_id, "\pX"); 3124 MenuRef submenu = NewMenu (submenu_id, "\pX");
3124 3125
3125 InsertMenu (submenu, -1); 3126 InsertMenu (submenu, -1);
3126 SetMenuItemHierarchicalID (menu, pos, submenu_id); 3127 SetMenuItemHierarchicalID (menu, pos, submenu_id);
@@ -3139,8 +3140,6 @@ fill_menubar (wv, deep_p)
3139 int deep_p; 3140 int deep_p;
3140{ 3141{
3141 int id, submenu_id; 3142 int id, submenu_id;
3142 MenuHandle menu;
3143 Str255 title;
3144#if !TARGET_API_MAC_CARBON 3143#if !TARGET_API_MAC_CARBON
3145 int title_changed_p = 0; 3144 int title_changed_p = 0;
3146#endif 3145#endif
@@ -3162,45 +3161,75 @@ fill_menubar (wv, deep_p)
3162 wv != NULL && id < min_menu_id[MAC_MENU_MENU_BAR + 1]; 3161 wv != NULL && id < min_menu_id[MAC_MENU_MENU_BAR + 1];
3163 wv = wv->next, id++) 3162 wv = wv->next, id++)
3164 { 3163 {
3164 OSStatus err = noErr;
3165 MenuRef menu;
3166#if TARGET_API_MAC_CARBON
3167 CFStringRef title;
3168
3169 title = CFStringCreateWithCString (NULL, wv->name,
3170 kCFStringEncodingMacRoman);
3171#else
3172 Str255 title;
3173
3165 strncpy (title, wv->name, 255); 3174 strncpy (title, wv->name, 255);
3166 title[255] = '\0'; 3175 title[255] = '\0';
3167 c2pstr (title); 3176 c2pstr (title);
3177#endif
3168 3178
3169 menu = GetMenuHandle (id); 3179 menu = GetMenuRef (id);
3170 if (menu) 3180 if (menu)
3171 { 3181 {
3172#if TARGET_API_MAC_CARBON 3182#if TARGET_API_MAC_CARBON
3173 Str255 old_title; 3183 CFStringRef old_title;
3174 3184
3175 GetMenuTitle (menu, old_title); 3185 err = CopyMenuTitleAsCFString (menu, &old_title);
3176 if (!EqualString (title, old_title, false, false)) 3186 if (err == noErr)
3177 SetMenuTitle (menu, title); 3187 {
3188 if (CFStringCompare (title, old_title, 0) != kCFCompareEqualTo)
3189 err = SetMenuTitleWithCFString (menu, title);
3190 CFRelease (old_title);
3191 }
3192 else
3193 err = SetMenuTitleWithCFString (menu, title);
3178#else /* !TARGET_API_MAC_CARBON */ 3194#else /* !TARGET_API_MAC_CARBON */
3179 if (!EqualString (title, (*menu)->menuData, false, false)) 3195 if (!EqualString (title, (*menu)->menuData, false, false))
3180 { 3196 {
3181 DeleteMenu (id); 3197 DeleteMenu (id);
3182 DisposeMenu (menu); 3198 DisposeMenu (menu);
3183 menu = NewMenu (id, title); 3199 menu = NewMenu (id, title);
3184 InsertMenu (menu, GetMenuHandle (id + 1) ? id + 1 : 0); 3200 InsertMenu (menu, GetMenuRef (id + 1) ? id + 1 : 0);
3185 title_changed_p = 1; 3201 title_changed_p = 1;
3186 } 3202 }
3187#endif /* !TARGET_API_MAC_CARBON */ 3203#endif /* !TARGET_API_MAC_CARBON */
3188 } 3204 }
3189 else 3205 else
3190 { 3206 {
3207#if TARGET_API_MAC_CARBON
3208 err = CreateNewMenu (id, 0, &menu);
3209 if (err == noErr)
3210 err = SetMenuTitleWithCFString (menu, title);
3211#else
3191 menu = NewMenu (id, title); 3212 menu = NewMenu (id, title);
3192 InsertMenu (menu, 0); 3213#endif
3214 if (err == noErr)
3215 {
3216 InsertMenu (menu, 0);
3193#if !TARGET_API_MAC_CARBON 3217#if !TARGET_API_MAC_CARBON
3194 title_changed_p = 1; 3218 title_changed_p = 1;
3195#endif 3219#endif
3220 }
3196 } 3221 }
3222#if TARGET_API_MAC_CARBON
3223 CFRelease (title);
3224#endif
3197 3225
3198 if (wv->contents) 3226 if (err == noErr)
3199 submenu_id = fill_menu (menu, wv->contents, MAC_MENU_MENU_BAR_SUB, 3227 if (wv->contents)
3200 submenu_id); 3228 submenu_id = fill_menu (menu, wv->contents, MAC_MENU_MENU_BAR_SUB,
3229 submenu_id);
3201 } 3230 }
3202 3231
3203 if (id < min_menu_id[MAC_MENU_MENU_BAR + 1] && GetMenuHandle (id)) 3232 if (id < min_menu_id[MAC_MENU_MENU_BAR + 1] && GetMenuRef (id))
3204 { 3233 {
3205 dispose_menus (MAC_MENU_MENU_BAR, id); 3234 dispose_menus (MAC_MENU_MENU_BAR, id);
3206#if !TARGET_API_MAC_CARBON 3235#if !TARGET_API_MAC_CARBON
@@ -3224,7 +3253,7 @@ dispose_menus (kind, id)
3224{ 3253{
3225 for (id = max (id, min_menu_id[kind]); id < min_menu_id[kind + 1]; id++) 3254 for (id = max (id, min_menu_id[kind]); id < min_menu_id[kind + 1]; id++)
3226 { 3255 {
3227 MenuHandle menu = GetMenuHandle (id); 3256 MenuRef menu = GetMenuRef (id);
3228 3257
3229 if (menu == NULL) 3258 if (menu == NULL)
3230 break; 3259 break;
diff --git a/src/macselect.c b/src/macselect.c
index c6aa97d5be9..a34f58df0f0 100644
--- a/src/macselect.c
+++ b/src/macselect.c
@@ -1623,16 +1623,19 @@ remove_drag_handler (window)
1623 Services menu support 1623 Services menu support
1624***********************************************************************/ 1624***********************************************************************/
1625#ifdef MAC_OSX 1625#ifdef MAC_OSX
1626void 1626OSStatus
1627init_service_handler () 1627install_service_handler ()
1628{ 1628{
1629 static const EventTypeSpec specs[] = 1629 static const EventTypeSpec specs[] =
1630 {{kEventClassService, kEventServiceGetTypes}, 1630 {{kEventClassService, kEventServiceGetTypes},
1631 {kEventClassService, kEventServiceCopy}, 1631 {kEventClassService, kEventServiceCopy},
1632 {kEventClassService, kEventServicePaste}, 1632 {kEventClassService, kEventServicePaste},
1633 {kEventClassService, kEventServicePerform}}; 1633 {kEventClassService, kEventServicePerform}};
1634 InstallApplicationEventHandler (NewEventHandlerUPP (mac_handle_service_event), 1634
1635 GetEventTypeCount (specs), specs, NULL, NULL); 1635 return InstallApplicationEventHandler (NewEventHandlerUPP
1636 (mac_handle_service_event),
1637 GetEventTypeCount (specs),
1638 specs, NULL, NULL);
1636} 1639}
1637 1640
1638extern OSStatus mac_store_service_event P_ ((EventRef)); 1641extern OSStatus mac_store_service_event P_ ((EventRef));
diff --git a/src/macterm.c b/src/macterm.c
index 64b4e094d14..1a67a9ebec1 100644
--- a/src/macterm.c
+++ b/src/macterm.c
@@ -35,12 +35,7 @@ Boston, MA 02110-1301, USA. */
35#include <alloca.h> 35#include <alloca.h>
36#endif 36#endif
37 37
38#if TARGET_API_MAC_CARBON 38#if !TARGET_API_MAC_CARBON
39/* USE_CARBON_EVENTS determines if the Carbon Event Manager is used to
40 obtain events from the event queue. If set to 0, WaitNextEvent is
41 used instead. */
42#define USE_CARBON_EVENTS 1
43#else /* not TARGET_API_MAC_CARBON */
44#include <Quickdraw.h> 39#include <Quickdraw.h>
45#include <ToolUtils.h> 40#include <ToolUtils.h>
46#include <Sound.h> 41#include <Sound.h>
@@ -265,7 +260,7 @@ static void x_scroll_bar_report_motion P_ ((struct frame **, Lisp_Object *,
265 Lisp_Object *, Lisp_Object *, 260 Lisp_Object *, Lisp_Object *,
266 unsigned long *)); 261 unsigned long *));
267 262
268static int is_emacs_window P_ ((WindowPtr)); 263static int is_emacs_window P_ ((WindowRef));
269static XCharStruct *mac_per_char_metric P_ ((XFontStruct *, XChar2b *, int)); 264static XCharStruct *mac_per_char_metric P_ ((XFontStruct *, XChar2b *, int));
270static void XSetFont P_ ((Display *, GC, XFontStruct *)); 265static void XSetFont P_ ((Display *, GC, XFontStruct *));
271 266
@@ -418,7 +413,8 @@ mac_prepare_for_quickdraw (f)
418static RgnHandle saved_port_clip_region = NULL; 413static RgnHandle saved_port_clip_region = NULL;
419 414
420static void 415static void
421mac_begin_clip (gc) 416mac_begin_clip (f, gc)
417 struct frame *f;
422 GC gc; 418 GC gc;
423{ 419{
424 static RgnHandle new_region = NULL; 420 static RgnHandle new_region = NULL;
@@ -428,6 +424,11 @@ mac_begin_clip (gc)
428 if (new_region == NULL) 424 if (new_region == NULL)
429 new_region = NewRgn (); 425 new_region = NewRgn ();
430 426
427#if USE_CG_DRAWING
428 mac_prepare_for_quickdraw (f);
429#endif
430 SetPortWindowPort (FRAME_MAC_WINDOW (f));
431
431 if (gc->n_clip_rects) 432 if (gc->n_clip_rects)
432 { 433 {
433 GetClip (saved_port_clip_region); 434 GetClip (saved_port_clip_region);
@@ -447,15 +448,6 @@ mac_end_clip (gc)
447 448
448/* X display function emulation */ 449/* X display function emulation */
449 450
450void
451XFreePixmap (display, pixmap)
452 Display *display; /* not used */
453 Pixmap pixmap;
454{
455 DisposeGWorld (pixmap);
456}
457
458
459/* Mac version of XDrawLine. */ 451/* Mac version of XDrawLine. */
460 452
461static void 453static void
@@ -497,11 +489,8 @@ mac_draw_line (f, gc, x1, y1, x2, y2)
497 x2--; 489 x2--;
498 } 490 }
499 491
500 SetPortWindowPort (FRAME_MAC_WINDOW (f)); 492 mac_begin_clip (f, gc);
501
502 RGBForeColor (GC_FORE_COLOR (gc)); 493 RGBForeColor (GC_FORE_COLOR (gc));
503
504 mac_begin_clip (gc);
505 MoveTo (x1, y1); 494 MoveTo (x1, y1);
506 LineTo (x2, y2); 495 LineTo (x2, y2);
507 mac_end_clip (gc); 496 mac_end_clip (gc);
@@ -557,25 +546,25 @@ mac_erase_rectangle (f, gc, x, y, width, height)
557 unsigned int width, height; 546 unsigned int width, height;
558{ 547{
559#if USE_CG_DRAWING 548#if USE_CG_DRAWING
560 CGContextRef context; 549 {
550 CGContextRef context;
561 551
562 context = mac_begin_cg_clip (f, gc); 552 context = mac_begin_cg_clip (f, gc);
563 CG_SET_FILL_COLOR_WITH_GC_BACKGROUND (context, gc); 553 CG_SET_FILL_COLOR_WITH_GC_BACKGROUND (context, gc);
564 CGContextFillRect (context, CGRectMake (x, y, width, height)); 554 CGContextFillRect (context, CGRectMake (x, y, width, height));
565 mac_end_cg_clip (f); 555 mac_end_cg_clip (f);
556 }
566#else 557#else
567 Rect r; 558 {
568 559 Rect r;
569 SetPortWindowPort (FRAME_MAC_WINDOW (f));
570
571 RGBBackColor (GC_BACK_COLOR (gc));
572 SetRect (&r, x, y, x + width, y + height);
573
574 mac_begin_clip (gc);
575 EraseRect (&r);
576 mac_end_clip (gc);
577 560
578 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f))); 561 mac_begin_clip (f, gc);
562 RGBBackColor (GC_BACK_COLOR (gc));
563 SetRect (&r, x, y, x + width, y + height);
564 EraseRect (&r);
565 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
566 mac_end_clip (gc);
567 }
579#endif 568#endif
580} 569}
581 570
@@ -598,15 +587,17 @@ mac_clear_window (f)
598 struct frame *f; 587 struct frame *f;
599{ 588{
600#if USE_CG_DRAWING 589#if USE_CG_DRAWING
601 CGContextRef context; 590 {
602 GC gc = FRAME_NORMAL_GC (f); 591 CGContextRef context;
603 592 GC gc = FRAME_NORMAL_GC (f);
604 context = mac_begin_cg_clip (f, NULL); 593
605 CG_SET_FILL_COLOR_WITH_GC_BACKGROUND (context, gc); 594 context = mac_begin_cg_clip (f, NULL);
606 CGContextFillRect (context, CGRectMake (0, 0, FRAME_PIXEL_WIDTH (f), 595 CG_SET_FILL_COLOR_WITH_GC_BACKGROUND (context, gc);
607 FRAME_PIXEL_HEIGHT (f))); 596 CGContextFillRect (context, CGRectMake (0, 0, FRAME_PIXEL_WIDTH (f),
608 mac_end_cg_clip (f); 597 FRAME_PIXEL_HEIGHT (f)));
609#else 598 mac_end_cg_clip (f);
599 }
600#else /* !USE_CG_DRAWING */
610 SetPortWindowPort (FRAME_MAC_WINDOW (f)); 601 SetPortWindowPort (FRAME_MAC_WINDOW (f));
611 602
612 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f))); 603 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
@@ -680,13 +671,10 @@ mac_draw_bitmap (f, gc, x, y, width, height, bits, overlay_p)
680 bitmap.baseAddr = (char *)bits; 671 bitmap.baseAddr = (char *)bits;
681 SetRect (&(bitmap.bounds), 0, 0, width, height); 672 SetRect (&(bitmap.bounds), 0, 0, width, height);
682 673
683 SetPortWindowPort (FRAME_MAC_WINDOW (f)); 674 mac_begin_clip (f, gc);
684
685 RGBForeColor (GC_FORE_COLOR (gc)); 675 RGBForeColor (GC_FORE_COLOR (gc));
686 RGBBackColor (GC_BACK_COLOR (gc)); 676 RGBBackColor (GC_BACK_COLOR (gc));
687 SetRect (&r, x, y, x + width, y + height); 677 SetRect (&r, x, y, x + width, y + height);
688
689 mac_begin_clip (gc);
690#if TARGET_API_MAC_CARBON 678#if TARGET_API_MAC_CARBON
691 { 679 {
692 CGrafPtr port; 680 CGrafPtr port;
@@ -701,9 +689,8 @@ mac_draw_bitmap (f, gc, x, y, width, height, bits, overlay_p)
701 CopyBits (&bitmap, &(FRAME_MAC_WINDOW (f)->portBits), &(bitmap.bounds), &r, 689 CopyBits (&bitmap, &(FRAME_MAC_WINDOW (f)->portBits), &(bitmap.bounds), &r,
702 overlay_p ? srcOr : srcCopy, 0); 690 overlay_p ? srcOr : srcCopy, 0);
703#endif /* not TARGET_API_MAC_CARBON */ 691#endif /* not TARGET_API_MAC_CARBON */
704 mac_end_clip (gc);
705
706 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f))); 692 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
693 mac_end_clip (gc);
707} 694}
708#endif /* !USE_CG_DRAWING */ 695#endif /* !USE_CG_DRAWING */
709 696
@@ -754,8 +741,8 @@ mac_free_bitmap (bitmap)
754 741
755Pixmap 742Pixmap
756XCreatePixmap (display, w, width, height, depth) 743XCreatePixmap (display, w, width, height, depth)
757 Display *display; /* not used */ 744 Display *display;
758 WindowPtr w; 745 WindowRef w;
759 unsigned int width, height; 746 unsigned int width, height;
760 unsigned int depth; 747 unsigned int depth;
761{ 748{
@@ -783,8 +770,8 @@ XCreatePixmap (display, w, width, height, depth)
783 770
784Pixmap 771Pixmap
785XCreatePixmapFromBitmapData (display, w, data, width, height, fg, bg, depth) 772XCreatePixmapFromBitmapData (display, w, data, width, height, fg, bg, depth)
786 Display *display; /* not used */ 773 Display *display;
787 WindowPtr w; 774 WindowRef w;
788 char *data; 775 char *data;
789 unsigned int width, height; 776 unsigned int width, height;
790 unsigned long fg, bg; 777 unsigned long fg, bg;
@@ -794,7 +781,7 @@ XCreatePixmapFromBitmapData (display, w, data, width, height, fg, bg, depth)
794 BitMap bitmap; 781 BitMap bitmap;
795 CGrafPtr old_port; 782 CGrafPtr old_port;
796 GDHandle old_gdh; 783 GDHandle old_gdh;
797 static GC gc = NULL; /* not reentrant */ 784 static GC gc = NULL;
798 785
799 if (gc == NULL) 786 if (gc == NULL)
800 gc = XCreateGC (display, w, 0, NULL); 787 gc = XCreateGC (display, w, 0, NULL);
@@ -826,6 +813,15 @@ XCreatePixmapFromBitmapData (display, w, data, width, height, fg, bg, depth)
826} 813}
827 814
828 815
816void
817XFreePixmap (display, pixmap)
818 Display *display;
819 Pixmap pixmap;
820{
821 DisposeGWorld (pixmap);
822}
823
824
829/* Mac replacement for XFillRectangle. */ 825/* Mac replacement for XFillRectangle. */
830 826
831static void 827static void
@@ -845,12 +841,9 @@ mac_fill_rectangle (f, gc, x, y, width, height)
845#else 841#else
846 Rect r; 842 Rect r;
847 843
848 SetPortWindowPort (FRAME_MAC_WINDOW (f)); 844 mac_begin_clip (f, gc);
849
850 RGBForeColor (GC_FORE_COLOR (gc)); 845 RGBForeColor (GC_FORE_COLOR (gc));
851 SetRect (&r, x, y, x + width, y + height); 846 SetRect (&r, x, y, x + width, y + height);
852
853 mac_begin_clip (gc);
854 PaintRect (&r); /* using foreground color of gc */ 847 PaintRect (&r); /* using foreground color of gc */
855 mac_end_clip (gc); 848 mac_end_clip (gc);
856#endif 849#endif
@@ -877,18 +870,34 @@ mac_draw_rectangle (f, gc, x, y, width, height)
877#else 870#else
878 Rect r; 871 Rect r;
879 872
880 SetPortWindowPort (FRAME_MAC_WINDOW (f)); 873 mac_begin_clip (f, gc);
881
882 RGBForeColor (GC_FORE_COLOR (gc)); 874 RGBForeColor (GC_FORE_COLOR (gc));
883 SetRect (&r, x, y, x + width + 1, y + height + 1); 875 SetRect (&r, x, y, x + width + 1, y + height + 1);
884
885 mac_begin_clip (gc);
886 FrameRect (&r); /* using foreground color of gc */ 876 FrameRect (&r); /* using foreground color of gc */
887 mac_end_clip (gc); 877 mac_end_clip (gc);
888#endif 878#endif
889} 879}
890 880
891 881
882static void
883mac_invert_rectangle (f, x, y, width, height)
884 struct frame *f;
885 int x, y;
886 unsigned int width, height;
887{
888 Rect r;
889
890#if USE_CG_DRAWING
891 mac_prepare_for_quickdraw (f);
892#endif
893 SetPortWindowPort (FRAME_MAC_WINDOW (f));
894
895 SetRect (&r, x, y, x + width, y + height);
896
897 InvertRect (&r);
898}
899
900
892#if USE_ATSUI 901#if USE_ATSUI
893static OSStatus 902static OSStatus
894atsu_get_text_layout_with_text_ptr (text, text_length, style, text_layout) 903atsu_get_text_layout_with_text_ptr (text, text_length, style, text_layout)
@@ -898,7 +907,7 @@ atsu_get_text_layout_with_text_ptr (text, text_length, style, text_layout)
898 ATSUTextLayout *text_layout; 907 ATSUTextLayout *text_layout;
899{ 908{
900 OSStatus err; 909 OSStatus err;
901 static ATSUTextLayout saved_text_layout = NULL; /* not reentrant */ 910 static ATSUTextLayout saved_text_layout = NULL;
902 911
903 if (saved_text_layout == NULL) 912 if (saved_text_layout == NULL)
904 { 913 {
@@ -925,7 +934,6 @@ atsu_get_text_layout_with_text_ptr (text, text_length, style, text_layout)
925 err = ATSUSetLayoutControls (saved_text_layout, 934 err = ATSUSetLayoutControls (saved_text_layout,
926 sizeof (tags) / sizeof (tags[0]), 935 sizeof (tags) / sizeof (tags[0]),
927 tags, sizes, values); 936 tags, sizes, values);
928 /* XXX: Should we do this? */
929 if (err == noErr) 937 if (err == noErr)
930 err = ATSUSetTransientFontMatching (saved_text_layout, true); 938 err = ATSUSetTransientFontMatching (saved_text_layout, true);
931 } 939 }
@@ -944,224 +952,224 @@ atsu_get_text_layout_with_text_ptr (text, text_length, style, text_layout)
944 *text_layout = saved_text_layout; 952 *text_layout = saved_text_layout;
945 return err; 953 return err;
946} 954}
947#endif
948
949
950static void
951mac_invert_rectangle (f, x, y, width, height)
952 struct frame *f;
953 int x, y;
954 unsigned int width, height;
955{
956 Rect r;
957
958#if USE_CG_DRAWING
959 mac_prepare_for_quickdraw (f);
960#endif
961 SetPortWindowPort (FRAME_MAC_WINDOW (f));
962
963 SetRect (&r, x, y, x + width, y + height);
964
965 InvertRect (&r);
966}
967 955
968 956
969static void 957static void
970mac_draw_string_common (f, gc, x, y, buf, nchars, bg_width, 958mac_draw_image_string_atsui (f, gc, x, y, buf, nchars, bg_width,
971 overstrike_p, bytes_per_char) 959 overstrike_p, bytes_per_char)
972 struct frame *f; 960 struct frame *f;
973 GC gc; 961 GC gc;
974 int x, y; 962 int x, y;
975 char *buf; 963 char *buf;
976 int nchars, bg_width, overstrike_p, bytes_per_char; 964 int nchars, bg_width, overstrike_p, bytes_per_char;
977{ 965{
978 SetPortWindowPort (FRAME_MAC_WINDOW (f)); 966 OSStatus err;
979 967 ATSUTextLayout text_layout;
980#if USE_ATSUI
981 if (GC_FONT (gc)->mac_style)
982 {
983 OSStatus err;
984 ATSUTextLayout text_layout;
985 968
986 xassert (bytes_per_char == 2); 969 xassert (bytes_per_char == 2);
987 970
988#ifndef WORDS_BIG_ENDIAN 971#ifndef WORDS_BIG_ENDIAN
989 { 972 {
990 int i; 973 int i;
991 UniChar *text = (UniChar *)buf; 974 UniChar *text = (UniChar *)buf;
992 975
993 for (i = 0; i < nchars; i++) 976 for (i = 0; i < nchars; i++)
994 text[i] = EndianU16_BtoN (text[i]); 977 text[i] = EndianU16_BtoN (text[i]);
995 } 978 }
996#endif 979#endif
997 err = atsu_get_text_layout_with_text_ptr ((ConstUniCharArrayPtr)buf, 980 err = atsu_get_text_layout_with_text_ptr ((ConstUniCharArrayPtr)buf,
998 nchars, 981 nchars,
999 GC_FONT (gc)->mac_style, 982 GC_FONT (gc)->mac_style,
1000 &text_layout); 983 &text_layout);
1001 if (err != noErr) 984 if (err != noErr)
1002 return; 985 return;
1003#ifdef MAC_OSX 986#ifdef MAC_OSX
1004 if (!mac_use_core_graphics) 987 if (!mac_use_core_graphics)
1005 { 988 {
1006#endif
1007#if USE_CG_DRAWING
1008 mac_prepare_for_quickdraw (f);
1009#endif 989#endif
1010 mac_begin_clip (gc); 990 mac_begin_clip (f, gc);
1011 RGBForeColor (GC_FORE_COLOR (gc)); 991 RGBForeColor (GC_FORE_COLOR (gc));
1012 if (bg_width) 992 if (bg_width)
1013 { 993 {
1014 Rect r; 994 Rect r;
1015 995
1016 SetRect (&r, x, y - FONT_BASE (GC_FONT (gc)), 996 SetRect (&r, x, y - FONT_BASE (GC_FONT (gc)),
1017 x + bg_width, y + FONT_DESCENT (GC_FONT (gc))); 997 x + bg_width, y + FONT_DESCENT (GC_FONT (gc)));
1018 RGBBackColor (GC_BACK_COLOR (gc)); 998 RGBBackColor (GC_BACK_COLOR (gc));
1019 EraseRect (&r); 999 EraseRect (&r);
1020 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f))); 1000 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
1021 } 1001 }
1022 MoveTo (x, y); 1002 MoveTo (x, y);
1003 ATSUDrawText (text_layout,
1004 kATSUFromTextBeginning, kATSUToTextEnd,
1005 kATSUUseGrafPortPenLoc, kATSUUseGrafPortPenLoc);
1006 if (overstrike_p)
1007 {
1008 MoveTo (x + 1, y);
1023 ATSUDrawText (text_layout, 1009 ATSUDrawText (text_layout,
1024 kATSUFromTextBeginning, kATSUToTextEnd, 1010 kATSUFromTextBeginning, kATSUToTextEnd,
1025 kATSUUseGrafPortPenLoc, kATSUUseGrafPortPenLoc); 1011 kATSUUseGrafPortPenLoc, kATSUUseGrafPortPenLoc);
1026 if (overstrike_p)
1027 {
1028 MoveTo (x + 1, y);
1029 ATSUDrawText (text_layout,
1030 kATSUFromTextBeginning, kATSUToTextEnd,
1031 kATSUUseGrafPortPenLoc, kATSUUseGrafPortPenLoc);
1032 }
1033 mac_end_clip (gc);
1034#ifdef MAC_OSX
1035 } 1012 }
1036 else 1013 mac_end_clip (gc);
1037 { 1014#ifdef MAC_OSX
1038 CGrafPtr port; 1015 }
1039 static CGContextRef context; 1016 else
1040 float port_height = FRAME_PIXEL_HEIGHT (f); 1017 {
1041 static const ATSUAttributeTag tags[] = {kATSUCGContextTag}; 1018 static CGContextRef context;
1042 static const ByteCount sizes[] = {sizeof (CGContextRef)}; 1019 float port_height = FRAME_PIXEL_HEIGHT (f);
1043 static const ATSUAttributeValuePtr values[] = {&context}; 1020 static const ATSUAttributeTag tags[] = {kATSUCGContextTag};
1021 static const ByteCount sizes[] = {sizeof (CGContextRef)};
1022 static const ATSUAttributeValuePtr values[] = {&context};
1044 1023
1045#if USE_CG_DRAWING 1024#if USE_CG_DRAWING
1046 context = mac_begin_cg_clip (f, gc); 1025 context = mac_begin_cg_clip (f, gc);
1047#else 1026#else
1048 GetPort (&port); 1027 CGrafPtr port;
1049 QDBeginCGContext (port, &context); 1028
1050 if (gc->n_clip_rects || bg_width) 1029 GetPort (&port);
1051 { 1030 QDBeginCGContext (port, &context);
1052 CGContextTranslateCTM (context, 0, port_height); 1031 if (gc->n_clip_rects || bg_width)
1053 CGContextScaleCTM (context, 1, -1); 1032 {
1054 if (gc->n_clip_rects) 1033 CGContextTranslateCTM (context, 0, port_height);
1055 CGContextClipToRects (context, gc->clip_rects, 1034 CGContextScaleCTM (context, 1, -1);
1056 gc->n_clip_rects); 1035 if (gc->n_clip_rects)
1057#endif 1036 CGContextClipToRects (context, gc->clip_rects,
1058 if (bg_width) 1037 gc->n_clip_rects);
1059 {
1060 CG_SET_FILL_COLOR_WITH_GC_BACKGROUND (context, gc);
1061 CGContextFillRect
1062 (context,
1063 CGRectMake (x, y - FONT_BASE (GC_FONT (gc)),
1064 bg_width, FONT_HEIGHT (GC_FONT (gc))));
1065 }
1066 CGContextScaleCTM (context, 1, -1);
1067 CGContextTranslateCTM (context, 0, -port_height);
1068#if !USE_CG_DRAWING
1069 }
1070#endif 1038#endif
1071 CG_SET_FILL_COLOR_WITH_GC_FOREGROUND (context, gc); 1039 if (bg_width)
1072 err = ATSUSetLayoutControls (text_layout,
1073 sizeof (tags) / sizeof (tags[0]),
1074 tags, sizes, values);
1075 if (err == noErr)
1076 { 1040 {
1077 ATSUDrawText (text_layout, 1041 CG_SET_FILL_COLOR_WITH_GC_BACKGROUND (context, gc);
1078 kATSUFromTextBeginning, kATSUToTextEnd, 1042 CGContextFillRect (context,
1079 Long2Fix (x), Long2Fix (port_height - y)); 1043 CGRectMake (x, y - FONT_BASE (GC_FONT (gc)),
1080 if (overstrike_p) 1044 bg_width,
1081 ATSUDrawText (text_layout, 1045 FONT_HEIGHT (GC_FONT (gc))));
1082 kATSUFromTextBeginning, kATSUToTextEnd,
1083 Long2Fix (x + 1), Long2Fix (port_height - y));
1084 } 1046 }
1047 CGContextScaleCTM (context, 1, -1);
1048 CGContextTranslateCTM (context, 0, -port_height);
1049#if !USE_CG_DRAWING
1050 }
1051#endif
1052 CG_SET_FILL_COLOR_WITH_GC_FOREGROUND (context, gc);
1053 err = ATSUSetLayoutControls (text_layout,
1054 sizeof (tags) / sizeof (tags[0]),
1055 tags, sizes, values);
1056 if (err == noErr)
1057 {
1058 ATSUDrawText (text_layout,
1059 kATSUFromTextBeginning, kATSUToTextEnd,
1060 Long2Fix (x), Long2Fix (port_height - y));
1061 if (overstrike_p)
1062 ATSUDrawText (text_layout,
1063 kATSUFromTextBeginning, kATSUToTextEnd,
1064 Long2Fix (x + 1), Long2Fix (port_height - y));
1065 }
1085#if USE_CG_DRAWING 1066#if USE_CG_DRAWING
1086 mac_end_cg_clip (f); 1067 mac_end_cg_clip (f);
1087 context = NULL; 1068 context = NULL;
1088#else 1069#else
1089 CGContextSynchronize (context); 1070 CGContextSynchronize (context);
1090 QDEndCGContext (port, &context); 1071 QDEndCGContext (port, &context);
1091#endif 1072#endif
1092#if 0 1073#if 0
1093 /* This doesn't work on Mac OS X 10.1. */ 1074 /* This doesn't work on Mac OS X 10.1. */
1094 ATSUClearLayoutControls (text_layout, 1075 ATSUClearLayoutControls (text_layout,
1095 sizeof (tags) / sizeof (tags[0]), tags); 1076 sizeof (tags) / sizeof (tags[0]), tags);
1096#else 1077#else
1097 ATSUSetLayoutControls (text_layout, 1078 ATSUSetLayoutControls (text_layout,
1098 sizeof (tags) / sizeof (tags[0]), 1079 sizeof (tags) / sizeof (tags[0]),
1099 tags, sizes, values); 1080 tags, sizes, values);
1100#endif 1081#endif
1101 }
1102#endif /* MAC_OSX */
1103 } 1082 }
1104 else 1083#endif /* MAC_OSX */
1084}
1105#endif /* USE_ATSUI */ 1085#endif /* USE_ATSUI */
1106 {
1107#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
1108 UInt32 savedFlags;
1109 1086
1110 if (mac_use_core_graphics) 1087
1111 savedFlags = SwapQDTextFlags (kQDUseCGTextRendering); 1088static void
1089mac_draw_image_string_qd (f, gc, x, y, buf, nchars, bg_width,
1090 overstrike_p, bytes_per_char)
1091 struct frame *f;
1092 GC gc;
1093 int x, y;
1094 char *buf;
1095 int nchars, bg_width, overstrike_p, bytes_per_char;
1096{
1097#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
1098 UInt32 savedFlags;
1112#endif 1099#endif
1113#if USE_CG_DRAWING 1100
1114 mac_prepare_for_quickdraw (f); 1101 mac_begin_clip (f, gc);
1102#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
1103 if (mac_use_core_graphics)
1104 savedFlags = SwapQDTextFlags (kQDUseCGTextRendering);
1115#endif 1105#endif
1116 mac_begin_clip (gc); 1106 RGBForeColor (GC_FORE_COLOR (gc));
1117 RGBForeColor (GC_FORE_COLOR (gc));
1118#ifdef MAC_OS8 1107#ifdef MAC_OS8
1119 if (bg_width) 1108 if (bg_width)
1120 { 1109 {
1121 RGBBackColor (GC_BACK_COLOR (gc)); 1110 RGBBackColor (GC_BACK_COLOR (gc));
1122 TextMode (srcCopy); 1111 TextMode (srcCopy);
1123 } 1112 }
1124 else 1113 else
1125 TextMode (srcOr); 1114 TextMode (srcOr);
1126#else 1115#else
1127 /* We prefer not to use srcCopy text transfer mode on Mac OS X 1116 /* We prefer not to use srcCopy text transfer mode on Mac OS X
1128 because: 1117 because:
1129 - Screen is double-buffered. (In srcCopy mode, a text is 1118 - Screen is double-buffered. (In srcCopy mode, a text is drawn
1130 drawn into an offscreen graphics world first. So 1119 into an offscreen graphics world first. So performance gain
1131 performance gain cannot be expected.) 1120 cannot be expected.)
1132 - It lowers rendering quality. 1121 - It lowers rendering quality.
1133 - Some fonts leave garbage on cursor movement. */ 1122 - Some fonts leave garbage on cursor movement. */
1134 if (bg_width) 1123 if (bg_width)
1135 { 1124 {
1136 Rect r; 1125 Rect r;
1137 1126
1138 RGBBackColor (GC_BACK_COLOR (gc)); 1127 RGBBackColor (GC_BACK_COLOR (gc));
1139 SetRect (&r, x, y - FONT_BASE (GC_FONT (gc)), 1128 SetRect (&r, x, y - FONT_BASE (GC_FONT (gc)),
1140 x + bg_width, y + FONT_DESCENT (GC_FONT (gc))); 1129 x + bg_width, y + FONT_DESCENT (GC_FONT (gc)));
1141 EraseRect (&r); 1130 EraseRect (&r);
1142 } 1131 }
1143 TextMode (srcOr); 1132 TextMode (srcOr);
1144#endif 1133#endif
1145 TextFont (GC_FONT (gc)->mac_fontnum); 1134 TextFont (GC_FONT (gc)->mac_fontnum);
1146 TextSize (GC_FONT (gc)->mac_fontsize); 1135 TextSize (GC_FONT (gc)->mac_fontsize);
1147 TextFace (GC_FONT (gc)->mac_fontface); 1136 TextFace (GC_FONT (gc)->mac_fontface);
1148 MoveTo (x, y); 1137 MoveTo (x, y);
1138 DrawText (buf, 0, nchars * bytes_per_char);
1139 if (overstrike_p)
1140 {
1141 TextMode (srcOr);
1142 MoveTo (x + 1, y);
1149 DrawText (buf, 0, nchars * bytes_per_char); 1143 DrawText (buf, 0, nchars * bytes_per_char);
1150 if (overstrike_p) 1144 }
1151 { 1145 if (bg_width)
1152 TextMode (srcOr); 1146 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
1153 MoveTo (x + 1, y); 1147 mac_end_clip (gc);
1154 DrawText (buf, 0, nchars * bytes_per_char);
1155 }
1156 if (bg_width)
1157 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
1158 mac_end_clip (gc);
1159 1148
1160#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020 1149#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
1161 if (mac_use_core_graphics) 1150 if (mac_use_core_graphics)
1162 SwapQDTextFlags(savedFlags); 1151 SwapQDTextFlags(savedFlags);
1163#endif 1152#endif
1164 } 1153}
1154
1155
1156static INLINE void
1157mac_draw_string_common (f, gc, x, y, buf, nchars, bg_width,
1158 overstrike_p, bytes_per_char)
1159 struct frame *f;
1160 GC gc;
1161 int x, y;
1162 char *buf;
1163 int nchars, bg_width, overstrike_p, bytes_per_char;
1164{
1165#if USE_ATSUI
1166 if (GC_FONT (gc)->mac_style)
1167 mac_draw_image_string_atsui (f, gc, x, y, buf, nchars, bg_width,
1168 overstrike_p, bytes_per_char);
1169 else
1170#endif /* USE_ATSUI */
1171 mac_draw_image_string_qd (f, gc, x, y, buf, nchars, bg_width,
1172 overstrike_p, bytes_per_char);
1165} 1173}
1166 1174
1167 1175
@@ -1378,7 +1386,6 @@ mac_draw_image_string_cg (f, gc, x, y, buf, nchars, bg_width, overstrike_p)
1378 XChar2b *buf; 1386 XChar2b *buf;
1379 int nchars, bg_width, overstrike_p; 1387 int nchars, bg_width, overstrike_p;
1380{ 1388{
1381 CGrafPtr port;
1382 float port_height, gx, gy; 1389 float port_height, gx, gy;
1383 int i; 1390 int i;
1384 CGContextRef context; 1391 CGContextRef context;
@@ -1388,7 +1395,6 @@ mac_draw_image_string_cg (f, gc, x, y, buf, nchars, bg_width, overstrike_p)
1388 if (!mac_use_core_graphics || GC_FONT (gc)->cg_font == NULL) 1395 if (!mac_use_core_graphics || GC_FONT (gc)->cg_font == NULL)
1389 return 0; 1396 return 0;
1390 1397
1391 port = GetWindowPort (FRAME_MAC_WINDOW (f));
1392 port_height = FRAME_PIXEL_HEIGHT (f); 1398 port_height = FRAME_PIXEL_HEIGHT (f);
1393 gx = x; 1399 gx = x;
1394 gy = port_height - y; 1400 gy = port_height - y;
@@ -1409,7 +1415,7 @@ mac_draw_image_string_cg (f, gc, x, y, buf, nchars, bg_width, overstrike_p)
1409#if USE_CG_DRAWING 1415#if USE_CG_DRAWING
1410 context = mac_begin_cg_clip (f, gc); 1416 context = mac_begin_cg_clip (f, gc);
1411#else 1417#else
1412 QDBeginCGContext (port, &context); 1418 QDBeginCGContext (GetWindowPort (FRAME_MAC_WINDOW (f)), &context);
1413 if (gc->n_clip_rects || bg_width) 1419 if (gc->n_clip_rects || bg_width)
1414 { 1420 {
1415 CGContextTranslateCTM (context, 0, port_height); 1421 CGContextTranslateCTM (context, 0, port_height);
@@ -1449,7 +1455,7 @@ mac_draw_image_string_cg (f, gc, x, y, buf, nchars, bg_width, overstrike_p)
1449 } 1455 }
1450 } 1456 }
1451#if MAC_OS_X_VERSION_MIN_REQUIRED == 1020 1457#if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
1452 else 1458 else /* CGContextShowGlyphsWithAdvances == NULL */
1453#endif 1459#endif
1454#endif /* MAC_OS_X_VERSION_MAX_ALLOWED >= 1030 */ 1460#endif /* MAC_OS_X_VERSION_MAX_ALLOWED >= 1030 */
1455#if MAC_OS_X_VERSION_MAX_ALLOWED < 1030 || MAC_OS_X_VERSION_MIN_REQUIRED == 1020 1461#if MAC_OS_X_VERSION_MAX_ALLOWED < 1030 || MAC_OS_X_VERSION_MIN_REQUIRED == 1020
@@ -1467,7 +1473,7 @@ mac_draw_image_string_cg (f, gc, x, y, buf, nchars, bg_width, overstrike_p)
1467 mac_end_cg_clip (f); 1473 mac_end_cg_clip (f);
1468#else 1474#else
1469 CGContextSynchronize (context); 1475 CGContextSynchronize (context);
1470 QDEndCGContext (port, &context); 1476 QDEndCGContext (GetWindowPort (FRAME_MAC_WINDOW (f)), &context);
1471#endif 1477#endif
1472 1478
1473 return 1; 1479 return 1;
@@ -1489,7 +1495,7 @@ mac_copy_area (src, f, gc, src_x, src_y, width, height, dest_x, dest_y)
1489{ 1495{
1490 Rect src_r, dest_r; 1496 Rect src_r, dest_r;
1491 1497
1492 SetPortWindowPort (FRAME_MAC_WINDOW (f)); 1498 mac_begin_clip (f, gc);
1493 1499
1494 SetRect (&src_r, src_x, src_y, src_x + width, src_y + height); 1500 SetRect (&src_r, src_x, src_y, src_x + width, src_y + height);
1495 SetRect (&dest_r, dest_x, dest_y, dest_x + width, dest_y + height); 1501 SetRect (&dest_r, dest_x, dest_y, dest_x + width, dest_y + height);
@@ -1497,7 +1503,6 @@ mac_copy_area (src, f, gc, src_x, src_y, width, height, dest_x, dest_y)
1497 ForeColor (blackColor); 1503 ForeColor (blackColor);
1498 BackColor (whiteColor); 1504 BackColor (whiteColor);
1499 1505
1500 mac_begin_clip (gc);
1501 LockPixels (GetGWorldPixMap (src)); 1506 LockPixels (GetGWorldPixMap (src));
1502#if TARGET_API_MAC_CARBON 1507#if TARGET_API_MAC_CARBON
1503 { 1508 {
@@ -1515,9 +1520,10 @@ mac_copy_area (src, f, gc, src_x, src_y, width, height, dest_x, dest_y)
1515 &src_r, &dest_r, srcCopy, 0); 1520 &src_r, &dest_r, srcCopy, 0);
1516#endif /* not TARGET_API_MAC_CARBON */ 1521#endif /* not TARGET_API_MAC_CARBON */
1517 UnlockPixels (GetGWorldPixMap (src)); 1522 UnlockPixels (GetGWorldPixMap (src));
1518 mac_end_clip (gc);
1519 1523
1520 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f))); 1524 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
1525
1526 mac_end_clip (gc);
1521} 1527}
1522 1528
1523 1529
@@ -1533,7 +1539,7 @@ mac_copy_area_with_mask (src, mask, f, gc, src_x, src_y,
1533{ 1539{
1534 Rect src_r, dest_r; 1540 Rect src_r, dest_r;
1535 1541
1536 SetPortWindowPort (FRAME_MAC_WINDOW (f)); 1542 mac_begin_clip (f, gc);
1537 1543
1538 SetRect (&src_r, src_x, src_y, src_x + width, src_y + height); 1544 SetRect (&src_r, src_x, src_y, src_x + width, src_y + height);
1539 SetRect (&dest_r, dest_x, dest_y, dest_x + width, dest_y + height); 1545 SetRect (&dest_r, dest_x, dest_y, dest_x + width, dest_y + height);
@@ -1541,7 +1547,6 @@ mac_copy_area_with_mask (src, mask, f, gc, src_x, src_y,
1541 ForeColor (blackColor); 1547 ForeColor (blackColor);
1542 BackColor (whiteColor); 1548 BackColor (whiteColor);
1543 1549
1544 mac_begin_clip (gc);
1545 LockPixels (GetGWorldPixMap (src)); 1550 LockPixels (GetGWorldPixMap (src));
1546 LockPixels (GetGWorldPixMap (mask)); 1551 LockPixels (GetGWorldPixMap (mask));
1547#if TARGET_API_MAC_CARBON 1552#if TARGET_API_MAC_CARBON
@@ -1561,9 +1566,10 @@ mac_copy_area_with_mask (src, mask, f, gc, src_x, src_y,
1561#endif /* not TARGET_API_MAC_CARBON */ 1566#endif /* not TARGET_API_MAC_CARBON */
1562 UnlockPixels (GetGWorldPixMap (mask)); 1567 UnlockPixels (GetGWorldPixMap (mask));
1563 UnlockPixels (GetGWorldPixMap (src)); 1568 UnlockPixels (GetGWorldPixMap (src));
1564 mac_end_clip (gc);
1565 1569
1566 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f))); 1570 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
1571
1572 mac_end_clip (gc);
1567} 1573}
1568#endif /* !USE_CG_DRAWING */ 1574#endif /* !USE_CG_DRAWING */
1569 1575
@@ -1592,9 +1598,9 @@ mac_scroll_area (f, gc, src_x, src_y, width, height, dest_x, dest_y)
1592 DisposeRgn (dummy); 1598 DisposeRgn (dummy);
1593#else /* not TARGET_API_MAC_CARBON */ 1599#else /* not TARGET_API_MAC_CARBON */
1594 Rect src_r, dest_r; 1600 Rect src_r, dest_r;
1595 WindowPtr w = FRAME_MAC_WINDOW (f); 1601 WindowRef w = FRAME_MAC_WINDOW (f);
1596 1602
1597 SetPort (w); 1603 mac_begin_clip (f, gc);
1598 1604
1599 SetRect (&src_r, src_x, src_y, src_x + width, src_y + height); 1605 SetRect (&src_r, src_x, src_y, src_x + width, src_y + height);
1600 SetRect (&dest_r, dest_x, dest_y, dest_x + width, dest_y + height); 1606 SetRect (&dest_r, dest_x, dest_y, dest_x + width, dest_y + height);
@@ -1603,11 +1609,11 @@ mac_scroll_area (f, gc, src_x, src_y, width, height, dest_x, dest_y)
1603 color mapping in CopyBits. Otherwise, it will be slow. */ 1609 color mapping in CopyBits. Otherwise, it will be slow. */
1604 ForeColor (blackColor); 1610 ForeColor (blackColor);
1605 BackColor (whiteColor); 1611 BackColor (whiteColor);
1606 mac_begin_clip (gc);
1607 CopyBits (&(w->portBits), &(w->portBits), &src_r, &dest_r, srcCopy, 0); 1612 CopyBits (&(w->portBits), &(w->portBits), &src_r, &dest_r, srcCopy, 0);
1608 mac_end_clip (gc);
1609 1613
1610 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f))); 1614 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
1615
1616 mac_end_clip (gc);
1611#endif /* not TARGET_API_MAC_CARBON */ 1617#endif /* not TARGET_API_MAC_CARBON */
1612} 1618}
1613 1619
@@ -1852,7 +1858,7 @@ mac_reset_clip_rectangles (display, gc)
1852void 1858void
1853XSetWindowBackground (display, w, color) 1859XSetWindowBackground (display, w, color)
1854 Display *display; 1860 Display *display;
1855 WindowPtr w; 1861 WindowRef w;
1856 unsigned long color; 1862 unsigned long color;
1857{ 1863{
1858#if !TARGET_API_MAC_CARBON 1864#if !TARGET_API_MAC_CARBON
@@ -4375,7 +4381,7 @@ x_detect_focus_change (dpyinfo, event, bufp)
4375{ 4381{
4376 struct frame *frame; 4382 struct frame *frame;
4377 4383
4378 frame = mac_window_to_frame ((WindowPtr) event->message); 4384 frame = mac_window_to_frame ((WindowRef) event->message);
4379 if (! frame) 4385 if (! frame)
4380 return; 4386 return;
4381 4387
@@ -4615,8 +4621,14 @@ XTmouse_position (fp, insist, bar_window, part, x, y, time)
4615 the frame are divided into. */ 4621 the frame are divided into. */
4616 Point mouse_pos; 4622 Point mouse_pos;
4617 4623
4624#if TARGET_API_MAC_CARBON
4625 GetGlobalMouse (&mouse_pos);
4626 mouse_pos.h -= f1->left_pos + FRAME_OUTER_TO_INNER_DIFF_X (f1);
4627 mouse_pos.v -= f1->top_pos + FRAME_OUTER_TO_INNER_DIFF_Y (f1);
4628#else
4618 SetPortWindowPort (FRAME_MAC_WINDOW (f1)); 4629 SetPortWindowPort (FRAME_MAC_WINDOW (f1));
4619 GetMouse (&mouse_pos); 4630 GetMouse (&mouse_pos);
4631#endif
4620 remember_mouse_glyph (f1, mouse_pos.h, mouse_pos.v, 4632 remember_mouse_glyph (f1, mouse_pos.h, mouse_pos.v,
4621 &last_mouse_glyph); 4633 &last_mouse_glyph);
4622 last_mouse_glyph_frame = f1; 4634 last_mouse_glyph_frame = f1;
@@ -4646,14 +4658,14 @@ static OSStatus set_scroll_bar_timer P_ ((EventTimerInterval));
4646static int control_part_code_to_scroll_bar_part P_ ((ControlPartCode)); 4658static int control_part_code_to_scroll_bar_part P_ ((ControlPartCode));
4647static void construct_scroll_bar_click P_ ((struct scroll_bar *, int, 4659static void construct_scroll_bar_click P_ ((struct scroll_bar *, int,
4648 struct input_event *)); 4660 struct input_event *));
4649static OSStatus get_control_part_bounds P_ ((ControlHandle, ControlPartCode, 4661static OSStatus get_control_part_bounds P_ ((ControlRef, ControlPartCode,
4650 Rect *)); 4662 Rect *));
4651static void x_scroll_bar_handle_press P_ ((struct scroll_bar *, 4663static void x_scroll_bar_handle_press P_ ((struct scroll_bar *,
4652 ControlPartCode, Point, 4664 ControlPartCode, Point,
4653 struct input_event *)); 4665 struct input_event *));
4654static void x_scroll_bar_handle_release P_ ((struct scroll_bar *, 4666static void x_scroll_bar_handle_release P_ ((struct scroll_bar *,
4655 struct input_event *)); 4667 struct input_event *));
4656static void x_scroll_bar_handle_drag P_ ((WindowPtr, struct scroll_bar *, 4668static void x_scroll_bar_handle_drag P_ ((WindowRef, struct scroll_bar *,
4657 Point, struct input_event *)); 4669 Point, struct input_event *));
4658static void x_set_toolkit_scroll_bar_thumb P_ ((struct scroll_bar *, 4670static void x_set_toolkit_scroll_bar_thumb P_ ((struct scroll_bar *,
4659 int, int, int)); 4671 int, int, int));
@@ -4746,7 +4758,7 @@ construct_scroll_bar_click (bar, part, bufp)
4746 4758
4747static OSStatus 4759static OSStatus
4748get_control_part_bounds (ch, part_code, rect) 4760get_control_part_bounds (ch, part_code, rect)
4749 ControlHandle ch; 4761 ControlRef ch;
4750 ControlPartCode part_code; 4762 ControlPartCode part_code;
4751 Rect *rect; 4763 Rect *rect;
4752{ 4764{
@@ -4776,7 +4788,7 @@ x_scroll_bar_handle_press (bar, part_code, mouse_pos, bufp)
4776 if (part != scroll_bar_handle) 4788 if (part != scroll_bar_handle)
4777 { 4789 {
4778 construct_scroll_bar_click (bar, part, bufp); 4790 construct_scroll_bar_click (bar, part, bufp);
4779 HiliteControl (SCROLL_BAR_CONTROL_HANDLE (bar), part_code); 4791 HiliteControl (SCROLL_BAR_CONTROL_REF (bar), part_code);
4780 set_scroll_bar_timer (SCROLL_BAR_FIRST_DELAY); 4792 set_scroll_bar_timer (SCROLL_BAR_FIRST_DELAY);
4781 bar->dragging = Qnil; 4793 bar->dragging = Qnil;
4782 } 4794 }
@@ -4784,7 +4796,7 @@ x_scroll_bar_handle_press (bar, part_code, mouse_pos, bufp)
4784 { 4796 {
4785 Rect r; 4797 Rect r;
4786 4798
4787 get_control_part_bounds (SCROLL_BAR_CONTROL_HANDLE (bar), 4799 get_control_part_bounds (SCROLL_BAR_CONTROL_REF (bar),
4788 kControlIndicatorPart, &r); 4800 kControlIndicatorPart, &r);
4789 XSETINT (bar->dragging, - (mouse_pos.v - r.top) - 1); 4801 XSETINT (bar->dragging, - (mouse_pos.v - r.top) - 1);
4790 } 4802 }
@@ -4802,7 +4814,7 @@ x_scroll_bar_handle_release (bar, bufp)
4802 || (INTEGERP (bar->dragging) && XINT (bar->dragging) >= 0)) 4814 || (INTEGERP (bar->dragging) && XINT (bar->dragging) >= 0))
4803 construct_scroll_bar_click (bar, scroll_bar_end_scroll, bufp); 4815 construct_scroll_bar_click (bar, scroll_bar_end_scroll, bufp);
4804 4816
4805 HiliteControl (SCROLL_BAR_CONTROL_HANDLE (bar), 0); 4817 HiliteControl (SCROLL_BAR_CONTROL_REF (bar), 0);
4806 set_scroll_bar_timer (kEventDurationForever); 4818 set_scroll_bar_timer (kEventDurationForever);
4807 4819
4808 last_scroll_bar_part = -1; 4820 last_scroll_bar_part = -1;
@@ -4812,19 +4824,19 @@ x_scroll_bar_handle_release (bar, bufp)
4812 4824
4813static void 4825static void
4814x_scroll_bar_handle_drag (win, bar, mouse_pos, bufp) 4826x_scroll_bar_handle_drag (win, bar, mouse_pos, bufp)
4815 WindowPtr win; 4827 WindowRef win;
4816 struct scroll_bar *bar; 4828 struct scroll_bar *bar;
4817 Point mouse_pos; 4829 Point mouse_pos;
4818 struct input_event *bufp; 4830 struct input_event *bufp;
4819{ 4831{
4820 ControlHandle ch = SCROLL_BAR_CONTROL_HANDLE (bar); 4832 ControlRef ch = SCROLL_BAR_CONTROL_REF (bar);
4821 4833
4822 if (last_scroll_bar_part == scroll_bar_handle) 4834 if (last_scroll_bar_part == scroll_bar_handle)
4823 { 4835 {
4824 int top, top_range; 4836 int top, top_range;
4825 Rect r; 4837 Rect r;
4826 4838
4827 get_control_part_bounds (SCROLL_BAR_CONTROL_HANDLE (bar), 4839 get_control_part_bounds (SCROLL_BAR_CONTROL_REF (bar),
4828 kControlIndicatorPart, &r); 4840 kControlIndicatorPart, &r);
4829 4841
4830 if (INTEGERP (bar->dragging) && XINT (bar->dragging) < 0) 4842 if (INTEGERP (bar->dragging) && XINT (bar->dragging) < 0)
@@ -4872,13 +4884,13 @@ x_scroll_bar_handle_drag (win, bar, mouse_pos, bufp)
4872 } 4884 }
4873 4885
4874 if (unhilite_p) 4886 if (unhilite_p)
4875 HiliteControl (SCROLL_BAR_CONTROL_HANDLE (bar), 0); 4887 HiliteControl (SCROLL_BAR_CONTROL_REF (bar), 0);
4876 else if (part != last_scroll_bar_part 4888 else if (part != last_scroll_bar_part
4877 || scroll_bar_timer_event_posted_p) 4889 || scroll_bar_timer_event_posted_p)
4878 { 4890 {
4879 construct_scroll_bar_click (bar, part, bufp); 4891 construct_scroll_bar_click (bar, part, bufp);
4880 last_scroll_bar_part = part; 4892 last_scroll_bar_part = part;
4881 HiliteControl (SCROLL_BAR_CONTROL_HANDLE (bar), part_code); 4893 HiliteControl (SCROLL_BAR_CONTROL_REF (bar), part_code);
4882 set_scroll_bar_timer (SCROLL_BAR_CONTINUOUS_DELAY); 4894 set_scroll_bar_timer (SCROLL_BAR_CONTINUOUS_DELAY);
4883 } 4895 }
4884 } 4896 }
@@ -4892,7 +4904,7 @@ x_set_toolkit_scroll_bar_thumb (bar, portion, position, whole)
4892 struct scroll_bar *bar; 4904 struct scroll_bar *bar;
4893 int portion, position, whole; 4905 int portion, position, whole;
4894{ 4906{
4895 ControlHandle ch = SCROLL_BAR_CONTROL_HANDLE (bar); 4907 ControlRef ch = SCROLL_BAR_CONTROL_REF (bar);
4896 int value, viewsize, maximum; 4908 int value, viewsize, maximum;
4897 4909
4898 if (XINT (bar->track_height) == 0) 4910 if (XINT (bar->track_height) == 0)
@@ -4951,7 +4963,7 @@ x_scroll_bar_create (w, top, left, width, height, disp_top, disp_height)
4951 struct scroll_bar *bar 4963 struct scroll_bar *bar
4952 = XSCROLL_BAR (Fmake_vector (make_number (SCROLL_BAR_VEC_SIZE), Qnil)); 4964 = XSCROLL_BAR (Fmake_vector (make_number (SCROLL_BAR_VEC_SIZE), Qnil));
4953 Rect r; 4965 Rect r;
4954 ControlHandle ch; 4966 ControlRef ch;
4955 4967
4956 BLOCK_INPUT; 4968 BLOCK_INPUT;
4957 4969
@@ -4975,7 +4987,7 @@ x_scroll_bar_create (w, top, left, width, height, disp_top, disp_height)
4975 ch = NewControl (FRAME_MAC_WINDOW (f), &r, "\p", width < disp_height, 4987 ch = NewControl (FRAME_MAC_WINDOW (f), &r, "\p", width < disp_height,
4976 0, 0, 0, scrollBarProc, (long) bar); 4988 0, 0, 0, scrollBarProc, (long) bar);
4977#endif 4989#endif
4978 SET_SCROLL_BAR_CONTROL_HANDLE (bar, ch); 4990 SET_SCROLL_BAR_CONTROL_REF (bar, ch);
4979 4991
4980 XSETWINDOW (bar->window, w); 4992 XSETWINDOW (bar->window, w);
4981 XSETINT (bar->top, top); 4993 XSETINT (bar->top, top);
@@ -5025,7 +5037,7 @@ x_scroll_bar_set_handle (bar, start, end, rebuild)
5025 int rebuild; 5037 int rebuild;
5026{ 5038{
5027 int dragging = ! NILP (bar->dragging); 5039 int dragging = ! NILP (bar->dragging);
5028 ControlHandle ch = SCROLL_BAR_CONTROL_HANDLE (bar); 5040 ControlRef ch = SCROLL_BAR_CONTROL_REF (bar);
5029 FRAME_PTR f = XFRAME (WINDOW_FRAME (XWINDOW (bar->window))); 5041 FRAME_PTR f = XFRAME (WINDOW_FRAME (XWINDOW (bar->window)));
5030 int top_range = VERTICAL_SCROLL_BAR_TOP_RANGE (f, XINT (bar->height)); 5042 int top_range = VERTICAL_SCROLL_BAR_TOP_RANGE (f, XINT (bar->height));
5031 int length = end - start; 5043 int length = end - start;
@@ -5094,7 +5106,7 @@ x_scroll_bar_remove (bar)
5094 mac_prepare_for_quickdraw (f); 5106 mac_prepare_for_quickdraw (f);
5095#endif 5107#endif
5096 /* Destroy the Mac scroll bar control */ 5108 /* Destroy the Mac scroll bar control */
5097 DisposeControl (SCROLL_BAR_CONTROL_HANDLE (bar)); 5109 DisposeControl (SCROLL_BAR_CONTROL_REF (bar));
5098 5110
5099 /* Disassociate this scroll bar from its window. */ 5111 /* Disassociate this scroll bar from its window. */
5100 XWINDOW (bar->window)->vertical_scroll_bar = Qnil; 5112 XWINDOW (bar->window)->vertical_scroll_bar = Qnil;
@@ -5172,10 +5184,10 @@ XTset_vertical_scroll_bar (w, portion, whole, position)
5172 else 5184 else
5173 { 5185 {
5174 /* It may just need to be moved and resized. */ 5186 /* It may just need to be moved and resized. */
5175 ControlHandle ch; 5187 ControlRef ch;
5176 5188
5177 bar = XSCROLL_BAR (w->vertical_scroll_bar); 5189 bar = XSCROLL_BAR (w->vertical_scroll_bar);
5178 ch = SCROLL_BAR_CONTROL_HANDLE (bar); 5190 ch = SCROLL_BAR_CONTROL_REF (bar);
5179 5191
5180 BLOCK_INPUT; 5192 BLOCK_INPUT;
5181 5193
@@ -5231,7 +5243,7 @@ XTset_vertical_scroll_bar (w, portion, whole, position)
5231 } 5243 }
5232 else 5244 else
5233 { 5245 {
5234 ControlHandle ch = SCROLL_BAR_CONTROL_HANDLE (bar); 5246 ControlRef ch = SCROLL_BAR_CONTROL_REF (bar);
5235 Rect r0, r1; 5247 Rect r0, r1;
5236 5248
5237 BLOCK_INPUT; 5249 BLOCK_INPUT;
@@ -5508,19 +5520,24 @@ x_scroll_bar_report_motion (fp, bar_window, part, x, y, time)
5508 unsigned long *time; 5520 unsigned long *time;
5509{ 5521{
5510 struct scroll_bar *bar = XSCROLL_BAR (last_mouse_scroll_bar); 5522 struct scroll_bar *bar = XSCROLL_BAR (last_mouse_scroll_bar);
5511 ControlHandle ch = SCROLL_BAR_CONTROL_HANDLE (bar); 5523 ControlRef ch = SCROLL_BAR_CONTROL_REF (bar);
5512#if TARGET_API_MAC_CARBON 5524#if TARGET_API_MAC_CARBON
5513 WindowPtr wp = GetControlOwner (ch); 5525 WindowRef wp = GetControlOwner (ch);
5514#else 5526#else
5515 WindowPtr wp = (*ch)->contrlOwner; 5527 WindowRef wp = (*ch)->contrlOwner;
5516#endif 5528#endif
5517 Point mouse_pos; 5529 Point mouse_pos;
5518 struct frame *f = mac_window_to_frame (wp); 5530 struct frame *f = mac_window_to_frame (wp);
5519 int win_y, top_range; 5531 int win_y, top_range;
5520 5532
5533#if TARGET_API_MAC_CARBON
5534 GetGlobalMouse (&mouse_pos);
5535 mouse_pos.h -= f->left_pos + FRAME_OUTER_TO_INNER_DIFF_X (f);
5536 mouse_pos.v -= f->top_pos + FRAME_OUTER_TO_INNER_DIFF_Y (f);
5537#else
5521 SetPortWindowPort (wp); 5538 SetPortWindowPort (wp);
5522
5523 GetMouse (&mouse_pos); 5539 GetMouse (&mouse_pos);
5540#endif
5524 5541
5525 win_y = mouse_pos.v - XINT (bar->top); 5542 win_y = mouse_pos.v - XINT (bar->top);
5526 top_range = VERTICAL_SCROLL_BAR_TOP_RANGE (f, XINT (bar->height)); 5543 top_range = VERTICAL_SCROLL_BAR_TOP_RANGE (f, XINT (bar->height));
@@ -6165,9 +6182,7 @@ x_set_offset (f, xoff, yoff, change_gravity)
6165 ConstrainWindowToScreen (FRAME_MAC_WINDOW (f), kWindowTitleBarRgn, 6182 ConstrainWindowToScreen (FRAME_MAC_WINDOW (f), kWindowTitleBarRgn,
6166 kWindowConstrainMoveRegardlessOfFit 6183 kWindowConstrainMoveRegardlessOfFit
6167 | kWindowConstrainAllowPartial, NULL, NULL); 6184 | kWindowConstrainAllowPartial, NULL, NULL);
6168#if USE_CARBON_EVENTS
6169 if (!NILP (tip_frame) && XFRAME (tip_frame) == f) 6185 if (!NILP (tip_frame) && XFRAME (tip_frame) == f)
6170#endif
6171 mac_handle_origin_change (f); 6186 mac_handle_origin_change (f);
6172#else 6187#else
6173 { 6188 {
@@ -6243,7 +6258,7 @@ x_set_window_size (f, change_gravity, cols, rows)
6243 6258
6244 SizeWindow (FRAME_MAC_WINDOW (f), pixelwidth, pixelheight, 0); 6259 SizeWindow (FRAME_MAC_WINDOW (f), pixelwidth, pixelheight, 0);
6245 6260
6246#if USE_CARBON_EVENTS 6261#if TARGET_API_MAC_CARBON
6247 if (!NILP (tip_frame) && f == XFRAME (tip_frame)) 6262 if (!NILP (tip_frame) && f == XFRAME (tip_frame))
6248#endif 6263#endif
6249 mac_handle_size_change (f, pixelwidth, pixelheight); 6264 mac_handle_size_change (f, pixelwidth, pixelheight);
@@ -6290,17 +6305,11 @@ x_set_mouse_pixel_position (f, pix_x, pix_y)
6290 int pix_x, pix_y; 6305 int pix_x, pix_y;
6291{ 6306{
6292#ifdef MAC_OSX 6307#ifdef MAC_OSX
6293 Point p; 6308 pix_x += f->left_pos + FRAME_OUTER_TO_INNER_DIFF_X (f);
6294 CGPoint point; 6309 pix_y += f->top_pos + FRAME_OUTER_TO_INNER_DIFF_Y (f);
6295 6310
6296 BLOCK_INPUT; 6311 BLOCK_INPUT;
6297 SetPortWindowPort (FRAME_MAC_WINDOW (f)); 6312 CGWarpMouseCursorPosition (CGPointMake (pix_x, pix_y));
6298 p.h = pix_x;
6299 p.v = pix_y;
6300 LocalToGlobal (&p);
6301 point.x = p.h;
6302 point.y = p.v;
6303 CGWarpMouseCursorPosition (point);
6304 UNBLOCK_INPUT; 6313 UNBLOCK_INPUT;
6305#else 6314#else
6306#if 0 /* MAC_TODO: LMSetMouseLocation and CursorDeviceMoveTo are non-Carbon */ 6315#if 0 /* MAC_TODO: LMSetMouseLocation and CursorDeviceMoveTo are non-Carbon */
@@ -6382,7 +6391,7 @@ static void
6382mac_handle_visibility_change (f) 6391mac_handle_visibility_change (f)
6383 struct frame *f; 6392 struct frame *f;
6384{ 6393{
6385 WindowPtr wp = FRAME_MAC_WINDOW (f); 6394 WindowRef wp = FRAME_MAC_WINDOW (f);
6386 int visible = 0, iconified = 0; 6395 int visible = 0, iconified = 0;
6387 struct input_event buf; 6396 struct input_event buf;
6388 6397
@@ -6450,32 +6459,7 @@ x_make_frame_visible (f)
6450 before the window gets really visible. */ 6459 before the window gets really visible. */
6451 if (! FRAME_ICONIFIED_P (f) 6460 if (! FRAME_ICONIFIED_P (f)
6452 && ! f->output_data.mac->asked_for_visible) 6461 && ! f->output_data.mac->asked_for_visible)
6453 { 6462 x_set_offset (f, f->left_pos, f->top_pos, 0);
6454#if TARGET_API_MAC_CARBON
6455 if (!(FRAME_SIZE_HINTS (f)->flags & (USPosition | PPosition)))
6456 {
6457 struct frame *sf = SELECTED_FRAME ();
6458 if (!FRAME_MAC_P (sf))
6459 RepositionWindow (FRAME_MAC_WINDOW (f), NULL,
6460 kWindowCenterOnMainScreen);
6461 else
6462 RepositionWindow (FRAME_MAC_WINDOW (f),
6463 FRAME_MAC_WINDOW (sf),
6464#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
6465 kWindowCascadeStartAtParentWindowScreen
6466#else
6467 kWindowCascadeOnParentWindowScreen
6468#endif
6469 );
6470#if USE_CARBON_EVENTS
6471 if (!NILP (tip_frame) && f == XFRAME (tip_frame))
6472#endif
6473 mac_handle_origin_change (f);
6474 }
6475 else
6476#endif
6477 x_set_offset (f, f->left_pos, f->top_pos, 0);
6478 }
6479 6463
6480 f->output_data.mac->asked_for_visible = 1; 6464 f->output_data.mac->asked_for_visible = 1;
6481 6465
@@ -6549,18 +6533,20 @@ x_make_frame_invisible (f)
6549 6533
6550 BLOCK_INPUT; 6534 BLOCK_INPUT;
6551 6535
6536#if !TARGET_API_MAC_CARBON
6552 /* Before unmapping the window, update the WM_SIZE_HINTS property to claim 6537 /* Before unmapping the window, update the WM_SIZE_HINTS property to claim
6553 that the current position of the window is user-specified, rather than 6538 that the current position of the window is user-specified, rather than
6554 program-specified, so that when the window is mapped again, it will be 6539 program-specified, so that when the window is mapped again, it will be
6555 placed at the same location, without forcing the user to position it 6540 placed at the same location, without forcing the user to position it
6556 by hand again (they have already done that once for this window.) */ 6541 by hand again (they have already done that once for this window.) */
6557 x_wm_set_size_hint (f, (long) 0, 1); 6542 x_wm_set_size_hint (f, (long) 0, 1);
6543#endif
6558 6544
6559 HideWindow (FRAME_MAC_WINDOW (f)); 6545 HideWindow (FRAME_MAC_WINDOW (f));
6560 6546
6561 UNBLOCK_INPUT; 6547 UNBLOCK_INPUT;
6562 6548
6563#if !USE_CARBON_EVENTS 6549#if !TARGET_API_MAC_CARBON
6564 mac_handle_visibility_change (f); 6550 mac_handle_visibility_change (f);
6565#endif 6551#endif
6566} 6552}
@@ -6599,7 +6585,7 @@ x_iconify_frame (f)
6599 if (err != noErr) 6585 if (err != noErr)
6600 error ("Can't notify window manager of iconification"); 6586 error ("Can't notify window manager of iconification");
6601 6587
6602#if !USE_CARBON_EVENTS 6588#if !TARGET_API_MAC_CARBON
6603 mac_handle_visibility_change (f); 6589 mac_handle_visibility_change (f);
6604#endif 6590#endif
6605} 6591}
@@ -6612,7 +6598,7 @@ x_free_frame_resources (f)
6612 struct frame *f; 6598 struct frame *f;
6613{ 6599{
6614 struct mac_display_info *dpyinfo = FRAME_MAC_DISPLAY_INFO (f); 6600 struct mac_display_info *dpyinfo = FRAME_MAC_DISPLAY_INFO (f);
6615 WindowPtr wp = FRAME_MAC_WINDOW (f); 6601 WindowRef wp = FRAME_MAC_WINDOW (f);
6616 6602
6617 BLOCK_INPUT; 6603 BLOCK_INPUT;
6618 6604
@@ -8749,16 +8735,93 @@ x_find_ccl_program (fontp)
8749 possible. */ 8735 possible. */
8750static int font_panel_shown_p = 0; 8736static int font_panel_shown_p = 0;
8751 8737
8738extern Lisp_Object Qfont;
8739static Lisp_Object Qpanel_closed, Qselection;
8740
8741static OSStatus mac_store_event_ref_as_apple_event P_ ((AEEventClass, AEEventID,
8742 Lisp_Object,
8743 Lisp_Object,
8744 EventRef, UInt32,
8745 const EventParamName *,
8746 const EventParamType *));
8747
8752int 8748int
8753mac_font_panel_visible_p () 8749mac_font_panel_visible_p ()
8754{ 8750{
8755 return font_panel_shown_p && FPIsFontPanelVisible (); 8751 return font_panel_shown_p && FPIsFontPanelVisible ();
8756} 8752}
8757 8753
8754static pascal OSStatus
8755mac_handle_font_event (next_handler, event, data)
8756 EventHandlerCallRef next_handler;
8757 EventRef event;
8758 void *data;
8759{
8760 OSStatus result, err;
8761 Lisp_Object id_key;
8762 int num_params;
8763 const EventParamName *names;
8764 const EventParamType *types;
8765 static const EventParamName names_sel[] = {kEventParamATSUFontID,
8766 kEventParamATSUFontSize,
8767 kEventParamFMFontFamily,
8768 kEventParamFMFontSize,
8769 kEventParamFontColor};
8770 static const EventParamType types_sel[] = {typeATSUFontID,
8771 typeATSUSize,
8772 typeFMFontFamily,
8773 typeFMFontSize,
8774 typeFontColor};
8775
8776 result = CallNextEventHandler (next_handler, event);
8777 if (result != eventNotHandledErr)
8778 return result;
8779
8780 switch (GetEventKind (event))
8781 {
8782 case kEventFontPanelClosed:
8783 id_key = Qpanel_closed;
8784 num_params = 0;
8785 names = NULL;
8786 types = NULL;
8787 break;
8788
8789 case kEventFontSelection:
8790 id_key = Qselection;
8791 num_params = sizeof (names_sel) / sizeof (names_sel[0]);
8792 names = names_sel;
8793 types = types_sel;
8794 break;
8795 }
8796
8797 err = mac_store_event_ref_as_apple_event (0, 0, Qfont, id_key,
8798 event, num_params,
8799 names, types);
8800 if (err == noErr)
8801 result = noErr;
8802
8803 return result;
8804}
8805
8758OSStatus 8806OSStatus
8759mac_show_hide_font_panel () 8807mac_show_hide_font_panel ()
8760{ 8808{
8761 font_panel_shown_p = 1; 8809 if (!font_panel_shown_p)
8810 {
8811 OSStatus err;
8812
8813 static const EventTypeSpec specs[] =
8814 {{kEventClassFont, kEventFontPanelClosed},
8815 {kEventClassFont, kEventFontSelection}};
8816
8817 err = InstallApplicationEventHandler (mac_handle_font_event,
8818 GetEventTypeCount (specs),
8819 specs, NULL, NULL);
8820 if (err != noErr)
8821 return err;
8822
8823 font_panel_shown_p = 1;
8824 }
8762 8825
8763 return FPShowHideFontPanel (); 8826 return FPShowHideFontPanel ();
8764} 8827}
@@ -8874,7 +8937,7 @@ Lisp_Object Vmac_function_modifier;
8874 a three button mouse */ 8937 a three button mouse */
8875Lisp_Object Vmac_emulate_three_button_mouse; 8938Lisp_Object Vmac_emulate_three_button_mouse;
8876 8939
8877#if USE_CARBON_EVENTS 8940#if TARGET_API_MAC_CARBON
8878/* Non-zero if the mouse wheel button (i.e. button 4) should map to 8941/* Non-zero if the mouse wheel button (i.e. button 4) should map to
8879 mouse-2, instead of mouse-3. */ 8942 mouse-2, instead of mouse-3. */
8880int mac_wheel_button_is_mouse_2; 8943int mac_wheel_button_is_mouse_2;
@@ -8899,16 +8962,12 @@ static int mac_screen_config_changed = 0;
8899Point saved_menu_event_location; 8962Point saved_menu_event_location;
8900 8963
8901/* Apple Events */ 8964/* Apple Events */
8902#if USE_CARBON_EVENTS 8965#if TARGET_API_MAC_CARBON
8903static Lisp_Object Qhi_command; 8966static Lisp_Object Qhi_command;
8904#ifdef MAC_OSX 8967#ifdef MAC_OSX
8905extern Lisp_Object Qwindow; 8968extern Lisp_Object Qwindow;
8906static Lisp_Object Qtoolbar_switch_mode; 8969static Lisp_Object Qtoolbar_switch_mode;
8907#endif 8970#endif
8908#if USE_MAC_FONT_PANEL
8909extern Lisp_Object Qfont;
8910static Lisp_Object Qpanel_closed, Qselection;
8911#endif
8912#if USE_MAC_TSM 8971#if USE_MAC_TSM
8913static TSMDocumentID tsm_document_id; 8972static TSMDocumentID tsm_document_id;
8914static Lisp_Object Qtext_input; 8973static Lisp_Object Qtext_input;
@@ -8920,7 +8979,7 @@ static Lisp_Object saved_ts_script_language_on_focus;
8920static ScriptLanguageRecord saved_ts_language; 8979static ScriptLanguageRecord saved_ts_language;
8921static Component saved_ts_component; 8980static Component saved_ts_component;
8922#endif 8981#endif
8923#endif 8982#endif /* TARGET_API_MAC_CARBON */
8924extern int mac_ready_for_apple_events; 8983extern int mac_ready_for_apple_events;
8925extern Lisp_Object Qundefined; 8984extern Lisp_Object Qundefined;
8926extern void init_apple_event_handler P_ ((void)); 8985extern void init_apple_event_handler P_ ((void));
@@ -8933,20 +8992,15 @@ extern OSErr init_coercion_handler P_ ((void));
8933extern OSErr install_drag_handler P_ ((WindowRef)); 8992extern OSErr install_drag_handler P_ ((WindowRef));
8934extern void remove_drag_handler P_ ((WindowRef)); 8993extern void remove_drag_handler P_ ((WindowRef));
8935 8994
8995#if TARGET_API_MAC_CARBON
8936/* Showing help echo string during menu tracking */ 8996/* Showing help echo string during menu tracking */
8937extern OSStatus install_menu_target_item_handler P_ ((WindowPtr)); 8997extern OSStatus install_menu_target_item_handler P_ ((void));
8938 8998
8939#if USE_CARBON_EVENTS
8940#ifdef MAC_OSX 8999#ifdef MAC_OSX
8941extern void init_service_handler (); 9000extern OSStatus install_service_handler ();
8942static Lisp_Object Qservice, Qpaste, Qperform; 9001static Lisp_Object Qservice, Qpaste, Qperform;
8943#endif 9002#endif
8944
8945/* Window Event Handler */
8946static pascal OSStatus mac_handle_window_event (EventHandlerCallRef,
8947 EventRef, void *);
8948#endif 9003#endif
8949OSStatus install_window_handler (WindowPtr);
8950 9004
8951extern void init_emacs_passwd_dir (); 9005extern void init_emacs_passwd_dir ();
8952extern int emacs_main (int, char **, char **); 9006extern int emacs_main (int, char **, char **);
@@ -9030,7 +9084,7 @@ static const unsigned char fn_keycode_to_keycode_table[] = {
9030#endif /* MAC_OSX */ 9084#endif /* MAC_OSX */
9031 9085
9032static int 9086static int
9033#if USE_CARBON_EVENTS 9087#if TARGET_API_MAC_CARBON
9034mac_to_emacs_modifiers (UInt32 mods) 9088mac_to_emacs_modifiers (UInt32 mods)
9035#else 9089#else
9036mac_to_emacs_modifiers (EventModifiers mods) 9090mac_to_emacs_modifiers (EventModifiers mods)
@@ -9139,17 +9193,19 @@ mac_quit_char_key_p (modifiers, key_code)
9139} 9193}
9140#endif 9194#endif
9141 9195
9142#if USE_CARBON_EVENTS 9196#if TARGET_API_MAC_CARBON
9143/* Obtains the event modifiers from the event ref and then calls 9197/* Obtains the event modifiers from the event ref and then calls
9144 mac_to_emacs_modifiers. */ 9198 mac_to_emacs_modifiers. */
9145static int 9199static int
9146mac_event_to_emacs_modifiers (EventRef eventRef) 9200mac_event_to_emacs_modifiers (EventRef eventRef)
9147{ 9201{
9148 UInt32 mods = 0; 9202 UInt32 mods = 0, class;
9203
9149 GetEventParameter (eventRef, kEventParamKeyModifiers, typeUInt32, NULL, 9204 GetEventParameter (eventRef, kEventParamKeyModifiers, typeUInt32, NULL,
9150 sizeof (UInt32), NULL, &mods); 9205 sizeof (UInt32), NULL, &mods);
9206 class = GetEventClass (eventRef);
9151 if (!NILP (Vmac_emulate_three_button_mouse) && 9207 if (!NILP (Vmac_emulate_three_button_mouse) &&
9152 GetEventClass(eventRef) == kEventClassMouse) 9208 (class == kEventClassMouse || class == kEventClassCommand))
9153 { 9209 {
9154 mods &= ~(optionKey | cmdKey); 9210 mods &= ~(optionKey | cmdKey);
9155 } 9211 }
@@ -9288,7 +9344,7 @@ static void
9288do_get_menus (void) 9344do_get_menus (void)
9289{ 9345{
9290 Handle menubar_handle; 9346 Handle menubar_handle;
9291 MenuHandle menu_handle; 9347 MenuRef menu;
9292 9348
9293 menubar_handle = GetNewMBar (128); 9349 menubar_handle = GetNewMBar (128);
9294 if(menubar_handle == NULL) 9350 if(menubar_handle == NULL)
@@ -9297,9 +9353,9 @@ do_get_menus (void)
9297 DrawMenuBar (); 9353 DrawMenuBar ();
9298 9354
9299#if !TARGET_API_MAC_CARBON 9355#if !TARGET_API_MAC_CARBON
9300 menu_handle = GetMenuHandle (M_APPLE); 9356 menu = GetMenuRef (M_APPLE);
9301 if(menu_handle != NULL) 9357 if (menu != NULL)
9302 AppendResMenu (menu_handle,'DRVR'); 9358 AppendResMenu (menu, 'DRVR');
9303 else 9359 else
9304 abort (); 9360 abort ();
9305#endif 9361#endif
@@ -9348,7 +9404,7 @@ do_check_ram_size (void)
9348#endif /* MAC_OS8 */ 9404#endif /* MAC_OS8 */
9349 9405
9350static void 9406static void
9351do_window_update (WindowPtr win) 9407do_window_update (WindowRef win)
9352{ 9408{
9353 struct frame *f = mac_window_to_frame (win); 9409 struct frame *f = mac_window_to_frame (win);
9354 9410
@@ -9393,7 +9449,7 @@ do_window_update (WindowPtr win)
9393} 9449}
9394 9450
9395static int 9451static int
9396is_emacs_window (WindowPtr win) 9452is_emacs_window (WindowRef win)
9397{ 9453{
9398 Lisp_Object tail, frame; 9454 Lisp_Object tail, frame;
9399 9455
@@ -9506,7 +9562,7 @@ do_apple_menu (SInt16 menu_item)
9506 NoteAlert (ABOUT_ALERT_ID, NULL); 9562 NoteAlert (ABOUT_ALERT_ID, NULL);
9507 else 9563 else
9508 { 9564 {
9509 GetMenuItemText (GetMenuHandle (M_APPLE), menu_item, item_name); 9565 GetMenuItemText (GetMenuRef (M_APPLE), menu_item, item_name);
9510 da_driver_refnum = OpenDeskAcc (item_name); 9566 da_driver_refnum = OpenDeskAcc (item_name);
9511 } 9567 }
9512} 9568}
@@ -9517,7 +9573,7 @@ do_apple_menu (SInt16 menu_item)
9517 9573
9518static void 9574static void
9519do_grow_window (w, e) 9575do_grow_window (w, e)
9520 WindowPtr w; 9576 WindowRef w;
9521 const EventRecord *e; 9577 const EventRecord *e;
9522{ 9578{
9523 Rect limit_rect; 9579 Rect limit_rect;
@@ -9569,7 +9625,7 @@ mac_get_ideal_size (f)
9569 struct frame *f; 9625 struct frame *f;
9570{ 9626{
9571 struct mac_display_info *dpyinfo = FRAME_MAC_DISPLAY_INFO (f); 9627 struct mac_display_info *dpyinfo = FRAME_MAC_DISPLAY_INFO (f);
9572 WindowPtr w = FRAME_MAC_WINDOW (f); 9628 WindowRef w = FRAME_MAC_WINDOW (f);
9573 Point ideal_size; 9629 Point ideal_size;
9574 Rect standard_rect; 9630 Rect standard_rect;
9575 int height, width, columns, rows; 9631 int height, width, columns, rows;
@@ -9595,7 +9651,7 @@ mac_get_ideal_size (f)
9595 wide (DEFAULT_NUM_COLS) and as tall as will fit on the screen. */ 9651 wide (DEFAULT_NUM_COLS) and as tall as will fit on the screen. */
9596 9652
9597static void 9653static void
9598do_zoom_window (WindowPtr w, int zoom_in_or_out) 9654do_zoom_window (WindowRef w, int zoom_in_or_out)
9599{ 9655{
9600 Rect zoom_rect, port_rect; 9656 Rect zoom_rect, port_rect;
9601 int width, height; 9657 int width, height;
@@ -9658,13 +9714,9 @@ do_zoom_window (WindowPtr w, int zoom_in_or_out)
9658 SetPort (save_port); 9714 SetPort (save_port);
9659#endif /* not TARGET_API_MAC_CARBON */ 9715#endif /* not TARGET_API_MAC_CARBON */
9660 9716
9661#if !USE_CARBON_EVENTS 9717#if !TARGET_API_MAC_CARBON
9662 /* retrieve window size and update application values */ 9718 /* retrieve window size and update application values */
9663#if TARGET_API_MAC_CARBON
9664 GetWindowPortBounds (w, &port_rect);
9665#else
9666 port_rect = w->portRect; 9719 port_rect = w->portRect;
9667#endif
9668 height = port_rect.bottom - port_rect.top; 9720 height = port_rect.bottom - port_rect.top;
9669 width = port_rect.right - port_rect.left; 9721 width = port_rect.right - port_rect.left;
9670 9722
@@ -9673,6 +9725,210 @@ do_zoom_window (WindowPtr w, int zoom_in_or_out)
9673#endif 9725#endif
9674} 9726}
9675 9727
9728static void
9729mac_set_unicode_keystroke_event (code, buf)
9730 UniChar code;
9731 struct input_event *buf;
9732{
9733 int charset_id, c1, c2;
9734
9735 if (code < 0x80)
9736 {
9737 buf->kind = ASCII_KEYSTROKE_EVENT;
9738 buf->code = code;
9739 }
9740 else if (code < 0x100)
9741 {
9742 if (code < 0xA0)
9743 charset_id = CHARSET_8_BIT_CONTROL;
9744 else
9745 charset_id = charset_latin_iso8859_1;
9746 buf->kind = MULTIBYTE_CHAR_KEYSTROKE_EVENT;
9747 buf->code = MAKE_CHAR (charset_id, code, 0);
9748 }
9749 else
9750 {
9751 if (code < 0x2500)
9752 charset_id = charset_mule_unicode_0100_24ff,
9753 code -= 0x100;
9754 else if (code < 0x33FF)
9755 charset_id = charset_mule_unicode_2500_33ff,
9756 code -= 0x2500;
9757 else if (code >= 0xE000)
9758 charset_id = charset_mule_unicode_e000_ffff,
9759 code -= 0xE000;
9760 c1 = (code / 96) + 32, c2 = (code % 96) + 32;
9761 buf->kind = MULTIBYTE_CHAR_KEYSTROKE_EVENT;
9762 buf->code = MAKE_CHAR (charset_id, c1, c2);
9763 }
9764}
9765
9766static void
9767do_keystroke (action, char_code, key_code, modifiers, timestamp, buf)
9768 EventKind action;
9769 unsigned char char_code;
9770 UInt32 key_code, modifiers;
9771 unsigned long timestamp;
9772 struct input_event *buf;
9773{
9774 static SInt16 last_key_script = -1;
9775 SInt16 current_key_script = GetScriptManagerVariable (smKeyScript);
9776 UInt32 mapped_modifiers = mac_mapped_modifiers (modifiers);
9777
9778#ifdef MAC_OSX
9779 if (mapped_modifiers & kEventKeyModifierFnMask
9780 && key_code <= 0x7f
9781 && fn_keycode_to_keycode_table[key_code])
9782 key_code = fn_keycode_to_keycode_table[key_code];
9783#endif
9784
9785 if (key_code <= 0x7f && keycode_to_xkeysym_table[key_code])
9786 {
9787 buf->kind = NON_ASCII_KEYSTROKE_EVENT;
9788 buf->code = 0xff00 | keycode_to_xkeysym_table[key_code];
9789#ifdef MAC_OSX
9790 if (modifiers & kEventKeyModifierFnMask
9791 && key_code <= 0x7f
9792 && fn_keycode_to_keycode_table[key_code] == key_code)
9793 modifiers &= ~kEventKeyModifierFnMask;
9794#endif
9795 }
9796 else if (mapped_modifiers)
9797 {
9798 /* translate the keycode back to determine the original key */
9799#ifdef MAC_OSX
9800 UCKeyboardLayout *uchr_ptr = NULL;
9801#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
9802 OSStatus err;
9803 KeyboardLayoutRef layout;
9804
9805 err = KLGetCurrentKeyboardLayout (&layout);
9806 if (err == noErr)
9807 err = KLGetKeyboardLayoutProperty (layout, kKLuchrData,
9808 (const void **) &uchr_ptr);
9809#else
9810 static SInt16 last_key_layout_id = 0;
9811 static Handle uchr_handle = (Handle)-1;
9812 SInt16 current_key_layout_id =
9813 GetScriptVariable (current_key_script, smScriptKeys);
9814
9815 if (uchr_handle == (Handle)-1
9816 || last_key_layout_id != current_key_layout_id)
9817 {
9818 uchr_handle = GetResource ('uchr', current_key_layout_id);
9819 last_key_layout_id = current_key_layout_id;
9820 }
9821 if (uchr_handle)
9822 uchr_ptr = (UCKeyboardLayout *)*uchr_handle;
9823#endif
9824
9825 if (uchr_ptr)
9826 {
9827 OSStatus status;
9828 UInt16 key_action = action - keyDown;
9829 UInt32 modifier_key_state = (modifiers & ~mapped_modifiers) >> 8;
9830 UInt32 keyboard_type = LMGetKbdType ();
9831 SInt32 dead_key_state = 0;
9832 UniChar code;
9833 UniCharCount actual_length;
9834
9835 status = UCKeyTranslate (uchr_ptr, key_code, key_action,
9836 modifier_key_state, keyboard_type,
9837 kUCKeyTranslateNoDeadKeysMask,
9838 &dead_key_state,
9839 1, &actual_length, &code);
9840 if (status == noErr && actual_length == 1)
9841 mac_set_unicode_keystroke_event (code, buf);
9842 }
9843#endif /* MAC_OSX */
9844
9845 if (buf->kind == NO_EVENT)
9846 {
9847 /* This code comes from Keyboard Resource, Appendix C of IM
9848 - Text. This is necessary since shift is ignored in KCHR
9849 table translation when option or command is pressed. It
9850 also does not translate correctly control-shift chars
9851 like C-% so mask off shift here also. */
9852 /* Mask off modifier keys that are mapped to some Emacs
9853 modifiers. */
9854 int new_modifiers = modifiers & ~mapped_modifiers;
9855 /* set high byte of keycode to modifier high byte*/
9856 int new_key_code = key_code | new_modifiers;
9857 Ptr kchr_ptr = (Ptr) GetScriptManagerVariable (smKCHRCache);
9858 unsigned long some_state = 0;
9859 UInt32 new_char_code;
9860
9861 new_char_code = KeyTranslate (kchr_ptr, new_key_code, &some_state);
9862 if (new_char_code == 0)
9863 /* Seems like a dead key. Append up-stroke. */
9864 new_char_code = KeyTranslate (kchr_ptr, new_key_code | 0x80,
9865 &some_state);
9866 if (new_char_code)
9867 {
9868 buf->kind = ASCII_KEYSTROKE_EVENT;
9869 buf->code = new_char_code & 0xff;
9870 }
9871 }
9872 }
9873
9874 if (buf->kind == NO_EVENT)
9875 {
9876 buf->kind = ASCII_KEYSTROKE_EVENT;
9877 buf->code = char_code;
9878 }
9879
9880 buf->modifiers = mac_to_emacs_modifiers (modifiers);
9881 buf->modifiers |= (extra_keyboard_modifiers
9882 & (meta_modifier | alt_modifier
9883 | hyper_modifier | super_modifier));
9884
9885#if TARGET_API_MAC_CARBON
9886 if (buf->kind == ASCII_KEYSTROKE_EVENT
9887 && buf->code >= 0x80 && buf->modifiers)
9888 {
9889 OSStatus err;
9890 TextEncoding encoding = kTextEncodingMacRoman;
9891 TextToUnicodeInfo ttu_info;
9892
9893 UpgradeScriptInfoToTextEncoding (current_key_script,
9894 kTextLanguageDontCare,
9895 kTextRegionDontCare,
9896 NULL, &encoding);
9897 err = CreateTextToUnicodeInfoByEncoding (encoding, &ttu_info);
9898 if (err == noErr)
9899 {
9900 UniChar code;
9901 Str255 pstr;
9902 ByteCount unicode_len;
9903
9904 pstr[0] = 1;
9905 pstr[1] = buf->code;
9906 err = ConvertFromPStringToUnicode (ttu_info, pstr,
9907 sizeof (UniChar),
9908 &unicode_len, &code);
9909 if (err == noErr && unicode_len == sizeof (UniChar))
9910 mac_set_unicode_keystroke_event (code, buf);
9911 DisposeTextToUnicodeInfo (&ttu_info);
9912 }
9913 }
9914#endif
9915
9916 if (buf->kind == ASCII_KEYSTROKE_EVENT
9917 && buf->code >= 0x80
9918 && last_key_script != current_key_script)
9919 {
9920 struct input_event event;
9921
9922 EVENT_INIT (event);
9923 event.kind = LANGUAGE_CHANGE_EVENT;
9924 event.arg = Qnil;
9925 event.code = current_key_script;
9926 event.timestamp = timestamp;
9927 kbd_buffer_store_event (&event);
9928 last_key_script = current_key_script;
9929 }
9930}
9931
9676void 9932void
9677mac_store_apple_event (class, id, desc) 9933mac_store_apple_event (class, id, desc)
9678 Lisp_Object class, id; 9934 Lisp_Object class, id;
@@ -9751,54 +10007,49 @@ mac_store_drag_event (window, mouse_pos, modifiers, desc)
9751 buf.arg = mac_aedesc_to_lisp (desc); 10007 buf.arg = mac_aedesc_to_lisp (desc);
9752 kbd_buffer_store_event (&buf); 10008 kbd_buffer_store_event (&buf);
9753} 10009}
9754#endif
9755 10010
9756#if USE_CARBON_EVENTS 10011#ifdef MAC_OSX
9757static pascal OSStatus 10012OSStatus
9758mac_handle_command_event (next_handler, event, data) 10013mac_store_service_event (event)
9759 EventHandlerCallRef next_handler;
9760 EventRef event; 10014 EventRef event;
9761 void *data;
9762{ 10015{
9763 OSStatus result, err; 10016 OSStatus err;
9764 HICommand command; 10017 Lisp_Object id_key;
9765 static const EventParamName names[] = 10018 int num_params;
9766 {kEventParamDirectObject, kEventParamKeyModifiers}; 10019 const EventParamName *names;
9767 static const EventParamType types[] = 10020 const EventParamType *types;
9768 {typeHICommand, typeUInt32}; 10021 static const EventParamName names_pfm[] =
9769 int num_params = sizeof (names) / sizeof (names[0]); 10022 {kEventParamServiceMessageName, kEventParamServiceUserData};
9770 10023 static const EventParamType types_pfm[] =
9771 result = CallNextEventHandler (next_handler, event); 10024 {typeCFStringRef, typeCFStringRef};
9772 if (result != eventNotHandledErr)
9773 return result;
9774 10025
9775 err = GetEventParameter (event, kEventParamDirectObject, typeHICommand, 10026 switch (GetEventKind (event))
9776 NULL, sizeof (HICommand), NULL, &command); 10027 {
10028 case kEventServicePaste:
10029 id_key = Qpaste;
10030 num_params = 0;
10031 names = NULL;
10032 types = NULL;
10033 break;
9777 10034
9778 if (err != noErr || command.commandID == 0) 10035 case kEventServicePerform:
9779 return eventNotHandledErr; 10036 id_key = Qperform;
10037 num_params = sizeof (names_pfm) / sizeof (names_pfm[0]);
10038 names = names_pfm;
10039 types = types_pfm;
10040 break;
9780 10041
9781 /* A HI command event is mapped to an Apple event whose event class 10042 default:
9782 symbol is `hi-command' and event ID is its command ID. */ 10043 abort ();
9783 err = mac_store_event_ref_as_apple_event (0, command.commandID, 10044 }
9784 Qhi_command, Qnil,
9785 event, num_params, names, types);
9786 return err == noErr ? noErr : eventNotHandledErr;
9787}
9788 10045
9789static OSStatus 10046 err = mac_store_event_ref_as_apple_event (0, 0, Qservice, id_key,
9790init_command_handler () 10047 event, num_params,
9791{ 10048 names, types);
9792 static const EventTypeSpec specs[] =
9793 {{kEventClassCommand, kEventCommandProcess}};
9794 static EventHandlerUPP handle_command_eventUPP = NULL;
9795 10049
9796 if (handle_command_eventUPP == NULL) 10050 return err;
9797 handle_command_eventUPP = NewEventHandlerUPP (mac_handle_command_event);
9798 return InstallApplicationEventHandler (handle_command_eventUPP,
9799 GetEventTypeCount (specs), specs,
9800 NULL, NULL);
9801} 10051}
10052#endif /* MAC_OSX */
9802 10053
9803static pascal OSStatus 10054static pascal OSStatus
9804mac_handle_window_event (next_handler, event, data) 10055mac_handle_window_event (next_handler, event, data)
@@ -9806,47 +10057,78 @@ mac_handle_window_event (next_handler, event, data)
9806 EventRef event; 10057 EventRef event;
9807 void *data; 10058 void *data;
9808{ 10059{
9809 WindowPtr wp; 10060 WindowRef wp;
9810 OSStatus result, err; 10061 OSStatus err, result = eventNotHandledErr;
9811 struct frame *f; 10062 struct frame *f;
9812 UInt32 attributes; 10063 UInt32 attributes;
9813 XSizeHints *size_hints; 10064 XSizeHints *size_hints;
9814 10065
9815 err = GetEventParameter (event, kEventParamDirectObject, typeWindowRef, 10066 err = GetEventParameter (event, kEventParamDirectObject, typeWindowRef,
9816 NULL, sizeof (WindowPtr), NULL, &wp); 10067 NULL, sizeof (WindowRef), NULL, &wp);
9817 if (err != noErr) 10068 if (err != noErr)
9818 return eventNotHandledErr; 10069 return eventNotHandledErr;
9819 10070
9820 f = mac_window_to_frame (wp); 10071 f = mac_window_to_frame (wp);
9821 switch (GetEventKind (event)) 10072 switch (GetEventKind (event))
9822 { 10073 {
10074 /* -- window refresh events -- */
10075
9823 case kEventWindowUpdate: 10076 case kEventWindowUpdate:
9824 result = CallNextEventHandler (next_handler, event); 10077 result = CallNextEventHandler (next_handler, event);
9825 if (result != eventNotHandledErr) 10078 if (result != eventNotHandledErr)
9826 return result; 10079 break;
9827 10080
9828 do_window_update (wp); 10081 do_window_update (wp);
9829 return noErr; 10082 result = noErr;
10083 break;
9830 10084
9831 case kEventWindowGetIdealSize: 10085 /* -- window state change events -- */
9832 result = CallNextEventHandler (next_handler, event);
9833 if (result != eventNotHandledErr)
9834 return result;
9835 10086
9836 { 10087 case kEventWindowShowing:
9837 Point ideal_size = mac_get_ideal_size (f); 10088 size_hints = FRAME_SIZE_HINTS (f);
10089 if (!(size_hints->flags & (USPosition | PPosition)))
10090 {
10091 struct frame *sf = SELECTED_FRAME ();
9838 10092
9839 err = SetEventParameter (event, kEventParamDimensions, 10093 if (!(FRAME_MAC_P (sf)))
9840 typeQDPoint, sizeof (Point), &ideal_size); 10094 RepositionWindow (wp, NULL, kWindowCenterOnMainScreen);
9841 if (err == noErr) 10095 else
9842 return noErr; 10096 {
9843 } 10097 RepositionWindow (wp, FRAME_MAC_WINDOW (sf),
10098#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
10099 kWindowCascadeStartAtParentWindowScreen
10100#else
10101 kWindowCascadeOnParentWindowScreen
10102#endif
10103 );
10104 }
10105 result = noErr;
10106 }
10107 break;
10108
10109 case kEventWindowHiding:
10110 /* Before unmapping the window, update the WM_SIZE_HINTS
10111 property to claim that the current position of the window is
10112 user-specified, rather than program-specified, so that when
10113 the window is mapped again, it will be placed at the same
10114 location, without forcing the user to position it by hand
10115 again (they have already done that once for this window.) */
10116 x_wm_set_size_hint (f, (long) 0, 1);
10117 result = noErr;
10118 break;
10119
10120 case kEventWindowShown:
10121 case kEventWindowHidden:
10122 case kEventWindowCollapsed:
10123 case kEventWindowExpanded:
10124 mac_handle_visibility_change (f);
10125 result = noErr;
9844 break; 10126 break;
9845 10127
9846 case kEventWindowBoundsChanging: 10128 case kEventWindowBoundsChanging:
9847 result = CallNextEventHandler (next_handler, event); 10129 result = CallNextEventHandler (next_handler, event);
9848 if (result != eventNotHandledErr) 10130 if (result != eventNotHandledErr)
9849 return result; 10131 break;
9850 10132
9851 err = GetEventParameter (event, kEventParamAttributes, typeUInt32, 10133 err = GetEventParameter (event, kEventParamAttributes, typeUInt32,
9852 NULL, sizeof (UInt32), NULL, &attributes); 10134 NULL, sizeof (UInt32), NULL, &attributes);
@@ -9890,7 +10172,7 @@ mac_handle_window_event (next_handler, event, data)
9890 bounds.bottom = bounds.top + height; 10172 bounds.bottom = bounds.top + height;
9891 SetEventParameter (event, kEventParamCurrentBounds, 10173 SetEventParameter (event, kEventParamCurrentBounds,
9892 typeQDRectangle, sizeof (Rect), &bounds); 10174 typeQDRectangle, sizeof (Rect), &bounds);
9893 return noErr; 10175 result = noErr;
9894 } 10176 }
9895 break; 10177 break;
9896 10178
@@ -9921,21 +10203,12 @@ mac_handle_window_event (next_handler, event, data)
9921 if (attributes & kWindowBoundsChangeOriginChanged) 10203 if (attributes & kWindowBoundsChangeOriginChanged)
9922 mac_handle_origin_change (f); 10204 mac_handle_origin_change (f);
9923 10205
9924 return noErr; 10206 result = noErr;
9925
9926 case kEventWindowShown:
9927 case kEventWindowHidden:
9928 case kEventWindowExpanded:
9929 case kEventWindowCollapsed:
9930 result = CallNextEventHandler (next_handler, event);
9931
9932 mac_handle_visibility_change (f);
9933 return noErr;
9934
9935 break; 10207 break;
9936 10208
10209 /* -- window action events -- */
10210
9937 case kEventWindowClose: 10211 case kEventWindowClose:
9938 result = CallNextEventHandler (next_handler, event);
9939 { 10212 {
9940 struct input_event buf; 10213 struct input_event buf;
9941 10214
@@ -9945,11 +10218,26 @@ mac_handle_window_event (next_handler, event, data)
9945 buf.arg = Qnil; 10218 buf.arg = Qnil;
9946 kbd_buffer_store_event (&buf); 10219 kbd_buffer_store_event (&buf);
9947 } 10220 }
9948 return noErr; 10221 result = noErr;
10222 break;
10223
10224 case kEventWindowGetIdealSize:
10225 result = CallNextEventHandler (next_handler, event);
10226 if (result != eventNotHandledErr)
10227 break;
10228
10229 {
10230 Point ideal_size = mac_get_ideal_size (f);
10231
10232 err = SetEventParameter (event, kEventParamDimensions,
10233 typeQDPoint, sizeof (Point), &ideal_size);
10234 if (err == noErr)
10235 result = noErr;
10236 }
10237 break;
9949 10238
9950#ifdef MAC_OSX 10239#ifdef MAC_OSX
9951 case kEventWindowToolbarSwitchMode: 10240 case kEventWindowToolbarSwitchMode:
9952 result = CallNextEventHandler (next_handler, event);
9953 { 10241 {
9954 static const EventParamName names[] = {kEventParamDirectObject, 10242 static const EventParamName names[] = {kEventParamDirectObject,
9955 kEventParamWindowMouseLocation, 10243 kEventParamWindowMouseLocation,
@@ -9971,23 +10259,195 @@ mac_handle_window_event (next_handler, event, data)
9971 event, num_params, 10259 event, num_params,
9972 names, types); 10260 names, types);
9973 } 10261 }
9974 return err == noErr ? noErr : result; 10262 if (err == noErr)
10263 result = noErr;
10264 break;
9975#endif 10265#endif
9976 10266
9977#if USE_MAC_TSM 10267#if USE_MAC_TSM
10268 /* -- window focus events -- */
10269
9978 case kEventWindowFocusAcquired: 10270 case kEventWindowFocusAcquired:
9979 result = CallNextEventHandler (next_handler, event);
9980 err = mac_tsm_resume (); 10271 err = mac_tsm_resume ();
9981 return err == noErr ? noErr : result; 10272 if (err == noErr)
10273 result = noErr;
10274 break;
9982 10275
9983 case kEventWindowFocusRelinquish: 10276 case kEventWindowFocusRelinquish:
9984 result = CallNextEventHandler (next_handler, event);
9985 err = mac_tsm_suspend (); 10277 err = mac_tsm_suspend ();
9986 return err == noErr ? noErr : result; 10278 if (err == noErr)
10279 result = noErr;
10280 break;
9987#endif 10281#endif
10282
10283 default:
10284 abort ();
9988 } 10285 }
9989 10286
9990 return eventNotHandledErr; 10287 return result;
10288}
10289
10290static pascal OSStatus
10291mac_handle_application_event (next_handler, event, data)
10292 EventHandlerCallRef next_handler;
10293 EventRef event;
10294 void *data;
10295{
10296 OSStatus err, result = eventNotHandledErr;
10297
10298 switch (GetEventKind (event))
10299 {
10300#if USE_MAC_TSM
10301 case kEventAppActivated:
10302 err = mac_tsm_resume ();
10303 break;
10304
10305 case kEventAppDeactivated:
10306 err = mac_tsm_suspend ();
10307 break;
10308#endif
10309
10310 default:
10311 abort ();
10312 }
10313
10314 if (err == noErr)
10315 result = noErr;
10316
10317 return result;
10318}
10319
10320static pascal OSStatus
10321mac_handle_keyboard_event (next_handler, event, data)
10322 EventHandlerCallRef next_handler;
10323 EventRef event;
10324 void *data;
10325{
10326 OSStatus err, result = eventNotHandledErr;
10327 UInt32 event_kind, key_code, modifiers, mapped_modifiers;
10328 unsigned char char_code;
10329
10330 event_kind = GetEventKind (event);
10331 switch (event_kind)
10332 {
10333 case kEventRawKeyDown:
10334 case kEventRawKeyRepeat:
10335 case kEventRawKeyUp:
10336 if (read_socket_inev == NULL)
10337 {
10338 result = CallNextEventHandler (next_handler, event);
10339 break;
10340 }
10341
10342 err = GetEventParameter (event, kEventParamKeyModifiers,
10343 typeUInt32, NULL,
10344 sizeof (UInt32), NULL, &modifiers);
10345 if (err != noErr)
10346 break;
10347
10348 mapped_modifiers = mac_mapped_modifiers (modifiers);
10349
10350 /* When using Carbon Events, we need to pass raw keyboard events
10351 to the TSM ourselves. If TSM handles it, it will pass back
10352 noErr, otherwise it will pass back "eventNotHandledErr" and
10353 we can process it normally. */
10354 if (!(mapped_modifiers
10355 & ~(mac_pass_command_to_system ? cmdKey : 0)
10356 & ~(mac_pass_control_to_system ? controlKey : 0)))
10357 {
10358 result = CallNextEventHandler (next_handler, event);
10359 if (result != eventNotHandledErr)
10360 break;
10361 }
10362
10363#if USE_MAC_TSM
10364 if (read_socket_inev->kind != NO_EVENT)
10365 {
10366 result = noErr;
10367 break;
10368 }
10369#endif
10370
10371 if (event_kind == kEventRawKeyUp)
10372 break;
10373
10374 err = GetEventParameter (event, kEventParamKeyMacCharCodes,
10375 typeChar, NULL,
10376 sizeof (char), NULL, &char_code);
10377 if (err != noErr)
10378 break;
10379
10380 err = GetEventParameter (event, kEventParamKeyCode,
10381 typeUInt32, NULL,
10382 sizeof (UInt32), NULL, &key_code);
10383 if (err != noErr)
10384 break;
10385
10386 do_keystroke ((GetEventKind (event) == kEventRawKeyDown
10387 ? keyDown : autoKey),
10388 char_code, key_code, modifiers,
10389 ((unsigned long)
10390 (GetEventTime (event) / kEventDurationMillisecond)),
10391 read_socket_inev);
10392 result = noErr;
10393 break;
10394
10395 default:
10396 abort ();
10397 }
10398
10399 return result;
10400}
10401
10402static pascal OSStatus
10403mac_handle_command_event (next_handler, event, data)
10404 EventHandlerCallRef next_handler;
10405 EventRef event;
10406 void *data;
10407{
10408 OSStatus err, result = eventNotHandledErr;
10409 HICommand command;
10410 static const EventParamName names[] =
10411 {kEventParamDirectObject, kEventParamKeyModifiers};
10412 static const EventParamType types[] =
10413 {typeHICommand, typeUInt32};
10414 int num_params = sizeof (names) / sizeof (names[0]);
10415
10416 err = GetEventParameter (event, kEventParamDirectObject, typeHICommand,
10417 NULL, sizeof (HICommand), NULL, &command);
10418 if (err != noErr)
10419 return eventNotHandledErr;
10420
10421 switch (GetEventKind (event))
10422 {
10423 case kEventCommandProcess:
10424 result = CallNextEventHandler (next_handler, event);
10425 if (result != eventNotHandledErr)
10426 break;
10427
10428 err = GetEventParameter (event, kEventParamDirectObject,
10429 typeHICommand, NULL,
10430 sizeof (HICommand), NULL, &command);
10431
10432 if (err != noErr || command.commandID == 0)
10433 break;
10434
10435 /* A HI command event is mapped to an Apple event whose event
10436 class symbol is `hi-command' and event ID is its command
10437 ID. */
10438 err = mac_store_event_ref_as_apple_event (0, command.commandID,
10439 Qhi_command, Qnil,
10440 event, num_params,
10441 names, types);
10442 if (err == noErr)
10443 result = noErr;
10444 break;
10445
10446 default:
10447 abort ();
10448 }
10449
10450 return result;
9991} 10451}
9992 10452
9993static pascal OSStatus 10453static pascal OSStatus
@@ -9996,13 +10456,13 @@ mac_handle_mouse_event (next_handler, event, data)
9996 EventRef event; 10456 EventRef event;
9997 void *data; 10457 void *data;
9998{ 10458{
9999 OSStatus result, err; 10459 OSStatus err, result = eventNotHandledErr;
10000 10460
10001 switch (GetEventKind (event)) 10461 switch (GetEventKind (event))
10002 { 10462 {
10003 case kEventMouseWheelMoved: 10463 case kEventMouseWheelMoved:
10004 { 10464 {
10005 WindowPtr wp; 10465 WindowRef wp;
10006 struct frame *f; 10466 struct frame *f;
10007 EventMouseWheelAxis axis; 10467 EventMouseWheelAxis axis;
10008 SInt32 delta; 10468 SInt32 delta;
@@ -10010,15 +10470,14 @@ mac_handle_mouse_event (next_handler, event, data)
10010 10470
10011 result = CallNextEventHandler (next_handler, event); 10471 result = CallNextEventHandler (next_handler, event);
10012 if (result != eventNotHandledErr || read_socket_inev == NULL) 10472 if (result != eventNotHandledErr || read_socket_inev == NULL)
10013 return result; 10473 break;
10474
10475 f = mac_focus_frame (&one_mac_display_info);
10014 10476
10015 err = GetEventParameter (event, kEventParamWindowRef, typeWindowRef, 10477 err = GetEventParameter (event, kEventParamWindowRef, typeWindowRef,
10016 NULL, sizeof (WindowRef), NULL, &wp); 10478 NULL, sizeof (WindowRef), NULL, &wp);
10017 if (err != noErr) 10479 if (err != noErr
10018 break; 10480 || wp != FRAME_MAC_WINDOW (f))
10019
10020 f = mac_window_to_frame (wp);
10021 if (f != mac_focus_frame (&one_mac_display_info))
10022 break; 10481 break;
10023 10482
10024 err = GetEventParameter (event, kEventParamMouseWheelAxis, 10483 err = GetEventParameter (event, kEventParamMouseWheelAxis,
@@ -10033,8 +10492,8 @@ mac_handle_mouse_event (next_handler, event, data)
10033 if (err != noErr) 10492 if (err != noErr)
10034 break; 10493 break;
10035 10494
10036 SetPortWindowPort (wp); 10495 point.h -= f->left_pos + FRAME_OUTER_TO_INNER_DIFF_X (f);
10037 GlobalToLocal (&point); 10496 point.v -= f->top_pos + FRAME_OUTER_TO_INNER_DIFF_Y (f);
10038 if (point.h < 0 || point.v < 0 10497 if (point.h < 0 || point.v < 0
10039 || EQ (window_from_coordinates (f, point.h, point.v, 0, 0, 0, 1), 10498 || EQ (window_from_coordinates (f, point.h, point.v, 0, 0, 0, 1),
10040 f->tool_bar_window)) 10499 f->tool_bar_window))
@@ -10055,68 +10514,16 @@ mac_handle_mouse_event (next_handler, event, data)
10055 XSETINT (read_socket_inev->y, point.v); 10514 XSETINT (read_socket_inev->y, point.v);
10056 XSETFRAME (read_socket_inev->frame_or_window, f); 10515 XSETFRAME (read_socket_inev->frame_or_window, f);
10057 10516
10058 return noErr; 10517 result = noErr;
10059 } 10518 }
10060 break; 10519 break;
10061 10520
10062 default: 10521 default:
10063 break; 10522 abort ();
10064 }
10065
10066 return eventNotHandledErr;
10067}
10068
10069#if USE_MAC_FONT_PANEL
10070static pascal OSStatus
10071mac_handle_font_event (next_handler, event, data)
10072 EventHandlerCallRef next_handler;
10073 EventRef event;
10074 void *data;
10075{
10076 OSStatus result, err;
10077 Lisp_Object id_key;
10078 int num_params;
10079 const EventParamName *names;
10080 const EventParamType *types;
10081 static const EventParamName names_sel[] = {kEventParamATSUFontID,
10082 kEventParamATSUFontSize,
10083 kEventParamFMFontFamily,
10084 kEventParamFMFontSize,
10085 kEventParamFontColor};
10086 static const EventParamType types_sel[] = {typeATSUFontID,
10087 typeATSUSize,
10088 typeFMFontFamily,
10089 typeFMFontSize,
10090 typeFontColor};
10091
10092 result = CallNextEventHandler (next_handler, event);
10093 if (result != eventNotHandledErr)
10094 return result;
10095
10096 switch (GetEventKind (event))
10097 {
10098 case kEventFontPanelClosed:
10099 id_key = Qpanel_closed;
10100 num_params = 0;
10101 names = NULL;
10102 types = NULL;
10103 break;
10104
10105 case kEventFontSelection:
10106 id_key = Qselection;
10107 num_params = sizeof (names_sel) / sizeof (names_sel[0]);
10108 names = names_sel;
10109 types = types_sel;
10110 break;
10111 } 10523 }
10112 10524
10113 err = mac_store_event_ref_as_apple_event (0, 0, Qfont, id_key, 10525 return result;
10114 event, num_params,
10115 names, types);
10116
10117 return err == noErr ? noErr : eventNotHandledErr;
10118} 10526}
10119#endif
10120 10527
10121#if USE_MAC_TSM 10528#if USE_MAC_TSM
10122static pascal OSStatus 10529static pascal OSStatus
@@ -10173,6 +10580,8 @@ mac_handle_text_input_event (next_handler, event, data)
10173 typeUnicodeText}; 10580 typeUnicodeText};
10174 10581
10175 result = CallNextEventHandler (next_handler, event); 10582 result = CallNextEventHandler (next_handler, event);
10583 if (result != eventNotHandledErr)
10584 return result;
10176 10585
10177 switch (GetEventKind (event)) 10586 switch (GetEventKind (event))
10178 { 10587 {
@@ -10200,7 +10609,7 @@ mac_handle_text_input_event (next_handler, event, data)
10200 sizeof (UInt32), NULL, &modifiers); 10609 sizeof (UInt32), NULL, &modifiers);
10201 if (err == noErr && mac_mapped_modifiers (modifiers)) 10610 if (err == noErr && mac_mapped_modifiers (modifiers))
10202 /* There're mapped modifier keys. Process it in 10611 /* There're mapped modifier keys. Process it in
10203 XTread_socket. */ 10612 do_keystroke. */
10204 return eventNotHandledErr; 10613 return eventNotHandledErr;
10205 if (err == noErr) 10614 if (err == noErr)
10206 err = GetEventParameter (kbd_event, kEventParamKeyUnicodes, 10615 err = GetEventParameter (kbd_event, kEventParamKeyUnicodes,
@@ -10215,7 +10624,7 @@ mac_handle_text_input_event (next_handler, event, data)
10215 sizeof (UniChar), NULL, &code); 10624 sizeof (UniChar), NULL, &code);
10216 if (err == noErr && code < 0x80) 10625 if (err == noErr && code < 0x80)
10217 { 10626 {
10218 /* ASCII character. Process it in XTread_socket. */ 10627 /* ASCII character. Process it in do_keystroke. */
10219 if (read_socket_inev && code >= 0x20 && code <= 0x7e) 10628 if (read_socket_inev && code >= 0x20 && code <= 0x7e)
10220 { 10629 {
10221 UInt32 key_code; 10630 UInt32 key_code;
@@ -10277,11 +10686,11 @@ mac_handle_text_input_event (next_handler, event, data)
10277 } 10686 }
10278 10687
10279 p.h = (WINDOW_TO_FRAME_PIXEL_X (w, w->cursor.x) 10688 p.h = (WINDOW_TO_FRAME_PIXEL_X (w, w->cursor.x)
10280 + WINDOW_LEFT_FRINGE_WIDTH (w)); 10689 + WINDOW_LEFT_FRINGE_WIDTH (w)
10690 + f->left_pos + FRAME_OUTER_TO_INNER_DIFF_X (f));
10281 p.v = (WINDOW_TO_FRAME_PIXEL_Y (w, w->cursor.y) 10691 p.v = (WINDOW_TO_FRAME_PIXEL_Y (w, w->cursor.y)
10282 + FONT_BASE (FRAME_FONT (f))); 10692 + FONT_BASE (FRAME_FONT (f))
10283 SetPortWindowPort (FRAME_MAC_WINDOW (f)); 10693 + f->top_pos + FRAME_OUTER_TO_INNER_DIFF_Y (f));
10284 LocalToGlobal (&p);
10285 err = SetEventParameter (event, kEventParamTextInputReplyPoint, 10694 err = SetEventParameter (event, kEventParamTextInputReplyPoint,
10286 typeQDPoint, sizeof (typeQDPoint), &p); 10695 typeQDPoint, sizeof (typeQDPoint), &p);
10287 } 10696 }
@@ -10295,146 +10704,155 @@ mac_handle_text_input_event (next_handler, event, data)
10295 err = mac_store_event_ref_as_apple_event (0, 0, Qtext_input, id_key, 10704 err = mac_store_event_ref_as_apple_event (0, 0, Qtext_input, id_key,
10296 event, num_params, 10705 event, num_params,
10297 names, types); 10706 names, types);
10707 if (err == noErr)
10708 result = noErr;
10298 10709
10299 return err == noErr ? noErr : result; 10710 return result;
10300} 10711}
10301#endif 10712#endif
10713#endif /* TARGET_API_MAC_CARBON */
10714
10302 10715
10303#ifdef MAC_OSX
10304OSStatus 10716OSStatus
10305mac_store_service_event (event) 10717install_window_handler (window)
10306 EventRef event; 10718 WindowRef window;
10307{ 10719{
10308 OSStatus err; 10720 OSStatus err = noErr;
10309 Lisp_Object id_key;
10310 int num_params;
10311 const EventParamName *names;
10312 const EventParamType *types;
10313 static const EventParamName names_pfm[] =
10314 {kEventParamServiceMessageName, kEventParamServiceUserData};
10315 static const EventParamType types_pfm[] =
10316 {typeCFStringRef, typeCFStringRef};
10317 10721
10318 switch (GetEventKind (event)) 10722#if TARGET_API_MAC_CARBON
10723 if (err == noErr)
10319 { 10724 {
10320 case kEventServicePaste: 10725 static const EventTypeSpec specs[] =
10321 id_key = Qpaste; 10726 {
10322 num_params = 0; 10727 /* -- window refresh events -- */
10323 names = NULL; 10728 {kEventClassWindow, kEventWindowUpdate},
10324 types = NULL; 10729 /* -- window state change events -- */
10325 break; 10730 {kEventClassWindow, kEventWindowShowing},
10731 {kEventClassWindow, kEventWindowHiding},
10732 {kEventClassWindow, kEventWindowShown},
10733 {kEventClassWindow, kEventWindowHidden},
10734 {kEventClassWindow, kEventWindowCollapsed},
10735 {kEventClassWindow, kEventWindowExpanded},
10736 {kEventClassWindow, kEventWindowBoundsChanging},
10737 {kEventClassWindow, kEventWindowBoundsChanged},
10738 /* -- window action events -- */
10739 {kEventClassWindow, kEventWindowClose},
10740 {kEventClassWindow, kEventWindowGetIdealSize},
10741#ifdef MAC_OSX
10742 {kEventClassWindow, kEventWindowToolbarSwitchMode},
10743#endif
10744#if USE_MAC_TSM
10745 /* -- window focus events -- */
10746 {kEventClassWindow, kEventWindowFocusAcquired},
10747 {kEventClassWindow, kEventWindowFocusRelinquish},
10748#endif
10749 };
10750 static EventHandlerUPP handle_window_eventUPP = NULL;
10326 10751
10327 case kEventServicePerform: 10752 if (handle_window_eventUPP == NULL)
10328 id_key = Qperform; 10753 handle_window_eventUPP = NewEventHandlerUPP (mac_handle_window_event);
10329 num_params = sizeof (names_pfm) / sizeof (names_pfm[0]);
10330 names = names_pfm;
10331 types = types_pfm;
10332 break;
10333 10754
10334 default: 10755 err = InstallWindowEventHandler (window, handle_window_eventUPP,
10335 abort (); 10756 GetEventTypeCount (specs),
10757 specs, NULL, NULL);
10336 } 10758 }
10759#endif
10337 10760
10338 err = mac_store_event_ref_as_apple_event (0, 0, Qservice, id_key, 10761 if (err == noErr)
10339 event, num_params, 10762 err = install_drag_handler (window);
10340 names, types);
10341 10763
10342 return err; 10764 return err;
10343} 10765}
10344#endif /* MAC_OSX */
10345#endif /* USE_CARBON_EVENTS */
10346 10766
10767void
10768remove_window_handler (window)
10769 WindowRef window;
10770{
10771 remove_drag_handler (window);
10772}
10347 10773
10348OSStatus 10774#if TARGET_API_MAC_CARBON
10349install_window_handler (window) 10775static OSStatus
10350 WindowPtr window; 10776install_application_handler ()
10351{ 10777{
10352 OSStatus err = noErr; 10778 OSStatus err = noErr;
10353#if USE_CARBON_EVENTS
10354 static const EventTypeSpec specs_window[] =
10355 {{kEventClassWindow, kEventWindowUpdate},
10356 {kEventClassWindow, kEventWindowGetIdealSize},
10357 {kEventClassWindow, kEventWindowBoundsChanging},
10358 {kEventClassWindow, kEventWindowBoundsChanged},
10359 {kEventClassWindow, kEventWindowShown},
10360 {kEventClassWindow, kEventWindowHidden},
10361 {kEventClassWindow, kEventWindowExpanded},
10362 {kEventClassWindow, kEventWindowCollapsed},
10363 {kEventClassWindow, kEventWindowClose},
10364#ifdef MAC_OSX
10365 {kEventClassWindow, kEventWindowToolbarSwitchMode},
10366#endif
10367#if USE_MAC_TSM
10368 {kEventClassWindow, kEventWindowFocusAcquired},
10369 {kEventClassWindow, kEventWindowFocusRelinquish},
10370#endif
10371 };
10372 static const EventTypeSpec specs_mouse[] =
10373 {{kEventClassMouse, kEventMouseWheelMoved}};
10374 static EventHandlerUPP handle_window_eventUPP = NULL;
10375 static EventHandlerUPP handle_mouse_eventUPP = NULL;
10376#if USE_MAC_FONT_PANEL
10377 static const EventTypeSpec specs_font[] =
10378 {{kEventClassFont, kEventFontPanelClosed},
10379 {kEventClassFont, kEventFontSelection}};
10380 static EventHandlerUPP handle_font_eventUPP = NULL;
10381#endif
10382#if USE_MAC_TSM
10383 static const EventTypeSpec specs_text_input[] =
10384 {{kEventClassTextInput, kEventTextInputUpdateActiveInputArea},
10385 {kEventClassTextInput, kEventTextInputUnicodeForKeyEvent},
10386 {kEventClassTextInput, kEventTextInputOffsetToPos}};
10387 static EventHandlerUPP handle_text_input_eventUPP = NULL;
10388#endif
10389 10779
10390 if (handle_window_eventUPP == NULL) 10780 if (err == noErr)
10391 handle_window_eventUPP = NewEventHandlerUPP (mac_handle_window_event); 10781 {
10392 if (handle_mouse_eventUPP == NULL) 10782 static const EventTypeSpec specs[] = {
10393 handle_mouse_eventUPP = NewEventHandlerUPP (mac_handle_mouse_event);
10394#if USE_MAC_FONT_PANEL
10395 if (handle_font_eventUPP == NULL)
10396 handle_font_eventUPP = NewEventHandlerUPP (mac_handle_font_event);
10397#endif
10398#if USE_MAC_TSM 10783#if USE_MAC_TSM
10399 if (handle_text_input_eventUPP == NULL) 10784 {kEventClassApplication, kEventAppActivated},
10400 handle_text_input_eventUPP = 10785 {kEventClassApplication, kEventAppDeactivated},
10401 NewEventHandlerUPP (mac_handle_text_input_event);
10402#endif 10786#endif
10403 err = InstallWindowEventHandler (window, handle_window_eventUPP, 10787 };
10404 GetEventTypeCount (specs_window), 10788
10405 specs_window, NULL, NULL); 10789 err = InstallApplicationEventHandler (NewEventHandlerUPP
10790 (mac_handle_application_event),
10791 GetEventTypeCount (specs),
10792 specs, NULL, NULL);
10793 }
10794
10406 if (err == noErr) 10795 if (err == noErr)
10407 err = InstallWindowEventHandler (window, handle_mouse_eventUPP, 10796 {
10408 GetEventTypeCount (specs_mouse), 10797 static const EventTypeSpec specs[] =
10409 specs_mouse, NULL, NULL); 10798 {{kEventClassKeyboard, kEventRawKeyDown},
10410#if USE_MAC_FONT_PANEL 10799 {kEventClassKeyboard, kEventRawKeyRepeat},
10800 {kEventClassKeyboard, kEventRawKeyUp}};
10801
10802 err = InstallApplicationEventHandler (NewEventHandlerUPP
10803 (mac_handle_keyboard_event),
10804 GetEventTypeCount (specs),
10805 specs, NULL, NULL);
10806 }
10807
10411 if (err == noErr) 10808 if (err == noErr)
10412 err = InstallWindowEventHandler (window, handle_font_eventUPP, 10809 {
10413 GetEventTypeCount (specs_font), 10810 static const EventTypeSpec specs[] =
10414 specs_font, NULL, NULL); 10811 {{kEventClassCommand, kEventCommandProcess}};
10415#endif 10812
10813 err = InstallApplicationEventHandler (NewEventHandlerUPP
10814 (mac_handle_command_event),
10815 GetEventTypeCount (specs),
10816 specs, NULL, NULL);
10817 }
10818
10819 if (err == noErr)
10820 {
10821 static const EventTypeSpec specs[] =
10822 {{kEventClassMouse, kEventMouseWheelMoved}};
10823
10824 err = InstallApplicationEventHandler (NewEventHandlerUPP
10825 (mac_handle_mouse_event),
10826 GetEventTypeCount (specs),
10827 specs, NULL, NULL);
10828 }
10829
10416#if USE_MAC_TSM 10830#if USE_MAC_TSM
10417 if (err == noErr) 10831 if (err == noErr)
10418 err = InstallWindowEventHandler (window, handle_text_input_eventUPP, 10832 {
10419 GetEventTypeCount (specs_text_input), 10833 static const EventTypeSpec spec[] =
10420 specs_text_input, window, NULL); 10834 {{kEventClassTextInput, kEventTextInputUpdateActiveInputArea},
10421#endif 10835 {kEventClassTextInput, kEventTextInputUnicodeForKeyEvent},
10836 {kEventClassTextInput, kEventTextInputOffsetToPos}};
10837
10838 err = InstallApplicationEventHandler (NewEventHandlerUPP
10839 (mac_handle_text_input_event),
10840 GetEventTypeCount (spec),
10841 spec, NULL, NULL);
10842 }
10422#endif 10843#endif
10844
10423 if (err == noErr) 10845 if (err == noErr)
10424 err = install_drag_handler (window); 10846 err = install_menu_target_item_handler ();
10847
10848#ifdef MAC_OSX
10425 if (err == noErr) 10849 if (err == noErr)
10426 err = install_menu_target_item_handler (window); 10850 err = install_service_handler ();
10851#endif
10427 10852
10428 return err; 10853 return err;
10429} 10854}
10430 10855#endif
10431void
10432remove_window_handler (window)
10433 WindowPtr window;
10434{
10435 remove_drag_handler (window);
10436}
10437
10438 10856
10439static pascal void 10857static pascal void
10440mac_handle_dm_notification (event) 10858mac_handle_dm_notification (event)
@@ -10443,20 +10861,48 @@ mac_handle_dm_notification (event)
10443 mac_screen_config_changed = 1; 10861 mac_screen_config_changed = 1;
10444} 10862}
10445 10863
10864#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
10865static void
10866mac_handle_cg_display_reconfig (display, flags, user_info)
10867 CGDirectDisplayID display;
10868 CGDisplayChangeSummaryFlags flags;
10869 void *user_info;
10870{
10871 mac_screen_config_changed = 1;
10872}
10873#endif
10874
10446static OSErr 10875static OSErr
10447init_dm_notification_handler () 10876init_dm_notification_handler ()
10448{ 10877{
10449 OSErr err; 10878 OSErr err = noErr;
10450 static DMNotificationUPP handle_dm_notificationUPP = NULL;
10451 ProcessSerialNumber psn;
10452 10879
10453 if (handle_dm_notificationUPP == NULL) 10880#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
10454 handle_dm_notificationUPP = 10881#if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
10455 NewDMNotificationUPP (mac_handle_dm_notification); 10882 if (CGDisplayRegisterReconfigurationCallback != NULL)
10883#endif
10884 {
10885 CGDisplayRegisterReconfigurationCallback (mac_handle_cg_display_reconfig,
10886 NULL);
10887 }
10888#if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
10889 else /* CGDisplayRegisterReconfigurationCallback == NULL */
10890#endif
10891#endif /* MAC_OS_X_VERSION_MAX_ALLOWED >= 1030 */
10892#if MAC_OS_X_VERSION_MAX_ALLOWED < 1030 || MAC_OS_X_VERSION_MIN_REQUIRED == 1020
10893 {
10894 static DMNotificationUPP handle_dm_notificationUPP = NULL;
10895 ProcessSerialNumber psn;
10456 10896
10457 err = GetCurrentProcess (&psn); 10897 if (handle_dm_notificationUPP == NULL)
10458 if (err == noErr) 10898 handle_dm_notificationUPP =
10459 err = DMRegisterNotifyProc (handle_dm_notificationUPP, &psn); 10899 NewDMNotificationUPP (mac_handle_dm_notification);
10900
10901 err = GetCurrentProcess (&psn);
10902 if (err == noErr)
10903 err = DMRegisterNotifyProc (handle_dm_notificationUPP, &psn);
10904 }
10905#endif
10460 10906
10461 return err; 10907 return err;
10462} 10908}
@@ -10601,7 +11047,7 @@ main (void)
10601} 11047}
10602#endif 11048#endif
10603 11049
10604#if !USE_CARBON_EVENTS 11050#if !TARGET_API_MAC_CARBON
10605static RgnHandle mouse_region = NULL; 11051static RgnHandle mouse_region = NULL;
10606 11052
10607Boolean 11053Boolean
@@ -10638,7 +11084,7 @@ mac_wait_next_event (er, sleep_time, dequeue)
10638 er_buf.what = nullEvent; 11084 er_buf.what = nullEvent;
10639 return true; 11085 return true;
10640} 11086}
10641#endif /* not USE_CARBON_EVENTS */ 11087#endif /* not TARGET_API_MAC_CARBON */
10642 11088
10643#if TARGET_API_MAC_CARBON 11089#if TARGET_API_MAC_CARBON
10644OSStatus 11090OSStatus
@@ -10672,20 +11118,6 @@ mac_post_mouse_moved_event ()
10672 11118
10673 return err; 11119 return err;
10674} 11120}
10675
10676static void
10677mac_set_unicode_keystroke_event (code, buf)
10678 UniChar code;
10679 struct input_event *buf;
10680{
10681 int charset_id, c1, c2;
10682
10683 if (code < 0x80)
10684 buf->kind = ASCII_KEYSTROKE_EVENT;
10685 else
10686 buf->kind = MULTIBYTE_CHAR_KEYSTROKE_EVENT;
10687 buf->code = code;
10688}
10689#endif 11121#endif
10690 11122
10691/* Emacs calls this whenever it wants to read an input event from the 11123/* Emacs calls this whenever it wants to read an input event from the
@@ -10697,7 +11129,7 @@ XTread_socket (sd, expected, hold_quit)
10697{ 11129{
10698 struct input_event inev; 11130 struct input_event inev;
10699 int count = 0; 11131 int count = 0;
10700#if USE_CARBON_EVENTS 11132#if TARGET_API_MAC_CARBON
10701 EventRef eventRef; 11133 EventRef eventRef;
10702 EventTargetRef toolbox_dispatcher; 11134 EventTargetRef toolbox_dispatcher;
10703#endif 11135#endif
@@ -10718,7 +11150,7 @@ XTread_socket (sd, expected, hold_quit)
10718 11150
10719 ++handling_signal; 11151 ++handling_signal;
10720 11152
10721#if USE_CARBON_EVENTS 11153#if TARGET_API_MAC_CARBON
10722 toolbox_dispatcher = GetEventDispatcherTarget (); 11154 toolbox_dispatcher = GetEventDispatcherTarget ();
10723 11155
10724 while ( 11156 while (
@@ -10727,9 +11159,9 @@ XTread_socket (sd, expected, hold_quit)
10727#endif 11159#endif
10728 !ReceiveNextEvent (0, NULL, kEventDurationNoWait, 11160 !ReceiveNextEvent (0, NULL, kEventDurationNoWait,
10729 kEventRemoveFromQueue, &eventRef)) 11161 kEventRemoveFromQueue, &eventRef))
10730#else /* !USE_CARBON_EVENTS */ 11162#else /* !TARGET_API_MAC_CARBON */
10731 while (mac_wait_next_event (&er, 0, true)) 11163 while (mac_wait_next_event (&er, 0, true))
10732#endif /* !USE_CARBON_EVENTS */ 11164#endif /* !TARGET_API_MAC_CARBON */
10733 { 11165 {
10734 int do_help = 0; 11166 int do_help = 0;
10735 struct frame *f; 11167 struct frame *f;
@@ -10739,44 +11171,33 @@ XTread_socket (sd, expected, hold_quit)
10739 inev.kind = NO_EVENT; 11171 inev.kind = NO_EVENT;
10740 inev.arg = Qnil; 11172 inev.arg = Qnil;
10741 11173
10742#if USE_CARBON_EVENTS 11174#if TARGET_API_MAC_CARBON
10743 timestamp = GetEventTime (eventRef) / kEventDurationMillisecond; 11175 timestamp = GetEventTime (eventRef) / kEventDurationMillisecond;
10744#else
10745 timestamp = er.when * (1000 / 60); /* ticks to milliseconds */
10746#endif
10747 11176
10748#if USE_CARBON_EVENTS
10749 /* Handle new events */
10750 if (!mac_convert_event_ref (eventRef, &er)) 11177 if (!mac_convert_event_ref (eventRef, &er))
10751 { 11178 goto OTHER;
10752 /* There used to be a handler for the kEventMouseWheelMoved 11179#else /* !TARGET_API_MAC_CARBON */
10753 event here. But as of Mac OS X 10.4, this kind of event 11180 timestamp = er.when * (1000 / 60); /* ticks to milliseconds */
10754 is not directly posted to the main event queue by 11181#endif /* !TARGET_API_MAC_CARBON */
10755 two-finger scrolling on the trackpad. Instead, some 11182
10756 private event is posted and it is converted to a wheel
10757 event by the default handler for the application target.
10758 The converted one can be received by a Carbon event
10759 handler installed on a window target. */
10760 read_socket_inev = &inev;
10761 SendEventToEventTarget (eventRef, toolbox_dispatcher);
10762 read_socket_inev = NULL;
10763 }
10764 else
10765#endif /* USE_CARBON_EVENTS */
10766 switch (er.what) 11183 switch (er.what)
10767 { 11184 {
10768 case mouseDown: 11185 case mouseDown:
10769 case mouseUp: 11186 case mouseUp:
10770 { 11187 {
10771 WindowPtr window_ptr; 11188 WindowRef window_ptr;
10772 ControlPartCode part_code; 11189 ControlPartCode part_code;
10773 int tool_bar_p = 0; 11190 int tool_bar_p = 0;
10774 11191
10775#if USE_CARBON_EVENTS 11192#if TARGET_API_MAC_CARBON
11193 OSStatus err;
11194
10776 /* This is needed to send mouse events like aqua window 11195 /* This is needed to send mouse events like aqua window
10777 buttons to the correct handler. */ 11196 buttons to the correct handler. */
10778 if (SendEventToEventTarget (eventRef, toolbox_dispatcher) 11197 read_socket_inev = &inev;
10779 != eventNotHandledErr) 11198 err = SendEventToEventTarget (eventRef, toolbox_dispatcher);
11199 read_socket_inev = NULL;
11200 if (err != eventNotHandledErr)
10780 break; 11201 break;
10781#endif 11202#endif
10782 last_mouse_glyph_frame = 0; 11203 last_mouse_glyph_frame = 0;
@@ -10824,17 +11245,20 @@ XTread_socket (sd, expected, hold_quit)
10824 else 11245 else
10825 { 11246 {
10826 ControlPartCode control_part_code; 11247 ControlPartCode control_part_code;
10827 ControlHandle ch; 11248 ControlRef ch;
10828 Point mouse_loc = er.where; 11249 Point mouse_loc;
10829#ifdef MAC_OSX 11250#ifdef MAC_OSX
10830 ControlKind control_kind; 11251 ControlKind control_kind;
10831#endif 11252#endif
10832 11253
10833 f = mac_window_to_frame (window_ptr); 11254 f = mac_window_to_frame (window_ptr);
10834 /* convert to local coordinates of new window */ 11255 /* convert to local coordinates of new window */
10835 SetPortWindowPort (window_ptr); 11256 mouse_loc.h = (er.where.h
10836 11257 - (f->left_pos
10837 GlobalToLocal (&mouse_loc); 11258 + FRAME_OUTER_TO_INNER_DIFF_X (f)));
11259 mouse_loc.v = (er.where.v
11260 - (f->top_pos
11261 + FRAME_OUTER_TO_INNER_DIFF_Y (f)));
10838#if TARGET_API_MAC_CARBON 11262#if TARGET_API_MAC_CARBON
10839 ch = FindControlUnderMouse (mouse_loc, window_ptr, 11263 ch = FindControlUnderMouse (mouse_loc, window_ptr,
10840 &control_part_code); 11264 &control_part_code);
@@ -10847,7 +11271,7 @@ XTread_socket (sd, expected, hold_quit)
10847 &ch); 11271 &ch);
10848#endif 11272#endif
10849 11273
10850#if USE_CARBON_EVENTS 11274#if TARGET_API_MAC_CARBON
10851 inev.code = mac_get_mouse_btn (eventRef); 11275 inev.code = mac_get_mouse_btn (eventRef);
10852 inev.modifiers = mac_event_to_emacs_modifiers (eventRef); 11276 inev.modifiers = mac_event_to_emacs_modifiers (eventRef);
10853#else 11277#else
@@ -10983,16 +11407,14 @@ XTread_socket (sd, expected, hold_quit)
10983 DragWindow (window_ptr, er.where, NULL); 11407 DragWindow (window_ptr, er.where, NULL);
10984#else /* not TARGET_API_MAC_CARBON */ 11408#else /* not TARGET_API_MAC_CARBON */
10985 DragWindow (window_ptr, er.where, &qd.screenBits.bounds); 11409 DragWindow (window_ptr, er.where, &qd.screenBits.bounds);
10986#endif /* not TARGET_API_MAC_CARBON */
10987 /* Update the frame parameters. */ 11410 /* Update the frame parameters. */
10988#if !USE_CARBON_EVENTS
10989 { 11411 {
10990 struct frame *f = mac_window_to_frame (window_ptr); 11412 struct frame *f = mac_window_to_frame (window_ptr);
10991 11413
10992 if (f && !f->async_iconified) 11414 if (f && !f->async_iconified)
10993 mac_handle_origin_change (f); 11415 mac_handle_origin_change (f);
10994 } 11416 }
10995#endif 11417#endif /* not TARGET_API_MAC_CARBON */
10996 break; 11418 break;
10997 11419
10998 case inGoAway: 11420 case inGoAway:
@@ -11022,35 +11444,17 @@ XTread_socket (sd, expected, hold_quit)
11022 } 11444 }
11023 break; 11445 break;
11024 11446
11447#if !TARGET_API_MAC_CARBON
11025 case updateEvt: 11448 case updateEvt:
11026#if USE_CARBON_EVENTS 11449 do_window_update ((WindowRef) er.message);
11027 if (SendEventToEventTarget (eventRef, toolbox_dispatcher)
11028 != eventNotHandledErr)
11029 break;
11030#else
11031 do_window_update ((WindowPtr) er.message);
11032#endif
11033 break; 11450 break;
11451#endif
11034 11452
11035 case osEvt: 11453 case osEvt:
11036#if USE_CARBON_EVENTS
11037 if (SendEventToEventTarget (eventRef, toolbox_dispatcher)
11038 != eventNotHandledErr)
11039 break;
11040#endif
11041 switch ((er.message >> 24) & 0x000000FF) 11454 switch ((er.message >> 24) & 0x000000FF)
11042 { 11455 {
11043 case suspendResumeMessage:
11044#if USE_MAC_TSM
11045 if (er.message & resumeFlag)
11046 mac_tsm_resume ();
11047 else
11048 mac_tsm_suspend ();
11049#endif
11050 break;
11051
11052 case mouseMovedMessage: 11456 case mouseMovedMessage:
11053#if !USE_CARBON_EVENTS 11457#if !TARGET_API_MAC_CARBON
11054 SetRectRgn (mouse_region, er.where.h, er.where.v, 11458 SetRectRgn (mouse_region, er.where.h, er.where.v,
11055 er.where.h + 1, er.where.v + 1); 11459 er.where.h + 1, er.where.v + 1);
11056#endif 11460#endif
@@ -11071,13 +11475,15 @@ XTread_socket (sd, expected, hold_quit)
11071 11475
11072 if (f) 11476 if (f)
11073 { 11477 {
11074 WindowPtr wp = FRAME_MAC_WINDOW (f); 11478 WindowRef wp = FRAME_MAC_WINDOW (f);
11075 Point mouse_pos = er.where; 11479 Point mouse_pos;
11076 11480
11077 SetPortWindowPort (wp); 11481 mouse_pos.h = (er.where.h
11078 11482 - (f->left_pos
11079 GlobalToLocal (&mouse_pos); 11483 + FRAME_OUTER_TO_INNER_DIFF_X (f)));
11080 11484 mouse_pos.v = (er.where.v
11485 - (f->top_pos
11486 + FRAME_OUTER_TO_INNER_DIFF_Y (f)));
11081 if (dpyinfo->grabbed && tracked_scroll_bar) 11487 if (dpyinfo->grabbed && tracked_scroll_bar)
11082#ifdef USE_TOOLKIT_SCROLL_BARS 11488#ifdef USE_TOOLKIT_SCROLL_BARS
11083 x_scroll_bar_handle_drag (wp, tracked_scroll_bar, 11489 x_scroll_bar_handle_drag (wp, tracked_scroll_bar,
@@ -11125,18 +11531,16 @@ XTread_socket (sd, expected, hold_quit)
11125 if (!NILP (help_echo_string) || !NILP (previous_help_echo_string)) 11531 if (!NILP (help_echo_string) || !NILP (previous_help_echo_string))
11126 do_help = 1; 11532 do_help = 1;
11127 break; 11533 break;
11534
11535 default:
11536 goto OTHER;
11128 } 11537 }
11129 break; 11538 break;
11130 11539
11131 case activateEvt: 11540 case activateEvt:
11132 { 11541 {
11133 WindowPtr window_ptr = (WindowPtr) er.message; 11542 WindowRef window_ptr = (WindowRef) er.message;
11134 11543
11135#if USE_CARBON_EVENTS
11136 if (SendEventToEventTarget (eventRef, toolbox_dispatcher)
11137 != eventNotHandledErr)
11138 break;
11139#endif
11140 if (window_ptr == tip_window) 11544 if (window_ptr == tip_window)
11141 { 11545 {
11142 HideWindow (tip_window); 11546 HideWindow (tip_window);
@@ -11144,21 +11548,26 @@ XTread_socket (sd, expected, hold_quit)
11144 } 11548 }
11145 11549
11146 if (!is_emacs_window (window_ptr)) 11550 if (!is_emacs_window (window_ptr))
11147 break; 11551 goto OTHER;
11552
11553 f = mac_window_to_frame (window_ptr);
11148 11554
11149 if ((er.modifiers & activeFlag) != 0) 11555 if ((er.modifiers & activeFlag) != 0)
11150 { 11556 {
11151 /* A window has been activated */ 11557 /* A window has been activated */
11152 Point mouse_loc = er.where; 11558 Point mouse_loc;
11153 11559
11154 x_detect_focus_change (dpyinfo, &er, &inev); 11560 x_detect_focus_change (dpyinfo, &er, &inev);
11155 11561
11156 SetPortWindowPort (window_ptr); 11562 mouse_loc.h = (er.where.h
11157 GlobalToLocal (&mouse_loc); 11563 - (f->left_pos
11564 + FRAME_OUTER_TO_INNER_DIFF_X (f)));
11565 mouse_loc.v = (er.where.v
11566 - (f->top_pos
11567 + FRAME_OUTER_TO_INNER_DIFF_Y (f)));
11158 /* Window-activated event counts as mouse movement, 11568 /* Window-activated event counts as mouse movement,
11159 so update things that depend on mouse position. */ 11569 so update things that depend on mouse position. */
11160 note_mouse_movement (mac_window_to_frame (window_ptr), 11570 note_mouse_movement (f, &mouse_loc);
11161 &mouse_loc);
11162 } 11571 }
11163 else 11572 else
11164 { 11573 {
@@ -11183,7 +11592,6 @@ XTread_socket (sd, expected, hold_quit)
11183 11592
11184 x_detect_focus_change (dpyinfo, &er, &inev); 11593 x_detect_focus_change (dpyinfo, &er, &inev);
11185 11594
11186 f = mac_window_to_frame (window_ptr);
11187 if (f == dpyinfo->mouse_face_mouse_frame) 11595 if (f == dpyinfo->mouse_face_mouse_frame)
11188 { 11596 {
11189 /* If we move outside the frame, then we're 11597 /* If we move outside the frame, then we're
@@ -11206,218 +11614,26 @@ XTread_socket (sd, expected, hold_quit)
11206 case keyDown: 11614 case keyDown:
11207 case keyUp: 11615 case keyUp:
11208 case autoKey: 11616 case autoKey:
11209 { 11617 ObscureCursor ();
11210 int keycode = (er.message & keyCodeMask) >> 8;
11211 static SInt16 last_key_script = -1;
11212 SInt16 current_key_script;
11213 UInt32 modifiers = er.modifiers, mapped_modifiers;
11214
11215#if USE_CARBON_EVENTS && defined (MAC_OSX)
11216 GetEventParameter (eventRef, kEventParamKeyModifiers,
11217 typeUInt32, NULL,
11218 sizeof (UInt32), NULL, &modifiers);
11219#endif
11220 mapped_modifiers = mac_mapped_modifiers (modifiers);
11221
11222#if USE_CARBON_EVENTS && (defined (MAC_OSX) || USE_MAC_TSM)
11223 /* When using Carbon Events, we need to pass raw keyboard
11224 events to the TSM ourselves. If TSM handles it, it
11225 will pass back noErr, otherwise it will pass back
11226 "eventNotHandledErr" and we can process it
11227 normally. */
11228 if (!(mapped_modifiers
11229 & ~(mac_pass_command_to_system ? cmdKey : 0)
11230 & ~(mac_pass_control_to_system ? controlKey : 0)))
11231 {
11232 OSStatus err;
11233
11234 read_socket_inev = &inev;
11235 err = SendEventToEventTarget (eventRef, toolbox_dispatcher);
11236 read_socket_inev = NULL;
11237 if (err != eventNotHandledErr)
11238 break;
11239 }
11240#endif
11241 if (er.what == keyUp)
11242 break;
11243
11244 ObscureCursor ();
11245 11618
11246 f = mac_focus_frame (dpyinfo); 11619 f = mac_focus_frame (dpyinfo);
11247 11620 XSETFRAME (inev.frame_or_window, f);
11248 if (!dpyinfo->mouse_face_hidden && INTEGERP (Vmouse_highlight)
11249 && !EQ (f->tool_bar_window, dpyinfo->mouse_face_window))
11250 {
11251 clear_mouse_face (dpyinfo);
11252 dpyinfo->mouse_face_hidden = 1;
11253 }
11254
11255 current_key_script = GetScriptManagerVariable (smKeyScript);
11256 if (last_key_script != current_key_script)
11257 {
11258 struct input_event event;
11259
11260 EVENT_INIT (event);
11261 event.kind = LANGUAGE_CHANGE_EVENT;
11262 event.arg = Qnil;
11263 event.code = current_key_script;
11264 event.timestamp = timestamp;
11265 kbd_buffer_store_event (&event);
11266 count++;
11267 last_key_script = current_key_script;
11268 }
11269
11270#if USE_MAC_TSM
11271 if (inev.kind != NO_EVENT)
11272 break;
11273#endif
11274
11275#ifdef MAC_OSX
11276 if (mapped_modifiers & kEventKeyModifierFnMask
11277 && keycode <= 0x7f
11278 && fn_keycode_to_keycode_table[keycode])
11279 keycode = fn_keycode_to_keycode_table[keycode];
11280#endif
11281 if (keycode <= 0x7f && keycode_to_xkeysym_table [keycode])
11282 {
11283 inev.kind = NON_ASCII_KEYSTROKE_EVENT;
11284 inev.code = 0xff00 | keycode_to_xkeysym_table [keycode];
11285#ifdef MAC_OSX
11286 if (modifiers & kEventKeyModifierFnMask
11287 && keycode <= 0x7f
11288 && fn_keycode_to_keycode_table[keycode] == keycode)
11289 modifiers &= ~kEventKeyModifierFnMask;
11290#endif
11291 }
11292 else if (mapped_modifiers)
11293 {
11294 /* translate the keycode back to determine the
11295 original key */
11296#ifdef MAC_OSX
11297 UCKeyboardLayout *uchr_ptr = NULL;
11298#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
11299 OSStatus err;
11300 KeyboardLayoutRef layout;
11301
11302 err = KLGetCurrentKeyboardLayout (&layout);
11303 if (err == noErr)
11304 KLGetKeyboardLayoutProperty (layout, kKLuchrData,
11305 (const void **) &uchr_ptr);
11306#else
11307 static SInt16 last_key_layout_id = 0;
11308 static Handle uchr_handle = (Handle)-1;
11309 SInt16 current_key_layout_id =
11310 GetScriptVariable (current_key_script, smScriptKeys);
11311
11312 if (uchr_handle == (Handle)-1
11313 || last_key_layout_id != current_key_layout_id)
11314 {
11315 uchr_handle = GetResource ('uchr', current_key_layout_id);
11316 last_key_layout_id = current_key_layout_id;
11317 }
11318 if (uchr_handle)
11319 uchr_ptr = (UCKeyboardLayout *)*uchr_handle;
11320#endif
11321
11322 if (uchr_ptr)
11323 {
11324 OSStatus status;
11325 UInt16 key_action = er.what - keyDown;
11326 UInt32 modifier_key_state =
11327 (modifiers & ~mapped_modifiers) >> 8;
11328 UInt32 keyboard_type = LMGetKbdType ();
11329 SInt32 dead_key_state = 0;
11330 UniChar code;
11331 UniCharCount actual_length;
11332
11333 status = UCKeyTranslate (uchr_ptr,
11334 keycode, key_action,
11335 modifier_key_state,
11336 keyboard_type,
11337 kUCKeyTranslateNoDeadKeysMask,
11338 &dead_key_state,
11339 1, &actual_length, &code);
11340 if (status == noErr && actual_length == 1)
11341 mac_set_unicode_keystroke_event (code, &inev);
11342 }
11343#endif /* MAC_OSX */
11344
11345 if (inev.kind == NO_EVENT)
11346 {
11347 /* This code comes from Keyboard Resource,
11348 Appendix C of IM - Text. This is necessary
11349 since shift is ignored in KCHR table
11350 translation when option or command is pressed.
11351 It also does not translate correctly
11352 control-shift chars like C-% so mask off shift
11353 here also. */
11354 /* Mask off modifier keys that are mapped to some
11355 Emacs modifiers. */
11356 int new_modifiers = er.modifiers & ~mapped_modifiers;
11357 /* set high byte of keycode to modifier high byte*/
11358 int new_keycode = keycode | new_modifiers;
11359 Ptr kchr_ptr = (Ptr) GetScriptManagerVariable (smKCHRCache);
11360 unsigned long some_state = 0;
11361 UInt32 new_char_code;
11362
11363 new_char_code = KeyTranslate (kchr_ptr, new_keycode,
11364 &some_state);
11365 if (new_char_code == 0)
11366 /* Seems like a dead key. Append up-stroke. */
11367 new_char_code = KeyTranslate (kchr_ptr,
11368 new_keycode | 0x80,
11369 &some_state);
11370 if (new_char_code)
11371 {
11372 inev.kind = ASCII_KEYSTROKE_EVENT;
11373 inev.code = new_char_code & 0xff;
11374 }
11375 }
11376 }
11377
11378 if (inev.kind == NO_EVENT)
11379 {
11380 inev.kind = ASCII_KEYSTROKE_EVENT;
11381 inev.code = er.message & charCodeMask;
11382 }
11383
11384 inev.modifiers = mac_to_emacs_modifiers (modifiers);
11385 inev.modifiers |= (extra_keyboard_modifiers
11386 & (meta_modifier | alt_modifier
11387 | hyper_modifier | super_modifier));
11388 XSETFRAME (inev.frame_or_window, f);
11389 11621
11622 /* If mouse-highlight is an integer, input clears out mouse
11623 highlighting. */
11624 if (!dpyinfo->mouse_face_hidden && INTEGERP (Vmouse_highlight)
11625 && !EQ (f->tool_bar_window, dpyinfo->mouse_face_window))
11626 {
11627 clear_mouse_face (dpyinfo);
11628 dpyinfo->mouse_face_hidden = 1;
11629 }
11390#if TARGET_API_MAC_CARBON 11630#if TARGET_API_MAC_CARBON
11391 if (inev.kind == ASCII_KEYSTROKE_EVENT 11631 goto OTHER;
11392 && inev.code >= 0x80 && inev.modifiers) 11632#else
11393 { 11633 do_keystroke (er.what, er.message & charCodeMask,
11394 OSStatus err; 11634 (er.message & keyCodeMask) >> 8,
11395 TextEncoding encoding = kTextEncodingMacRoman; 11635 er.modifiers, timestamp, &inev);
11396 TextToUnicodeInfo ttu_info;
11397
11398 UpgradeScriptInfoToTextEncoding (current_key_script,
11399 kTextLanguageDontCare,
11400 kTextRegionDontCare,
11401 NULL, &encoding);
11402 err = CreateTextToUnicodeInfoByEncoding (encoding, &ttu_info);
11403 if (err == noErr)
11404 {
11405 UniChar code;
11406 Str255 pstr;
11407 ByteCount unicode_len;
11408
11409 pstr[0] = 1;
11410 pstr[1] = inev.code;
11411 err = ConvertFromPStringToUnicode (ttu_info, pstr,
11412 sizeof (UniChar),
11413 &unicode_len, &code);
11414 if (err == noErr && unicode_len == sizeof (UniChar))
11415 mac_set_unicode_keystroke_event (code, &inev);
11416 DisposeTextToUnicodeInfo (&ttu_info);
11417 }
11418 }
11419#endif 11636#endif
11420 }
11421 break; 11637 break;
11422 11638
11423 case kHighLevelEvent: 11639 case kHighLevelEvent:
@@ -11425,9 +11641,19 @@ XTread_socket (sd, expected, hold_quit)
11425 break; 11641 break;
11426 11642
11427 default: 11643 default:
11644 OTHER:
11645#if TARGET_API_MAC_CARBON
11646 {
11647 OSStatus err;
11648
11649 read_socket_inev = &inev;
11650 err = SendEventToEventTarget (eventRef, toolbox_dispatcher);
11651 read_socket_inev = NULL;
11652 }
11653#endif
11428 break; 11654 break;
11429 } 11655 }
11430#if USE_CARBON_EVENTS 11656#if TARGET_API_MAC_CARBON
11431 ReleaseEvent (eventRef); 11657 ReleaseEvent (eventRef);
11432#endif 11658#endif
11433 11659
@@ -11479,7 +11705,7 @@ XTread_socket (sd, expected, hold_quit)
11479 mac_screen_config_changed = 0; 11705 mac_screen_config_changed = 0;
11480 } 11706 }
11481 11707
11482#if !USE_CARBON_EVENTS 11708#if !TARGET_API_MAC_CARBON
11483 /* Check which frames are still visible. We do this here because 11709 /* Check which frames are still visible. We do this here because
11484 there doesn't seem to be any direct notification from the Window 11710 there doesn't seem to be any direct notification from the Window
11485 Manager that the visibility of a window has changed (at least, 11711 Manager that the visibility of a window has changed (at least,
@@ -11584,7 +11810,7 @@ make_mac_terminal_frame (struct frame *f)
11584 11810
11585 if (!(FRAME_MAC_WINDOW (f) = 11811 if (!(FRAME_MAC_WINDOW (f) =
11586 NewCWindow (NULL, &r, "\p", true, dBoxProc, 11812 NewCWindow (NULL, &r, "\p", true, dBoxProc,
11587 (WindowPtr) -1, 1, (long) f->output_data.mac))) 11813 (WindowRef) -1, 1, (long) f->output_data.mac)))
11588 abort (); 11814 abort ();
11589 /* so that update events can find this mac_output struct */ 11815 /* so that update events can find this mac_output struct */
11590 f->output_data.mac->mFP = f; /* point back to emacs frame */ 11816 f->output_data.mac->mFP = f; /* point back to emacs frame */
@@ -11774,7 +12000,6 @@ init_menu_bar ()
11774 &menu, &menu_index); 12000 &menu, &menu_index);
11775 if (err == noErr) 12001 if (err == noErr)
11776 SetMenuItemCommandKey (menu, menu_index, false, 0); 12002 SetMenuItemCommandKey (menu, menu_index, false, 0);
11777#if USE_CARBON_EVENTS
11778 EnableMenuCommand (NULL, kHICommandPreferences); 12003 EnableMenuCommand (NULL, kHICommandPreferences);
11779 err = GetIndMenuItemWithCommandID (NULL, kHICommandPreferences, 1, 12004 err = GetIndMenuItemWithCommandID (NULL, kHICommandPreferences, 1,
11780 &menu, &menu_index); 12005 &menu, &menu_index);
@@ -11786,10 +12011,9 @@ init_menu_bar ()
11786 InsertMenuItemTextWithCFString (menu, CFSTR ("About Emacs"), 12011 InsertMenuItemTextWithCFString (menu, CFSTR ("About Emacs"),
11787 0, 0, kHICommandAbout); 12012 0, 0, kHICommandAbout);
11788 } 12013 }
11789#endif /* USE_CARBON_EVENTS */
11790#else /* !MAC_OSX */ 12014#else /* !MAC_OSX */
11791#if USE_CARBON_EVENTS 12015#if TARGET_API_MAC_CARBON
11792 SetMenuItemCommandID (GetMenuHandle (M_APPLE), I_ABOUT, kHICommandAbout); 12016 SetMenuItemCommandID (GetMenuRef (M_APPLE), I_ABOUT, kHICommandAbout);
11793#endif 12017#endif
11794#endif 12018#endif
11795} 12019}
@@ -11896,19 +12120,13 @@ mac_initialize ()
11896 12120
11897#if TARGET_API_MAC_CARBON 12121#if TARGET_API_MAC_CARBON
11898 12122
11899#if USE_CARBON_EVENTS 12123 install_application_handler ();
11900#ifdef MAC_OSX
11901 init_service_handler ();
11902#endif /* MAC_OSX */
11903
11904 init_command_handler ();
11905 12124
11906 init_menu_bar (); 12125 init_menu_bar ();
11907 12126
11908#if USE_MAC_TSM 12127#if USE_MAC_TSM
11909 init_tsm (); 12128 init_tsm ();
11910#endif 12129#endif
11911#endif /* USE_CARBON_EVENTS */
11912 12130
11913#ifdef MAC_OSX 12131#ifdef MAC_OSX
11914 init_coercion_handler (); 12132 init_coercion_handler ();
@@ -11958,7 +12176,7 @@ syms_of_macterm ()
11958 Fput (Qhyper, Qmodifier_value, make_number (hyper_modifier)); 12176 Fput (Qhyper, Qmodifier_value, make_number (hyper_modifier));
11959 Fput (Qsuper, Qmodifier_value, make_number (super_modifier)); 12177 Fput (Qsuper, Qmodifier_value, make_number (super_modifier));
11960 12178
11961#if USE_CARBON_EVENTS 12179#if TARGET_API_MAC_CARBON
11962 Qhi_command = intern ("hi-command"); staticpro (&Qhi_command); 12180 Qhi_command = intern ("hi-command"); staticpro (&Qhi_command);
11963#ifdef MAC_OSX 12181#ifdef MAC_OSX
11964 Qtoolbar_switch_mode = intern ("toolbar-switch-mode"); 12182 Qtoolbar_switch_mode = intern ("toolbar-switch-mode");
@@ -12083,7 +12301,7 @@ The symbol `reverse' means that the option-key will register for
12083mouse-3 and the command-key will register for mouse-2. */); 12301mouse-3 and the command-key will register for mouse-2. */);
12084 Vmac_emulate_three_button_mouse = Qnil; 12302 Vmac_emulate_three_button_mouse = Qnil;
12085 12303
12086#if USE_CARBON_EVENTS 12304#if TARGET_API_MAC_CARBON
12087 DEFVAR_BOOL ("mac-wheel-button-is-mouse-2", &mac_wheel_button_is_mouse_2, 12305 DEFVAR_BOOL ("mac-wheel-button-is-mouse-2", &mac_wheel_button_is_mouse_2,
12088 doc: /* *Non-nil if the wheel button is mouse-2 and the right click mouse-3. 12306 doc: /* *Non-nil if the wheel button is mouse-2 and the right click mouse-3.
12089Otherwise, the right click will be treated as mouse-2 and the wheel 12307Otherwise, the right click will be treated as mouse-2 and the wheel
diff --git a/src/macterm.h b/src/macterm.h
index b3826c5e7f7..7984ff2b970 100644
--- a/src/macterm.h
+++ b/src/macterm.h
@@ -369,6 +369,12 @@ typedef struct mac_output mac_output;
369/* This is the 'font_info *' which frame F has. */ 369/* This is the 'font_info *' which frame F has. */
370#define FRAME_MAC_FONT_TABLE(f) (FRAME_MAC_DISPLAY_INFO (f)->font_table) 370#define FRAME_MAC_FONT_TABLE(f) (FRAME_MAC_DISPLAY_INFO (f)->font_table)
371 371
372/* The difference in pixels between the top left corner of the
373 Emacs window (including possible window manager decorations)
374 and FRAME_MAC_WINDOW (f). */
375#define FRAME_OUTER_TO_INNER_DIFF_X(f) ((f)->x_pixels_diff)
376#define FRAME_OUTER_TO_INNER_DIFF_Y(f) ((f)->y_pixels_diff)
377
372/* Value is the smallest width of any character in any font on frame F. */ 378/* Value is the smallest width of any character in any font on frame F. */
373 379
374#define FRAME_SMALLEST_CHAR_WIDTH(F) \ 380#define FRAME_SMALLEST_CHAR_WIDTH(F) \
@@ -406,9 +412,9 @@ struct scroll_bar {
406 /* The next and previous in the chain of scroll bars in this frame. */ 412 /* The next and previous in the chain of scroll bars in this frame. */
407 Lisp_Object next, prev; 413 Lisp_Object next, prev;
408 414
409 /* The Mac control handle of this scroll bar. Since this is a 415 /* The Mac control reference of this scroll bar. Since this is a
410 pointer value, we store it split into two Lisp integers. */ 416 pointer value, we store it split into two Lisp integers. */
411 Lisp_Object control_handle_low, control_handle_high; 417 Lisp_Object control_ref_low, control_ref_high;
412 418
413 /* The position and size of the scroll bar in pixels, relative to the 419 /* The position and size of the scroll bar in pixels, relative to the
414 frame. */ 420 frame. */
@@ -466,14 +472,14 @@ struct scroll_bar {
466 472
467/* Extract the Mac control handle of the scroll bar from a struct 473/* Extract the Mac control handle of the scroll bar from a struct
468 scroll_bar. */ 474 scroll_bar. */
469#define SCROLL_BAR_CONTROL_HANDLE(ptr) \ 475#define SCROLL_BAR_CONTROL_REF(ptr) \
470 ((ControlHandle) SCROLL_BAR_PACK ((ptr)->control_handle_low, \ 476 ((ControlRef) SCROLL_BAR_PACK ((ptr)->control_ref_low, \
471 (ptr)->control_handle_high)) 477 (ptr)->control_ref_high))
472 478
473/* Store a Mac control handle in a struct scroll_bar. */ 479/* Store a Mac control handle in a struct scroll_bar. */
474#define SET_SCROLL_BAR_CONTROL_HANDLE(ptr, handle) \ 480#define SET_SCROLL_BAR_CONTROL_REF(ptr, ref) \
475 (SCROLL_BAR_UNPACK ((ptr)->control_handle_low, \ 481 (SCROLL_BAR_UNPACK ((ptr)->control_ref_low, \
476 (ptr)->control_handle_high, (unsigned long) (handle))) 482 (ptr)->control_ref_high, (unsigned long) (ref)))
477 483
478/* Return the inside width of a vertical scroll bar, given the outside 484/* Return the inside width of a vertical scroll bar, given the outside
479 width. */ 485 width. */
@@ -615,9 +621,9 @@ extern void x_destroy_window P_ ((struct frame *));
615extern void x_wm_set_size_hint P_ ((struct frame *, long, int)); 621extern void x_wm_set_size_hint P_ ((struct frame *, long, int));
616extern void x_delete_display P_ ((struct x_display_info *)); 622extern void x_delete_display P_ ((struct x_display_info *));
617extern void mac_initialize P_ ((void)); 623extern void mac_initialize P_ ((void));
618extern Pixmap XCreatePixmap P_ ((Display *, WindowPtr, unsigned int, 624extern Pixmap XCreatePixmap P_ ((Display *, WindowRef, unsigned int,
619 unsigned int, unsigned int)); 625 unsigned int, unsigned int));
620extern Pixmap XCreatePixmapFromBitmapData P_ ((Display *, WindowPtr, char *, 626extern Pixmap XCreatePixmapFromBitmapData P_ ((Display *, WindowRef, char *,
621 unsigned int, unsigned int, 627 unsigned int, unsigned int,
622 unsigned long, unsigned long, 628 unsigned long, unsigned long,
623 unsigned int)); 629 unsigned int));
@@ -626,7 +632,7 @@ extern GC XCreateGC P_ ((Display *, void *, unsigned long, XGCValues *));
626extern void XFreeGC P_ ((Display *, GC)); 632extern void XFreeGC P_ ((Display *, GC));
627extern void XSetForeground P_ ((Display *, GC, unsigned long)); 633extern void XSetForeground P_ ((Display *, GC, unsigned long));
628extern void XSetBackground P_ ((Display *, GC, unsigned long)); 634extern void XSetBackground P_ ((Display *, GC, unsigned long));
629extern void XSetWindowBackground P_ ((Display *, WindowPtr, unsigned long)); 635extern void XSetWindowBackground P_ ((Display *, WindowRef, unsigned long));
630extern void XDrawLine P_ ((Display *, Pixmap, GC, int, int, int, int)); 636extern void XDrawLine P_ ((Display *, Pixmap, GC, int, int, int, int));
631extern void mac_clear_area P_ ((struct frame *, int, int, 637extern void mac_clear_area P_ ((struct frame *, int, int,
632 unsigned int, unsigned int)); 638 unsigned int, unsigned int));
@@ -634,8 +640,8 @@ extern void mac_unload_font P_ ((struct mac_display_info *, XFontStruct *));
634extern int mac_font_panel_visible_p P_ ((void)); 640extern int mac_font_panel_visible_p P_ ((void));
635extern OSStatus mac_show_hide_font_panel P_ ((void)); 641extern OSStatus mac_show_hide_font_panel P_ ((void));
636extern OSStatus mac_set_font_info_for_selection P_ ((struct frame *, int, int)); 642extern OSStatus mac_set_font_info_for_selection P_ ((struct frame *, int, int));
637extern OSStatus install_window_handler P_ ((WindowPtr)); 643extern OSStatus install_window_handler P_ ((WindowRef));
638extern void remove_window_handler P_ ((WindowPtr)); 644extern void remove_window_handler P_ ((WindowRef));
639extern OSStatus mac_post_mouse_moved_event P_ ((void)); 645extern OSStatus mac_post_mouse_moved_event P_ ((void));
640#if !TARGET_API_MAC_CARBON 646#if !TARGET_API_MAC_CARBON
641extern void do_apple_menu P_ ((SInt16)); 647extern void do_apple_menu P_ ((SInt16));
@@ -643,6 +649,7 @@ extern void do_apple_menu P_ ((SInt16));
643#if USE_CG_DRAWING 649#if USE_CG_DRAWING
644extern void mac_prepare_for_quickdraw P_ ((struct frame *)); 650extern void mac_prepare_for_quickdraw P_ ((struct frame *));
645#endif 651#endif
652extern void mac_get_window_bounds P_ ((struct frame *, Rect *, Rect *));
646extern int mac_quit_char_key_p P_ ((UInt32, UInt32)); 653extern int mac_quit_char_key_p P_ ((UInt32, UInt32));
647 654
648#define FONT_TYPE_FOR_UNIBYTE(font, ch) 0 655#define FONT_TYPE_FOR_UNIBYTE(font, ch) 0
diff --git a/src/minibuf.c b/src/minibuf.c
index 6c6fa7451fc..f275414d3aa 100644
--- a/src/minibuf.c
+++ b/src/minibuf.c
@@ -529,7 +529,7 @@ read_minibuf (map, initial, prompt, backup_n, expflag,
529 GCPRO5 (map, initial, val, ambient_dir, input_method); 529 GCPRO5 (map, initial, val, ambient_dir, input_method);
530 530
531 if (!STRINGP (prompt)) 531 if (!STRINGP (prompt))
532 prompt = empty_string; 532 prompt = empty_unibyte_string;
533 533
534 if (!enable_recursive_minibuffers 534 if (!enable_recursive_minibuffers
535 && minibuf_level > 0) 535 && minibuf_level > 0)
diff --git a/src/s/ms-w32.h b/src/s/ms-w32.h
index ad699dff035..666b70b1ea5 100644
--- a/src/s/ms-w32.h
+++ b/src/s/ms-w32.h
@@ -255,7 +255,6 @@ Boston, MA 02110-1301, USA. */
255 255
256#undef TM_IN_SYS_TIME 256#undef TM_IN_SYS_TIME
257#undef HAVE_TM_ZONE 257#undef HAVE_TM_ZONE
258#define HAVE_TZNAME 1
259 258
260#define HAVE_LONG_FILE_NAMES 1 259#define HAVE_LONG_FILE_NAMES 1
261 260
diff --git a/src/search.c b/src/search.c
index 7f50032c024..fd7b474e4ab 100644
--- a/src/search.c
+++ b/src/search.c
@@ -2076,7 +2076,7 @@ wordify (string)
2076 if (SYNTAX (prev_c) == Sword) 2076 if (SYNTAX (prev_c) == Sword)
2077 word_count++; 2077 word_count++;
2078 if (!word_count) 2078 if (!word_count)
2079 return empty_string; 2079 return empty_unibyte_string;
2080 2080
2081 adjust = - punct_count + 5 * (word_count - 1) + 4; 2081 adjust = - punct_count + 5 * (word_count - 1) + 4;
2082 if (STRING_MULTIBYTE (string)) 2082 if (STRING_MULTIBYTE (string))
diff --git a/src/sunfns.c b/src/sunfns.c
index c532ae7f849..2d96ac66aef 100644
--- a/src/sunfns.c
+++ b/src/sunfns.c
@@ -287,7 +287,7 @@ sel_read (sel, file)
287 register int i, n; 287 register int i, n;
288 register char *cp; 288 register char *cp;
289 289
290 Current_Selection = make_string ("", 0); 290 Current_Selection = empty_unibyte_string;
291 if (sel->sel_items <= 0) 291 if (sel->sel_items <= 0)
292 return (0); 292 return (0);
293 cp = (char *) malloc(sel->sel_items); 293 cp = (char *) malloc(sel->sel_items);
diff --git a/src/term.c b/src/term.c
index f23963cc39c..566b8b84915 100644
--- a/src/term.c
+++ b/src/term.c
@@ -430,11 +430,6 @@ static int mouse_face_past_end;
430static Lisp_Object Qmouse_face_window; 430static Lisp_Object Qmouse_face_window;
431static int mouse_face_face_id; 431static int mouse_face_face_id;
432 432
433/* FRAME and X, Y position of mouse when last checked for
434 highlighting. X and Y can be negative or out of range for the frame. */
435struct frame *mouse_face_mouse_frame;
436int mouse_face_mouse_x, mouse_face_mouse_y;
437
438static int pos_x, pos_y; 433static int pos_x, pos_y;
439static int last_mouse_x, last_mouse_y; 434static int last_mouse_x, last_mouse_y;
440#endif /* HAVE_GPM */ 435#endif /* HAVE_GPM */
@@ -2494,17 +2489,18 @@ set_tty_color_mode (f, val)
2494 ***********************************************************************/ 2489 ***********************************************************************/
2495 2490
2496#ifdef HAVE_GPM 2491#ifdef HAVE_GPM
2497void term_mouse_moveto (int x, int y) 2492void
2493term_mouse_moveto (int x, int y)
2498{ 2494{
2499 const char *name; 2495 const char *name;
2500 int fd; 2496 int fd;
2497 /* TODO: how to set mouse position?
2501 name = (const char *) ttyname (0); 2498 name = (const char *) ttyname (0);
2502 fd = open (name, O_WRONLY); 2499 fd = open (name, O_WRONLY);
2503 /* TODO: how to set mouse position? 2500 SOME_FUNCTION (x, y, fd);
2504 SOME_FUNCTION (x, y, fd); */
2505 close (fd); 2501 close (fd);
2506 last_mouse_x = x; 2502 last_mouse_x = x;
2507 last_mouse_y = y; 2503 last_mouse_y = y; */
2508} 2504}
2509 2505
2510static void 2506static void
@@ -2681,10 +2677,6 @@ term_mouse_highlight (struct frame *f, int x, int y)
2681 || !f->glyphs_initialized_p) 2677 || !f->glyphs_initialized_p)
2682 return; 2678 return;
2683 2679
2684 mouse_face_mouse_x = x;
2685 mouse_face_mouse_y = y;
2686 mouse_face_mouse_frame = f;
2687
2688 /* Which window is that in? */ 2680 /* Which window is that in? */
2689 window = window_from_coordinates (f, x, y, &part, &x, &y, 0); 2681 window = window_from_coordinates (f, x, y, &part, &x, &y, 0);
2690 2682
@@ -2926,7 +2918,7 @@ term_mouse_movement (FRAME_PTR frame, Gpm_Event *event)
2926 if (event->x != last_mouse_x || event->y != last_mouse_y) 2918 if (event->x != last_mouse_x || event->y != last_mouse_y)
2927 { 2919 {
2928 frame->mouse_moved = 1; 2920 frame->mouse_moved = 1;
2929 term_mouse_highlight (frame, event->x - 1, event->y - 1); 2921 term_mouse_highlight (frame, event->x, event->y);
2930 /* Remember which glyph we're now on. */ 2922 /* Remember which glyph we're now on. */
2931 last_mouse_x = event->x; 2923 last_mouse_x = event->x;
2932 last_mouse_y = event->y; 2924 last_mouse_y = event->y;
@@ -2946,7 +2938,7 @@ term_mouse_movement (FRAME_PTR frame, Gpm_Event *event)
2946 2938
2947 Set *time to the time the mouse was at the returned position. 2939 Set *time to the time the mouse was at the returned position.
2948 2940
2949 This should clear mouse_moved until the next motion 2941 This clears mouse_moved until the next motion
2950 event arrives. */ 2942 event arrives. */
2951static void 2943static void
2952term_mouse_position (FRAME_PTR *fp, int insist, Lisp_Object *bar_window, 2944term_mouse_position (FRAME_PTR *fp, int insist, Lisp_Object *bar_window,
@@ -2954,8 +2946,6 @@ term_mouse_position (FRAME_PTR *fp, int insist, Lisp_Object *bar_window,
2954 Lisp_Object *y, unsigned long *time) 2946 Lisp_Object *y, unsigned long *time)
2955{ 2947{
2956 struct timeval now; 2948 struct timeval now;
2957 Lisp_Object frame, window;
2958 struct window *w;
2959 2949
2960 *fp = SELECTED_FRAME (); 2950 *fp = SELECTED_FRAME ();
2961 (*fp)->mouse_moved = 0; 2951 (*fp)->mouse_moved = 0;
@@ -2963,13 +2953,8 @@ term_mouse_position (FRAME_PTR *fp, int insist, Lisp_Object *bar_window,
2963 *bar_window = Qnil; 2953 *bar_window = Qnil;
2964 *part = 0; 2954 *part = 0;
2965 2955
2966 XSETINT (*x, last_mouse_x); 2956 XSETINT (*x, last_mouse_x);
2967 XSETINT (*y, last_mouse_y); 2957 XSETINT (*y, last_mouse_y);
2968 XSETFRAME (frame, *fp);
2969 window = Fwindow_at (*x, *y, frame);
2970
2971 XSETINT (*x, last_mouse_x - WINDOW_LEFT_EDGE_COL (XWINDOW (window)));
2972 XSETINT (*y, last_mouse_y - WINDOW_TOP_EDGE_LINE (XWINDOW (window)));
2973 gettimeofday(&now, 0); 2958 gettimeofday(&now, 0);
2974 *time = (now.tv_sec * 1000) + (now.tv_usec / 1000); 2959 *time = (now.tv_sec * 1000) + (now.tv_usec / 1000);
2975} 2960}
@@ -3016,7 +3001,7 @@ term_mouse_click (struct input_event *result, Gpm_Event *event,
3016 if (event->type & GPM_DRAG) 3001 if (event->type & GPM_DRAG)
3017 result->modifiers |= drag_modifier; 3002 result->modifiers |= drag_modifier;
3018 3003
3019 if (!(event->type & (GPM_MOVE|GPM_DRAG))) { 3004 if (!(event->type & (GPM_MOVE | GPM_DRAG))) {
3020 3005
3021 /* 1 << KG_SHIFT */ 3006 /* 1 << KG_SHIFT */
3022 if (event->modifiers & (1 << 0)) 3007 if (event->modifiers & (1 << 0))
@@ -3032,8 +3017,8 @@ term_mouse_click (struct input_event *result, Gpm_Event *event,
3032 result->modifiers |= meta_modifier; 3017 result->modifiers |= meta_modifier;
3033 } 3018 }
3034 3019
3035 XSETINT (result->x, event->x - 1); 3020 XSETINT (result->x, event->x);
3036 XSETINT (result->y, event->y - 1); 3021 XSETINT (result->y, event->y);
3037 XSETFRAME (result->frame_or_window, f); 3022 XSETFRAME (result->frame_or_window, f);
3038 result->arg = Qnil; 3023 result->arg = Qnil;
3039 return Qnil; 3024 return Qnil;
@@ -3052,7 +3037,7 @@ handle_one_term_event (Gpm_Event *event, struct input_event* hold_quit)
3052 ie.kind = NO_EVENT; 3037 ie.kind = NO_EVENT;
3053 ie.arg = Qnil; 3038 ie.arg = Qnil;
3054 3039
3055 if (event->type & GPM_MOVE) { 3040 if (event->type & (GPM_MOVE | GPM_DRAG)) {
3056 unsigned char buf[6 * sizeof (short)]; 3041 unsigned char buf[6 * sizeof (short)];
3057 unsigned short *arg = (unsigned short *) buf + 1; 3042 unsigned short *arg = (unsigned short *) buf + 1;
3058 const char *name; 3043 const char *name;
@@ -3063,8 +3048,8 @@ handle_one_term_event (Gpm_Event *event, struct input_event* hold_quit)
3063 /* Display mouse pointer */ 3048 /* Display mouse pointer */
3064 buf[sizeof(short) - 1] = 2; /* set selection */ 3049 buf[sizeof(short) - 1] = 2; /* set selection */
3065 3050
3066 arg[0] = arg[2] = (unsigned short) event->x; 3051 arg[0] = arg[2] = (unsigned short) event->x + gpm_zerobased;
3067 arg[1] = arg[3] = (unsigned short) event->y; 3052 arg[1] = arg[3] = (unsigned short) event->y + gpm_zerobased;
3068 arg[4] = (unsigned short) 3; 3053 arg[4] = (unsigned short) 3;
3069 3054
3070 name = (const char *) ttyname (0); 3055 name = (const char *) ttyname (0);
@@ -3072,7 +3057,8 @@ handle_one_term_event (Gpm_Event *event, struct input_event* hold_quit)
3072 ioctl (fd, TIOCLINUX, buf + sizeof (short) - 1); 3057 ioctl (fd, TIOCLINUX, buf + sizeof (short) - 1);
3073 close (fd); 3058 close (fd);
3074 3059
3075 term_mouse_movement (f, event); 3060 if (!term_mouse_movement (f, event))
3061 help_echo_string = previous_help_echo_string;
3076 3062
3077 /* If the contents of the global variable help_echo_string 3063 /* If the contents of the global variable help_echo_string
3078 has changed, generate a HELP_EVENT. */ 3064 has changed, generate a HELP_EVENT. */
@@ -3123,6 +3109,7 @@ DEFUN ("term-open-connection", Fterm_open_connection, Sterm_open_connection,
3123 connection.defaultMask = ~GPM_HARD; 3109 connection.defaultMask = ~GPM_HARD;
3124 connection.maxMod = ~0; 3110 connection.maxMod = ~0;
3125 connection.minMod = 0; 3111 connection.minMod = 0;
3112 gpm_zerobased = 1;
3126 3113
3127 if (Gpm_Open (&connection, 0) < 0) 3114 if (Gpm_Open (&connection, 0) < 0)
3128 return Qnil; 3115 return Qnil;
diff --git a/src/w32fns.c b/src/w32fns.c
index dc36f41575b..94674def83a 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -8043,9 +8043,9 @@ If ONLY-DIR-P is non-nil, the user can only select directories. */)
8043 /* Apparently NT4 crashes if you give it an unexpected size. 8043 /* Apparently NT4 crashes if you give it an unexpected size.
8044 I'm not sure about Windows 9x, so play it safe. */ 8044 I'm not sure about Windows 9x, so play it safe. */
8045 if (w32_major_version > 4 && w32_major_version < 95) 8045 if (w32_major_version > 4 && w32_major_version < 95)
8046 file_details->lStructSize = sizeof (new_file_details); 8046 file_details->lStructSize = sizeof (NEWOPENFILENAME);
8047 else 8047 else
8048 file_details->lStructSize = sizeof (file_details); 8048 file_details->lStructSize = sizeof (OPENFILENAME);
8049 8049
8050 file_details->hwndOwner = FRAME_W32_WINDOW (f); 8050 file_details->hwndOwner = FRAME_W32_WINDOW (f);
8051 /* Undocumented Bug in Common File Dialog: 8051 /* Undocumented Bug in Common File Dialog:
diff --git a/src/window.c b/src/window.c
index f417c7458d4..61be973e180 100644
--- a/src/window.c
+++ b/src/window.c
@@ -4110,8 +4110,8 @@ too small. */)
4110DEFUN ("shrink-window", Fshrink_window, Sshrink_window, 1, 2, "p", 4110DEFUN ("shrink-window", Fshrink_window, Sshrink_window, 1, 2, "p",
4111 doc: /* Make current window ARG lines smaller. 4111 doc: /* Make current window ARG lines smaller.
4112From program, optional second arg non-nil means shrink sideways arg columns. 4112From program, optional second arg non-nil means shrink sideways arg columns.
4113Interactively, if an argument is not given, make the window one line smaller. Only 4113Interactively, if an argument is not given, make the window one line smaller.
4114siblings to the right or below are changed. */) 4114Only siblings to the right or below are changed. */)
4115 (arg, side) 4115 (arg, side)
4116 Lisp_Object arg, side; 4116 Lisp_Object arg, side;
4117{ 4117{
diff --git a/src/xdisp.c b/src/xdisp.c
index 268def4a0f2..b87a3d3ac08 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -17491,7 +17491,7 @@ are the selected window and the window's buffer). */)
17491 CHECK_BUFFER (buffer); 17491 CHECK_BUFFER (buffer);
17492 17492
17493 if (NILP (format)) 17493 if (NILP (format))
17494 return build_string (""); 17494 return empty_unibyte_string;
17495 17495
17496 if (no_props) 17496 if (no_props)
17497 face = Qnil; 17497 face = Qnil;
@@ -17549,7 +17549,7 @@ are the selected window and the window's buffer). */)
17549 { 17549 {
17550 mode_line_string_list = Fnreverse (mode_line_string_list); 17550 mode_line_string_list = Fnreverse (mode_line_string_list);
17551 str = Fmapconcat (intern ("identity"), mode_line_string_list, 17551 str = Fmapconcat (intern ("identity"), mode_line_string_list,
17552 make_string ("", 0)); 17552 empty_unibyte_string);
17553 } 17553 }
17554 17554
17555 unbind_to (count, Qnil); 17555 unbind_to (count, Qnil);
@@ -24387,7 +24387,7 @@ and is used only on frames for which no explicit name has been set
24387 = Vframe_title_format 24387 = Vframe_title_format
24388 = Fcons (intern ("multiple-frames"), 24388 = Fcons (intern ("multiple-frames"),
24389 Fcons (build_string ("%b"), 24389 Fcons (build_string ("%b"),
24390 Fcons (Fcons (empty_string, 24390 Fcons (Fcons (empty_unibyte_string,
24391 Fcons (intern ("invocation-name"), 24391 Fcons (intern ("invocation-name"),
24392 Fcons (build_string ("@"), 24392 Fcons (build_string ("@"),
24393 Fcons (intern ("system-name"), 24393 Fcons (intern ("system-name"),
diff --git a/src/xfaces.c b/src/xfaces.c
index b2ec813a465..63776cf98ac 100644
--- a/src/xfaces.c
+++ b/src/xfaces.c
@@ -4160,6 +4160,8 @@ Otherwise check for the existence of a global face. */)
4160{ 4160{
4161 Lisp_Object lface; 4161 Lisp_Object lface;
4162 4162
4163 face = resolve_face_name (face, 1);
4164
4163 if (!NILP (frame)) 4165 if (!NILP (frame))
4164 { 4166 {
4165 CHECK_LIVE_FRAME (frame); 4167 CHECK_LIVE_FRAME (frame);
diff --git a/src/xfns.c b/src/xfns.c
index 9fee9c52da4..dbc9f2d9b16 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -1523,6 +1523,8 @@ x_set_scroll_bar_background (f, value, oldval)
1523/* Encode Lisp string STRING as a text in a format appropriate for 1523/* Encode Lisp string STRING as a text in a format appropriate for
1524 XICCC (X Inter Client Communication Conventions). 1524 XICCC (X Inter Client Communication Conventions).
1525 1525
1526 This can call Lisp code, so callers must GCPRO.
1527
1526 If STRING contains only ASCII characters, do no conversion and 1528 If STRING contains only ASCII characters, do no conversion and
1527 return the string data of STRING. Otherwise, encode the text by 1529 return the string data of STRING. Otherwise, encode the text by
1528 CODING_SYSTEM, and return a newly allocated memory area which 1530 CODING_SYSTEM, and return a newly allocated memory area which
@@ -1591,6 +1593,16 @@ x_set_name_internal (f, name)
1591 int bytes, stringp; 1593 int bytes, stringp;
1592 int do_free_icon_value = 0, do_free_text_value = 0; 1594 int do_free_icon_value = 0, do_free_text_value = 0;
1593 Lisp_Object coding_system; 1595 Lisp_Object coding_system;
1596#ifdef USE_GTK
1597 Lisp_Object encoded_name;
1598 struct gcpro gcpro1;
1599
1600 /* As ENCODE_UTF_8 may cause GC and relocation of string data,
1601 we use it before x_encode_text that may return string data. */
1602 GCPRO1 (name);
1603 encoded_name = ENCODE_UTF_8 (name);
1604 UNGCPRO;
1605#endif
1594 1606
1595 coding_system = Qcompound_text; 1607 coding_system = Qcompound_text;
1596 /* Note: Encoding strategy 1608 /* Note: Encoding strategy
@@ -1631,7 +1643,7 @@ x_set_name_internal (f, name)
1631 1643
1632#ifdef USE_GTK 1644#ifdef USE_GTK
1633 gtk_window_set_title (GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)), 1645 gtk_window_set_title (GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)),
1634 (char *) SDATA (ENCODE_UTF_8 (name))); 1646 (char *) SDATA (encoded_name));
1635#else /* not USE_GTK */ 1647#else /* not USE_GTK */
1636 XSetWMName (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f), &text); 1648 XSetWMName (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f), &text);
1637#endif /* not USE_GTK */ 1649#endif /* not USE_GTK */
@@ -1817,9 +1829,9 @@ x_default_scroll_bar_color_parameter (f, alist, prop, xprop, xclass,
1817 build_string (foreground_p 1829 build_string (foreground_p
1818 ? "foreground" 1830 ? "foreground"
1819 : "background"), 1831 : "background"),
1820 empty_string, 1832 empty_unibyte_string,
1821 build_string ("verticalScrollBar"), 1833 build_string ("verticalScrollBar"),
1822 empty_string); 1834 empty_unibyte_string);
1823 if (!STRINGP (tem)) 1835 if (!STRINGP (tem))
1824 { 1836 {
1825 /* If nothing has been specified, scroll bars will use a 1837 /* If nothing has been specified, scroll bars will use a
diff --git a/src/xmenu.c b/src/xmenu.c
index 0518832d217..4390e34a914 100644
--- a/src/xmenu.c
+++ b/src/xmenu.c
@@ -325,7 +325,7 @@ restore_menu_items (saved)
325 menu_items_used = XINT (XCAR (saved)); 325 menu_items_used = XINT (XCAR (saved));
326 saved = XCDR (saved); 326 saved = XCDR (saved);
327 menu_items_n_panes = XINT (XCAR (saved)); 327 menu_items_n_panes = XINT (XCAR (saved));
328 saved = XCDR (saved); 328 saved = XCDR (saved);
329 menu_items_submenu_depth = XINT (XCAR (saved)); 329 menu_items_submenu_depth = XINT (XCAR (saved));
330 return Qnil; 330 return Qnil;
331} 331}
@@ -3428,7 +3428,7 @@ menu_help_callback (help_string, pane, item)
3428 pane_name = first_item[MENU_ITEMS_PANE_NAME]; 3428 pane_name = first_item[MENU_ITEMS_PANE_NAME];
3429 else if (EQ (first_item[0], Qquote)) 3429 else if (EQ (first_item[0], Qquote))
3430 /* This shouldn't happen, see xmenu_show. */ 3430 /* This shouldn't happen, see xmenu_show. */
3431 pane_name = empty_string; 3431 pane_name = empty_unibyte_string;
3432 else 3432 else
3433 pane_name = first_item[MENU_ITEMS_ITEM_NAME]; 3433 pane_name = first_item[MENU_ITEMS_ITEM_NAME];
3434 3434
diff --git a/src/xselect.c b/src/xselect.c
index 3fe109a5b85..17dc7c0e7d3 100644
--- a/src/xselect.c
+++ b/src/xselect.c
@@ -2678,7 +2678,7 @@ If the value is 0 or the atom is not known, return the empty string. */)
2678 ret = make_string (name, strlen (name)); 2678 ret = make_string (name, strlen (name));
2679 2679
2680 if (atom && name) XFree (name); 2680 if (atom && name) XFree (name);
2681 if (NILP (ret)) ret = make_string ("", 0); 2681 if (NILP (ret)) ret = empty_unibyte_string;
2682 2682
2683 UNBLOCK_INPUT; 2683 UNBLOCK_INPUT;
2684 2684
diff --git a/src/xterm.c b/src/xterm.c
index 462de3f32b1..772f7ea7bae 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -8652,7 +8652,7 @@ wm_supports (f, atomname)
8652 prop_atom, 0, max_len, False, target_type, 8652 prop_atom, 0, max_len, False, target_type,
8653 &actual_type, &actual_format, &actual_size, 8653 &actual_type, &actual_format, &actual_size,
8654 &bytes_remaining, &tmp_data); 8654 &bytes_remaining, &tmp_data);
8655 8655
8656 if (rc != Success || actual_type != XA_WINDOW || x_had_errors_p (dpy)) 8656 if (rc != Success || actual_type != XA_WINDOW || x_had_errors_p (dpy))
8657 { 8657 {
8658 if (tmp_data) XFree (tmp_data); 8658 if (tmp_data) XFree (tmp_data);
@@ -8707,7 +8707,7 @@ wm_supports (f, atomname)
8707 rc = 0; 8707 rc = 0;
8708 want_atom = XInternAtom (dpy, atomname, False); 8708 want_atom = XInternAtom (dpy, atomname, False);
8709 8709
8710 for (i = 0; rc == 0 && i < dpyinfo->nr_net_supported_atoms; ++i) 8710 for (i = 0; rc == 0 && i < dpyinfo->nr_net_supported_atoms; ++i)
8711 rc = dpyinfo->net_supported_atoms[i] == want_atom; 8711 rc = dpyinfo->net_supported_atoms[i] == want_atom;
8712 8712
8713 x_uncatch_errors (); 8713 x_uncatch_errors ();
@@ -11108,7 +11108,7 @@ x_term_init (display_name, xrm_option, resource_name)
11108 UNBLOCK_INPUT; 11108 UNBLOCK_INPUT;
11109 dpyinfo->kboard->Vsystem_key_alist 11109 dpyinfo->kboard->Vsystem_key_alist
11110 = call1 (Qvendor_specific_keysyms, 11110 = call1 (Qvendor_specific_keysyms,
11111 build_string (vendor ? vendor : "")); 11111 vendor ? build_string (vendor) : empty_unibyte_string);
11112 BLOCK_INPUT; 11112 BLOCK_INPUT;
11113 } 11113 }
11114 11114