summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaroly Lorentey <lorentey@elte.hu>2005-09-04 03:48:17 +0000
committerKaroly Lorentey <lorentey@elte.hu>2005-09-04 03:48:17 +0000
commitfbf349734468d48b421c3d03074bb66dfcf3115b (patch)
tree0a7d1ee844b6c591a5a499d23e35931945106e5a
parentf0caabd962b662cccbea472995d86af718cc8d0b (diff)
parent4b5fa40e1f1ba3cafde672863a0331311d1c2695 (diff)
Merged in changes from CVS trunk. Plus added lisp/term tweaks.
Patches applied: * lorentey@elte.hu--2004/emacs--cvs-trunk--0--base-0 tag of miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-474 * lorentey@elte.hu--2004/emacs--cvs-trunk--0--patch-1 Add CVS metadata files. * lorentey@elte.hu--2004/emacs--cvs-trunk--0--patch-2 Update from CVS. git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-393
-rw-r--r--.gitignore3
-rw-r--r--ChangeLog20
-rw-r--r--Makefile.in8
-rw-r--r--admin/ChangeLog9
-rw-r--r--admin/FOR-RELEASE123
-rw-r--r--admin/notes/years24
-rwxr-xr-xconfigure488
-rw-r--r--configure.in11
-rw-r--r--etc/.gitignore1
-rw-r--r--etc/ChangeLog51
-rw-r--r--etc/DEBUG3
-rw-r--r--etc/DISTRIB5
-rw-r--r--etc/GNU20
-rw-r--r--etc/GNUS-NEWS20
-rw-r--r--etc/MORE.STUFF56
-rw-r--r--etc/NEWS143
-rw-r--r--etc/PROBLEMS10
-rw-r--r--etc/TODO11
-rw-r--r--etc/TUTORIAL4
-rw-r--r--etc/TUTORIAL.bg4
-rw-r--r--etc/TUTORIAL.cn4
-rw-r--r--etc/TUTORIAL.cs4
-rw-r--r--etc/TUTORIAL.de4
-rw-r--r--etc/TUTORIAL.es4
-rw-r--r--etc/TUTORIAL.fr4
-rw-r--r--etc/TUTORIAL.it3
-rw-r--r--etc/TUTORIAL.ja4
-rw-r--r--etc/TUTORIAL.ko5
-rw-r--r--etc/TUTORIAL.nl7
-rw-r--r--etc/TUTORIAL.pl4
-rw-r--r--etc/TUTORIAL.pt_BR3
-rw-r--r--etc/TUTORIAL.ro3
-rw-r--r--etc/TUTORIAL.ru8
-rw-r--r--etc/TUTORIAL.sk4
-rw-r--r--etc/TUTORIAL.sl4
-rw-r--r--etc/TUTORIAL.sv23
-rw-r--r--etc/TUTORIAL.th3
-rw-r--r--etc/TUTORIAL.zh84
-rw-r--r--etc/calccard.tex5
-rw-r--r--etc/compilation.txt7
-rw-r--r--etc/cs-dired-ref.tex4
-rw-r--r--etc/cs-refcard.tex5
-rw-r--r--etc/cs-survival.tex4
-rw-r--r--etc/de-refcard.tex5
-rw-r--r--etc/dired-ref.tex5
-rw-r--r--etc/edt-user.doc3
-rw-r--r--etc/emacs.15
-rw-r--r--etc/emacs.py2
-rw-r--r--etc/emacsclient.148
-rw-r--r--etc/emacstool.12
-rw-r--r--etc/etags.15
-rw-r--r--etc/fr-drdref.tex4
-rw-r--r--etc/fr-refcard.tex5
-rw-r--r--etc/fr-survival.tex4
-rw-r--r--etc/gfdl.12
-rw-r--r--etc/gnus-refcard.tex3
-rw-r--r--etc/gnus-tut.txt2
-rw-r--r--etc/grep.txt87
-rw-r--r--etc/orgcard.ps865
-rw-r--r--etc/orgcard.tex33
-rw-r--r--etc/pl-refcard.tex4
-rw-r--r--etc/refcard.tex12
-rw-r--r--etc/ru-refcard.tex4
-rw-r--r--etc/sk-dired-ref.tex4
-rw-r--r--etc/sk-refcard.tex5
-rw-r--r--etc/sk-survival.tex4
-rw-r--r--etc/survival.tex4
-rw-r--r--etc/vipcard.tex4
-rw-r--r--etc/viperCard.tex5
-rw-r--r--leim/ChangeLog5
-rw-r--r--leim/quail/japanese.el6
-rw-r--r--lib-src/.gitignore5
-rw-r--r--lib-src/ChangeLog31
-rw-r--r--lib-src/Makefile.in23
-rw-r--r--lib-src/cvtmail.c3
-rw-r--r--lib-src/digest-doc.c3
-rw-r--r--lib-src/ebrowse.c4
-rw-r--r--lib-src/emacsclient.c4
-rw-r--r--lib-src/emacstool.c3
-rw-r--r--lib-src/etags.c5
-rw-r--r--lib-src/fakemail.c3
-rw-r--r--lib-src/getopt.c633
-rw-r--r--lib-src/getopt1.c81
-rw-r--r--lib-src/getopt_.h (renamed from lib-src/getopt.h)121
-rw-r--r--lib-src/getopt_int.h134
-rw-r--r--[-rwxr-xr-x]lib-src/gettext.h (renamed from nt/inc/gettext.h)32
-rwxr-xr-xlib-src/grep-changelog3
-rw-r--r--lib-src/hexl.c2
-rw-r--r--lib-src/make-docfile.c4
-rw-r--r--lib-src/makefile.w32-in6
-rw-r--r--lib-src/movemail.c3
-rw-r--r--lib-src/ntlib.c2
-rw-r--r--lib-src/ntlib.h2
-rw-r--r--lib-src/pop.c38
-rw-r--r--lib-src/pop.h3
-rw-r--r--lib-src/profile.c3
-rwxr-xr-xlib-src/rcs-checkin3
-rwxr-xr-xlib-src/rcs2log4
-rw-r--r--lib-src/sorted-doc.c4
-rw-r--r--lib-src/test-distrib.c4
-rw-r--r--lib-src/update-game-score.c2
-rwxr-xr-xlib-src/vcdiff4
-rw-r--r--lisp/ChangeLog2742
-rw-r--r--lisp/Makefile.in13
-rw-r--r--lisp/abbrev.el16
-rw-r--r--lisp/abbrevlist.el3
-rw-r--r--lisp/add-log.el10
-rw-r--r--lisp/align.el6
-rw-r--r--lisp/allout.el131
-rw-r--r--lisp/ansi-color.el9
-rw-r--r--lisp/apropos.el3
-rw-r--r--lisp/arc-mode.el29
-rw-r--r--lisp/array.el11
-rw-r--r--lisp/autoarg.el3
-rw-r--r--lisp/autoinsert.el4
-rw-r--r--lisp/autorevert.el5
-rw-r--r--lisp/avoid.el3
-rw-r--r--lisp/battery.el13
-rw-r--r--lisp/bindings.el4
-rw-r--r--lisp/bookmark.el56
-rw-r--r--lisp/bs.el29
-rw-r--r--lisp/buff-menu.el32
-rw-r--r--lisp/button.el2
-rw-r--r--lisp/calc/README3
-rw-r--r--lisp/calc/calc-aent.el3
-rw-r--r--lisp/calc/calc-alg.el3
-rw-r--r--lisp/calc/calc-arith.el3
-rw-r--r--lisp/calc/calc-bin.el3
-rw-r--r--lisp/calc/calc-comb.el3
-rw-r--r--lisp/calc/calc-cplx.el3
-rw-r--r--lisp/calc/calc-embed.el61
-rw-r--r--lisp/calc/calc-ext.el3
-rw-r--r--lisp/calc/calc-fin.el3
-rw-r--r--lisp/calc/calc-forms.el4
-rw-r--r--lisp/calc/calc-frac.el3
-rw-r--r--lisp/calc/calc-funcs.el3
-rw-r--r--lisp/calc/calc-graph.el3
-rw-r--r--lisp/calc/calc-help.el4
-rw-r--r--lisp/calc/calc-incom.el3
-rw-r--r--lisp/calc/calc-keypd.el3
-rw-r--r--lisp/calc/calc-lang.el3
-rw-r--r--lisp/calc/calc-macs.el3
-rw-r--r--lisp/calc/calc-map.el3
-rw-r--r--lisp/calc/calc-math.el3
-rw-r--r--lisp/calc/calc-misc.el3
-rw-r--r--lisp/calc/calc-mode.el3
-rw-r--r--lisp/calc/calc-mtx.el3
-rw-r--r--lisp/calc/calc-poly.el3
-rw-r--r--lisp/calc/calc-prog.el3
-rw-r--r--lisp/calc/calc-rewr.el3
-rw-r--r--lisp/calc/calc-rules.el3
-rw-r--r--lisp/calc/calc-sel.el4
-rw-r--r--lisp/calc/calc-stat.el3
-rw-r--r--lisp/calc/calc-store.el3
-rw-r--r--lisp/calc/calc-stuff.el3
-rw-r--r--lisp/calc/calc-trail.el3
-rw-r--r--lisp/calc/calc-undo.el3
-rw-r--r--lisp/calc/calc-units.el11
-rw-r--r--lisp/calc/calc-vec.el3
-rw-r--r--lisp/calc/calc-yank.el3
-rw-r--r--lisp/calc/calc.el92
-rw-r--r--lisp/calc/calcalg2.el3
-rw-r--r--lisp/calc/calcalg3.el3
-rw-r--r--lisp/calc/calccomp.el3
-rw-r--r--lisp/calc/calcsel2.el3
-rw-r--r--lisp/calculator.el18
-rw-r--r--lisp/calendar/cal-bahai.el14
-rw-r--r--lisp/calendar/cal-china.el1
-rw-r--r--lisp/calendar/cal-coptic.el2
-rw-r--r--lisp/calendar/cal-french.el2
-rw-r--r--lisp/calendar/cal-hebrew.el4
-rw-r--r--lisp/calendar/cal-islam.el3
-rw-r--r--lisp/calendar/cal-iso.el2
-rw-r--r--lisp/calendar/cal-julian.el1
-rw-r--r--lisp/calendar/cal-mayan.el2
-rw-r--r--lisp/calendar/cal-menu.el2
-rw-r--r--lisp/calendar/cal-persia.el2
-rw-r--r--lisp/calendar/calendar.el10
-rw-r--r--lisp/calendar/diary-lib.el9
-rw-r--r--lisp/calendar/icalendar.el3
-rw-r--r--lisp/calendar/lunar.el1
-rw-r--r--lisp/calendar/solar.el1
-rw-r--r--lisp/case-table.el3
-rw-r--r--lisp/cdl.el2
-rw-r--r--lisp/chistory.el2
-rw-r--r--lisp/cmuscheme.el152
-rw-r--r--lisp/comint.el76
-rw-r--r--lisp/compare-w.el31
-rw-r--r--lisp/complete.el4
-rw-r--r--lisp/completion.el9
-rw-r--r--lisp/composite.el8
-rw-r--r--lisp/cus-dep.el2
-rw-r--r--lisp/cus-edit.el76
-rw-r--r--lisp/cus-face.el55
-rw-r--r--lisp/cus-start.el81
-rw-r--r--lisp/cus-theme.el2
-rw-r--r--lisp/custom.el573
-rw-r--r--lisp/cvs-status.el3
-rw-r--r--lisp/dabbrev.el4
-rw-r--r--lisp/delim-col.el3
-rw-r--r--lisp/delsel.el9
-rw-r--r--lisp/descr-text.el98
-rw-r--r--lisp/desktop.el285
-rw-r--r--lisp/diff-mode.el64
-rw-r--r--lisp/diff.el3
-rw-r--r--lisp/dired-aux.el22
-rw-r--r--lisp/dired-x.el84
-rw-r--r--lisp/dired.el98
-rw-r--r--lisp/dirtrack.el6
-rw-r--r--lisp/disp-table.el3
-rw-r--r--lisp/dnd.el3
-rw-r--r--lisp/dos-fns.el3
-rw-r--r--lisp/dos-vars.el2
-rw-r--r--lisp/dos-w32.el2
-rw-r--r--lisp/double.el3
-rw-r--r--lisp/ebuff-menu.el5
-rw-r--r--lisp/echistory.el2
-rw-r--r--lisp/ediff-diff.el126
-rw-r--r--lisp/ediff-help.el3
-rw-r--r--lisp/ediff-hook.el3
-rw-r--r--lisp/ediff-init.el120
-rw-r--r--lisp/ediff-merg.el3
-rw-r--r--lisp/ediff-mult.el12
-rw-r--r--lisp/ediff-ptch.el5
-rw-r--r--lisp/ediff-util.el15
-rw-r--r--lisp/ediff-vers.el8
-rw-r--r--lisp/ediff-wind.el3
-rw-r--r--lisp/ediff.el25
-rw-r--r--lisp/edmacro.el3
-rw-r--r--lisp/ehelp.el3
-rw-r--r--lisp/electric.el3
-rw-r--r--lisp/elide-head.el2
-rw-r--r--lisp/emacs-lisp/advice.el3
-rw-r--r--lisp/emacs-lisp/assoc.el2
-rw-r--r--lisp/emacs-lisp/authors.el2
-rw-r--r--lisp/emacs-lisp/autoload.el2
-rw-r--r--lisp/emacs-lisp/backquote.el3
-rw-r--r--lisp/emacs-lisp/benchmark.el2
-rw-r--r--lisp/emacs-lisp/bindat.el2
-rw-r--r--lisp/emacs-lisp/byte-opt.el4
-rw-r--r--lisp/emacs-lisp/byte-run.el2
-rw-r--r--lisp/emacs-lisp/bytecomp.el99
-rw-r--r--lisp/emacs-lisp/checkdoc.el60
-rw-r--r--lisp/emacs-lisp/cl-compat.el2
-rw-r--r--lisp/emacs-lisp/cl-extra.el9
-rw-r--r--lisp/emacs-lisp/cl-indent.el3
-rw-r--r--lisp/emacs-lisp/cl-macs.el3
-rw-r--r--lisp/emacs-lisp/cl-seq.el2
-rw-r--r--lisp/emacs-lisp/cl-specs.el2
-rw-r--r--lisp/emacs-lisp/cl.el2
-rw-r--r--lisp/emacs-lisp/copyright.el4
-rw-r--r--lisp/emacs-lisp/crm.el4
-rw-r--r--lisp/emacs-lisp/cust-print.el2
-rw-r--r--lisp/emacs-lisp/debug.el95
-rw-r--r--lisp/emacs-lisp/derived.el20
-rw-r--r--lisp/emacs-lisp/disass.el3
-rw-r--r--lisp/emacs-lisp/easy-mmode.el48
-rw-r--r--lisp/emacs-lisp/easymenu.el4
-rw-r--r--lisp/emacs-lisp/edebug.el76
-rw-r--r--lisp/emacs-lisp/eldoc.el13
-rw-r--r--lisp/emacs-lisp/elint.el2
-rw-r--r--lisp/emacs-lisp/elp.el3
-rw-r--r--lisp/emacs-lisp/ewoc.el4
-rw-r--r--lisp/emacs-lisp/find-func.el5
-rw-r--r--lisp/emacs-lisp/find-gc.el110
-rw-r--r--lisp/emacs-lisp/float-sup.el3
-rw-r--r--lisp/emacs-lisp/generic.el6
-rw-r--r--lisp/emacs-lisp/gulp.el2
-rw-r--r--lisp/emacs-lisp/helper.el2
-rw-r--r--lisp/emacs-lisp/levents.el3
-rw-r--r--lisp/emacs-lisp/lisp-mnt.el5
-rw-r--r--lisp/emacs-lisp/lisp-mode.el16
-rw-r--r--lisp/emacs-lisp/lisp.el4
-rw-r--r--lisp/emacs-lisp/lmenu.el7
-rw-r--r--lisp/emacs-lisp/lselect.el18
-rw-r--r--lisp/emacs-lisp/lucid.el3
-rw-r--r--lisp/emacs-lisp/macroexp.el4
-rw-r--r--lisp/emacs-lisp/map-ynp.el20
-rw-r--r--lisp/emacs-lisp/pp.el5
-rw-r--r--lisp/emacs-lisp/re-builder.el77
-rw-r--r--lisp/emacs-lisp/regexp-opt.el4
-rw-r--r--lisp/emacs-lisp/regi.el2
-rw-r--r--lisp/emacs-lisp/ring.el2
-rw-r--r--lisp/emacs-lisp/rx.el2
-rw-r--r--lisp/emacs-lisp/shadow.el2
-rw-r--r--lisp/emacs-lisp/sregex.el3
-rw-r--r--lisp/emacs-lisp/syntax.el5
-rw-r--r--lisp/emacs-lisp/tcover-ses.el5
-rw-r--r--lisp/emacs-lisp/tcover-unsafep.el4
-rw-r--r--lisp/emacs-lisp/testcover.el6
-rw-r--r--lisp/emacs-lisp/timer.el34
-rw-r--r--lisp/emacs-lisp/tq.el3
-rw-r--r--lisp/emacs-lisp/trace.el3
-rw-r--r--lisp/emacs-lisp/unsafep.el2
-rw-r--r--lisp/emacs-lisp/warnings.el2
-rw-r--r--lisp/emacs-lock.el3
-rw-r--r--lisp/emerge.el12
-rw-r--r--lisp/emulation/crisp.el3
-rw-r--r--lisp/emulation/cua-base.el272
-rw-r--r--lisp/emulation/cua-gmrk.el3
-rw-r--r--lisp/emulation/cua-rect.el4
-rw-r--r--lisp/emulation/edt-lk201.el3
-rw-r--r--lisp/emulation/edt-mapper.el3
-rw-r--r--lisp/emulation/edt-pc.el3
-rw-r--r--lisp/emulation/edt-vt100.el3
-rw-r--r--lisp/emulation/edt.el4
-rw-r--r--lisp/emulation/keypad.el2
-rw-r--r--lisp/emulation/pc-mode.el2
-rw-r--r--lisp/emulation/pc-select.el3
-rw-r--r--lisp/emulation/tpu-edt.el3
-rw-r--r--lisp/emulation/tpu-extras.el3
-rw-r--r--lisp/emulation/tpu-mapper.el3
-rw-r--r--lisp/emulation/vip.el4
-rw-r--r--lisp/emulation/viper-cmd.el113
-rw-r--r--lisp/emulation/viper-ex.el3
-rw-r--r--lisp/emulation/viper-init.el44
-rw-r--r--lisp/emulation/viper-keym.el100
-rw-r--r--lisp/emulation/viper-macs.el15
-rw-r--r--lisp/emulation/viper-mous.el5
-rw-r--r--lisp/emulation/viper-util.el35
-rw-r--r--lisp/emulation/viper.el81
-rw-r--r--lisp/emulation/ws-mode.el2
-rw-r--r--lisp/env.el3
-rw-r--r--lisp/eshell/em-alias.el3
-rw-r--r--lisp/eshell/em-banner.el3
-rw-r--r--lisp/eshell/em-basic.el3
-rw-r--r--lisp/eshell/em-cmpl.el3
-rw-r--r--lisp/eshell/em-dirs.el3
-rw-r--r--lisp/eshell/em-glob.el3
-rw-r--r--lisp/eshell/em-hist.el11
-rw-r--r--lisp/eshell/em-ls.el12
-rw-r--r--lisp/eshell/em-pred.el3
-rw-r--r--lisp/eshell/em-prompt.el3
-rw-r--r--lisp/eshell/em-rebind.el3
-rw-r--r--lisp/eshell/em-script.el3
-rw-r--r--lisp/eshell/em-smart.el3
-rw-r--r--lisp/eshell/em-term.el3
-rw-r--r--lisp/eshell/em-unix.el3
-rw-r--r--lisp/eshell/em-xtra.el3
-rw-r--r--lisp/eshell/esh-arg.el9
-rw-r--r--lisp/eshell/esh-cmd.el17
-rw-r--r--lisp/eshell/esh-ext.el5
-rw-r--r--lisp/eshell/esh-io.el3
-rw-r--r--lisp/eshell/esh-maint.el3
-rw-r--r--lisp/eshell/esh-mode.el3
-rw-r--r--lisp/eshell/esh-module.el3
-rw-r--r--lisp/eshell/esh-opt.el3
-rw-r--r--lisp/eshell/esh-proc.el3
-rw-r--r--lisp/eshell/esh-test.el3
-rw-r--r--lisp/eshell/esh-util.el3
-rw-r--r--lisp/eshell/esh-var.el3
-rw-r--r--lisp/eshell/eshell.el10
-rw-r--r--lisp/expand.el3
-rw-r--r--lisp/facemenu.el12
-rw-r--r--lisp/faces.el88
-rw-r--r--lisp/ffap.el6
-rw-r--r--lisp/filecache.el3
-rw-r--r--lisp/files.el181
-rw-r--r--lisp/filesets.el2
-rw-r--r--lisp/find-dired.el3
-rw-r--r--lisp/find-file.el6
-rw-r--r--lisp/find-lisp.el6
-rw-r--r--lisp/finder.el3
-rw-r--r--lisp/flow-ctrl.el3
-rw-r--r--lisp/foldout.el2
-rw-r--r--lisp/follow.el4
-rw-r--r--lisp/font-core.el4
-rw-r--r--lisp/font-lock.el29
-rw-r--r--lisp/format.el3
-rw-r--r--lisp/forms-d2.el6
-rw-r--r--lisp/forms.el3
-rw-r--r--lisp/frame.el41
-rw-r--r--lisp/fringe.el46
-rw-r--r--lisp/generic-x.el3
-rw-r--r--lisp/gnus/ChangeLog202
-rw-r--r--lisp/gnus/binhex.el4
-rw-r--r--lisp/gnus/canlock.el4
-rw-r--r--lisp/gnus/compface.el3
-rw-r--r--lisp/gnus/dig.el4
-rw-r--r--lisp/gnus/dns.el3
-rw-r--r--lisp/gnus/earcon.el3
-rw-r--r--lisp/gnus/flow-fill.el3
-rw-r--r--lisp/gnus/format-spec.el4
-rw-r--r--lisp/gnus/gnus-agent.el5
-rw-r--r--lisp/gnus/gnus-art.el100
-rw-r--r--lisp/gnus/gnus-async.el5
-rw-r--r--lisp/gnus/gnus-audio.el4
-rw-r--r--lisp/gnus/gnus-bcklg.el5
-rw-r--r--lisp/gnus/gnus-cache.el5
-rw-r--r--lisp/gnus/gnus-cite.el5
-rw-r--r--lisp/gnus/gnus-cus.el6
-rw-r--r--lisp/gnus/gnus-delay.el2
-rw-r--r--lisp/gnus/gnus-demon.el4
-rw-r--r--lisp/gnus/gnus-diary.el2
-rw-r--r--lisp/gnus/gnus-dired.el4
-rw-r--r--lisp/gnus/gnus-draft.el5
-rw-r--r--lisp/gnus/gnus-dup.el5
-rw-r--r--lisp/gnus/gnus-eform.el5
-rw-r--r--lisp/gnus/gnus-ems.el5
-rw-r--r--lisp/gnus/gnus-fun.el3
-rw-r--r--lisp/gnus/gnus-gl.el4
-rw-r--r--lisp/gnus/gnus-group.el5
-rw-r--r--lisp/gnus/gnus-int.el5
-rw-r--r--lisp/gnus/gnus-kill.el5
-rw-r--r--lisp/gnus/gnus-logic.el5
-rw-r--r--lisp/gnus/gnus-mh.el5
-rw-r--r--lisp/gnus/gnus-ml.el3
-rw-r--r--lisp/gnus/gnus-mlspl.el4
-rw-r--r--lisp/gnus/gnus-move.el5
-rw-r--r--lisp/gnus/gnus-msg.el17
-rw-r--r--lisp/gnus/gnus-nocem.el5
-rw-r--r--lisp/gnus/gnus-picon.el4
-rw-r--r--lisp/gnus/gnus-range.el4
-rw-r--r--lisp/gnus/gnus-registry.el5
-rw-r--r--lisp/gnus/gnus-salt.el10
-rw-r--r--lisp/gnus/gnus-score.el5
-rw-r--r--lisp/gnus/gnus-setup.el4
-rw-r--r--lisp/gnus/gnus-sieve.el3
-rw-r--r--lisp/gnus/gnus-soup.el4
-rw-r--r--lisp/gnus/gnus-spec.el6
-rw-r--r--lisp/gnus/gnus-srvr.el4
-rw-r--r--lisp/gnus/gnus-start.el5
-rw-r--r--lisp/gnus/gnus-sum.el5
-rw-r--r--lisp/gnus/gnus-topic.el12
-rw-r--r--lisp/gnus/gnus-undo.el4
-rw-r--r--lisp/gnus/gnus-util.el8
-rw-r--r--lisp/gnus/gnus-uu.el19
-rw-r--r--lisp/gnus/gnus-vm.el4
-rw-r--r--lisp/gnus/gnus-win.el5
-rw-r--r--lisp/gnus/gnus.el15
-rw-r--r--lisp/gnus/hex-util.el3
-rw-r--r--lisp/gnus/html2text.el1
-rw-r--r--lisp/gnus/ietf-drums.el5
-rw-r--r--lisp/gnus/imap.el5
-rw-r--r--lisp/gnus/mail-parse.el5
-rw-r--r--lisp/gnus/mail-prsvr.el4
-rw-r--r--lisp/gnus/mail-source.el5
-rw-r--r--lisp/gnus/mailcap.el5
-rw-r--r--lisp/gnus/message.el25
-rw-r--r--lisp/gnus/messcompat.el4
-rw-r--r--lisp/gnus/mm-bodies.el7
-rw-r--r--lisp/gnus/mm-decode.el38
-rw-r--r--lisp/gnus/mm-encode.el5
-rw-r--r--lisp/gnus/mm-extern.el6
-rw-r--r--lisp/gnus/mm-partial.el4
-rw-r--r--lisp/gnus/mm-url.el7
-rw-r--r--lisp/gnus/mm-util.el16
-rw-r--r--lisp/gnus/mm-uu.el23
-rw-r--r--lisp/gnus/mm-view.el13
-rw-r--r--lisp/gnus/mml-sec.el4
-rw-r--r--lisp/gnus/mml-smime.el8
-rw-r--r--lisp/gnus/mml.el85
-rw-r--r--lisp/gnus/mml1991.el11
-rw-r--r--lisp/gnus/mml2015.el24
-rw-r--r--lisp/gnus/nnagent.el4
-rw-r--r--lisp/gnus/nnbabyl.el4
-rw-r--r--lisp/gnus/nndb.el4
-rw-r--r--lisp/gnus/nndiary.el4
-rw-r--r--lisp/gnus/nndir.el4
-rw-r--r--lisp/gnus/nndoc.el5
-rw-r--r--lisp/gnus/nndraft.el4
-rw-r--r--lisp/gnus/nneething.el4
-rw-r--r--lisp/gnus/nnfolder.el5
-rw-r--r--lisp/gnus/nngateway.el4
-rw-r--r--lisp/gnus/nnheader.el8
-rw-r--r--lisp/gnus/nnimap.el5
-rw-r--r--lisp/gnus/nnkiboze.el4
-rw-r--r--lisp/gnus/nnlistserv.el3
-rw-r--r--lisp/gnus/nnmail.el5
-rw-r--r--lisp/gnus/nnmbox.el4
-rw-r--r--lisp/gnus/nnmh.el4
-rw-r--r--lisp/gnus/nnml.el5
-rw-r--r--lisp/gnus/nnoo.el6
-rw-r--r--lisp/gnus/nnrss.el3
-rw-r--r--lisp/gnus/nnslashdot.el4
-rw-r--r--lisp/gnus/nnsoup.el4
-rw-r--r--lisp/gnus/nnspool.el3
-rw-r--r--lisp/gnus/nntp.el18
-rw-r--r--lisp/gnus/nnultimate.el3
-rw-r--r--lisp/gnus/nnvirtual.el5
-rw-r--r--lisp/gnus/nnwarchive.el4
-rw-r--r--lisp/gnus/nnweb.el5
-rw-r--r--lisp/gnus/nnwfm.el3
-rw-r--r--lisp/gnus/pgg-def.el2
-rw-r--r--lisp/gnus/pgg-gpg.el3
-rw-r--r--lisp/gnus/pgg-parse.el5
-rw-r--r--lisp/gnus/pgg-pgp.el3
-rw-r--r--lisp/gnus/pgg-pgp5.el3
-rw-r--r--lisp/gnus/pgg.el14
-rw-r--r--lisp/gnus/pop3.el5
-rw-r--r--lisp/gnus/qp.el4
-rw-r--r--lisp/gnus/rfc1843.el8
-rw-r--r--lisp/gnus/rfc2045.el3
-rw-r--r--lisp/gnus/rfc2047.el4
-rw-r--r--lisp/gnus/rfc2104.el4
-rw-r--r--lisp/gnus/rfc2231.el20
-rw-r--r--lisp/gnus/score-mode.el3
-rw-r--r--lisp/gnus/sha1.el3
-rw-r--r--lisp/gnus/sieve-manage.el13
-rw-r--r--lisp/gnus/sieve-mode.el3
-rw-r--r--lisp/gnus/sieve.el3
-rw-r--r--lisp/gnus/smiley.el3
-rw-r--r--lisp/gnus/smime.el4
-rw-r--r--lisp/gnus/spam-report.el3
-rw-r--r--lisp/gnus/spam-stat.el4
-rw-r--r--lisp/gnus/spam.el1
-rw-r--r--lisp/gnus/starttls.el4
-rw-r--r--lisp/gnus/utf7.el4
-rw-r--r--lisp/gnus/uudecode.el3
-rw-r--r--lisp/gnus/webmail.el4
-rw-r--r--lisp/gnus/yenc.el3
-rw-r--r--lisp/gs.el3
-rw-r--r--lisp/help-at-pt.el2
-rw-r--r--lisp/help-fns.el20
-rw-r--r--lisp/help-macro.el3
-rw-r--r--lisp/help-mode.el6
-rw-r--r--lisp/help.el4
-rw-r--r--lisp/hexl.el24
-rw-r--r--lisp/hi-lock.el3
-rw-r--r--lisp/hilit-chg.el51
-rw-r--r--lisp/hippie-exp.el2
-rw-r--r--lisp/hl-line.el3
-rw-r--r--lisp/ibuf-ext.el11
-rw-r--r--lisp/ibuf-macs.el3
-rw-r--r--lisp/ibuffer.el119
-rw-r--r--lisp/icomplete.el18
-rw-r--r--lisp/ido.el165
-rw-r--r--lisp/ielm.el2
-rw-r--r--lisp/iimage.el2
-rw-r--r--lisp/image-file.el24
-rw-r--r--lisp/image.el3
-rw-r--r--lisp/imenu.el4
-rw-r--r--lisp/indent.el3
-rw-r--r--lisp/info-look.el3
-rw-r--r--lisp/info-xref.el12
-rw-r--r--lisp/info.el256
-rw-r--r--lisp/informat.el2
-rw-r--r--lisp/international/code-pages.el23
-rw-r--r--lisp/international/isearch-x.el10
-rw-r--r--lisp/international/mule-cmds.el171
-rw-r--r--lisp/international/mule.el44
-rw-r--r--lisp/isearch.el135
-rw-r--r--lisp/isearchb.el2
-rw-r--r--lisp/iswitchb.el4
-rw-r--r--lisp/jit-lock.el3
-rw-r--r--lisp/jka-cmpr-hook.el3
-rw-r--r--lisp/jka-compr.el3
-rw-r--r--lisp/kermit.el2
-rw-r--r--lisp/kmacro.el2
-rw-r--r--lisp/language/ethio-util.el5
-rw-r--r--lisp/language/thai-util.el2
-rw-r--r--lisp/ldefs-boot.el2087
-rw-r--r--lisp/ledit.el2
-rw-r--r--lisp/loadhist.el3
-rw-r--r--lisp/loadup.el3
-rw-r--r--lisp/locate.el3
-rw-r--r--lisp/log-edit.el3
-rw-r--r--lisp/log-view.el5
-rw-r--r--lisp/longlines.el20
-rw-r--r--lisp/lpr.el4
-rw-r--r--lisp/ls-lisp.el3
-rw-r--r--lisp/macros.el3
-rw-r--r--lisp/mail/blessmail.el2
-rw-r--r--lisp/mail/emacsbug.el17
-rw-r--r--lisp/mail/footnote.el3
-rw-r--r--lisp/mail/mail-extr.el4
-rw-r--r--lisp/mail/mail-hist.el2
-rw-r--r--lisp/mail/mail-utils.el3
-rw-r--r--lisp/mail/mailabbrev.el4
-rw-r--r--lisp/mail/mailalias.el9
-rw-r--r--lisp/mail/mailheader.el2
-rw-r--r--lisp/mail/metamail.el6
-rw-r--r--lisp/mail/mspools.el10
-rw-r--r--lisp/mail/reporter.el5
-rw-r--r--lisp/mail/rfc2368.el3
-rw-r--r--lisp/mail/rfc822.el3
-rw-r--r--lisp/mail/rmail-spam-filter.el30
-rw-r--r--lisp/mail/rmail.el127
-rw-r--r--lisp/mail/rmailedit.el3
-rw-r--r--lisp/mail/rmailkwd.el10
-rw-r--r--lisp/mail/rmailmsc.el5
-rw-r--r--lisp/mail/rmailout.el3
-rw-r--r--lisp/mail/rmailsort.el3
-rw-r--r--lisp/mail/rmailsum.el27
-rw-r--r--lisp/mail/sendmail.el8
-rw-r--r--lisp/mail/smtpmail.el22
-rw-r--r--lisp/mail/supercite.el18
-rw-r--r--lisp/mail/uce.el15
-rw-r--r--lisp/mail/undigest.el4
-rw-r--r--lisp/mail/unrmail.el2
-rw-r--r--lisp/mail/vms-pmail.el2
-rw-r--r--lisp/makefile.w32-in3
-rw-r--r--lisp/makesum.el2
-rw-r--r--lisp/man.el69
-rw-r--r--lisp/master.el2
-rw-r--r--lisp/menu-bar.el178
-rw-r--r--lisp/mh-e/ChangeLog10
-rw-r--r--lisp/mh-e/mh-customize.el52
-rw-r--r--lisp/mh-e/mh-e.el6
-rw-r--r--lisp/midnight.el2
-rw-r--r--lisp/minibuf-eldef.el3
-rw-r--r--lisp/misc.el2
-rw-r--r--lisp/mouse-copy.el2
-rw-r--r--lisp/mouse-drag.el3
-rw-r--r--lisp/mouse-sel.el4
-rw-r--r--lisp/mouse.el4
-rw-r--r--lisp/msb.el4
-rw-r--r--lisp/mwheel.el3
-rw-r--r--lisp/net/ange-ftp.el192
-rw-r--r--lisp/net/browse-url.el4
-rw-r--r--lisp/net/eudc-bob.el9
-rw-r--r--lisp/net/eudc-export.el3
-rw-r--r--lisp/net/eudc-hotlist.el13
-rw-r--r--lisp/net/eudc-vars.el3
-rw-r--r--lisp/net/eudc.el5
-rw-r--r--lisp/net/eudcb-bbdb.el3
-rw-r--r--lisp/net/eudcb-ldap.el3
-rw-r--r--lisp/net/eudcb-ph.el3
-rw-r--r--lisp/net/goto-addr.el3
-rw-r--r--lisp/net/ldap.el3
-rw-r--r--lisp/net/net-utils.el5
-rw-r--r--lisp/net/netrc.el4
-rw-r--r--lisp/net/quickurl.el3
-rw-r--r--lisp/net/rcompile.el3
-rw-r--r--lisp/net/rlogin.el3
-rw-r--r--lisp/net/snmp-mode.el3
-rw-r--r--lisp/net/telnet.el3
-rw-r--r--lisp/net/tls.el3
-rw-r--r--lisp/net/tramp-ftp.el4
-rw-r--r--lisp/net/tramp-smb.el22
-rw-r--r--lisp/net/tramp-uu.el4
-rw-r--r--lisp/net/tramp-vc.el3
-rw-r--r--lisp/net/tramp.el436
-rw-r--r--lisp/net/trampver.el6
-rw-r--r--lisp/net/webjump.el3
-rw-r--r--lisp/net/zone-mode.el2
-rw-r--r--lisp/newcomment.el5
-rw-r--r--lisp/novice.el7
-rw-r--r--lisp/obsolete/awk-mode.el3
-rw-r--r--lisp/obsolete/bg-mouse.el (renamed from lisp/term/bg-mouse.el)9
-rw-r--r--lisp/obsolete/fast-lock.el49
-rw-r--r--lisp/obsolete/float.el2
-rw-r--r--lisp/obsolete/hilit19.el3
-rw-r--r--lisp/obsolete/hscroll.el4
-rw-r--r--lisp/obsolete/iso-acc.el4
-rw-r--r--lisp/obsolete/iso-swed.el2
-rw-r--r--lisp/obsolete/keyswap.el2
-rw-r--r--lisp/obsolete/lazy-lock.el14
-rw-r--r--lisp/obsolete/mlsupport.el10
-rw-r--r--lisp/obsolete/ooutline.el3
-rw-r--r--lisp/obsolete/options.el2
-rw-r--r--lisp/obsolete/profile.el3
-rw-r--r--lisp/obsolete/rnews.el11
-rw-r--r--lisp/obsolete/rnewspost.el5
-rw-r--r--lisp/obsolete/rsz-mini.el3
-rw-r--r--lisp/obsolete/scribe.el4
-rw-r--r--lisp/obsolete/sun-curs.el23
-rw-r--r--lisp/obsolete/sun-fns.el12
-rw-r--r--lisp/obsolete/swedish.el (renamed from lisp/international/swedish.el)7
-rw-r--r--lisp/obsolete/uncompress.el3
-rw-r--r--lisp/obsolete/x-apollo.el2
-rw-r--r--lisp/obsolete/x-menu.el4
-rw-r--r--lisp/outline.el79
-rw-r--r--lisp/paren.el3
-rw-r--r--lisp/paths.el7
-rw-r--r--lisp/pcmpl-cvs.el3
-rw-r--r--lisp/pcmpl-gnu.el3
-rw-r--r--lisp/pcmpl-linux.el3
-rw-r--r--lisp/pcmpl-rpm.el3
-rw-r--r--lisp/pcmpl-unix.el3
-rw-r--r--lisp/pcomplete.el3
-rw-r--r--lisp/pcvs-defs.el2
-rw-r--r--lisp/pcvs-info.el2
-rw-r--r--lisp/pcvs-parse.el2
-rw-r--r--lisp/pcvs-util.el8
-rw-r--r--lisp/pcvs.el2
-rw-r--r--lisp/play/5x5.el3
-rw-r--r--lisp/play/animate.el2
-rw-r--r--lisp/play/blackbox.el3
-rw-r--r--lisp/play/bruce.el3
-rw-r--r--lisp/play/cookie1.el2
-rw-r--r--lisp/play/decipher.el3
-rw-r--r--lisp/play/dissociate.el2
-rw-r--r--lisp/play/doctor.el35
-rw-r--r--lisp/play/dunnet.el3
-rw-r--r--lisp/play/fortune.el3
-rw-r--r--lisp/play/gamegrid.el29
-rw-r--r--lisp/play/gametree.el9
-rw-r--r--lisp/play/gomoku.el7
-rw-r--r--lisp/play/handwrite.el5
-rw-r--r--lisp/play/landmark.el3
-rw-r--r--lisp/play/life.el3
-rw-r--r--lisp/play/morse.el2
-rw-r--r--lisp/play/mpuz.el10
-rw-r--r--lisp/play/pong.el3
-rw-r--r--lisp/play/snake.el21
-rw-r--r--lisp/play/solitaire.el2
-rw-r--r--lisp/play/spook.el3
-rw-r--r--lisp/play/tetris.el21
-rw-r--r--lisp/play/yow.el3
-rw-r--r--lisp/play/zone.el5
-rw-r--r--lisp/printing.el3
-rw-r--r--lisp/progmodes/ada-mode.el12
-rw-r--r--lisp/progmodes/ada-prj.el6
-rw-r--r--lisp/progmodes/ada-stmt.el4
-rw-r--r--lisp/progmodes/ada-xref.el4
-rw-r--r--lisp/progmodes/antlr-mode.el12
-rw-r--r--lisp/progmodes/asm-mode.el6
-rw-r--r--lisp/progmodes/autoconf.el5
-rw-r--r--lisp/progmodes/cc-align.el2
-rw-r--r--lisp/progmodes/cc-awk.el3
-rw-r--r--lisp/progmodes/cc-bytecomp.el3
-rw-r--r--lisp/progmodes/cc-cmds.el2
-rw-r--r--lisp/progmodes/cc-compat.el2
-rw-r--r--lisp/progmodes/cc-defs.el2
-rw-r--r--lisp/progmodes/cc-engine.el3
-rw-r--r--lisp/progmodes/cc-fonts.el2
-rw-r--r--lisp/progmodes/cc-langs.el2
-rw-r--r--lisp/progmodes/cc-menus.el2
-rw-r--r--lisp/progmodes/cc-mode.el2
-rw-r--r--lisp/progmodes/cc-styles.el2
-rw-r--r--lisp/progmodes/cc-vars.el2
-rw-r--r--lisp/progmodes/cfengine.el2
-rw-r--r--lisp/progmodes/cmacexp.el11
-rw-r--r--lisp/progmodes/compile.el123
-rw-r--r--lisp/progmodes/cperl-mode.el36
-rw-r--r--lisp/progmodes/cpp.el3
-rw-r--r--lisp/progmodes/cwarn.el3
-rw-r--r--lisp/progmodes/dcl-mode.el3
-rw-r--r--lisp/progmodes/delphi.el3
-rw-r--r--lisp/progmodes/ebnf-abn.el2
-rw-r--r--lisp/progmodes/ebnf-dtd.el2
-rw-r--r--lisp/progmodes/ebnf-ebx.el2
-rw-r--r--lisp/progmodes/ebnf-otz.el2
-rw-r--r--lisp/progmodes/ebrowse.el5
-rw-r--r--lisp/progmodes/etags.el3
-rw-r--r--lisp/progmodes/executable.el3
-rw-r--r--lisp/progmodes/f90.el6
-rw-r--r--lisp/progmodes/flymake.el12
-rw-r--r--lisp/progmodes/fortran.el8
-rw-r--r--lisp/progmodes/gdb-ui.el120
-rw-r--r--lisp/progmodes/grep.el84
-rw-r--r--lisp/progmodes/gud.el41
-rw-r--r--lisp/progmodes/hideif.el3
-rw-r--r--lisp/progmodes/hideshow.el3
-rw-r--r--lisp/progmodes/icon.el3
-rw-r--r--lisp/progmodes/idlw-complete-structtag.el15
-rw-r--r--lisp/progmodes/idlw-help.el153
-rw-r--r--lisp/progmodes/idlw-rinfo.el9
-rw-r--r--lisp/progmodes/idlw-shell.el27
-rw-r--r--lisp/progmodes/idlw-toolbar.el6
-rw-r--r--lisp/progmodes/inf-lisp.el3
-rw-r--r--lisp/progmodes/ld-script.el4
-rw-r--r--lisp/progmodes/m4-mode.el3
-rw-r--r--lisp/progmodes/make-mode.el3
-rw-r--r--lisp/progmodes/mantemp.el3
-rw-r--r--lisp/progmodes/meta-mode.el3
-rw-r--r--lisp/progmodes/mixal-mode.el4
-rw-r--r--lisp/progmodes/octave-hlp.el7
-rw-r--r--lisp/progmodes/octave-inf.el7
-rw-r--r--lisp/progmodes/octave-mod.el9
-rw-r--r--lisp/progmodes/pascal.el15
-rw-r--r--lisp/progmodes/perl-mode.el7
-rw-r--r--lisp/progmodes/prolog.el6
-rw-r--r--lisp/progmodes/ps-mode.el3
-rw-r--r--lisp/progmodes/python.el1
-rw-r--r--lisp/progmodes/scheme.el2
-rw-r--r--lisp/progmodes/sh-script.el127
-rw-r--r--lisp/progmodes/simula.el3
-rw-r--r--lisp/progmodes/sql.el28
-rw-r--r--lisp/progmodes/vhdl-mode.el1906
-rw-r--r--lisp/progmodes/which-func.el4
-rw-r--r--lisp/progmodes/xscheme.el294
-rw-r--r--lisp/ps-bdf.el26
-rw-r--r--lisp/ps-mule.el13
-rw-r--r--lisp/ps-print.el18
-rw-r--r--lisp/recentf.el28
-rw-r--r--lisp/rect.el3
-rw-r--r--lisp/register.el3
-rw-r--r--lisp/repeat.el2
-rw-r--r--lisp/replace.el24
-rw-r--r--lisp/reposition.el3
-rw-r--r--lisp/resume.el2
-rw-r--r--lisp/reveal.el3
-rw-r--r--lisp/rfn-eshadow.el3
-rw-r--r--lisp/rot13.el2
-rw-r--r--lisp/ruler-mode.el20
-rw-r--r--lisp/s-region.el13
-rw-r--r--lisp/saveplace.el3
-rw-r--r--lisp/scroll-all.el2
-rw-r--r--lisp/scroll-bar.el4
-rw-r--r--lisp/scroll-lock.el129
-rw-r--r--lisp/select.el3
-rw-r--r--lisp/server.el6
-rw-r--r--lisp/ses.el2
-rw-r--r--lisp/shadowfile.el3
-rw-r--r--lisp/shell.el7
-rw-r--r--lisp/simple.el155
-rw-r--r--lisp/skeleton.el5
-rw-r--r--lisp/smerge-mode.el210
-rw-r--r--lisp/sort.el3
-rw-r--r--lisp/soundex.el2
-rw-r--r--lisp/speedbar.el10
-rw-r--r--lisp/startup.el66
-rw-r--r--lisp/strokes.el36
-rw-r--r--lisp/subr.el228
-rw-r--r--lisp/tabify.el3
-rw-r--r--lisp/talk.el2
-rw-r--r--lisp/tar-mode.el8
-rw-r--r--lisp/tempo.el117
-rw-r--r--lisp/term.el5
-rw-r--r--lisp/term/AT386.el60
-rw-r--r--lisp/term/README7
-rw-r--r--lisp/term/apollo.el5
-rw-r--r--lisp/term/bobcat.el9
-rw-r--r--lisp/term/cygwin.el10
-rw-r--r--lisp/term/internal.el3
-rw-r--r--lisp/term/iris-ansi.el24
-rw-r--r--lisp/term/linux.el22
-rw-r--r--lisp/term/lk201.el13
-rw-r--r--lisp/term/mac-win.el188
-rw-r--r--lisp/term/news.el81
-rw-r--r--lisp/term/pc-win.el3
-rw-r--r--lisp/term/rxvt.el107
-rw-r--r--lisp/term/sun-mouse.el14
-rw-r--r--lisp/term/sun.el217
-rw-r--r--lisp/term/sup-mouse.el3
-rw-r--r--lisp/term/tty-colors.el5
-rw-r--r--lisp/term/tvi970.el148
-rw-r--r--lisp/term/vt100.el8
-rw-r--r--lisp/term/vt102.el4
-rw-r--r--lisp/term/vt125.el4
-rw-r--r--lisp/term/vt200.el9
-rw-r--r--lisp/term/vt201.el9
-rw-r--r--lisp/term/vt220.el9
-rw-r--r--lisp/term/vt240.el9
-rw-r--r--lisp/term/vt300.el9
-rw-r--r--lisp/term/vt320.el9
-rw-r--r--lisp/term/vt400.el9
-rw-r--r--lisp/term/vt420.el9
-rw-r--r--lisp/term/w32-win.el9
-rw-r--r--lisp/term/wyse50.el174
-rw-r--r--lisp/term/x-win.el7
-rw-r--r--lisp/term/xterm.el451
-rw-r--r--lisp/terminal.el3
-rw-r--r--lisp/textmodes/artist.el32
-rw-r--r--lisp/textmodes/bib-mode.el2
-rw-r--r--lisp/textmodes/bibtex.el4
-rw-r--r--lisp/textmodes/conf-mode.el16
-rw-r--r--lisp/textmodes/dns-mode.el3
-rw-r--r--lisp/textmodes/enriched.el3
-rw-r--r--lisp/textmodes/fill.el24
-rw-r--r--lisp/textmodes/flyspell.el13
-rw-r--r--lisp/textmodes/ispell.el189
-rw-r--r--lisp/textmodes/makeinfo.el45
-rw-r--r--lisp/textmodes/nroff-mode.el3
-rw-r--r--lisp/textmodes/org.el1082
-rw-r--r--lisp/textmodes/page-ext.el3
-rw-r--r--lisp/textmodes/page.el2
-rw-r--r--lisp/textmodes/paragraphs.el6
-rw-r--r--lisp/textmodes/picture.el5
-rw-r--r--lisp/textmodes/po.el3
-rw-r--r--lisp/textmodes/refbib.el91
-rw-r--r--lisp/textmodes/refer.el3
-rw-r--r--lisp/textmodes/refill.el2
-rw-r--r--lisp/textmodes/reftex-auc.el19
-rw-r--r--lisp/textmodes/reftex-cite.el125
-rw-r--r--lisp/textmodes/reftex-dcr.el5
-rw-r--r--lisp/textmodes/reftex-global.el30
-rw-r--r--lisp/textmodes/reftex-index.el145
-rw-r--r--lisp/textmodes/reftex-parse.el5
-rw-r--r--lisp/textmodes/reftex-ref.el5
-rw-r--r--lisp/textmodes/reftex-sel.el5
-rw-r--r--lisp/textmodes/reftex-toc.el13
-rw-r--r--lisp/textmodes/reftex-vars.el5
-rw-r--r--lisp/textmodes/reftex.el7
-rw-r--r--lisp/textmodes/sgml-mode.el10
-rw-r--r--lisp/textmodes/spell.el2
-rw-r--r--lisp/textmodes/table.el13
-rw-r--r--lisp/textmodes/tex-mode.el25
-rw-r--r--lisp/textmodes/texinfmt.el4
-rw-r--r--lisp/textmodes/texinfo.el3
-rw-r--r--lisp/textmodes/texnfo-upd.el3
-rw-r--r--lisp/textmodes/text-mode.el3
-rw-r--r--lisp/textmodes/tildify.el3
-rw-r--r--lisp/textmodes/two-column.el3
-rw-r--r--lisp/textmodes/underline.el2
-rw-r--r--lisp/thingatpt.el4
-rw-r--r--lisp/thumbs.el39
-rw-r--r--lisp/time-stamp.el4
-rw-r--r--lisp/time.el10
-rw-r--r--lisp/timezone.el5
-rw-r--r--lisp/tmm.el4
-rw-r--r--lisp/toolbar/tool-bar.el3
-rw-r--r--lisp/tooltip.el15
-rw-r--r--lisp/tree-widget.el376
-rw-r--r--lisp/type-break.el3
-rw-r--r--lisp/uniquify.el4
-rw-r--r--lisp/url/ChangeLog22
-rw-r--r--lisp/url/url-about.el2
-rw-r--r--lisp/url/url-auth.el3
-rw-r--r--lisp/url/url-cache.el7
-rw-r--r--lisp/url/url-cid.el2
-rw-r--r--lisp/url/url-cookie.el3
-rw-r--r--lisp/url/url-dav.el2
-rw-r--r--lisp/url/url-dired.el3
-rw-r--r--lisp/url/url-expand.el2
-rw-r--r--lisp/url/url-file.el3
-rw-r--r--lisp/url/url-ftp.el3
-rw-r--r--lisp/url/url-gw.el2
-rw-r--r--lisp/url/url-handlers.el3
-rw-r--r--lisp/url/url-history.el3
-rw-r--r--lisp/url/url-http.el10
-rw-r--r--lisp/url/url-https.el2
-rw-r--r--lisp/url/url-imap.el2
-rw-r--r--lisp/url/url-irc.el3
-rw-r--r--lisp/url/url-ldap.el5
-rw-r--r--lisp/url/url-mailto.el20
-rw-r--r--lisp/url/url-methods.el3
-rw-r--r--lisp/url/url-misc.el3
-rw-r--r--lisp/url/url-news.el8
-rw-r--r--lisp/url/url-nfs.el3
-rw-r--r--lisp/url/url-ns.el2
-rw-r--r--lisp/url/url-parse.el5
-rw-r--r--lisp/url/url-privacy.el3
-rw-r--r--lisp/url/url-proxy.el2
-rw-r--r--lisp/url/url-util.el11
-rw-r--r--lisp/url/url-vars.el3
-rw-r--r--lisp/url/url.el23
-rw-r--r--lisp/url/vc-dav.el4
-rw-r--r--lisp/userlock.el3
-rw-r--r--lisp/vc-arch.el3
-rw-r--r--lisp/vc-cvs.el4
-rw-r--r--lisp/vc-hooks.el4
-rw-r--r--lisp/vc-mcvs.el3
-rw-r--r--lisp/vc-rcs.el4
-rw-r--r--lisp/vc-sccs.el4
-rw-r--r--lisp/vc-svn.el3
-rw-r--r--lisp/vc.el4
-rw-r--r--lisp/vcursor.el42
-rw-r--r--lisp/version.el8
-rw-r--r--lisp/view.el4
-rw-r--r--lisp/vms-patch.el3
-rw-r--r--lisp/vmsproc.el79
-rw-r--r--lisp/vt-control.el3
-rw-r--r--lisp/vt100-led.el2
-rw-r--r--lisp/w32-fns.el15
-rw-r--r--lisp/w32-vars.el2
-rw-r--r--lisp/wdired.el2
-rw-r--r--lisp/whitespace.el128
-rw-r--r--lisp/wid-browse.el2
-rw-r--r--lisp/wid-edit.el75
-rw-r--r--lisp/widget.el3
-rw-r--r--lisp/windmove.el70
-rw-r--r--lisp/window.el4
-rw-r--r--lisp/winner.el38
-rw-r--r--lisp/woman.el2
-rw-r--r--lisp/x-dnd.el3
-rw-r--r--lisp/xml.el4
-rw-r--r--lisp/xt-mouse.el3
-rw-r--r--lispintro/ChangeLog7
-rw-r--r--lispintro/Makefile.in3
-rw-r--r--lispintro/aclocal.m43
-rw-r--r--lispintro/emacs-lisp-intro.texi2
-rw-r--r--lispintro/makefile.w32-in4
-rw-r--r--lispref/ChangeLog195
-rw-r--r--lispref/Makefile.in4
-rw-r--r--lispref/README4
-rw-r--r--lispref/abbrevs.texi4
-rw-r--r--lispref/advice.texi21
-rw-r--r--lispref/anti.texi2
-rw-r--r--lispref/backups.texi4
-rw-r--r--lispref/book-spine.texinfo2
-rw-r--r--lispref/buffers.texi29
-rw-r--r--lispref/commands.texi27
-rw-r--r--lispref/compile.texi3
-rw-r--r--lispref/control.texi4
-rw-r--r--lispref/customize.texi29
-rw-r--r--lispref/debugging.texi4
-rw-r--r--lispref/display.texi222
-rw-r--r--lispref/edebug.texi3
-rw-r--r--lispref/elisp.texi27
-rw-r--r--lispref/errors.texi3
-rw-r--r--lispref/eval.texi3
-rw-r--r--lispref/files.texi8
-rw-r--r--lispref/frames.texi324
-rw-r--r--lispref/functions.texi4
-rw-r--r--lispref/hash.texi6
-rw-r--r--lispref/help.texi4
-rw-r--r--lispref/hooks.texi3
-rw-r--r--lispref/internals.texi15
-rw-r--r--lispref/intro.texi4
-rw-r--r--lispref/keymaps.texi6
-rw-r--r--lispref/lists.texi5
-rw-r--r--lispref/loading.texi18
-rw-r--r--lispref/locals.texi5
-rw-r--r--lispref/macros.texi3
-rw-r--r--lispref/makefile.w32-in6
-rw-r--r--lispref/maps.texi3
-rw-r--r--lispref/markers.texi6
-rw-r--r--lispref/minibuf.texi193
-rw-r--r--lispref/modes.texi27
-rw-r--r--lispref/nonascii.texi3
-rw-r--r--lispref/numbers.texi4
-rw-r--r--lispref/objects.texi4
-rw-r--r--lispref/os.texi189
-rw-r--r--lispref/positions.texi6
-rw-r--r--lispref/processes.texi132
-rw-r--r--lispref/searching.texi453
-rw-r--r--lispref/sequences.texi6
-rw-r--r--lispref/streams.texi4
-rw-r--r--lispref/strings.texi4
-rw-r--r--lispref/symbols.texi4
-rw-r--r--lispref/syntax.texi4
-rw-r--r--lispref/text.texi17
-rwxr-xr-xlispref/tindex.pl2
-rw-r--r--lispref/tips.texi316
-rw-r--r--lispref/variables.texi5
-rw-r--r--lispref/vol1.texi4
-rw-r--r--lispref/vol2.texi4
-rw-r--r--lispref/windows.texi6
-rw-r--r--lwlib/ChangeLog5
-rw-r--r--lwlib/lwlib-Xlw.c3
-rw-r--r--lwlib/lwlib-Xm.c10
-rw-r--r--lwlib/lwlib-Xm.h3
-rw-r--r--lwlib/xlwmenu.c2
-rw-r--r--lwlib/xlwmenu.h2
-rw-r--r--lwlib/xlwmenuP.h3
-rw-r--r--m4/getopt.m482
-rw-r--r--mac/ChangeLog7
-rw-r--r--mac/Emacs.app/Contents/Info.plist38
-rw-r--r--mac/INSTALL2
-rw-r--r--mac/README2
-rw-r--r--mac/cw6-mcp.xml2
-rw-r--r--mac/inc/alloca.h2
-rw-r--r--mac/inc/config.h3
-rw-r--r--mac/inc/defs-cw6.h2
-rw-r--r--mac/inc/dirent.h3
-rw-r--r--mac/inc/epaths.h3
-rwxr-xr-xmac/inc/grp.h2
-rw-r--r--mac/inc/m-mac.h3
-rw-r--r--mac/inc/pwd.h3
-rw-r--r--mac/inc/s-mac.h3
-rw-r--r--mac/inc/sys/file.h3
-rw-r--r--mac/inc/sys/ioctl.h3
-rw-r--r--mac/inc/sys/param.h3
-rw-r--r--mac/inc/sys/stat.h3
-rw-r--r--mac/inc/sys/time.h2
-rw-r--r--mac/inc/sys/types.h3
-rw-r--r--mac/inc/termio.h3
-rw-r--r--mac/inc/utime.h2
-rw-r--r--mac/inc/utsname.h2
-rwxr-xr-xmac/make-package2
-rw-r--r--mac/makefile.MPW3
-rw-r--r--mac/src/Emacs.r3
-rw-r--r--mac/src/EmacsMPW.r3
-rw-r--r--mac/src/chdir.c3
-rwxr-xr-xmake-dist9
-rw-r--r--man/ChangeLog257
-rw-r--r--man/Makefile.in4
-rw-r--r--man/abbrevs.texi3
-rw-r--r--man/ack.texi4
-rw-r--r--man/ada-mode.texi3
-rw-r--r--man/anti.texi7
-rw-r--r--man/autotype.texi6
-rw-r--r--man/basic.texi3
-rw-r--r--man/buffers.texi4
-rw-r--r--man/building.texi49
-rw-r--r--man/calc.texi195
-rw-r--r--man/calendar.texi14
-rw-r--r--man/cc-mode.texi2
-rw-r--r--man/cl.texi9
-rw-r--r--man/cmdargs.texi17
-rw-r--r--man/commands.texi3
-rw-r--r--man/custom.texi151
-rw-r--r--man/dired-x.texi3
-rw-r--r--man/dired.texi6
-rw-r--r--man/display.texi84
-rw-r--r--man/ebrowse.texi3
-rw-r--r--man/ediff.texi4
-rw-r--r--man/emacs-mime.texi19
-rw-r--r--man/emacs-xtra.texi3
-rw-r--r--man/emacs.texi7
-rw-r--r--man/entering.texi3
-rw-r--r--man/eshell.texi3
-rw-r--r--man/eudc.texi3
-rw-r--r--man/faq.texi36
-rw-r--r--man/files.texi32
-rw-r--r--man/fixit.texi3
-rw-r--r--man/flymake.texi2
-rw-r--r--man/forms.texi3
-rw-r--r--man/frames.texi9
-rw-r--r--man/glossary.texi5
-rw-r--r--man/gnu.texi37
-rw-r--r--man/gnus.texi15
-rw-r--r--man/help.texi4
-rw-r--r--man/idlwave.texi8
-rw-r--r--man/indent.texi3
-rw-r--r--man/info.texi171
-rw-r--r--man/killing.texi4
-rw-r--r--man/kmacro.texi2
-rw-r--r--man/m-x.texi3
-rw-r--r--man/macos.texi3
-rw-r--r--man/maintaining.texi4
-rw-r--r--man/major.texi3
-rw-r--r--man/makefile.w32-in7
-rw-r--r--man/mark.texi3
-rw-r--r--man/message.texi4
-rw-r--r--man/mh-e.texi3
-rw-r--r--man/mini.texi6
-rw-r--r--man/misc.texi2
-rw-r--r--man/msdog.texi13
-rw-r--r--man/mule.texi22
-rw-r--r--man/org.texi359
-rw-r--r--man/pcl-cvs.texi2
-rw-r--r--man/pgg.texi2
-rw-r--r--man/picture.texi3
-rw-r--r--man/programs.texi4
-rw-r--r--man/reftex.texi3
-rw-r--r--man/regs.texi3
-rw-r--r--man/rmail.texi3
-rw-r--r--man/sc.texi5
-rw-r--r--man/screen.texi3
-rw-r--r--man/search.texi132
-rw-r--r--man/sending.texi4
-rw-r--r--man/ses.texi22
-rw-r--r--man/sieve.texi2
-rw-r--r--man/smtpmail.texi2
-rw-r--r--man/speedbar.texi5
-rw-r--r--man/texinfo.tex7
-rw-r--r--man/text.texi8
-rw-r--r--man/tramp.texi210
-rw-r--r--man/trampver.texi2
-rw-r--r--man/trouble.texi8
-rw-r--r--man/url.texi8
-rw-r--r--man/vip.texi3
-rw-r--r--man/viper.texi11
-rw-r--r--man/windows.texi6
-rw-r--r--man/woman.texi3
-rw-r--r--man/xresources.texi5
-rw-r--r--msdos/ChangeLog4
-rw-r--r--msdos/README3
-rw-r--r--msdos/mainmake3
-rw-r--r--msdos/mainmake.v24
-rw-r--r--msdos/sed1.inp4
-rw-r--r--msdos/sed1v2.inp4
-rw-r--r--msdos/sed2.inp4
-rw-r--r--msdos/sed2v2.inp4
-rw-r--r--msdos/sed2x.inp3
-rw-r--r--msdos/sed3.inp4
-rw-r--r--msdos/sed3v2.inp4
-rw-r--r--msdos/sed4.inp3
-rw-r--r--msdos/sed5x.inp3
-rw-r--r--msdos/sed6.inp4
-rw-r--r--msdos/sedleim.inp4
-rw-r--r--msdos/sedlisp.inp3
-rw-r--r--nt/.gitignore4
-rw-r--r--nt/ChangeLog32
-rw-r--r--nt/INSTALL2
-rw-r--r--nt/README2
-rw-r--r--nt/addpm.c2
-rw-r--r--nt/addsection.c2
-rw-r--r--nt/cmdproxy.c2
-rw-r--r--nt/config.nt9
-rwxr-xr-xnt/configure.bat4
-rw-r--r--nt/ddeclient.c2
-rw-r--r--nt/emacs.rc2
-rw-r--r--nt/envadd.bat2
-rw-r--r--nt/gmake.defs3
-rwxr-xr-xnt/inc/grp.h2
-rw-r--r--nt/inc/sys/socket.h2
-rw-r--r--nt/makefile.w32-in3
-rw-r--r--nt/multi-install-info.bat2
-rw-r--r--nt/nmake.defs3
-rw-r--r--nt/paths.h4
-rw-r--r--nt/preprep.c2
-rw-r--r--nt/runemacs.c20
-rw-r--r--oldXMenu/Activate.c1
-rw-r--r--oldXMenu/AddPane.c1
-rw-r--r--oldXMenu/AddSel.c1
-rw-r--r--oldXMenu/ChangeLog4
-rw-r--r--oldXMenu/ChgPane.c1
-rw-r--r--oldXMenu/ChgSel.c1
-rw-r--r--oldXMenu/Create.c1
-rw-r--r--oldXMenu/DelPane.c1
-rw-r--r--oldXMenu/DelSel.c1
-rw-r--r--oldXMenu/Destroy.c1
-rw-r--r--oldXMenu/Error.c1
-rw-r--r--oldXMenu/EvHand.c1
-rw-r--r--oldXMenu/FindPane.c1
-rw-r--r--oldXMenu/FindSel.c1
-rw-r--r--oldXMenu/InsPane.c1
-rw-r--r--oldXMenu/InsSel.c1
-rw-r--r--oldXMenu/Internal.c1
-rw-r--r--oldXMenu/Locate.c1
-rw-r--r--oldXMenu/Post.c1
-rw-r--r--oldXMenu/Recomp.c1
-rw-r--r--oldXMenu/SetAEQ.c1
-rw-r--r--oldXMenu/SetFrz.c1
-rw-r--r--oldXMenu/SetPane.c1
-rw-r--r--oldXMenu/SetSel.c1
-rw-r--r--oldXMenu/X10.h1
-rw-r--r--oldXMenu/XCrAssoc.c1
-rw-r--r--oldXMenu/XDelAssoc.c1
-rw-r--r--oldXMenu/XDestAssoc.c1
-rw-r--r--oldXMenu/XLookAssoc.c1
-rw-r--r--oldXMenu/XMakeAssoc.c1
-rw-r--r--oldXMenu/XMenu.h1
-rw-r--r--oldXMenu/XMenuInt.h1
-rw-r--r--oldXMenu/copyright.h2
-rw-r--r--oldXMenu/insque.c2
-rw-r--r--src/.gdbinit10
-rw-r--r--src/ChangeLog589
-rw-r--r--src/Makefile.in4
-rw-r--r--src/abbrev.c4
-rw-r--r--src/alloc.c38
-rw-r--r--src/atimer.c2
-rw-r--r--src/atimer.h2
-rw-r--r--src/blockinput.h3
-rw-r--r--src/buffer.c35
-rw-r--r--src/buffer.h5
-rw-r--r--src/bytecode.c21
-rw-r--r--src/callint.c4
-rw-r--r--src/callproc.c2
-rw-r--r--src/casefiddle.c4
-rw-r--r--src/casetab.c3
-rw-r--r--src/ccl.c11
-rw-r--r--src/charset.c2
-rw-r--r--src/charset.h2
-rw-r--r--src/cm.c3
-rw-r--r--src/cm.h3
-rw-r--r--src/cmds.c4
-rw-r--r--src/coding.c49
-rw-r--r--src/coding.h6
-rw-r--r--src/commands.h3
-rw-r--r--src/composite.c14
-rw-r--r--src/composite.h2
-rw-r--r--src/config.in16
-rw-r--r--src/cxux-crt0.s2
-rw-r--r--src/data.c4
-rw-r--r--src/dired.c50
-rw-r--r--src/dispextern.h4
-rw-r--r--src/dispnew.c109
-rw-r--r--src/disptab.h2
-rw-r--r--src/doc.c4
-rw-r--r--src/doprnt.c2
-rw-r--r--src/dosfns.c4
-rw-r--r--src/dosfns.h4
-rw-r--r--src/ecrt0.c3
-rw-r--r--src/editfns.c5
-rw-r--r--src/emacs.c15
-rw-r--r--src/epaths.in4
-rw-r--r--src/eval.c61
-rw-r--r--src/fileio.c36
-rw-r--r--src/filelock.c4
-rw-r--r--src/filemode.c3
-rw-r--r--src/firstfile.c2
-rw-r--r--src/floatfns.c6
-rw-r--r--src/fns.c19
-rw-r--r--src/fontset.c2
-rw-r--r--src/fontset.h1
-rw-r--r--src/frame.c7
-rw-r--r--src/frame.h11
-rw-r--r--src/fringe.c39
-rw-r--r--src/getloadavg.c4
-rw-r--r--src/getpagesize.h3
-rw-r--r--src/gmalloc.c3
-rw-r--r--src/gtkutil.c132
-rw-r--r--src/gtkutil.h7
-rw-r--r--src/image.c405
-rw-r--r--src/indent.c10
-rw-r--r--src/indent.h3
-rw-r--r--src/insdel.c5
-rw-r--r--src/intervals.c11
-rw-r--r--src/intervals.h3
-rw-r--r--src/keyboard.c16
-rw-r--r--src/keyboard.h3
-rw-r--r--src/keymap.c7
-rw-r--r--src/keymap.h2
-rw-r--r--src/lastfile.c2
-rw-r--r--src/lisp.h13
-rw-r--r--src/lread.c31
-rw-r--r--src/m/7300.h2
-rw-r--r--src/m/acorn.h2
-rw-r--r--src/m/alliant-2800.h2
-rw-r--r--src/m/alliant.h3
-rw-r--r--src/m/alpha.h3
-rw-r--r--src/m/altos.h3
-rw-r--r--src/m/amdahl.h3
-rw-r--r--src/m/amdx86-64.h2
-rw-r--r--src/m/apollo.h3
-rw-r--r--src/m/arm.h2
-rw-r--r--src/m/att3b.h2
-rw-r--r--src/m/aviion.h3
-rw-r--r--src/m/celerity.h3
-rw-r--r--src/m/clipper.h3
-rw-r--r--src/m/cnvrgnt.h2
-rw-r--r--src/m/convex.h3
-rw-r--r--src/m/cydra5.h3
-rw-r--r--src/m/delta88k.h3
-rw-r--r--src/m/dpx2.h3
-rw-r--r--src/m/dual.h3
-rw-r--r--src/m/elxsi.h3
-rw-r--r--src/m/ews4800.h3
-rw-r--r--src/m/gould-np1.h2
-rw-r--r--src/m/hp800.h2
-rw-r--r--src/m/hp9000s300.h2
-rw-r--r--src/m/i860.h3
-rw-r--r--src/m/ia64.h2
-rw-r--r--src/m/ibm370aix.h3
-rw-r--r--src/m/ibmps2-aix.h2
-rw-r--r--src/m/ibmrs6000.h2
-rw-r--r--src/m/ibmrt-aix.h3
-rw-r--r--src/m/ibmrt.h2
-rw-r--r--src/m/ibms390.h3
-rw-r--r--src/m/intel386.h2
-rw-r--r--src/m/iris4d.h2
-rw-r--r--src/m/irist.h3
-rw-r--r--src/m/isi-ov.h3
-rw-r--r--src/m/m68k.h3
-rw-r--r--src/m/macppc.h3
-rw-r--r--src/m/masscomp.h2
-rw-r--r--src/m/mega68.h2
-rw-r--r--src/m/mg1.h2
-rw-r--r--src/m/mips-siemens.h3
-rw-r--r--src/m/mips.h3
-rw-r--r--src/m/news.h3
-rw-r--r--src/m/next.h2
-rw-r--r--src/m/nh3000.h2
-rw-r--r--src/m/nh4000.h2
-rw-r--r--src/m/ns16000.h2
-rw-r--r--src/m/ns32000.h3
-rw-r--r--src/m/nu.h2
-rw-r--r--src/m/orion.h2
-rw-r--r--src/m/orion105.h2
-rw-r--r--src/m/pfa50.h3
-rw-r--r--src/m/plexus.h2
-rw-r--r--src/m/powermac.h2
-rw-r--r--src/m/powerpcle.h2
-rw-r--r--src/m/pyramid.h3
-rw-r--r--src/m/sequent-ptx.h3
-rw-r--r--src/m/sequent.h3
-rw-r--r--src/m/sparc.h2
-rw-r--r--src/m/sps7.h3
-rw-r--r--src/m/sr2k.h2
-rw-r--r--src/m/stride.h3
-rw-r--r--src/m/sun1.h3
-rw-r--r--src/m/sun2.h3
-rw-r--r--src/m/sun386.h2
-rw-r--r--src/m/symmetry.h3
-rw-r--r--src/m/tad68k.h2
-rw-r--r--src/m/tahoe.h2
-rw-r--r--src/m/targon31.h3
-rw-r--r--src/m/tek4300.h2
-rw-r--r--src/m/tekxd88.h2
-rw-r--r--src/m/template.h3
-rw-r--r--src/m/tower32.h2
-rw-r--r--src/m/tower32v3.h2
-rw-r--r--src/m/ustation.h3
-rw-r--r--src/m/vax.h3
-rw-r--r--src/m/wicat.h2
-rw-r--r--src/m/windowsnt.h3
-rw-r--r--src/m/xps100.h3
-rw-r--r--src/mac.c353
-rw-r--r--src/macfns.c327
-rw-r--r--src/macgui.h32
-rw-r--r--src/macmenu.c60
-rw-r--r--src/macros.c3
-rw-r--r--src/macros.h2
-rw-r--r--src/macselect.c16
-rw-r--r--src/macterm.c980
-rw-r--r--src/macterm.h15
-rw-r--r--src/makefile.w32-in3
-rw-r--r--src/marker.c3
-rw-r--r--src/md5.c3
-rw-r--r--src/md5.h3
-rw-r--r--src/mem-limits.h3
-rw-r--r--src/minibuf.c10
-rw-r--r--src/mktime.c3
-rw-r--r--src/msdos.c4
-rw-r--r--src/msdos.h3
-rw-r--r--src/prefix-args.c2
-rw-r--r--src/print.c5
-rw-r--r--src/process.c70
-rw-r--r--src/process.h3
-rw-r--r--src/puresize.h2
-rw-r--r--src/ralloc.c3
-rw-r--r--src/regex.c3
-rw-r--r--src/regex.h3
-rw-r--r--src/region-cache.c4
-rw-r--r--src/region-cache.h3
-rw-r--r--src/s/aix3-1.h3
-rw-r--r--src/s/bsd4-1.h3
-rw-r--r--src/s/bsd4-2.h3
-rw-r--r--src/s/bsd4-3.h3
-rw-r--r--src/s/cxux.h2
-rw-r--r--src/s/cygwin.h5
-rw-r--r--src/s/darwin.h2
-rw-r--r--src/s/dgux.h3
-rw-r--r--src/s/dgux4.h2
-rw-r--r--src/s/dgux5-4-3.h2
-rw-r--r--src/s/dgux5-4r2.h2
-rw-r--r--src/s/freebsd.h4
-rw-r--r--src/s/gnu-linux.h3
-rw-r--r--src/s/gnu.h3
-rw-r--r--src/s/hpux.h3
-rw-r--r--src/s/iris3-5.h3
-rw-r--r--src/s/iris3-6.h3
-rw-r--r--src/s/irix3-3.h3
-rw-r--r--src/s/lynxos.h3
-rw-r--r--src/s/ms-w32.h3
-rw-r--r--src/s/msdos.h3
-rw-r--r--src/s/newsos5.h3
-rw-r--r--src/s/nextstep.h3
-rw-r--r--src/s/ptx.h3
-rw-r--r--src/s/riscix1-1.h2
-rw-r--r--src/s/riscix12.h2
-rw-r--r--src/s/rtu.h3
-rw-r--r--src/s/sco4.h3
-rw-r--r--src/s/sco5.h2
-rw-r--r--src/s/template.h3
-rw-r--r--src/s/umax.h3
-rw-r--r--src/s/unipl5-2.h3
-rw-r--r--src/s/usg5-0.h3
-rw-r--r--src/s/usg5-2-2.h3
-rw-r--r--src/s/usg5-2.h3
-rw-r--r--src/s/usg5-3.h3
-rw-r--r--src/s/usg5-4.h3
-rw-r--r--src/s/vms.h2
-rw-r--r--src/s/xenix.h3
-rw-r--r--src/scroll.c3
-rw-r--r--src/search.c5
-rw-r--r--src/sheap.c3
-rw-r--r--src/sound.c3
-rw-r--r--src/strftime.c4
-rw-r--r--src/sunfns.c3
-rw-r--r--src/syntax.c25
-rw-r--r--src/syntax.h3
-rw-r--r--src/sysdep.c2
-rw-r--r--src/sysselect.h2
-rw-r--r--src/syssignal.h3
-rw-r--r--src/systime.h3
-rw-r--r--src/systty.h3
-rw-r--r--src/syswait.h3
-rw-r--r--src/term.c33
-rw-r--r--src/termcap.c4
-rw-r--r--src/termchar.h3
-rw-r--r--src/termhooks.h5
-rw-r--r--src/terminfo.c3
-rw-r--r--src/termopts.h3
-rw-r--r--src/textprop.c8
-rw-r--r--src/tparam.c3
-rw-r--r--src/uaf.h2
-rw-r--r--src/undo.c4
-rw-r--r--src/unexaix.c3
-rw-r--r--src/unexalpha.c3
-rw-r--r--src/unexapollo.c3
-rw-r--r--src/unexconvex.c3
-rw-r--r--src/unexcw.c3
-rw-r--r--src/unexec.c3
-rw-r--r--src/unexelf.c4
-rw-r--r--src/unexenix.c3
-rw-r--r--src/unexmacosx.c2
-rw-r--r--src/unexmips.c3
-rw-r--r--src/unexnext.c3
-rw-r--r--src/unexsni.c4
-rw-r--r--src/unexsunos4.c3
-rw-r--r--src/unexw32.c2
-rw-r--r--src/vm-limit.c3
-rw-r--r--src/w16select.c3
-rw-r--r--src/w32.c42
-rw-r--r--src/w32.h2
-rw-r--r--src/w32bdf.c2
-rw-r--r--src/w32bdf.h2
-rw-r--r--src/w32console.c3
-rw-r--r--src/w32fns.c16
-rw-r--r--src/w32gui.h2
-rw-r--r--src/w32heap.c2
-rw-r--r--src/w32heap.h2
-rw-r--r--src/w32inevt.c3
-rw-r--r--src/w32inevt.h2
-rw-r--r--src/w32menu.c28
-rw-r--r--src/w32proc.c8
-rw-r--r--src/w32reg.c3
-rw-r--r--src/w32select.c3
-rw-r--r--src/w32term.c20
-rw-r--r--src/w32term.h3
-rw-r--r--src/w32xfns.c3
-rw-r--r--src/widget.c3
-rw-r--r--src/widget.h2
-rw-r--r--src/widgetprv.h2
-rw-r--r--src/window.c54
-rw-r--r--src/window.h4
-rw-r--r--src/xdisp.c154
-rw-r--r--src/xfaces.c36
-rw-r--r--src/xfns.c2
-rw-r--r--src/xmenu.c4
-rw-r--r--src/xrdb.c3
-rw-r--r--src/xselect.c5
-rw-r--r--src/xsmfns.c2
-rw-r--r--src/xterm.c15
-rw-r--r--src/xterm.h4
1502 files changed, 23313 insertions, 13284 deletions
diff --git a/.gitignore b/.gitignore
index 0322669fb0..71fbe7e8d3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -39,6 +39,9 @@ config.cache
config.log
config.status
configure
+data
emacs*.tar.gz
leim*.tar.gz
+lock
+site-lisp
update.log
diff --git a/ChangeLog b/ChangeLog
index c44bcfbbf3..d216ab222d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,23 @@
+2005-08-03 Juanma Barranquero <lekktu@gmail.com>
+
+ * .cvsignore: Add `lock'.
+
+2005-07-28 Juanma Barranquero <lekktu@gmail.com>
+
+ * .cvsignore: Add `data' and `site-lisp' (for in-place installs).
+
+2005-07-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ Merge gnulib getopt implementation into Emacs.
+
+ * Makefile.in (AUTOCONF_INPUTS): New macro.
+ ($(srcdir)/configure, $(srcdir)/src/stamp-h.in): Depend on it,
+ so that these files also depend on m4/getopt.m4.
+ * configure.in: Configure getopt by including m4/getopt.m4,
+ and configuring a getopt replacement if necessary.
+ * make-dist: Add m4 subdirectory. Unlink lib-src/getopt.h.
+ * m4/getopt.m4: New file.
+
2005-07-06 Lute Kamstra <lute@gnu.org>
* configure.in: Fix capitalization.
diff --git a/Makefile.in b/Makefile.in
index 811a8205c4..c8fa29b343 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -2,7 +2,7 @@
# DIST: make most of the changes to this file you might want, so try
# DIST: that first.
-# Copyright (C) 1992,93,94,95,96,97,98,1999,2000,01,02,03,2004
+# Copyright (C) 1992,93,94,95,96,97,98,1999,2000,01,02,03,04,2005
# Free Software Foundation, Inc.
# This file is part of GNU Emacs.
@@ -302,12 +302,14 @@ Makefile: $(srcdir)/Makefile.in config.status
config.status: ${srcdir}/configure
./config.status --recheck
-${srcdir}/configure: @MAINT@ ${srcdir}/configure.in
+AUTOCONF_INPUTS = @MAINT@ $(srcdir)/configure.in $(srcdir)/m4/getopt.m4
+
+$(srcdir)/configure: $(AUTOCONF_INPUTS)
cd ${srcdir} && autoconf
$(srcdir)/src/config.in: $(srcdir)/src/stamp-h.in
@true
-$(srcdir)/src/stamp-h.in: @MAINT@ ${srcdir}/configure.in
+$(srcdir)/src/stamp-h.in: $(AUTOCONF_INPUTS)
cd ${srcdir} && autoheader
rm -f $(srcdir)/src/stamp-h.in
echo timestamp > $(srcdir)/src/stamp-h.in
diff --git a/admin/ChangeLog b/admin/ChangeLog
index afaa571e1a..3f6f6aee58 100644
--- a/admin/ChangeLog
+++ b/admin/ChangeLog
@@ -1,3 +1,12 @@
+2005-08-31 Romain Francoise <romain@orebokech.com>
+
+ * FOR-RELEASE: (New features): Remove vhdl-mode.el update
+ item (Done).
+
+2005-08-27 Romain Francoise <romain@orebokech.com>
+
+ * FOR-RELEASE (Bugs): Remove compile-internal item (Done).
+
2005-07-04 Lute Kamstra <lute@gnu.org>
Update FSF's address in GPL notices.
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE
index d14ffeee13..5375db09f6 100644
--- a/admin/FOR-RELEASE
+++ b/admin/FOR-RELEASE
@@ -21,6 +21,10 @@ face name prefixes should be in it for good results.
** Regenerate the postscript files of the reference cards in etc.
+** Ask maintainers of refcard translations to update them.
+
+** Check what should be deleted or updated in MORE.STUFF.
+
* NEW FEATURES
** Make VC-over-Tramp work where possible, or at least fail
@@ -29,11 +33,10 @@ To be done by Andre Spiegel <spiegel@gnu.org>.
** Update Speedbar.
-** Update vhdl-mode.el based on changes in
- http://opensource.ethz.ch/emacs/vhdl-mode.html.
-
** Debug custom themes.
+** Get rid of the defadvice calls in org.el.
+
* FATAL ERRORS
** Investigate reported crashes in compact_small_strings.
@@ -41,9 +44,44 @@ To be done by Andre Spiegel <spiegel@gnu.org>.
** Investigate reported crashes related to using an
invalid pointer from string_free_list.
+** Emacs on Windows crashes reading JPEG images from files.
+
+The problem is caused by the Emacs executable and the image library
+having multiple, incompatible copies of the run-time code, which can
+happen when mixing a MSVC build of Emacs with a MinGW build of the
+jpeg library (or the other way around). The fix is straightforward
+and has already been posted on the developers' list, but it is on the
+back burner waiting for a legal comment or an alternate implementation
+(around 30 lines of code).
+
* BUGS
-** Fix those modes that still use compile-internal, to not use it.
+** The header-line buttons in the buffer list buffer
+should respond to Mouse-1.
+
+** Fix recognition of shell's `dirs' command.
+
+Is his change right?
+
+Date: Wed, 29 Jun 2005 18:21:28 -0500 (CDT)
+From: kevin.gal@verizon.net
+
+When I use tcsh (which echoes command input) in a shell buffer,
+entering "M-x dirs" fails because it mistakens the echoed "dirs"
+string as the directory string to use as input when changing the
+buffers default directory. The attached gziped patch file contains a
+fix. The patch also binds the "dirs" command to "\e\C-m" in
+shell-mode-map (previously unbound) to make it easy to invoke.
+Finally, a test has been added to see if "shell-dirstack-query" is
+non-nil. If so, it is not overwritten.
+
+To enable the fix, the user must set comint-process-echoes to t.
+
+** TCP server processes do not work on Windows.
+
+TCP/IP server processes created with `make-network-process' consume
+excesive CPU on some Windows environments. Usages of 50% and 100%
+CPU time have been observed on different Window XP configurations.
** Bug in ebrowse
@@ -75,63 +113,52 @@ The *Tree* is then displayed as
The class A seems to be missing.
-** Ange-ftp should ignore irrelevant IPv6 errors:
-
-Message-Id: <4121-Tue23Mar2004165249+0100-piet@cs.uu.nl>
-From: "Piet van Oostrum" <piet@cs.uu.nl>
-To: emacs-pretest-bug@gnu.org
-Subject: Ange-ftp can't deal with IPV6/IPV4 fallback
-
-Symptoms:
-
-C-x C-f /ftp.nluug.nl:/
-
-The problem is that the DNS first gives an IPV6 address. However our
-router doesn't do IPV6. Ftp then falls back to IPV4:
-
-ftp> open ftp.nluug.nl
-Trying 2001:610:1:80aa:192:87:102:36...
-ftp: connect to address 2001:610:1:80aa:192:87:102:36: No route to host
-Trying 192.87.102.36...
-Connected to ftp.nluug.nl.
-
-Ange-ftp chokes on the `No route to host' message and doesn't look any
-further.
-
-I think in the near future we will see more of this problem, so it might be
-time to make anfe-ftp more intelligent.
-
* DOCUMENTATION
** Document Custom Themes.
-** Update lispref/README.
-
** Update man/info.texi.
** Add missing years in copyright notices of all files.
-Policy document admin/notes/years must be updated before
-making further progress on this task!!!
-
Please record your name here and say which part of the distribution
you're going to handle.
DIRECTORY STATUS IN CHARGE
--------- ------ ---------
+etc (and subdirs) done Thien-Thi Nguyen (ttn(@gnu.org))
leim working Kenichi Handa
-lisp/calc working Thien-Thi Nguyen
+lib-src done ttn
+lisp done ttn
+lisp/calc done ttn
lisp/calendar working Glenn Morris
-lisp/emulation working Thien-Thi Nguyen
-lisp/eshell working Thien-Thi Nguyen
+lisp/emacs-lisp done ttn
+lisp/emulation done ttn
+lisp/eshell done ttn
+lisp/gnus done ttn
lisp/international done Kenichi Handa
-lisp/languages done Kenichi Handa
-lisp/mh-e working Thien-Thi Nguyen
-lisp/net working Thien-Thi Nguyen
-lisp/play working Thien-Thi Nguyen
-lisp/term working Thien-Thi Nguyen
-lisp/toolbar working Thien-Thi Nguyen
-lisp/url working Thien-Thi Nguyen
+lisp/language done Kenichi Handa
+lisp/mail done ttn
+lisp/mh-e working Bill Wohler
+lisp/net done ttn
+lisp/obsolete done ttn
+lisp/play done ttn
+lisp/progmodes done Nick Roberts
+lisp/term done ttn
+lisp/textmodes done ttn
+lisp/toolbar done ttn
+lisp/url done ttn
+lispintro done ttn
+lispref done ttn
+lwlib done ttn
+m4 done ttn
+mac (and subdirs) done ttn
+man done ttn
+msdos done ttn
+nt (and subdirs) done ttn
+oldXMenu done ttn
+src (and subdirs) done ttn
+vms done ttn
** Check the Emacs manual.
@@ -231,7 +258,7 @@ lispref/numbers.texi "Luc Teirlinck" Chong Yidong
lispref/objects.texi "Luc Teirlinck" Chong Yidong
lispref/os.texi "Luc Teirlinck" Chong Yidong
lispref/positions.texi "Luc Teirlinck" Chong Yidong
-lispref/processes.texi Chong Yidong Thien-Thi Nguyen
+lispref/processes.texi Chong Yidong ttn
lispref/searching.texi "Luc Teirlinck" Chong Yidong
lispref/sequences.texi "Luc Teirlinck" Chong Yidong
lispref/streams.texi "Luc Teirlinck" Chong Yidong
@@ -261,8 +288,8 @@ etc/TUTORIAL.cn
etc/TUTORIAL.cs Pavel Janík <Pavel@Janik.cz>
etc/TUTORIAL.de Werner LEMBERG <wl@gnu.org>
etc/TUTORIAL.es Marcelo Toledo
-etc/TUTORIAL.fr Thien-Thi Nguyen
-etc/TUTORIAL.it Thien-Thi Nguyen
+etc/TUTORIAL.fr ttn
+etc/TUTORIAL.it ttn
etc/TUTORIAL.ja Kenichi Handa <handa@m17n.org>
etc/TUTORIAL.ko
etc/TUTORIAL.nl Lute Kamstra
diff --git a/admin/notes/years b/admin/notes/years
index 453712e4c0..155ccd6f06 100644
--- a/admin/notes/years
+++ b/admin/notes/years
@@ -1,11 +1,29 @@
+How to Maintain Copyright Years for GNU Emacs
- THIS DOCUMENT IS UNDER REVIEW.
+"Our lawyer says it is ok if we add, to each file that has been in Emacs
+ since Emacs 21 came out in 2001, all the subsequent years. We don't
+ need to check whether *that file* was changed in those years.
+ It's sufficient that *Emacs* was changed in those years (and it was!).
- DO NOT FOLLOW THESE INSTRUCTIONS -- THEY ARE NOT CORRECT.
+ For those files that have been added since then, we should add
+ the year it was added to Emacs, and all subsequent years."
+ --RMS, 2005-07-13
-How to Maintain Copyright Years for GNU Emacs
+
+For the refcards under etc/, it's ok to simply use the latest year
+(typically in a `\def\year{YEAR}' expression) for the rendered copyright
+notice, while maintaining the full list of years in the copyright notice
+in the comments.
+
+
+------------------------------------------------------------------------------
+
+
+Following is the policy that we tried to write down one time (mid 2005).
+Although it is incorrect, we keep it around to remind us how complicated
+things used to be (and may become in the future).
Principle: Individual files need to have the year of the release
diff --git a/configure b/configure
index 04887f1048..f16082beff 100755
--- a/configure
+++ b/configure
@@ -310,7 +310,7 @@ ac_includes_default="\
# include <unistd.h>
#endif"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS MAINT build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT LN_S CPP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA RANLIB ac_ct_RANLIB INSTALL_INFO EGREP LIBSOUND SET_MAKE PKG_CONFIG GTK_CFLAGS GTK_LIBS ALLOCA liblockfile LIBOBJS NEED_SETGID KMEM_GROUP GETLOADAVG_LIBS version configuration canonical srcdir lispdir locallisppath lisppath x_default_search_path etcdir archlibdir docdir bitmapdir gamedir gameuser c_switch_system c_switch_machine LD_SWITCH_X_SITE LD_SWITCH_X_SITE_AUX C_SWITCH_X_SITE X_TOOLKIT_TYPE machfile opsysfile carbon_appdir LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS MAINT build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT LN_S CPP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA RANLIB ac_ct_RANLIB INSTALL_INFO EGREP LIBSOUND SET_MAKE PKG_CONFIG GTK_CFLAGS GTK_LIBS ALLOCA liblockfile LIBOBJS NEED_SETGID KMEM_GROUP GETLOADAVG_LIBS GETOPT_H GETOPTOBJS version configuration canonical srcdir lispdir locallisppath lisppath x_default_search_path etcdir archlibdir docdir bitmapdir gamedir gameuser c_switch_system c_switch_machine LD_SWITCH_X_SITE LD_SWITCH_X_SITE_AUX C_SWITCH_X_SITE X_TOOLKIT_TYPE machfile opsysfile carbon_appdir LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@@ -16828,6 +16828,490 @@ _ACEOF
fi
+# Configure getopt.
+# getopt.m4 serial 10
+
+# The getopt module assume you want GNU getopt, with getopt_long etc,
+# rather than vanilla POSIX getopt. This means your your code should
+# always include <getopt.h> for the getopt prototypes.
+
+
+
+
+
+
+
+
+
+
+
+# Prerequisites of lib/getopt*.
+
+
+
+ GETOPT_H=
+
+for ac_header in getopt.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+ # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_header_compiler=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ ac_header_preproc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
+ ;;
+ no:yes:* )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+ (
+ cat <<\_ASBOX
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists. ##
+## ------------------------------------------ ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+else
+ GETOPT_H=getopt.h
+fi
+
+done
+
+ if test -z "$GETOPT_H"; then
+
+for ac_func in getopt_long_only
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_var=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+else
+ GETOPT_H=getopt.h
+fi
+done
+
+ fi
+
+ if test -z "$GETOPT_H"; then
+ echo "$as_me:$LINENO: checking whether optreset is declared" >&5
+echo $ECHO_N "checking whether optreset is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_optreset+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <getopt.h>
+
+int
+main ()
+{
+#ifndef optreset
+ char *p = (char *) optreset;
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_have_decl_optreset=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl_optreset=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_optreset" >&5
+echo "${ECHO_T}$ac_cv_have_decl_optreset" >&6
+if test $ac_cv_have_decl_optreset = yes; then
+ GETOPT_H=getopt.h
+fi
+
+ fi
+
+ if test -z "$GETOPT_H"; then
+ echo "$as_me:$LINENO: checking for working GNU getopt function" >&5
+echo $ECHO_N "checking for working GNU getopt function... $ECHO_C" >&6
+if test "${gl_cv_func_gnu_getopt+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test "$cross_compiling" = yes; then
+ echo "$as_me:$LINENO: checking whether getopt_clip is declared" >&5
+echo $ECHO_N "checking whether getopt_clip is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_getopt_clip+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <getopt.h>
+
+int
+main ()
+{
+#ifndef getopt_clip
+ char *p = (char *) getopt_clip;
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_have_decl_getopt_clip=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl_getopt_clip=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_getopt_clip" >&5
+echo "${ECHO_T}$ac_cv_have_decl_getopt_clip" >&6
+if test $ac_cv_have_decl_getopt_clip = yes; then
+ gl_cv_func_gnu_getopt=no
+else
+ gl_cv_func_gnu_getopt=yes
+fi
+
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <getopt.h>
+int
+main ()
+{
+
+ char *myargv[3];
+ myargv[0] = "conftest";
+ myargv[1] = "-+";
+ myargv[2] = 0;
+ return getopt (2, myargv, "+a") != '?';
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ gl_cv_func_gnu_getopt=yes
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+gl_cv_func_gnu_getopt=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+echo "$as_me:$LINENO: result: $gl_cv_func_gnu_getopt" >&5
+echo "${ECHO_T}$gl_cv_func_gnu_getopt" >&6
+ if test "$gl_cv_func_gnu_getopt" = "no"; then
+ GETOPT_H=getopt.h
+ fi
+ fi
+
+
+
+ if test -n "$GETOPT_H"; then
+
+
+ GETOPT_H=getopt.h
+
+cat >>confdefs.h <<\_ACEOF
+#define __GETOPT_PREFIX rpl_
+_ACEOF
+
+
+
+ :
+ GETOPTOBJS='getopt.o getopt1.o'
+
+fi
+
+
+
+
echo "$as_me:$LINENO: checking whether getpgrp requires zero arguments" >&5
echo $ECHO_N "checking whether getpgrp requires zero arguments... $ECHO_C" >&6
if test "${ac_cv_func_getpgrp_void+set}" = set; then
@@ -22646,6 +23130,8 @@ s,@LIBOBJS@,$LIBOBJS,;t t
s,@NEED_SETGID@,$NEED_SETGID,;t t
s,@KMEM_GROUP@,$KMEM_GROUP,;t t
s,@GETLOADAVG_LIBS@,$GETLOADAVG_LIBS,;t t
+s,@GETOPT_H@,$GETOPT_H,;t t
+s,@GETOPTOBJS@,$GETOPTOBJS,;t t
s,@version@,$version,;t t
s,@configuration@,$configuration,;t t
s,@canonical@,$canonical,;t t
diff --git a/configure.in b/configure.in
index f8e97eb7d1..e4fa9db645 100644
--- a/configure.in
+++ b/configure.in
@@ -2353,7 +2353,7 @@ if test "${HAVE_CARBON}" = "yes"; then
CFLAGS="$CFLAGS -framework Carbon"
AC_CHECK_FUNC(CancelMenuTracking, have_cmt=yes, have_cmt=no)
if test "$have_cmt" = yes; then
- AC_DEFINE(HAVE_CANCELMENUTRACKING, 1,
+ AC_DEFINE(HAVE_CANCELMENUTRACKING, 1,
[Define to 1 if CancelMenuTracking is available (Mac OSX).])
fi
CFLAGS="$tmp_CFLAGS"
@@ -2434,6 +2434,15 @@ AC_FUNC_GETLOADAVG
AC_FUNC_FSEEKO
+# Configure getopt.
+m4_include([m4/getopt.m4])
+gl_GETOPT_IFELSE([
+ gl_GETOPT_SUBSTITUTE_HEADER
+ gl_PREREQ_GETOPT
+ GETOPTOBJS='getopt.o getopt1.o'
+])
+AC_SUBST(GETOPTOBJS)
+
AC_FUNC_GETPGRP
AC_FUNC_STRFTIME
diff --git a/etc/.gitignore b/etc/.gitignore
index 38c525889b..15e45da436 100644
--- a/etc/.gitignore
+++ b/etc/.gitignore
@@ -1,4 +1,5 @@
fns-*
+icons
*.ps
*.log
*.dvi
diff --git a/etc/ChangeLog b/etc/ChangeLog
index db3a0d820d..bf83b688b1 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,52 @@
+2005-08-31 Michael Albinus <michael.albinus@gmx.de>
+
+ * NEWS: Add entry for `make-auto-save-file-name'.
+
+2005-08-19 Emilio C. Lopes <eclig@gmx.net>
+
+ * emacsclient.1 (DESCRIPTION): Reflect inclusion in the
+ Emacs distribution. Make role of EDITOR clearer.
+ (OPTIONS): Document `-s', `-V' and `-h'
+ as well as their long name counterparts.
+ (BUGS): Remove.
+
+2005-08-26 Romain Francoise <romain@orebokech.com>
+
+ * PROBLEMS: Fix capitalization of "Gnus".
+
+2005-08-20 Chong Yidong <cyd@stupidchicken.com>
+
+ * MORE.STUFF: Update links and URLs.
+
+2005-08-05 Kenichi Handa <handa@m17n.org>
+
+ * NEWS: Fix the entry describing code-pages.
+
+2005-07-28 Juanma Barranquero <lekktu@gmail.com>
+
+ * .cvsignore: Add `icons' (for in-place installs).
+
+2005-07-19 Juri Linkov <juri@jurta.org>
+
+ * grep.txt: New file.
+
+2005-07-19 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
+
+ * PROBLEMS (Fedora Core 4 GNU/Linux: Segfault during dumping):
+ -R comes after i386 in setarch command.
+
+2005-07-12 Juri Linkov <juri@jurta.org>
+
+ * refcard.tex (Files): Change description of `C-x C-q' from
+ `checkin/checkout' to `toggle read-only'.
+ (Getting Help): Replace `C-h c' with `C-h k'.
+ (Error Recovery): Replace `recover-file' with `recover-session'.
+ (Info): Replace key binding `C-h C-i' with `C-h S'. Add `t'.
+
+2005-07-07 Richard M. Stallman <rms@gnu.org>
+
+ * GNU: Update how to help. Improve footnote 7.
+
2005-07-07 Lute Kamstra <lute@gnu.org>
* tasks.texi: Delete file. The GNU Task List is obsolete and has
@@ -2146,7 +2195,7 @@
;; End:
Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001
- Free Software Foundation, Inc.
+ 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted provided the copyright notice and this notice are preserved.
diff --git a/etc/DEBUG b/etc/DEBUG
index a29e5fd3e6..27f563a740 100644
--- a/etc/DEBUG
+++ b/etc/DEBUG
@@ -1,5 +1,6 @@
Debugging GNU Emacs
-Copyright (c) 1985, 2000, 2001, 2005 Free Software Foundation, Inc.
+Copyright (C) 1985, 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Permission is granted to anyone to make or distribute verbatim copies
of this document as received, in any medium, provided that the
diff --git a/etc/DISTRIB b/etc/DISTRIB
index bc0ea8cc60..f5c380bfe3 100644
--- a/etc/DISTRIB
+++ b/etc/DISTRIB
@@ -3,8 +3,9 @@ For an order form for all Emacs and FSF distributions deliverable from
the USA, see http://www.gnu.org/order/order.html.
GNU Emacs availability information, October 2000
-Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1995, 1998, 2000
- Free Software Foundation, Inc.
+
+Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1995, 1998,
+ 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
Permission is granted to anyone to make or distribute
verbatim copies of this document provided that the
diff --git a/etc/GNU b/etc/GNU
index 4ee6ef0315..6d54265d84 100644
--- a/etc/GNU
+++ b/etc/GNU
@@ -1,4 +1,5 @@
-Copyright (C) 1985, 1993, 2003, 2005 Free Software Foundation, Inc.
+Copyright (C) 1985, 1993, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Permission is granted to anyone to make or distribute verbatim copies
of this document, in any medium, provided that the copyright notice and
@@ -22,8 +23,9 @@ The GNU Manifesto
Footnotes added in 1993 help clarify these points.
For up-to-date information about the available GNU software,
- please see the latest issue of the GNU's Bulletin. The list is
- much too long to include here.
+ please see www.gnu.org. For software tasks to work on, see
+ http://savannah.gnu.org/projects/tasklist. For other ways
+ to contribute, see http://www.gnu.org/help.
What's GNU? Gnu's Not Unix!
============================
@@ -531,13 +533,13 @@ biased; more subtle is the fact that it lumps together various
disparate laws which raise very different issues. Nowadays I urge
people to reject the term "intellectual property" entirely, lest it
lead others to suppose that those laws form one coherent issue. The way to be
-clear is to to discuss patents, copyrights, and trademarks separately.
+clear is to discuss patents, copyrights, and trademarks separately.
See http://www.gnu.org/philosophy/not-ipr.xhtml for more explanation
of how this term spreads confusion and bias.
- (7) In 1985 I had not yet recognized the importance of distinguishing
-between "free software" and "freeware". The term "freeware" means
-software you are free to redistribute, but usually you are not free to study
-and change the source code, so most of it is not free software.
-See http://www.gnu.org/philosophy/words-to-avoid.html for more
+ (7) Subsequently we have learned to distinguish between "free
+software" and "freeware". The term "freeware" means software you are
+free to redistribute, but usually you are not free to study and change
+the source code, so most of it is not free software. See
+http://www.gnu.org/philosophy/words-to-avoid.html for more
explanation.
diff --git a/etc/GNUS-NEWS b/etc/GNUS-NEWS
index 6e36a98597..0c9e0f4ef1 100644
--- a/etc/GNUS-NEWS
+++ b/etc/GNUS-NEWS
@@ -1,5 +1,6 @@
GNUS NEWS -- history of user-visible changes.
-Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
See the end for copying conditions.
Please send Gnus bug reports to bugs@gnus.org.
@@ -62,7 +63,7 @@ picons, install the picons database from
and point `gnus-picon-databases' to that location.
-** If the new option `gnus-treat-body-boundary' is `head', a boundary
+** If the new option `gnus-treat-body-boundary' is `head', a boundary
line is drawn at the end of the headers.
** Retrieval of charters and control messages
@@ -77,7 +78,7 @@ for sending yourself reminders. Setup with (gnus-delay-initialize).
** If `auto-compression-mode' is enabled, attachments are automatically
decompressed when activated.
-** If the new option `nnml-use-compressed-files' is non-nil,
+** If the new option `nnml-use-compressed-files' is non-nil,
the nnml back end allows compressed message files.
** Signed article headers (X-PGP-Sig) can be verified with `W p'.
@@ -91,24 +92,24 @@ Do you often find yourself replying to news by email by mistake? Then
the new option `gnus-confirm-mail-reply-to-news' is just the thing for
you.
-** If the new option `gnus-summary-display-while-building' is non-nil,
+** If the new option `gnus-summary-display-while-building' is non-nil,
the summary buffer is shown and updated as it's being built.
** The new `recent' mark "." indicates newly arrived messages (as
opposed to old but unread messages).
-** The new option `gnus-gcc-mark-as-read' automatically marks
+** The new option `gnus-gcc-mark-as-read' automatically marks
Gcc articles as read.
** The nndoc back end now supports mailman digests and exim bounces.
-** Gnus supports RFC 2369 mailing list headers, and adds a number of
+** Gnus supports RFC 2369 mailing list headers, and adds a number of
related commands in mailing list groups.
** The Date header can be displayed in a format that can be read aloud
in English, see `gnus-treat-date-english'.
-** The envelope sender address can be customized when using Sendmail, see
+** The envelope sender address can be customized when using Sendmail, see
`message-sendmail-envelope-from'.
** diffs are automatically highlighted in groups matching
@@ -488,7 +489,7 @@ If you used procmail like in
(setq nnmail-procmail-directory "~/mail/incoming/")
(setq nnmail-procmail-suffix "\\.in")
-this now has changed to
+this now has changed to
(setq mail-sources
'((directory :path "~/mail/incoming/"
@@ -527,7 +528,8 @@ ever-changing layouts.
----------------------------------------------------------------------
Copyright information:
-Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Permission is granted to anyone to make or distribute verbatim copies
of this document as received, in any medium, provided that the
diff --git a/etc/MORE.STUFF b/etc/MORE.STUFF
index f5da8954c9..5ff739e2ce 100644
--- a/etc/MORE.STUFF
+++ b/etc/MORE.STUFF
@@ -16,7 +16,7 @@ Please submit a bug report if you find that any of the addresses
listed here fail.
* The `Emacs Lisp List' at
- <URL:http://www.anc.ed.ac.uk/%7Estephen/emacs/ell.html> has pointers
+ <URL:http://www.damtp.cam.ac.uk/user/eglen/emacs/ell.html> has pointers
to sources of a large number of packages.
* gnu.emacs.sources
@@ -47,26 +47,19 @@ You might find bug-fixes or enhancements in these places.
* CC mode: <URL:http://cc-mode.sourceforge.net/>
- * CPerl: <URL:ftp://ftp.math.ohio-state.edu/pub/users/ilya>
+ * CPerl: <URL:http://www.cpan.org/modules/by-module/CPAN/ILYAZ/cperl-mode/>
* Ediff and Viper: <URL:http://www.cs.sunysb.edu/~kifer/emacs.html>
* Eldoc and Rlogin:
- <URL:ftp://ftp.splode.com/pub/users/friedman/packages/>
+ <URL:http://www.splode.com/~friedman/software/emacs-lisp/>
- * EShell: <URL:http://www.gci-net.com/users/j/johnw/emacs.html>
+ * EShell: <URL:http://www.newartisans.com/johnw/emacs.html>
* Etags: <URL:ftp://pot.potorti.it/pub/software/unix/etags.tar.gz>
- * EUDC: <URL:http://lspwww.epfl.ch/%7Efigueire/Software/eudc/>
-
* Expand: <URL:http://w3.teaser.fr/%7Eflepied/expand.el.gz>
- * Find Func:
- <URL:http://www.kurims.kyoto-u.ac.jp/%7Epetersen/emacs/find-func.el>
-
- * Flyspell: <URL:http://kaolin.unice.fr/%7Eserrano/emacs/flyspell>
-
* Fortune: <URL:http://www.coling.uni-freiburg.de/%7Eschauer/emacs.html>
* Gnus: <URL:http://www.gnus.org/>
@@ -78,26 +71,20 @@ You might find bug-fixes or enhancements in these places.
* Ispell: <URL:http://www.kdstevens.com/%7Estevens/ispell-page.html>
- * Iswitchb: <URL:http://www.anc.ed.ac.uk/%7Estephen/emacs/iswitchb.el>
-
- * MH-E: <URL:http://mh-e.sourceforge.net/>
-
* PC Selection: <URL:ftp://ftp.thp.uni-duisburg.de/pub/source/elisp/>
* PS mode: <URL:http://odur.let.rug.nl/%7Ekleiweg/postscript/>
- * PS-print: <URL:ftp://ftp.cpqd.com.br/pub/users/vinicius/>
+ * PS-print: <URL:http://www.cpqd.com.br/~vinicius/emacs/>
- * QuickURL: <URL:http://www.acemake.com/hagbard/archives/quickurl.el>
+ * QuickURL: <URL:http://www.davep.org/emacs/>
- * RefTeX: <URL:http://zon.astro.uva.nl/~dominik/Tools/>
+ * RefTeX: <URL:http://staff.science.uva.nl/~dominik/Tools/reftex/>
* Speedbar, Checkdoc etc: <URL:http://cedet.sourceforge.net/>
* SQL: <URL:http://www.geocities.com/TimesSquare/6120/emacs.html>
- * Sregex: <URL:http://www.zanshin.com/%7Ebobg/sregex.html>
-
* Tramp: Remote file access via rsh/ssh
<URL:http://savannah.gnu.org/projects/tramp/>
@@ -146,7 +133,7 @@ Several are for Debian GNU/Linux in particular.
mirrors of the `CTAN' TeX archives.
* Dismal: spreadsheet:
- <URL:http://acs.ist.psu.edu/dismal/dismal.html>
+ <URL:http://www.gnu.org/software/dismal/dismal.html>
* ECB: Emacs Code Browser: <URL:http://ecb.sourceforge.net/>
@@ -166,7 +153,7 @@ Several are for Debian GNU/Linux in particular.
* EMacro: <URL:http://emacro.sourceforge.net/>
EMacro is a portable configuration file that configures itself.
- * Emacs statistical system (ESS): statistical programming within Emacs
+ * Emacs speaks statistics (ESS): statistical programming within Emacs
<URL:http://ess.r-project.org>
* Emacspeak -- A Speech Output Subsystem For Emacs:
@@ -183,26 +170,18 @@ Several are for Debian GNU/Linux in particular.
<URL:http://www.emacswiki.org/cgi-bin/wiki?EmacsIRCClient>
* Gnuserv:
- <URL:ftp://ftp.splode.com/pub/users/friedman/packages/fgnuserv-1.0.tar.gz>
- Enhanced emacsclient/emacsserver. See also
- <URL:http://www.splode.com/users/friedman/software/emacs-lisp/> for
- other Friedman Emacs hacks.
-
- The latest versions of gnuserv are maintained by Martin Schwenke,
- and are available from <URL:http://meltin.net/hacks/emacs/>. Also
- available from this Web page: eiffel-mode.el.
+ <URL:http://meltin.net/hacks/emacs/>
+ Enhanced emacsclient/emacsserver. Also available from this Web
+ page: eiffel-mode.el.
* hm--html-menus:
<URL:ftp://ftp.tnt.uni-hannover.de/pub/editors/xemacs/contrib>
HTML-specific editing. Can work with PSGML.
- * Hyperbole: `Hyperbole is an open, efficient, programmable
- information management and hypertext system.'
- From GNU distribution mirrors.
-
- * ILISP: <URL:http://ilisp.cons.org/>
- Provides an interactive environment for manipulating an inferior
- process running some form of Lisp.
+ * Hyperbole:
+ <URL:http://ftp.gnu.org/pub/gnu/hyperbole/hyperbole-4.01.tar.gz>
+ Hyperbole is an open, efficient, programmable information
+ management and hypertext system.
* JDEE: <URL:http://jdee.sunsite.dk/>
Provides a Java development environment for Emacs.
@@ -234,9 +213,6 @@ Several are for Debian GNU/Linux in particular.
* Planner Mode:
<URL:http://sacha.free.net.ph/notebook/wiki/PlannerMode.php>
- * Pointers to MIME packages:
- <URL:http://bmrc.berkeley.edu/%7Etrey/emacs/mime.html>
-
* Preview LaTeX: embed preview LaTeX images in source buffer.
<URL:http://preview-latex.sourceforge.net/>
diff --git a/etc/NEWS b/etc/NEWS
index 4b80ab3f93..62eb51502a 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -813,6 +813,9 @@ black or white default foreground color. This generic shadow face
allows customization of the appearance of shadowed text in one place,
so package-specific faces can inherit from it.
++++
+*** `vertical-border' face is used for the vertical divider between windows.
+
** Font-Lock changes:
+++
@@ -882,8 +885,7 @@ This menu allows you to turn various display features on and off (such
as the fringes, the tool bar, the speedbar, and the menu bar itself).
You can also move the vertical scroll bar to either side here or turn
it off completely. There is also a menu-item to toggle displaying of
-current date and time, current line and column number in the
-mode-line.
+current date and time, current line and column number in the mode-line.
---
*** Speedbar has moved from the "Tools" top level menu to "Show/Hide".
@@ -921,12 +923,10 @@ the new dialog.
** Mouse changes:
+++
-*** New display feature: focus follows the mouse from one Emacs window
-to another, even within a frame. If you set the variable
-mouse-autoselect-window to non-nil value, moving the mouse to a
-different Emacs window will select that window (minibuffer window can
-be selected only when it is active). The default is nil, so that this
-feature is not enabled.
+*** If you set the new variable `mouse-autoselect-window' to a non-nil
+value, windows are automatically selected as you move the mouse from
+one Emacs window to another, even within a frame. A minibuffer window
+can be selected only when it is active.
+++
*** On X, when the window manager requires that you click on a frame to
@@ -994,7 +994,7 @@ mouse-wheel-inhibit-click-time variables.
+++
*** Under X, mouse-wheel-mode is turned on by default.
-** Mule changes:
+** Multilingual Environment (Mule) changes:
---
*** Language environment and various default coding systems are setup
@@ -1126,12 +1126,11 @@ in CNS encoding; it accepts both Big 5 and CNS as input; on saving,
Big 5 is then converted to CNS.
---
-*** Many new coding systems are available by loading the `code-pages'
-library. These include complete versions of most of those in
-codepage.el, based on Unicode mappings. `codepage-setup' is now
-obsolete and is used only in the MS-DOS port of Emacs. windows-1252
-and windows-1251 are preloaded since the former is so common and the
-latter is used by GNU locales.
+*** Many new coding systems are available in the `code-pages' library.
+These include complete versions of most of those in codepage.el, based
+on Unicode mappings. `codepage-setup' is now obsolete and is used
+only in the MS-DOS port of Emacs. All coding systems defined in
+`code-pages' are auto-loaded.
---
*** New variable `utf-translate-cjk-unicode-range' controls which
@@ -1300,6 +1299,10 @@ compilation processes without affecting the environment that all
subprocesses inherit.
+++
+*** New user option `compilation-disable-input'.
+If this is non-nil, send end-of-file as compilation process input.
+
++++
*** New options `next-error-highlight' and `next-error-highlight-no-select'
specify the method of highlighting of the corresponding source line
in new face `next-error'.
@@ -1631,7 +1634,7 @@ before calling it, if used while defining a macro.
In addition, when ending or calling a macro with C-x e, the macro can
be repeated immediately by typing just the `e'. You can customize
-this behavior via the variable kmacro-call-repeat-key and
+this behavior via the variables kmacro-call-repeat-key and
kmacro-call-repeat-with-arg.
Keyboard macros can now be debugged and edited interactively.
@@ -1748,10 +1751,32 @@ recognized.
---
** The TCL package tcl-mode.el was replaced by tcl.el.
This was actually done in Emacs-21.1, and was not documented.
+
+** The new package scroll-lock.el provides the Scroll Lock minor mode
+for pager-like scrolling. Keys which normally move point by line or
+paragraph will scroll the buffer by the respective amount of lines
+instead and point will be kept vertically fixed relative to window
+boundaries during scrolling.
* Changes in Specialized Modes and Packages in Emacs 22.1:
---
+** Changes to cmuscheme
+
+*** Emacs now offers to start Scheme if the user tries to
+evaluate a Scheme expression but no Scheme subprocess is running.
+
+*** If a file `.emacs_NAME' (where NAME is the name of the Scheme interpreter)
+exists in the user's home directory or in ~/.emacs.d, its
+contents are sent to the Scheme subprocess upon startup.
+
+*** There are new commands to instruct the Scheme interpreter to trace
+procedure calls (`scheme-trace-procedure') and to expand syntactic forms
+(`scheme-expand-current-form'). The commands actually sent to the Scheme
+subprocess are controlled by the user options `scheme-trace-command',
+`scheme-untrace-command' and `scheme-expand-current-form'.
+
+---
** Makefile mode has submodes for automake, gmake, makepp and BSD make.
The former two couldn't be differentiated before, and the latter two
@@ -1813,7 +1838,7 @@ when Emacs visits them.
*** A numeric prefix argument of `info' selects an Info buffer
with the number appended to the `*info*' buffer name (e.g. "*info*<2>").
----
++++
*** isearch in Info uses Info-search and searches through multiple nodes.
Before leaving the initial Info node isearch fails once with the error
@@ -1824,31 +1849,38 @@ aroung the whole manual to the top/final node. The user option
or the default isearch search function that wraps around the current
Info node.
+---
*** New search commands: `Info-search-case-sensitively' (bound to S),
`Info-search-backward', and `Info-search-next' which repeats the last
search without prompting for a new search string.
++++
*** New command `Info-history-forward' (bound to r and new toolbar icon)
moves forward in history to the node you returned from after using
`Info-history-back' (renamed from `Info-last').
+---
*** New command `Info-history' (bound to L) displays a menu of visited nodes.
+---
*** New command `Info-toc' (bound to T) creates a node with table of contents
from the tree structure of menus of the current Info file.
++++
*** New command `info-apropos' searches the indices of the known
Info files on your system for a string, and builds a menu of the
possible matches.
+---
*** New command `Info-copy-current-node-name' (bound to w) copies
the current Info node name into the kill ring. With a zero prefix
arg, puts the node name inside the `info' function call.
----
++++
*** New face `info-xref-visited' distinguishes visited nodes from unvisited
and a new option `Info-fontify-visited-nodes' to control this.
+---
*** http and ftp links in Info are now operational: they look like cross
references and following them calls `browse-url'.
@@ -2181,6 +2213,9 @@ line is left untouched.
The function `c-toggle-syntactic-indentation' can be used to toggle
syntactic indentation.
+** In sh-script, a continuation line is only indented if the backslash was
+preceded by a SPC or a TAB.
+
---
** Perl mode has a new variable `perl-indent-continued-arguments'.
@@ -2395,7 +2430,7 @@ GDB. You can interact with GDB through the GUD buffer in the usual way, but
there are also further buffers which control the execution and describe the
state of your program. It can separate the input/output of your program from
that of GDB and watches expressions in the speedbar. It also uses features of
-Emacs 21/22 such as the the toolbar, and bitmaps in the fringe to indicate
+Emacs 21/22 such as the toolbar, and bitmaps in the fringe to indicate
breakpoints.
Use M-x gdb to start GDB-UI.
@@ -2750,6 +2785,10 @@ See the documentation of the user option
---
*** Rmail now displays 5-digit message ids in its summary buffer.
+*** The new commands rmail-end-of-message and rmail-summary end-of-message,
+by default bound to `/', go to the end of the current mail message in
+Rmail and Rmail summary buffers.
+
+++
*** Support for `movemail' from GNU mailutils was added to Rmail.
@@ -2781,6 +2820,10 @@ version 5.0.2; see MH-E-NEWS for details.
** Calendar changes:
+++
+*** You can now use < and >, instead of C-x < and C-x >, to scroll
+the calendar left or right. (The old key bindings still work too.)
+
++++
*** There is a new calendar package, icalendar.el, that can be used to
convert Emacs diary entries to/from the iCalendar format.
@@ -3042,6 +3085,21 @@ variable `calculator-radix-grouping-mode'.
* Changes in Emacs 22.1 on non-free operating systems
+++
+** The HOME directory defaults to Application Data under the user profile.
+
+If you used a previous version of Emacs without setting the HOME
+environment variable and a `.emacs' was saved, then Emacs will continue
+using C:/ as the default HOME. But if you are installing Emacs afresh,
+the default location will be the "Application Data" (or similar
+localized name) subdirectory of your user profile. A typical location
+of this directory is "C:\Documents and Settings\USERNAME\Application Data",
+where USERNAME is your user name.
+
+This change means that users can now have their own `.emacs' files on
+shared computers, and the default HOME directory is less likely to be
+read-only on computers that are administered by someone else.
+
++++
** Passing resources on the command line now works on MS Windows.
You can use --xrm to pass resource settings to Emacs, overriding any
@@ -3159,6 +3217,10 @@ the command `undefined'. (In earlier Emacs versions, it used
** General Lisp changes:
+*** The function `expt' handles negative exponents differently.
+The value for `(expt A B)', if both A and B are integers and B is
+negative, is now a float. For example: (expt 2 -2) => 0.25.
+
+++
*** The function `eql' is now available without requiring the CL package.
@@ -3581,6 +3643,25 @@ binding of VARIABLE (a symbol) in buffer BUFFER. If VARIABLE does not
have a buffer-local binding in buffer BUFFER, it returns the default
value of VARIABLE instead.
+*** The function `frame-or-buffer-changed-p' now lets you maintain
+various status records in parallel.
+
+It take a variable (a symbol) as argument. If the variable is non-nil,
+then its value should be a vector installed previously by
+`frame-or-buffer-changed-p'. If the frame names, buffer names, buffer
+order, or their read-only or modified flags have changed, since the
+time the vector's contents were recorded by a previous call to
+`frame-or-buffer-changed-p', then the function returns t. Otherwise
+it returns nil.
+
+On the first call to `frame-or-buffer-changed-p', the variable's
+value should be nil. `frame-or-buffer-changed-p' stores a suitable
+vector into the variable and returns t.
+
+If the variable is itself nil, then `frame-or-buffer-changed-p' uses,
+for compatibility, an internal variable which exists only for this
+purpose.
+
** Local variables lists:
+++
@@ -3827,6 +3908,10 @@ operations.
This is useful for autoloaded handlers, to prevent them from being
autoloaded when not really necessary.
++++
+*** The function `make-auto-save-file-name' is now handled by file
+name handlers. This will be exploited for remote files mainly.
+
** Input changes:
+++
@@ -3848,7 +3933,8 @@ using the text properties (esp. the face) of the prompt string.
*** (while-no-input BODY...) runs BODY, but only so long as no input
arrives. If the user types or clicks anything, BODY stops as if a
quit had occurred. `while-no-input' returns the value of BODY, if BODY
-finishes. It returns nil if BODY was aborted.
+finishes. It returns nil if BODY was aborted by a quit, and t if
+BODY was aborted by arrival of input.
** Minibuffer changes:
@@ -4076,8 +4162,7 @@ emacs tries to read it.
*** The new function `call-process-shell-command'.
-This executes a shell command command synchronously in a separate
-process.
+This executes a shell command synchronously in a separate process.
*** The new function `process-file' is similar to `call-process', but
obeys file handlers. The file handler is chosen based on
@@ -4645,6 +4730,13 @@ so that :inherit face lists operate identically to face lists in text
`face' properties.
---
+*** On terminals, faces with the :inverse-video attribute are displayed
+with swapped foreground and background colors even when one of them is
+not specified. In previous releases of Emacs, if either foreground
+or background color was unspecified, colors were not swapped. This
+was inconsistent with the face behavior under X.
+
+---
*** `set-fontset-font', `fontset-info', `fontset-font' now operate on
the default fontset if the argument NAME is nil..
@@ -5012,6 +5104,10 @@ running under X.
** GC changes:
+++
+*** New variable `gc-cons-percentage' automatically grows the GC cons threshold
+as the heap size increases.
+
++++
*** New variables `gc-elapsed' and `gcs-done' provide extra information
on garbage collection.
@@ -14418,7 +14514,8 @@ select one of those items.
----------------------------------------------------------------------
Copyright information:
-Copyright (C) 1999, 2000, 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Permission is granted to anyone to make or distribute verbatim copies
of this document as received, in any medium, provided that the
diff --git a/etc/PROBLEMS b/etc/PROBLEMS
index db8840d3d1..c5ce84ff1b 100644
--- a/etc/PROBLEMS
+++ b/etc/PROBLEMS
@@ -338,7 +338,7 @@ The solution is to use gawk (GNU awk).
*** Emacs fails to understand most Internet host names, even though
the names work properly with other programs on the same system.
*** Emacs won't work with X-windows if the value of DISPLAY is HOSTNAME:0.
-*** GNUs can't make contact with the specified host for nntp.
+*** Gnus can't make contact with the specified host for nntp.
This typically happens on Suns and other systems that use shared
libraries. The cause is that the site has installed a version of the
@@ -2418,11 +2418,11 @@ address space of a process. As the result dumping may fail even if
you turn off exec-shield. In this case, use the -R option to the setarch
command:
- setarch -R i386 ./temacs --batch --load loadup [dump|bootstrap]
+ setarch i386 -R ./temacs --batch --load loadup [dump|bootstrap]
or
- setarch -R i386 make bootstrap
+ setarch i386 -R make bootstrap
*** Fatal signal in the command temacs -l loadup inc dump.
@@ -3561,8 +3561,8 @@ This problem will not happen if the m-...h file for your type
of machine defines NO_UNION_TYPE.
-Copyright 1987,88,89,93,94,95,96,97,98,1999,2001,2002,2004
- Free Software Foundation, Inc.
+Copyright 1987, 1988, 1989, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+ 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
Copying and redistribution of this file with or without modification
are permitted without royalty provided this notice is preserved.
diff --git a/etc/TODO b/etc/TODO
index 804b07a696..0c24c5529a 100644
--- a/etc/TODO
+++ b/etc/TODO
@@ -93,6 +93,12 @@ to the FSF.
* Other features we would like:
+** Create a category of errors called `process-error'
+ for some or all errors associated with using subprocesses.
+
+** Maybe reinterpret `parse-error' as a category of errors
+ and put some other errors under it.
+
** A function to check for customizable options that have been
set but not saved, and ask the user whether to save them.
This could go in kill-emacs-query-functions, to remind people
@@ -153,6 +159,8 @@ to the FSF.
which gives the same information through a menu structure. [Dave
Love started on this.]
+** Add a cpio mode, more or less like tar mode.
+
** Implement a variant of uncompress.el or jka-compr.el that works with
GNU Privacy Guard for encryption. [Code exists but isn't assigned.
See the Gnus development sources for assigned code concerning GPG
@@ -268,6 +276,9 @@ to the FSF.
** Provide portable undumping using mmap (per gerd design).
+** Make byte-compile avoid binding an expanded defsubst's args
+when the body only calls primitives.
+
** Use the XIE X extension, if available, for image display.
** Make monochrome images display using the foreground and background
diff --git a/etc/TUTORIAL b/etc/TUTORIAL
index 48fa02f93d..0df9a6f271 100644
--- a/etc/TUTORIAL
+++ b/etc/TUTORIAL
@@ -1,5 +1,4 @@
Emacs tutorial. See end for copying conditions.
-Copyright (c) 1985, 1996, 1998, 2001, 2002, 2005 Free Software Foundation.
Emacs commands generally involve the CONTROL key (sometimes labeled
CTRL or CTL) or the META key (sometimes labeled EDIT or ALT). Rather than
@@ -1104,7 +1103,8 @@ starting with the one written by Stuart Cracraft for the original Emacs.
This version of the tutorial, like GNU Emacs, is copyrighted, and
comes with permission to distribute copies on certain conditions:
-Copyright (c) 1985, 1996, 1998, 2001, 2002, 2005 Free Software Foundation
+Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Permission is granted to anyone to make or distribute verbatim copies
of this document as received, in any medium, provided that the
diff --git a/etc/TUTORIAL.bg b/etc/TUTORIAL.bg
index 239d3d58c1..8f51458381 100644
--- a/etc/TUTORIAL.bg
+++ b/etc/TUTORIAL.bg
@@ -1,5 +1,4 @@
Âúâåäåíèå â Emacs. Óñëîâèÿòà çà êîïèðàíå ñà â êðàÿ íà òåêñòà.
-Copyright (c) 1985,1996,1998,2001,2002,2003,2005 Free Software Foundation.
Êîìàíäèòå íà Emacs íàé-÷åñòî âêëþ÷âàò êëàâèøèòå CONTROL (ïîíÿêîãà
îòáåëÿçâàí ñ CTRL èëè CTL) è META (ïîíÿêîãà îòáåëÿçâàí ñ EDIT èëè
@@ -1170,7 +1169,8 @@ Dired âè ïîçâîëÿâà äà ãëåäàòå ñïèñúêà îò ôàéëîâå â äèðåêòîðèÿ (è êàòî
This version of the tutorial, like GNU Emacs, is copyrighted, and
comes with permission to distribute copies on certain conditions:
-Copyright (c) 1985, 1996, 1998, 2001, 2002, 2005 Free Software Foundation
+Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Permission is granted to anyone to make or distribute verbatim copies
of this document as received, in any medium, provided that the
diff --git a/etc/TUTORIAL.cn b/etc/TUTORIAL.cn
index 1b30b6e909..f35c53be66 100644
--- a/etc/TUTORIAL.cn
+++ b/etc/TUTORIAL.cn
@@ -1,5 +1,4 @@
Emacs ¿ìËÙÖ¸ÄÏ.
-Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation.
Emacs Ö¸Áîͨ³£°üº¬ÓÐ CONTROL ¼ü£¨ÓÐʱºòÒÔ CTRL »ò CTL À´±êʾ£©»òÊÇ
META ¼ü£¨ÓÐʱºòÒÔ EDIT »ò ALT À´±êʾ£©¡£ÎªÁ˱ÜÃâÿһ´Î¶¼ÒªÐ´³öÆäÈ«Ãû£¬
@@ -1050,7 +1049,8 @@ issue here>¡¹¡£
Õâ¸ö°æ±¾µÄ¿ìËÙÖ¸ÄÏºÍ GNU Emacs Ò»Ñù¶¼ÊÇ°æȨ»¯µÄ£¬²¢ÇÒÔÊÐíÔÚijЩÌõ¼þÏÂ
É¢²¼Æ俽±´£º
-Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation
+Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Chinese Translation by Chao-Hong Liu (2002, 2003)
Permission is granted to anyone to make or distribute verbatim copies
diff --git a/etc/TUTORIAL.cs b/etc/TUTORIAL.cs
index 9a244a5e75..57e77de9a4 100644
--- a/etc/TUTORIAL.cs
+++ b/etc/TUTORIAL.cs
@@ -1,5 +1,4 @@
Tutoriál k Emacsu. Podmínky viz na konci.
-Copyright (c) 1985, 1996, 1998, 2001, 2002, 2005 Free Software Foundation.
Do èe¹tiny pøelo¾il Milan Zamazal <pdm@zamazal.org>.
Máte pøed sebou tutoriál k Emacsu.
@@ -1023,7 +1022,8 @@ tutoriálem napsaným Stuartem Cracraftem pro pùvodní Emacs.
Tato verze tutoriálu je, podobnì jako GNU Emacs, chránìna copyrightem a
je ¹íøena se svolením distribuovat kopie za jistých podmínek:
-Copyright (c) 1985, 1996 Free Software Foundation
+Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Ka¾dému je zaruèeno právo vytváøet a distribuovat pøesné kopie tohoto
dokumentu tak, jak jej obdr¾el, na jakémkoliv médiu, s tím, ¾e bude
diff --git a/etc/TUTORIAL.de b/etc/TUTORIAL.de
index 9c556c83b9..17019ad66d 100644
--- a/etc/TUTORIAL.de
+++ b/etc/TUTORIAL.de
@@ -1,5 +1,4 @@
Einführung in Emacs. Siehe Dateiende für Vervielfältigungsbedingungen.
-(c) 2002, 2003, 2005 Free Software Foundation, Inc.
Emacs-Befehle beinhalten im allgemeinen die CONTROL-Taste (manchmal
auch als CTRL, CTL oder STRG beschriftet) sowie die META-Taste (auch
@@ -1461,7 +1460,8 @@ geschrieben. Übersetzer ins Deutsche ist Werner Lemberg (wl@gnu.org).
Beachten Sie bitte, daß im Zweifelsfalle das englische Original dieser
Urheberrechtsnotiz gültig ist (zu finden in der Datei TUTORIAL).
-Copyright (c) 1985, 1996, 1997 Free Software Foundation
+Copyright (C) 1985, 1996, 1997, 2002, 2003, 2004,
+ 2005 Free Software Foundation
Hiermit wird für jedermann die Erlaubnis erteilt, wörtliche,
unveränderte Kopien dieses Dokumentes für jegliches Medium zu
diff --git a/etc/TUTORIAL.es b/etc/TUTORIAL.es
index ed55cc5ca4..cb5e92a2df 100644
--- a/etc/TUTORIAL.es
+++ b/etc/TUTORIAL.es
@@ -1,5 +1,4 @@
Tutorial de Emacs. Vea al final las condiciones de copiado.
-Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation.
Generalmente los comandos de Emacs involucran la tecla CONTROL
(algunas veces llamada CTRL O CTL) o la tecla meta (algunas veces
@@ -1188,7 +1187,8 @@ Por favor, en caso de duda, sólo es válido el original en inglés de la
siguiente nota de derechos de reproducción (que puede encontrar en el
archivo TUTORIAL).
-Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation
+Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Se permite a cualquiera hacer o distribuir copias literales de este
documento como se recibe, en cualquier medio, siempre que la nota
diff --git a/etc/TUTORIAL.fr b/etc/TUTORIAL.fr
index e3e940abd4..30a6f05fe2 100644
--- a/etc/TUTORIAL.fr
+++ b/etc/TUTORIAL.fr
@@ -1,5 +1,4 @@
Didacticiel d'Emacs. Voir la fin de ce document pour les conditions.
-Copyright (c) 1985, 2001, 2002 Free Software Foundation, Inc.
Les commandes Emacs utilisent généralement la touche CONTROLE (souvent
désignée par CTRL ou CTL) ou la touche META (souvent désignée par EDIT
@@ -1171,7 +1170,8 @@ Cette version du didacticiel, comme GNU Emacs, est placée sous
copyright, et vous pouvez en distribuer des copies sous certaines
conditions :
-Copyright (c) 1985, 1996, 2001, 2002 Free Software Foundation
+Copyright (C) 1985, 1996, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Chacun peut créer ou distribuer des copies de ce document tel qu'il
l'a reçu, sur n'importe quel support, pourvu que la note de
diff --git a/etc/TUTORIAL.it b/etc/TUTORIAL.it
index 55608250c2..d310a16eae 100644
--- a/etc/TUTORIAL.it
+++ b/etc/TUTORIAL.it
@@ -1,5 +1,4 @@
Esercitazione di Emacs. Condizioni d'uso alla fine del file.
-Copyright (c) 2003 Free Software Foundation, Inc.
I comandi di Emacs comportano generalmente l'uso del tasto CONTROL (a
volte indicato con CTRL o CTL) o del tasto META (a volte indicato con EDIT
@@ -1094,7 +1093,7 @@ distribuito con il permesso di farne copie a determinate condizioni:
indicativo, restando comunque inteso il fatto che è quella originale a
fare fede.
- Copyright (c) 2003 Free Software Foundation
+Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
È permesso a chiunque copiare e distribuire attraverso ogni mezzo copie
fedeli di questo documento così come viene ricevuto, a condizione che
diff --git a/etc/TUTORIAL.ja b/etc/TUTORIAL.ja
index ccb454bf3f..dec03f35d2 100644
--- a/etc/TUTORIAL.ja
+++ b/etc/TUTORIAL.ja
@@ -1,5 +1,4 @@
Emacs $BF~Lg%,%$%I(B. $BK\%U%!%$%k$NCx:n8"$K$D$$$F$O:G8e$r8fMw2<$5$$!#(B
-Copyright (c) 1985, 1996, 1998, 2001, 2002, 2005 Free Software Foundation.
Emacs $B$N%3%^%s%I$rF~NO$9$k$K$O!"0lHL$K%3%s%H%m!<%k%-!<!J%-!<%H%C%W$K(B
CONTROL $B$H$+(B CTRL $B$H$+(B CTL $B$H=q$$$F$"$k!K$d%a%?%-!<!J%-!<%H%C%W$K(B META
@@ -1048,7 +1047,8 @@ starting with the one written by Stuart Cracraft for the original Emacs.
This version of the tutorial, like GNU Emacs, is copyrighted, and
comes with permission to distribute copies on certain conditions:
-Copyright (c) 1985, 1996, 1998, 2001, 2002, 2005 Free Software Foundation
+Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Permission is granted to anyone to make or distribute verbatim copies
of this document as received, in any medium, provided that the
diff --git a/etc/TUTORIAL.ko b/etc/TUTORIAL.ko
index 8e94db3c65..c8875dc31b 100644
--- a/etc/TUTORIAL.ko
+++ b/etc/TUTORIAL.ko
@@ -1,5 +1,5 @@
$(C@L8F=:(B(Emacs) $(CAvD'<-@T4O4Y(B.
-$(C@z@[1G(B (c) 1985, 2001 Free Software Foundation, Inc; $(C3!?!4B(B $(C:9;g(B $(CA60G@L(B
+$(C3!?!4B(B $(C:9;g(B $(CA60G@L(B
$(C@V=@4O4Y(B. $(CAv1](B $(C@P0m(B $(C@V4B(B $(C@L(B $(C1[@:(B $(C@L8F=:(B(Emacs) $(CAvD'<-@T4O4Y(B.
$(C@L8F=:(B $(C8m7I5i@:(B $(C4k03(B $(CA&>n<h(B (CTRL$(C@L3*(B CTL$(C@L6s0m55(B $(CG%=C(B) $(CH$@:(B
@@ -989,7 +989,8 @@ C-x C-s$(C?M(B (META$(C<h3*(B EDIT$(C<h(B $(CH$@:(B $(C13C<<h0!(B $(C
GNU $(C@L8F=:?M(B $(C00@L(B $(C@L(B $(CAvD'<-(B $(CFG@:(B $(C@z@[1G@L(B $(C@V@88g(B $(CF/A$GQ(B $(CA60G@;(B $(C88A7GR(B
$(C6'?!(B $(C:9;g:;@;(B $(C9hFwGR(B $(C<v(B $(C@V4B(B $(CGc0!8&(B $(C0.0m(B $(C3*?B(B $(C0M@L4Y(B:
-$(C@z@[1G(B (c) 1985, 1996 Free Software Foundation
+Copyright (C) 1985, 1996, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
$(C@L(B $(C9.<-4B(B $(C@L(B $(C@z@[1G(B $(C0x0m?M(B $(CGc?k(B $(C0x0m0!(B $(C1W4k7N(B $(C@/Av5G0m(B, $(C9hFw@Z0!(B
$(C<vCk@Z?!0T(B $(C@L(B $(C0x0m?!(B $(C5{6s(B $(CGc?k5G4B(B $(C0MC373(B $(C6G(B $(C@g:P9hGO4B(B $(C0M@;(B
diff --git a/etc/TUTORIAL.nl b/etc/TUTORIAL.nl
index 6b6a20a1bb..6438869369 100644
--- a/etc/TUTORIAL.nl
+++ b/etc/TUTORIAL.nl
@@ -1,5 +1,4 @@
Emacs-inleiding. De kopieervoorwaarden staan onderaan.
-Copyright (c) 1985, 1996, 1997, 2003, 2004, 2005 Free Software Foundation
De meeste Emacs-commando's gebruiken de CONTROL-toets (soms CTRL of CTL
genaamd) en/of de META-toets (soms genaamd EDIT of ALT). In plaats van
@@ -1205,7 +1204,8 @@ het Engelse origineel.)
Deze versie van de inleiding valt onder copyright, net als GNU Emacs.
Je mag deze inleiding verspreiden onder bepaalde voorwaarden:
-Copyright (c) 1985, 1996, 1997, 2003, 2004, 2005 Free Software Foundation
+Copyright (C) 1985, 1996, 1997, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Iedereen mag letterlijke kopieën van dit document, zowel ontvangen
als verspreiden, op elk medium, vooropgesteld dat de
@@ -1229,7 +1229,8 @@ software te gebruiken, te schrijven en te delen!
This version of the tutorial, like GNU Emacs, is copyrighted, and
comes with permission to distribute copies on certain conditions:
-Copyright (c) 1985, 1996, 1997, 2003, 2004, 2005 Free Software Foundation
+Copyright (C) 1985, 1996, 1997, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Permission is granted to anyone to make or distribute verbatim
copies of this document as received, in any medium, provided that
diff --git a/etc/TUTORIAL.pl b/etc/TUTORIAL.pl
index 076a33bbd8..cff0b9dd40 100644
--- a/etc/TUTORIAL.pl
+++ b/etc/TUTORIAL.pl
@@ -1,5 +1,4 @@
Krótki samouczek Emacsa. Warunki kopiowania znajduj± sie na koñcu pliku.
-Copyright (c) 1985, 1996, 1998, 2001, 2002, 2005 Free Software Foundation.
Polecenia Emacsa wymagaj± na ogó³ wci¶niêcia klawisza CONTROL (oznaczanego
czasami Ctrl lub CTL) lub klawisza META (oznaczanego czasami EDIT
@@ -1218,7 +1217,8 @@ z pomoc± Ryszarda Kubiaka i Janusza S. Bienia <jsbien@mail.uw.edu.pl>.
Ta wersja samouczka, podobnie jak GNU Emacs, jest chroniona prawem
autorskim, ale wolno j± kopiowaæ pod nastêpuj±cymi warunkami:
-Copyright (c) 1985, 1994, 2001 Free Software Foundation
+Copyright (C) 1985, 1994, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Zezwala siê na wykonywanie lub rozpowszechnianie
wiernych kopii tego dokumentu w otrzymanej formie, na dowolnym
diff --git a/etc/TUTORIAL.pt_BR b/etc/TUTORIAL.pt_BR
index 56f431ecdd..bd7cf84d6c 100644
--- a/etc/TUTORIAL.pt_BR
+++ b/etc/TUTORIAL.pt_BR
@@ -1,5 +1,4 @@
Tutorial do Emacs. Veja no fim as condições para cópia.
-Copyright (c) 2004, 2005 Free Software Foundation.
Os comandos do Emacs geralmente envolvem a tecla CONTROL (algumas vezes
nomeada CTRL ou CTL) ou a tecla META (algumas vezes nomeada EDIT ou
@@ -1064,7 +1063,7 @@ Essa versão do tutorial foi originalmente traduzida por Marcelo Toledo
<marcelo@gnu.org> e como o GNU Emacs, tem um copyright, e vem
com uma permissão de distribuição de cópias nas seguintes condições:
-Copyright (c) 1985, 1996 Free Software Foundation
+Copyright (C) 2004, 2005 Free Software Foundation, Inc.
Permissão é garantida a qualquer um para fazer ou distribuir copias
integrais deste documento como recebido, em qualquer meio, deixando
diff --git a/etc/TUTORIAL.ro b/etc/TUTORIAL.ro
index 71b2466eca..85e8e30892 100644
--- a/etc/TUTORIAL.ro
+++ b/etc/TUTORIAL.ro
@@ -1,5 +1,4 @@
Tutorialului de Emacs. A se citi sfârºitul pentru condiþii.
-Copyright (c) 1998 Free Software Foundation
Traducere din englezã de Tudor Hulubei <tudor@gnu.org>.
Mulþumiri Aidei Hulubei <aida@chang.pub.ro> pentru corecturi ºi sugestii.
@@ -1092,7 +1091,7 @@ continuare noþita de copyright originalã în limba englezã.
This version of the tutorial, like GNU Emacs, is copyrighted, and
comes with permission to distribute copies on certain conditions:
-Copyright (c) 1985, 1996 Free Software Foundation
+Copyright (C) 1998, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
Permission is granted to anyone to make or distribute verbatim copies
of this document as received, in any medium, provided that the
diff --git a/etc/TUTORIAL.ru b/etc/TUTORIAL.ru
index 1be3a1e28a..cd84911db2 100644
--- a/etc/TUTORIAL.ru
+++ b/etc/TUTORIAL.ru
@@ -1,5 +1,4 @@
õÞÅÂÎÉË Emacs. õÓÌÏ×ÉÑ ÒÁÓÐÒÏÓÔÒÁÎÅÎÉÑ ÐÒÉ×ÅÄÅÎÙ × ËÏÎÃÅ ÆÁÊÌÁ
-Copyright (c) 1985, 1996, 1998, 2001, 2002, 2005 Free Software Foundation, Inc.
äÌÑ ÕÐÒÁ×ÌÅÎÉÑ Emacs ÏÂÙÞÎÏ ÉÓÐÏÌØÚÕÅÔÓÑ ËÌÀÞ (key -- ÓÏÞÅÔÁÎÉÅ ËÌÁ×ÉÛ
ËÌÁ×ÉÁÔÕÒÙ É/ÉÌÉ ËÎÏÐÏË ÍÙÛÉ), ×ËÌÀÞÁÀÝÉÊ × ÓÅÂÑ ËÌÁ×ÉÛÕ CONTROL (ÉÎÏÇÄÁ
@@ -669,7 +668,7 @@ meta- ÓÉÍ×ÏÌÙ. Emacs ÏÂÈÏÄÉÔ ÜÔÏ, ÉÓÐÏÌØÚÕÑ X-ËÏÍÁÎÄÕ (eXtend). åÓÔØ Ä×Å
C-x òÁÓÛÉÒÅÎÉÅ Ó ÐÏÍÏÝØÀ ××ÏÄÁ ÐÒÅÆÉËÓÁ. úÁ ÎÉÍ ÓÌÅÄÕÅÍ ÏÄÉÎ ÓÉÍ×ÏÌ.
M-x òÁÓÛÉÒÅÎÉÅ ÎÁÂÏÒÁ ËÏÍÁÎÄ Ó ÐÏÍÏÝØÀ ÉÈ ÎÁÉÍÅÎÏ×ÁÎÉÑ. úÁ ÎÉÍ ÓÌÅÄÕÅÔ ÉÍÑ
- ËÏÍÁÎÄÙ.
+ ËÏÍÁÎÄÙ.
üÔÏ ÐÏÌÅÚÎÙÅ ËÏÍÁÎÄÙ, ÎÏ ÏÎÉ ÉÓÐÏÌØÚÕÀÔÓÑ ÍÅÎÅÅ ÞÁÓÔÏ, ÞÅÍ ÔÅ ËÏÍÁÎÄÙ,
ËÏÔÏÒÙÅ ÍÙ ÉÚÕÞÉÌÉ. ÷Ù ÕÖÅ ×ÉÄÅÌÉ ÎÅËÏÔÏÒÙÅ ÉÚ ÎÉÈ: ËÏÍÁÎÄÙ ÒÁÂÏÔÙ Ó ÆÁÊÌÁÍÉ
@@ -1132,7 +1131,8 @@ Dired ÐÏÚ×ÏÌÑÅÔ ×ÁÍ ÏÔÏÂÒÁÖÁÔØ ÓÐÉÓÏË ÆÁÊÌÏ× × ËÁÔÁÌÏÇÅ (Á ÔÁËÖÅ
(copyrighted), É ÐÒÉÈÏÄÉÔ Ó ÏÇÒÁÎÉÞÅÎÉÑÍÉ ÒÁÓÐÒÏÓÔÒÁÎÅÎÉÑ ËÏÐÉÊ ÓÏ
ÓÌÅÄÕÀÝÉÍÉ ÓÏÇÌÁÛÅÎÉÑÍÉ:
-Copyright (c) 1985, 1996, 1998, 2001, 2002, 2005 Free Software Foundation
+Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Permission is granted to anyone to make or distribute verbatim copies
of this document as received, in any medium, provided that the
@@ -1151,7 +1151,7 @@ Copyright (c) 1985, 1996, 1998, 2001, 2002, 2005 Free Software Foundation
ÏÂÅÓÐÅÞÅÎÉÑ ("×ÌÁÄÅÎÉÅ"), ÉÓÐÏÌØÚÕÑ, ÓÏÚÄÁ×ÁÑ É ÒÁÓÐÒÏÓÔÒÁÎÑÑ Ó×ÏÂÏÄÎÏÅ
ÐÒÏÇÒÁÍÍÎÏÅ ÏÂÅÓÐÅÞÅÎÉÅ!
-// ÚÁÍÅÞÁÎÉÑ, ÉÓÐÒÁ×ÌÅÎÉÑ ÏÛÉÂÏË Ó ÖÄÕ ÐÏ ÁÄÒÅÓÕ alexott@gmail.com.
+// ÚÁÍÅÞÁÎÉÑ, ÉÓÐÒÁ×ÌÅÎÉÑ ÏÛÉÂÏË Ó ÖÄÕ ÐÏ ÁÄÒÅÓÕ alexott@gmail.com.
// Alex Ott.
;;; Local Variables:
diff --git a/etc/TUTORIAL.sk b/etc/TUTORIAL.sk
index 67e20f1497..26e3f83474 100644
--- a/etc/TUTORIAL.sk
+++ b/etc/TUTORIAL.sk
@@ -1,5 +1,4 @@
Tútorial k Emacsu. Podmienky pozri na konci.
-Copyright (c) 1985, 1996, 1998, 2001, 2002, 2005 Free Software Foundation.
Do èe¹tiny prelo¾il Milan Zamazal <pdm@zamazal.org>, do slovenèiny Miroslav
Va¹ko <zemiak@zoznam.sk>.
@@ -1082,7 +1081,8 @@ tútorialom napísaným Stuartom Cracraftom pre pôvodný Emacs.
Táto verzia tútorialu je, podobne ako GNU Emacs, chránená copyrightom
a je ¹írená s povolením distribuova» kópie za istých podmienok:
-Copyright (c) 1985, 1996 Free Software Foundation
+Copyright (C) 1985, 1996, 1998, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Ka¾dému je zaruèené právo vytvára» a distribuova» presné kópie tohto
dokumentu tak, ako ho dostal, na akomkoµvek médiu, s tým, ¾e bude
diff --git a/etc/TUTORIAL.sl b/etc/TUTORIAL.sl
index 263019643d..37ebb2fbf1 100644
--- a/etc/TUTORIAL.sl
+++ b/etc/TUTORIAL.sl
@@ -1,5 +1,4 @@
Prvo berilo za Emacs. Pogoji uporabe in raz¹irjanja so navedeni na koncu.
-Copyright (c) 1985, 1996, 1997, 2001, 2002 Free Software Foundation, Inc.
Ukazi v Emacsu v splo¹nem vkljuèujejo tipki CONTROL (vèasih oznaèeni
CTRL ali CTL) in META (vèasih oznaèena EDIT ali ALT). Namesto, da bi ju
@@ -1115,7 +1114,8 @@ Emacs. V sloven¹èino ga je prevedel Primo¾ Peterlin.
To besedilo, kot sam GNU Emacs, je avtorsko delo, in njegovo
razmno¾evanje in raz¹irjanje je dovoljeno pod naslednjimi pogoji:
-Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation
+Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Dovoljeno je izdelovati in raz¹irjati neokrnjene kopije tega spisa
v kakr¹nikoli obliki pod pogojem, da je ohranjena navedba o
diff --git a/etc/TUTORIAL.sv b/etc/TUTORIAL.sv
index e4a86cabad..65dff742ec 100644
--- a/etc/TUTORIAL.sv
+++ b/etc/TUTORIAL.sv
@@ -1,6 +1,4 @@
-Emacs användarhandledning. I slutet finns kopieringsvillkoren.
-Copyright (c) 1985, 1996, 1998, 2001, 2002, 2005 Free Software
-Foundation, Inc.
+Emacs användarhandledning. I slutet finns kopieringsvillkoren.
Emacs-kommandon innebär ofta användning av kontrolltangenten (vanligen
märkt CTRL eller CTL) eller META-tangenten (på vissa tangentbord märkt
@@ -310,9 +308,9 @@ texten. Tecken som du kan se, så som A, 7, *, etc. tolkas som text och
sätts in direkt. Skriv <Return> (retur-tangenten) för att sätta in en
radbrytning.
-Du kan radera det sista tecknet du skrev genom att trycka <Delback>.
+Du kan radera det sista tecknet du skrev genom att trycka <Delback>.
<Delback> är en tangent på tangentbordet -- samma som du normalt
-använder utanför Emacs för att ta bort det senaste tecknet du skrivit.
+använder utanför Emacs för att ta bort det senaste tecknet du skrivit.
Det är vanligen en stor tangent några rader ovanför retur-tangenten,
och den är vanligtvis märkt "Delete, "Del" eller "Backspace".
@@ -325,7 +323,7 @@ markörspositionen.
>> Gör detta nu: Skriv in några tecken och ta bort dem genom att
använda <Delback>. Var inte rädd för att skriva i den här filen,
- du kommer inte att kunna förändra originalet till vägledningen.
+ du kommer inte att kunna förändra originalet till vägledningen.
Detta är bara en lokal kopia.
När en rad blir för lång för att rymmas på en skärmbredd så fortsätter
@@ -408,7 +406,7 @@ raderar så många rader OCH innehållet i dem. Detta är alltså inte bara
en repetition av kommandot. C-u 2 C-k raderar två rader samt de tomma
raderna, medan C-k två gånger inte kommer att göra det.
-Att sätta in borttagen text kallas att "återhämta" den (yanking).
+Att sätta in borttagen text kallas att "återhämta" den (yanking).
(Tänk på det som att du rycker, eller drar, tillbaka någon text som
tagits bort.) Du kan antingen hämta tillbaka borttagen text till samma
plats som där den blev borttagen, eller så kan du sätta in den på en
@@ -593,7 +591,7 @@ Emacs-fönster så tillhör den alltid en buffert.
>> Skriv C-x 1 för att bli kvitt buffertlistan.
-När du har flera buffertar så är bara en av dem "gällande" åt gången.
+När du har flera buffertar så är bara en av dem "gällande" åt gången.
Det är den buffert du redigerar. Om du vill redigera en annan buffert
så måste du byta till den. Om du vill byta till en buffert som
motsvarar en fil kan du göra det genom att besöka den igen med C-x
@@ -615,7 +613,7 @@ skapades med C-x C-b. Bufferten "*Messages*" motsvarar inte heller
någon fil. Den innehåller de meddelanden som visas på den nedersta
raden i Emacs sessionen.
->> Skriv C-x b *Messages* <Return> för att se meddelandebufferten.
+>> Skriv C-x b *Messages* <Return> för att se meddelandebufferten.
Skriv sedan C-x b TUTORIAL.sv <Return> för att återgå till den här
handledningen.
@@ -979,7 +977,7 @@ Ibland kan du hamna i något som kallas "rekursiv redigering"
huvudläget i lägesraden. Till exempel kan det stå [(Fundamental)]
istället för (Fundamental).
-För att komma ur rekursiv redigering trycker du <ESC> <ESC> <ESC>.
+För att komma ur rekursiv redigering trycker du <ESC> <ESC> <ESC>.
Detta är ett generellt brytkommando. Du kan också använda det för att
bli kvitt extra fönster och för att komma ut ur minibufferten.
@@ -1099,7 +1097,7 @@ ett mail och klaga!
----------------
Du kan lära dig mer om Emacs genom att läsa dess manual, antingen i
-bokform eller on-line i Info (använd Hjälp-menyn eller skriv F10 h r).
+bokform eller on-line i Info (använd Hjälp-menyn eller skriv F10 h r).
Två finesser som du kan komma att gilla speciellt är komplettering
(completion), som spar tangenttryckningar, och dired, som förenklar
filhantering.
@@ -1128,7 +1126,8 @@ Lidell översatte den till Svenska.
This version of the tutorial, like GNU Emacs, is copyrighted, and
comes with permission to distribute copies on certain conditions:
-Copyright (c) 1985, 1996, 1998, 2001, 2002, 2005 Free Software Foundation
+Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Permission is granted to anyone to make or distribute verbatim copies
of this document as received, in any medium, provided that the
diff --git a/etc/TUTORIAL.th b/etc/TUTORIAL.th
index 86c03d31f3..5db33b3d47 100644
--- a/etc/TUTORIAL.th
+++ b/etc/TUTORIAL.th
@@ -970,7 +970,8 @@ starting with the one written by Stuart Cracraft for the original Emacs.
This version of the tutorial, like GNU Emacs, is copyrighted, and
comes with permission to distribute copies on certain conditions:
-Copyright (c) 1985, 1996 Free Software Foundation
+Copyright (C) 1985, 1996, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Permission is granted to anyone to make or distribute verbatim copies
of this document as received, in any medium, provided that the
diff --git a/etc/TUTORIAL.zh b/etc/TUTORIAL.zh
index 8411bf878f..1a1020a425 100644
--- a/etc/TUTORIAL.zh
+++ b/etc/TUTORIAL.zh
@@ -1,7 +1,6 @@
Emacs §Ö³t«ü«n¡].
-Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation.
-Emacs «ü¥O³q±`¥]§t¦³ CONTROL Áä¡]¦³®É­Ô¥H CTRL ©Î CTL ¨Ó¼Ð¥Ü¡^©Î¬O
+Emacs «ü¥O³q±`¥]§t¦³ CONTROL Áä¡]¦³®É­Ô¥H CTRL ©Î CTL ¨Ó¼Ð¥Ü¡^©Î¬O
META Áä¡]¦³®É­Ô¥H EDIT ©Î ALT ¨Ó¼Ð¥Ü¡^¡C¬°¤FÁקK¨C¤@¦¸³£­n¼g¥X¨ä¥þ¦W¡A
§Ú­Ì±N·|¨Ï¥Î¤U­zªºÁY¼g¡G
@@ -15,7 +14,7 @@ META Áä¡]¦³®É­Ô¥H EDIT ©Î ALT ¨Ó¼Ð¥Ü¡^¡C¬°¤FÁקK¨C¤@¦¸³£­n¼g¥X¨ä¥þ¦W¡A
­«­n³Æ§Ñ¿ý¡G­nÂ÷¶} Emacs §@·~¶¥¬q¡] session ¡^¡AÁä¤J C-x C-c ¡]¨â­Ó¦r
¤¸¡^¡C¦ì¦b¥ª°¼Ãä¬Éªº¡u>>¡v¦r¤¸¬OÅý±z¥i¥H¸ÕµÛ¨Ï¥Îªº«ü¥Oªº´£¥Ü¡CÁ|¨Ò¨Ó»¡¡G
<<Blank lines inserted around following line by help-with-tutorial>>
-[Middle of page left blank for didactic purposes. Text continues below]
+[Middle of page left blank for didactic purposes. Text continues below]
>> ²{¦bÁä¤J C-v ¡] View next screen ¡^¥H²¾¨ì¤U­Ó¿Ã¹õ¡C
¡]¸Õ¸Õ¬Ý¡AÁä¤J¦r¤¸ v ®É¡A«ö¦í CONTROL Áä¡^
±q²{¦b¶}©l¡A±zÀ³¸Ó¦b¨C¦¸¾\Ū§¹¥Ø«eªº¿Ã¹õ®É°µ¤@¦¸³o­Ó°Ê§@¡C
@@ -24,7 +23,7 @@ META Áä¡]¦³®É­Ô¥H EDIT ©Î ALT ¨Ó¼Ð¥Ü¡^¡C¬°¤FÁקK¨C¤@¦¸³£­n¼g¥X¨ä¥þ¦W¡A
´£¨Ñ¤@¨Ç³sÄò©Ê¡AÅý±z¥i¥H±µÄò¦a¾\Ū¤å¦r¡C
±z»Ý­nª¾¹Dªº²Ä¤@¥ó¨Æ¬O¦p¦ó¦b¤å¦r¤¤²¾°Ê¡C±z¤w¸gª¾¹D¤F¥i¥H C-v ¨Ó¦V«e²¾
-°Ê¤@­Ó¿Ã¹õ¡C­n¦V«á²¾°Ê¤@­Ó¿Ã¹õ¡A«hÁä¤J M-v ¡]«ö¦í META Áä¡AµM«áÁä¤J v
+°Ê¤@­Ó¿Ã¹õ¡C­n¦V«á²¾°Ê¤@­Ó¿Ã¹õ¡A«hÁä¤J M-v ¡]«ö¦í META Áä¡AµM«áÁä¤J v
¡A©Î¬O¦pªG±z¨S¦³ META ¡B EDIT ©Î ALT Áä®ÉÁä¤J <ESC>v ¡^¡C
>> ¸ÕµÛÁä¤J M-v µM«á C-v ¡A³sÄò­Ó´X¦¸¡C
@@ -74,7 +73,7 @@ META Áä¡]¦³®É­Ô¥H EDIT ©Î ALT ¨Ó¼Ð¥Ü¡^¡C¬°¤FÁקK¨C¤@¦¸³£­n¼g¥X¨ä¥þ¦W¡A
>> ¥H C-n ©Î C-p ±N´å¼Ð²¾¨ì¹Ï§Îªº¤¤¥¡¡C
Áä¤J C-l ·|¬Ý¨ì¾ã­Ó¹Ï§ÎÅã¥Ü¦b¿Ã¹õªº¤¤¥¡¡C
-±z·|µo²{¥Î¦r¥À©Ò¥Nªíªº·N¸q¨Ó°O¾Ð¥¦­Ì«Ü®e©ö¡GP ªí¥Ü previous ¡B N ªí¥Ü
+±z·|µo²{¥Î¦r¥À©Ò¥Nªíªº·N¸q¨Ó°O¾Ð¥¦­Ì«Ü®e©ö¡GP ªí¥Ü previous ¡B N ªí¥Ü
next ¡B B ªí¥Ü backward ¡B¦Ó F «hªí¥Ü forward ¡C±z±N¡uÁ`¬O¡v¥Î¨ì³o¨Ç´å
¼Ð²¾°Ê«ü¥O¡C
@@ -172,9 +171,9 @@ META ¦r¤¸¬O¥Î¨Ó§@¬°»P¡u¥H»y¨¥©w¸q¥Xªº³æ¦ì¡]¦r¡B¥y¤l¡B¬q¸¨¡^¡v¦³Ãöªº¾Þ
µM«á¦A­«½Æ¦a¨Ï¥Î M-v ¦^¨ì³o¸Ì¡C
¦pªG±zªº²×ºÝ¾÷¦³¤è¦VÁ䪺¸Ü¡A±z¤]¥i¥H¥Î¤è¦VÁä²¾°Ê´å¼Ð¡C§Ú­Ì¦³¤T­Ó²z¥Ñ«Ø
-ij±z¾Ç²ß C-b ¡B C-f ¡B C-n ¡B ©M C-p ¡G(1) ¥ô¦óªº²×ºÝ¾÷³£¯à¨Ï¥Î¡C(2)
+ij±z¾Ç²ß C-b ¡B C-f ¡B C-n ¡B ©M C-p ¡G(1) ¥ô¦óªº²×ºÝ¾÷³£¯à¨Ï¥Î¡C(2)
¤@¥¹±z¨Ï¥Î Emacs ¬Û·í¼ô½m¤F¡A±z·|µo²{Áä¤J³o¨Ç CONTROL ¦r¤¸¡A¤ñ°_¨Ï¥Î¤è
-¦VÁä§Ö¦h¤F¡]¦]¬°±z¤£»Ý­n±N¤â²¾¶}¥´¦r°Ï¡^¡C(3) ¤@¥¹±z¨Ï¥Î³o¨Ç CONTROL
+¦VÁä§Ö¦h¤F¡]¦]¬°±z¤£»Ý­n±N¤â²¾¶}¥´¦r°Ï¡^¡C(3) ¤@¥¹±z¨Ï¥Î³o¨Ç CONTROL
¦r¤¸«ü¥O¦¨¬°²ßºD¡A±z¤]¥i¥H«Ü®e©ö¦a¾Ç·|¨ä¥L¶i¶¥ªº´å¼Ð°Ê§@«ü¥O¡C
¤j³¡¥÷ªº Emacs «ü¥O±µ¨ü¼Æ¦r°Ñ¼Æ¡F¹ï¤j³¡¥÷ªº«ü¥O¦Ó¨¥¡A¥¦ªº§@¥Î¬O«ü©w­«
@@ -194,7 +193,7 @@ META ¦r¤¸¬O¥Î¨Ó§@¬°»P¡u¥H»y¨¥©w¸q¥Xªº³æ¦ì¡]¦r¡B¥y¤l¡B¬q¸¨¡^¡v¦³Ãöªº¾Þ
¥X²{¡A¦Ó¤£ºÞ¨ä­È¬°¦ó¡A¥¦­ÌÅý³o«ü¥O°µ¨Ç¤£¤@¼Ëªº¨Æ¡C
C-v ©M M-v «h¬O¥t¤@Ãþªº¨Ò¥~¡C·íµ¹©w¤@­Ó°Ñ¼Æ®É¡A¥¦­Ì±²°Ê¡u©Ò«ü©wªº¼Æ¶q
-ªº¦æ¡]¥H¦æ¬°³æ¦ì¡^¡v¡A¦Ó¤£¬O¥H¡u¿Ã¹õ¡v¬°³æ¦ì±²°Ê¡CÁ|¨Ò¨Ó»¡¡AC-u 8 C-v
+ªº¦æ¡]¥H¦æ¬°³æ¦ì¡^¡v¡A¦Ó¤£¬O¥H¡u¿Ã¹õ¡v¬°³æ¦ì±²°Ê¡CÁ|¨Ò¨Ó»¡¡AC-u 8 C-v
±NÅã¥Ü¿Ã¹õ±²°Ê 8 ¦æ¡C
>> ²{¦b¸ÕµÛÁä¤J C-u 8 C-v¡C
@@ -261,25 +260,25 @@ Emacs ¥i¥H¦³¼Æ­Óµ¡®æ¡A¨C¤@­ÓÅã¥Ü¥¦¦Û¤vªº¤å¦r¡C§Ú­Ì¦bµy«á·|¸ÑÄÀ¦p¦ó¨Ï¥Î
>> Áä¤J C-x 1 ¥H¨Ï¤å¥ó¦Cªíµ¡®æ®ø¥¢¡C
-³o­Ó«ü¥O¨Ã¤£¹³±z¥ý«e©Ò¾Ç¹Lªº«ü¥O¨º¯ë¡A¥¦¥]¬A¤F¨â­Ó¦r¤¸¡C¥¦¬O¥H¦r¤¸
+³o­Ó«ü¥O¨Ã¤£¹³±z¥ý«e©Ò¾Ç¹Lªº«ü¥O¨º¯ë¡A¥¦¥]¬A¤F¨â­Ó¦r¤¸¡C¥¦¬O¥H¦r¤¸
CONTROL-x §@¬°¶}©l¡C¦³¤@¾ã­Ó¨t¦Cªº«ü¥O¬O¥H CONTROL-x §@¬°¶}©l¡F¥¦­Ì¤§
-¤¤¦³³\¦h¬O»P¡uµ¡®æ¡BÀɮסB¼È¦s°Ï¥H¤Î¬ÛÃö¨Æª«¡v¦³Ãöªº¡C³o¨Ç«ü¥O¦³ 2 ¡B
+¤¤¦³³\¦h¬O»P¡uµ¡®æ¡BÀɮסB¼È¦s°Ï¥H¤Î¬ÛÃö¨Æª«¡v¦³Ãöªº¡C³o¨Ç«ü¥O¦³ 2 ¡B
3 ©Î 4 ­Ó¦r¤¸ªø¡C
* ´¡¤J»P§R°£¡] INSERTING AND DELETING ¡^
----------------------------------------
-¦pªG±z·Q­n´¡¤J¤å¦r¡A§â¥¦Áä¤J´N¬O¤F¡C±z¥i¥H¬Ý¨ìªº¦r¤¸¡A¹³¬O A ¡B 7 ¡B *
-µ¥¡A³Q Emacs µø¬°¤å¦r¨Ã¥B¥i¥Hª½±µ´¡¤J¡CÁä¤J <Return>
+¦pªG±z·Q­n´¡¤J¤å¦r¡A§â¥¦Áä¤J´N¬O¤F¡C±z¥i¥H¬Ý¨ìªº¦r¤¸¡A¹³¬O A ¡B 7 ¡B *
+µ¥¡A³Q Emacs µø¬°¤å¦r¨Ã¥B¥i¥Hª½±µ´¡¤J¡CÁä¤J <Return>
¡] carriage-return Áä¡^¥H´¡¤J¤@­Ó Newline ¦r¤¸¡C
-±z¥i¥HÁä¤J <Delback> ¥H§R°£±z³Ì«áÁä¤Jªº¦r¤¸¡C<Delback> ¬O¤@­ÓªºÁä½LÁä
+±z¥i¥HÁä¤J <Delback> ¥H§R°£±z³Ì«áÁä¤Jªº¦r¤¸¡C<Delback> ¬O¤@­ÓªºÁä½LÁä
-- ´N¬O±z³q±`¦b Emacs ¥~¡A¨Ï¥Î¨Ó¡u§R°£±z³Ì«áÁä¤J¦r¤¸¡vªº¦P¤@­Ó¡C¤@¯ë¨Ó
»¡¬O­Ó¦b <Return> ¤W¤è¼Æ¦æªº¤jÁä¡A³q±`¼Ð¥Ü¬°¡yDelete¡z¡B¡yDel¡z©Î
¡yBackspace¡z¡C
-¦pªG¦b¨º¸Ì¦³­Ó¼Ð¥Ü¬°¡yBackspace¡zªº¤jÁä¡A¨º»ò¨º¤@­Ó´N¬O±z¨Ï¥Î¨Ó§@¬°
+¦pªG¦b¨º¸Ì¦³­Ó¼Ð¥Ü¬°¡yBackspace¡zªº¤jÁä¡A¨º»ò¨º¤@­Ó´N¬O±z¨Ï¥Î¨Ó§@¬°
<Delback> ªºÁä¤F¡C¬Y­Ó¦a¤è¥i¯à¤]·|¦³¥t¤@­Ó¼Ð¥Ü¬°¡yDelete¡zªºÁä¡A¦ý¨º­Ó
¨Ã¤£¬O <Delback> ¡C
@@ -325,13 +324,13 @@ CONTROL-x §@¬°¶}©l¡C¦³¤@¾ã­Ó¨t¦Cªº«ü¥O¬O¥H CONTROL-x §@¬°¶}©l¡F¥¦­Ì¤§
C-k §R°£±q´å¼Ð©Ò¦b¨ì¡u¦æ§À¡v¶¡ªº¦r¤¸
M-k §R°£±q´å¼Ð©Ò¦b¨ì¡u¥y§À¡v¶¡ªº¦r¤¸
-ª`·N¡u<Delback> ©M C-d¡vÁÙ¦³¡uM-<Delback> ©M M-d¡v¬O¥­¦æ¦a¦Û C-f ©M
+ª`·N¡u<Delback> ©M C-d¡vÁÙ¦³¡uM-<Delback> ©M M-d¡v¬O¥­¦æ¦a¦Û C-f ©M
M-f ÂX¥R¥X¨Óªº¡]¶â¡A<Delback> ¨Ã¤£¬O±±¨î¦r¤¸¡A¦ý¬O¨S¤°»ò¦n¾á¤ßªº¡^¡C
C-k ©M M-k ¦b¬YºØµ{«×¤W»P C-e ©M M-e ¤@¼Ë¡A¦pªG§â¡u¤@¦æ¡v©M¡u¤@¥y¡v§@
¬°Ãþ¤ñªº¸Ü¡C
±z¤]¥i¥H¥u¥H¤@ºØ¤èªk¨Ó§R°£½w½Ä°Ï¤ºªº¥ô¦ó³¡¥÷¡A¥ý²¾°Ê¨ì±z·Q­n§R°£ªº³¡¥÷
-ªº¤@ºÝ¡AµM«áÁä¤J C-@ ©Î C-SPC ¡]¥ô¤@­Ó§Y¥i¡^¡C¡] SPC «üªº¬O Space Bar
+ªº¤@ºÝ¡AµM«áÁä¤J C-@ ©Î C-SPC ¡]¥ô¤@­Ó§Y¥i¡^¡C¡] SPC «üªº¬O Space Bar
¡^¦A²¾¨ì¨º³¡¥÷ªº¥t¤@ºÝ¡A±µµÛÁä¤J C-w ¡C³o¼Ë´N·|§â¤¶©ó³o¨â­Ó¦ì¸m¶¡ªº©Ò
¦³¤å¦r§R°£¡C
@@ -368,7 +367,7 @@ C-k ©M M-k ¦b¬YºØµ{«×¤W»P C-e ©M M-e ¤@¼Ë¡A¦pªG§â¡u¤@¦æ¡v©M¡u¤@¥y¡v§@
>> ¸Õ¸Õ¬Ý¡FÁä¤J C-y ±N¤å¦r©Ô¦^¡C
-¦pªG±z³sÄò¦a°µ¤F¼Æ¦¸ C-k¡A©Ò¦³³Q±þ±¼ªº¤å¦r³£·|³QÀx¦s¦b¤@°_¡A¦]¦¹°µ¤@¦¸
+¦pªG±z³sÄò¦a°µ¤F¼Æ¦¸ C-k¡A©Ò¦³³Q±þ±¼ªº¤å¦r³£·|³QÀx¦s¦b¤@°_¡A¦]¦¹°µ¤@¦¸
C-y ´N·|§â©Ò¦³³o¨Ç¦æ³£©Ô¦^¨Ó¡C
>> ²{¦b°µ¤@¤U¡AÁä¤J C-k ¼Æ¦¸¡C
@@ -401,7 +400,7 @@ C-y ·|§â³Ìªñ±þ±¼ªº©Ô¦^¨Ó¡A¦ý¬O¥ý«eªº¤å¦r¨Ã¨S¦³®ø¥¢¡A±z¥i¥H¥Î M-y ¨Ó¦^
¦pªG±z¹ï¤å¦r°µ¤F¤@¨Ç§ïÅÜ¡A«á¨Óı±o¥¦¬O­Ó¿ù»~¡A±z¥i¥H Undo «ü¥O¨ú®ø³o¤@
­Ó§ïÅÜ¡AC-x u¡C
-³q±` C-x u ·|§â¤@­Ó«ü¥O©Ò³y¦¨ªº§ïÅܨú®ø±¼¡F¦pªG±z¦b¤@¦æ¤¤­«½Æ¤F³\¦h¦¸
+³q±` C-x u ·|§â¤@­Ó«ü¥O©Ò³y¦¨ªº§ïÅܨú®ø±¼¡F¦pªG±z¦b¤@¦æ¤¤­«½Æ¤F³\¦h¦¸
C-x u¡A¨C¤@­Ó­«½Æ³£·|¨ú®øÃB¥~ªº«ü¥O¡C
¦ý¬O¦³¨â­Ó¨Ò¥~¡G
@@ -422,12 +421,12 @@ C-_ ¬O¥t¤@­Ó¨ú®ø«ü¥O¡F¥¦ªº§@¥Î´N©M C-x u ¤@¼Ë¡A¦ý¬O¦b¤@¦æ¤¤¥¦¤ñ¸û®e©ö
* Àɮס] FILE ¡^
----------------
-¬°¤F¨Ï±z½s¿èªº¤å¦r¥Ã¤[«O¦s¡A±z¥²¶·§â¥¦©ñ¨ì¤@­ÓÀɮפ¤¡C¤£µM¡A·í±zÂ÷¶}
+¬°¤F¨Ï±z½s¿èªº¤å¦r¥Ã¤[«O¦s¡A±z¥²¶·§â¥¦©ñ¨ì¤@­ÓÀɮפ¤¡C¤£µM¡A·í±zÂ÷¶}
Emacs «á¡A¥¦´N·|ÀH¤§®ø¥¢¡C¬°¤F§â±zªº¤å¦r©ñ¦bÀɮפ¤¡A±z¥²¶·¦b±zÁä¤J³o¨Ç
¤å¦r«e¡u§ä¡] find ¡^¡vÀɮסC¡]³o¤]ºÙ¤§¬°¡u«ô³X¡] visiting ¡^¡vÀɮס^
§ä¤@­ÓÀɮתí¥Ü±z¥i¥H¦b Emacs ¤¤¬Ý¨ìÀɮתº¤º®e¡C±q³\¦h¤è­±¨Ó¬Ý¡A¥¦´N¹³
-¬O±zª½±µ½s¿è¨º­ÓÀɮפ@¼Ë¡CµM¦Ó¡Aª½¨ì±z¡uÀx¦s¡v³o­ÓÀɮפ§«e¡A±z¨Ï¥Î
+¬O±zª½±µ½s¿è¨º­ÓÀɮפ@¼Ë¡CµM¦Ó¡Aª½¨ì±z¡uÀx¦s¡v³o­ÓÀɮפ§«e¡A±z¨Ï¥Î
Emacs ½s¿è©Ò°µ¥Xªº§ïÅܨ䣷|«O¦s¤U¨Ó¡C³o´N¬O¬°¤°»ò·í±z¤£·Q­n®É¡A±z¥i¥H
ÁקK¯d¤U­×§ï¨ì¤@¥bªºÀɮצb¨t²Î¤¤¡C§Y¨Ï·í±zÀx¦s¤F¡AEmacs ¤]·|§â­ì¥»ªºÀÉ
®×¥H¤@­Ó¤£¦Pªº¦WºÙ«O¯d¤U¨Ó¡A­Y±zµy«áı±o±zªº§ïÅܬO¤@­Ó¿ù»~ªº¸Ü¡A´N¥i¥H
@@ -446,7 +445,7 @@ TUTORIAL.zh¡v©Î¨ä¥LÃþ¦üªºªF¦è§@¬°¶}©l¡C³o¬O¿Ã¹õªº¤@³¡¤À¡A³q±`¥Î¨Óªí¥Ü
C-x C-f §ä¤@­ÓÀÉ®×
Emacs ·|­n±zÁä¤JÀɦW¡C±z©ÒÁä¤JªºÀɦW·|¥X²{¦b¿Ã¹õªº©³¦æ¡C¦b³Q¥Î¨Ó§@¬°³o
-ºØ§Î¦¡ªº¿é¤J®É¡A©³¦æ³QºÙ¬°¤p½w½Ä°Ï¡] minibuffer ¡^¡C±z¥i¥H¨Ï¥Î¥¿±`ªº
+ºØ§Î¦¡ªº¿é¤J®É¡A©³¦æ³QºÙ¬°¤p½w½Ä°Ï¡] minibuffer ¡^¡C±z¥i¥H¨Ï¥Î¥¿±`ªº
Emacs ½s¿è«ü¥O¨Ó½s¿è³o­ÓÀɦW¡C
·í±z¥¿¦bÁä¤JÀɦW®É¡]©Î¬O¥ô¦óªº¤p½w½Ä°Ï¿é¤J®É¡^¡A±z¥i¥H¥Î C-g ³o­Ó«ü¥O
@@ -477,7 +476,7 @@ Emacs ½s¿è«ü¥O¨Ó½s¿è³o­ÓÀɦW¡C
ª`·N¡G¦b¬Y¨Ç¨t²Î¤¤¡AÁä¤J C-x C-s ±N·|§â¿Ã¹õ­áµ²¡A±z±N¬Ý¤£¨ì±q Emacs ¨Ó
ªº¥ô¦ó¿é¥X¡C³oªí¥Ü§@·~¨t²Î¤@­ÓºÙ¬°¡u¬yµ{±±¨î¡vªº¡u¥\¯à¡v±N C-s «ü¥OÄd
-ºI¦í¡A¨Ã¥B¤£Åý¥¦¶Ç¨ì Emacs¡C­n¨ú®ø¿Ã¹õªº­áµ²¡A½ÐÁä¤J C-q¡CµM«á¨ì Emacs
+ºI¦í¡A¨Ã¥B¤£Åý¥¦¶Ç¨ì Emacs¡C­n¨ú®ø¿Ã¹õªº­áµ²¡A½ÐÁä¤J C-q¡CµM«á¨ì Emacs
¨Ï¥Î¤â¥U¤¤¬Ý¬Ý¹ï©ó¡uº¥¶i¦¡·j´Mªº¦P®É¶i¤J¡] Spontaneous Entry to
Incremental Search ¡^¡v³o­Ó¥DÃD¡A¥H¨ú±o³B²z³o­Ó¡u¥\¯à¡vªº«Øij¡C
@@ -528,7 +527,7 @@ Emacs Àx¦s¨C­ÓÀɮתº¤å¦r¦b¤@­ÓºÙ¬°¡u½w½Ä°Ï¡] buffer ¡^¡vªºª«¥ó¤¤¡C§ä¤@
±z¦b¤@­Ó Emacs µ¡®æ¤¤©Ò¨£¨ìªº¡u¥ô¦ó¡v¤å¦rÁ`¬O¬Y­Ó½w½Ä°Ïªº¤@³¡¥÷¡C¦³¤@
¨Ç½w½Ä°Ï¨Ã¨S¦³³s±µ¨ìÀɮסCÁ|¨Ò¨Ó»¡¡A©R¦W¬°¡u*Buffer List*¡vªº½w½Ä°Ï¨Ã
¨S¦³¥ô¦óÀɮסC¥¦¬O¥]§t¦³±z¥H C-x C-b «ü¥O©Ò»s§@¥X¨Óªº½w½Ä°Ï¦Cªíªº½w½Ä
-°Ï¡C©R¦W¬°¡u*Messages*¡vªº½w½Ä°Ï¤]¨S¦³³s±µ¨ì¥ô¦óÀɮסF¥¦¦b±zªº Emacs
+°Ï¡C©R¦W¬°¡u*Messages*¡vªº½w½Ä°Ï¤]¨S¦³³s±µ¨ì¥ô¦óÀɮסF¥¦¦b±zªº Emacs
§@·~¶¥¬q¤¤¥]§t¥X²{¦b©³¦æªº°T®§¡C
>> Áä¤J C-x b *Messages* <Return> ¨Ó¬Ý¬Ý°T®§ªº½w½Ä°Ï¡C
@@ -593,10 +592,10 @@ C-z ¬O *¼È®É* Â÷¶} Emacs ªº«ü¥O -- ¦]¦¹±zµy«á¥i¥H¦^¨ì¦P¼Ëªº Emacs ¶¥¬q¡C
¥HÂX¥R¨Ó©R¦Wªº«ü¥O³q±`¬O¤£¤Ó±`¨Ï¥Îªº«ü¥O¡A©Î¬O¥u¦b¯S©wªº¼Ò¦¡¤U¤~·|¨Ï¥Î
ªº«ü¥O¡C¤@­Ó¨Ò¤l¬O¨ú¥N¦r¦ê«ü¥O¡A¥¦·|¥þ°ì¦a±N¤@­Ó¦r¦ê¥H¥t¤@­Ó¨Ó¨ú¥N¡C·í
±zÁä¤J M-x ®É¡AEmacs ·|¦b¿Ã¹õªº©³ºÝ¸ß°Ý±z¡AµM«á±z¤]À³¸ÓÁä¤J³o­Ó«ü¥Oªº
-¦WºÙ¡C¦b³o­Ó¨Ò¤l¤¤¬O¡yreplace-string¡z¥u­nÁä¤J¡yrepl s<TAB>¡z¡AµM«á
+¦WºÙ¡C¦b³o­Ó¨Ò¤l¤¤¬O¡yreplace-string¡z¥u­nÁä¤J¡yrepl s<TAB>¡z¡AµM«á
Emacs ±N·|¸É»ô³o­Ó¦WºÙ¡C¥H <Return> ¨Óµ²§ô³o­Ó«ü¥O¦WºÙ¡C
-¨ú¥N¦r¦ê«ü¥O»Ý­n¨â­Ó°Ñ¼Æ -- ³Q¨ú¥Nªº¦r¦ê¥H¤Î¥Î¨Ó¨ú¥N¥¦ªº¦r¦ê¡C±z¥²¶·¥H
+¨ú¥N¦r¦ê«ü¥O»Ý­n¨â­Ó°Ñ¼Æ -- ³Q¨ú¥Nªº¦r¦ê¥H¤Î¥Î¨Ó¨ú¥N¥¦ªº¦r¦ê¡C±z¥²¶·¥H
Newline ¦r¤¸¨Óµ²§ô¨C¤@­Ó°Ñ¼Æ¡C
>> ±N´å¼Ð²¾¨ì¥»¦æªº¤U¨â¦æªÅ¥Õ¡AµM«áÁä¤J
@@ -605,7 +604,7 @@ Newline ¦r¤¸¨Óµ²§ô¨C¤@­Ó°Ñ¼Æ¡C
¡i¬°¤F»¡©úªº¥Øªº¡A©ó¤U«O¯d¤@¦æ­ì¤å¡C
Notice how this line has changed: you've replaced... ¡j
-½Ðª`·N³o¤@¦æ¬O«ç»ò§ïÅܪº¡G¦b´å¼Ðªº°_©l¦ì¸m¤§«á¡A±z¤w¸g±N c-h-a-n-g-e-d
+½Ðª`·N³o¤@¦æ¬O«ç»ò§ïÅܪº¡G¦b´å¼Ðªº°_©l¦ì¸m¤§«á¡A±z¤w¸g±N c-h-a-n-g-e-d
³o­Ó¦r -- ¤£ºÞ¥¦¦b­þ¸Ì¥X²{ -- ¥H¡ualtered¡v³o­Ó¦r¨Ó¨ú¥N¤F¡C
@@ -665,7 +664,7 @@ Emacs ¦³³\¦h¤£¦Pªº¥D¼Ò¦¡¡C¥¦­Ì¤§¤¤¦³¤@¨Ç¬O¥Î¨Ó½s¿è¤£¦Pªº»y¨¥¥H¤Î¡þ©Î¤£
¤@­Ó¥D¼Ò¦¡¬O¤@­Ó©µ¦ù«ü¥Oªº¦WºÙ¡A¨Ï±o±z¥i¥H¥Î¨Ó¤Á´«¦Ü¨º­Ó¼Ò¦¡¡CÁ|¨Ò¨Ó»¡¡A
M-x fundamental-mode ´N¬O¤Á´«¨ì Fundamental ¼Ò¦¡ªº¤@­Ó«ü¥O¡C
-¦pªG±z·Q­n½s¿è¤HÃþ»y¨¥ªº¤å¦rÀÉ®× -- ¹³¬O²{¦bªº³o¤@­Ó¡A±zÀ³¸Ó¨Ï¥Î Text
+¦pªG±z·Q­n½s¿è¤HÃþ»y¨¥ªº¤å¦rÀÉ®× -- ¹³¬O²{¦bªº³o¤@­Ó¡A±zÀ³¸Ó¨Ï¥Î Text
¼Ò¦¡¡C
>> Áä¤J M-x text mode<Return>¡C
@@ -679,7 +678,7 @@ M-x fundamental-mode ´N¬O¤Á´«¨ì Fundamental ¼Ò¦¡ªº¤@­Ó«ü¥O¡C
¤l¡A±µÄò¤W­±©Ò¶}ªºÀY¡A¥Hµ{¦¡»y¨¥ªºµù¸Ñ¨Ó»¡¡C¦P¼Ë¤@­Ó´¡¤Jµù¸Ñªº°Ê§@¡A¦]
¬°±z¨Ï¥Îªºµ{¦¡»y¨¥¡þ¥D¼Ò¦¡ªº¤£¦P¦Ó¤£¦P¡C­Y±z¨Ï¥Î C »y¨¥¡AEmacs ´¡¤J
¡y/* ¤¶©ó¤¤¶¡ªº¬°µù¸Ñ°Ï¶ô */¡z¡F­Y±z¨Ï¥Îªº¬O Fortran »y¨¥¡AEmacs ´¡¤J
-¡yc ¥H¦r¤¸ c ¬°­ºªº¬°µù¸Ñ¦æ¡z¡F­Y±z¨Ï¥Îªº¬O Basic »y¨¥¡AEmacs «h´¡¤J¡y'
+¡yc ¥H¦r¤¸ c ¬°­ºªº¬°µù¸Ñ¦æ¡z¡F­Y±z¨Ï¥Îªº¬O Basic »y¨¥¡AEmacs «h´¡¤J¡y'
ºJ¸¹¥H«áªº¬°µù¸Ñ¤å¦r¡z¡C½s¿è¾¹ªº¼u©Ê¦p¦¹¡A¹ê¦b¨S¦³¥²­n¬°¤F¤£¦Pªº»y¨¥¡B
¥Øªº©Î¥~Æ[¡A³]­p¯S®í¤Æªº½s¿è¾¹¡C¡u¨D¤j¦P¡A¦s¤p²§¡v¦b³o¸Ì¤]¬O¦¨¥ßªº¡C¡j
@@ -714,7 +713,7 @@ mode ¡^¡C¦¸­nªº¼Ò¦¡¨Ã¤£¬O¥D¼Ò¦¡ªº¨ä¥L¿ï¾Ü¡A¦Ó¥u¬O¦¸­nªº§ó§ï¡C¨C¤@­Ó¦¸
µM«áÁä¤J¤@¨Ç¤å¦r¡A¬Ý¬Ý Emacs ¥H 20 ­Ó¦r¤¸¡A
¦b¦æ»P¦æ¤§¶¡¶i¦æ fill °Ê§@¡CµM«á¦A¥Î¤@¦¸ C-x f ±NÃä¬É³]¦^ 70¡C
-¦pªG±z¦b¤@­Ó¬q¸¨ªº¤¤¶¡°µ¥X§ïÅÜ¡AAuto Fill ¼Ò¦¡¨Ã¤£·|¬°±z­«·s¶i¦æ fill
+¦pªG±z¦b¤@­Ó¬q¸¨ªº¤¤¶¡°µ¥X§ïÅÜ¡AAuto Fill ¼Ò¦¡¨Ã¤£·|¬°±z­«·s¶i¦æ fill
ªº°Ê§@¡] re-fill ¡^¡C­n re-fill ³o­Ó¬q¸¨¡AÁä¤J M-q (META-q)¡A¦Ó´å¼Ð¥²
¶·³B¦b¨ä¤¤¡C
@@ -747,7 +746,7 @@ Emacs ·j´M«ü¥O»P¤j³¡¤À½s¿è¾¹ªº·j´M«ü¥O¤£¦Pªº¦a¤è¦b©ó¡A¥¦¬O¡uº¥¶iªº
>> Áä¤J <Return> µ²§ô·j´M¡C
±z¦³¨S¦³¬Ý¨ìµo¥Í¤F¤°»ò¡H¦b¤@­Óº¥¶i¦¡·j´M¤¤¡AEmacs ¸ÕµÛ­n¨«¨ì±zÁä¤Jªº¦r
-¦êªº¤U¤@­Ó¥X²{¦ì¸m¡C­n²¾°Ê¨ì´å¼Ð©Ò¦bªº¤U¤@­Ó¥X²{¦ì¸m¡A¥u­n¦AÁä¤J C-s
+¦êªº¤U¤@­Ó¥X²{¦ì¸m¡C­n²¾°Ê¨ì´å¼Ð©Ò¦bªº¤U¤@­Ó¥X²{¦ì¸m¡A¥u­n¦AÁä¤J C-s
¤@¦¸¡C¦pªG¨Ã¨S¦³³o¼Ëªº¥X²{¦ì¸m¦s¦b¡AEmacs ·|¹Í¤@Án¡A¨Ã§i¶D±z¥Ø«eªº·j´M
¡u¥¢±Ñ¡v¡C¥t¥~ C-g ¤]¥i¥H¥Î¨Óµ²§ô·j´M¡C
@@ -799,7 +798,7 @@ Emacs ³\¦h¦n¥\¯àªº¨ä¤¤¤§¤@¬O¡A±z¥i¥H¦b¿Ã¹õ¤¤¦P®É®i¥Ü¶W¹L¤@­Óµ¡®æ¡C
«ü¥O C-M-v ¦b·í±z©ó¤@­Óµ¡®æ¤¤½s¿è¤å¦r¡A¨Ã¨Ï¥Î¨ä¥Lªºµ¡®æ§@¬°°Ñ¦Ò¤§¥Î®É¡A
¬O«D±`¦³¥Îªº¡C±z¥i¥H±N´å¼Ð¤@ª½«O«ù¦b±z¥¿¦b½s¿èªºµ¡®æ¤¤¡A¨Ã¥H C-M-v «ü
-¥O¦b¨ä¥Lªºµ¡®æ´`§Ç¦a«e¶i¡C¡iÅçÃÒ¤u§@¯S§O¾A¦X¥H³oºØ¤è¦¡¨Ó¶i¦æ¡A¦p GNU
+¥O¦b¨ä¥Lªºµ¡®æ´`§Ç¦a«e¶i¡C¡iÅçÃÒ¤u§@¯S§O¾A¦X¥H³oºØ¤è¦¡¨Ó¶i¦æ¡A¦p GNU
¤¤Ä¶¤p²Õ¡G§ä¤@­Ó­ì©l­^¤åÀɮסF¦A§ä¥¦Â½Ä¶¦nªº¤¤¤åÀɮסA½s¿è³o­Ó¡u³Q¿ï¾Ü
ªºµ¡®æ¡v¡A¥H C-M-v «ü¥O¸ò¤WÅçÃÒ¤¤ªº¬q¸¨¡K¡K¡C¡j
@@ -833,7 +832,7 @@ C-M-v ¬O CONTROL-META ¦r¤¸ªº¤@­Ó¨Ò¤l¡C¦pªG±z¦³¤@­Ó¯uªº META Áä¡A±z¥i¥H
--------------------------------------------
¦³®É­Ô±z·|¶i¤J©Ò¿×ªº¡u»¼°j½s¿è¶¥¼h¡v¡C¥¦¬O¥Ñ¦ì¦bª¬ºA¦æªº¤è¬A©·©Ò«ü©ú¡A
-¨Ã¥B¥]§t¦í¥H¤p¬A©·¨Ó«ü©úªº¼Ò¦¡¦WºÙ¡CÁ|¨Ò¨Ó»¡¡A±z¥i¯à·|¬Ý¨ì
+¨Ã¥B¥]§t¦í¥H¤p¬A©·¨Ó«ü©úªº¼Ò¦¡¦WºÙ¡CÁ|¨Ò¨Ó»¡¡A±z¥i¯à·|¬Ý¨ì
[(Fundamental)]¡A¦Ó¤£¬O (Fundamental)¡C
­nÂ÷¶}»¼°j½s¿è¶¥¼h¡A½ÐÁä¤J ESC ESC ESC¡C³o¬O­Ó¥þ¥\¯àªº¡uÂ÷¶}¡v«ü¥O¡C±z
@@ -848,7 +847,7 @@ C-M-v ¬O CONTROL-META ¦r¤¸ªº¤@­Ó¨Ò¤l¡C¦pªG±z¦³¤@­Ó¯uªº META Áä¡A±z¥i¥H
* ¨ú±o§ó¦hªºÀ°§U¡] GETTING MORE HELP ¡^
---------------------------------------
-¦b¥»§Ö³t«ü«n¤¤¡A§Ú­Ì¸ÕµÛ¶È´£¨Ñ­è­è¦nªº¸ê°TÅý±z¥i¥H¶}©l¨Ï¥Î Emacs¡C¦b
+¦b¥»§Ö³t«ü«n¤¤¡A§Ú­Ì¸ÕµÛ¶È´£¨Ñ­è­è¦nªº¸ê°TÅý±z¥i¥H¶}©l¨Ï¥Î Emacs¡C¦b
Emacs ¤¤¦³¤Ó¦h¥i¨ú±oªº¸ê°T¡A·Q­n¦b³o¸Ì¥þ³¡¸ÑÄÀ¬O¤£¥i¯àªº¡CµM¦Ó¡A±z¤]³\
·|·Q­n¾Ç²ß§ó¦h Emacs ¬ÛÃöªº¸ê°T¡A¦]¬°¥¦¦³³\¦h¨ä¥L¦³¥Îªº¥\¯à¡CEmacs ´£
¨Ñ¤F¡u¾\Ū¦³Ãö Emacs «ü¥O¡vªº«ü¥O¡C³o¨Ç¡uhelp¡v«ü¥O³£¥H CONTROL-h ³o­Ó
@@ -856,7 +855,7 @@ Emacs ¤¤¦³¤Ó¦h¥i¨ú±oªº¸ê°T¡A·Q­n¦b³o¸Ì¥þ³¡¸ÑÄÀ¬O¤£¥i¯àªº¡CµM¦Ó¡A±z¤]³\
­n¨Ï¥Î Help ¥\¯à¡AÁä¤J C-h ¦r¤¸¡AµM«á¦AÁä¤J¤@­Ó»¡©ú±z©Ò»Ý­nªºÀ°§Uªº¦r
¤¸¡C¦pªG±z¯uªº¤£ª¾¹D­n°Ý¤°»ò¡A¨º»ò½ÐÁä¤J¡yC-h ?¡z¡A¦¹®É Emacs ±N·|§i¶D
-±z¥¦¯à°÷´£¨ÑªºÀ°§U¡C¦pªG±z¤w¸gÁä¤J C-h¡A¦ýµo²{±z¨Ã¤£»Ý­n¥ô¦óÀ°§U¡AÁä¤J
+±z¥¦¯à°÷´£¨ÑªºÀ°§U¡C¦pªG±z¤w¸gÁä¤J C-h¡A¦ýµo²{±z¨Ã¤£»Ý­n¥ô¦óÀ°§U¡AÁä¤J
C-g ¨Ó¨ú®ø±¼¥¦´N¬O¤F¡C
¡]¦³¨Çºô¯¸±N C-h ³o­Ó¦r¤¸ªº·N¸q§ïÅܤF¡C¥L­Ì¯uªº¤£À³¸Ó§â¥¦³]¬°¹ï©Ò¦³¨Ï
@@ -864,7 +863,7 @@ C-g ¨Ó¨ú®ø±¼¥¦´N¬O¤F¡C
®É¡A¦pªG C-h ¨Ã¨S¦³¦bµ¡®æªº©³³¡Åã¥Ü¥ô¦ó¦³ÃöÀ°§Uªº°T®§¡A¸ÕµÛÁä¤J F1 Áä¡A
©Î¬O M-x help <Return>¡C¡^
-³Ì°ò¥»ªº HELP ¥\¯à¬O C-h c¡CÁä¤J C-h¡A¦r¤¸ c¡A¥H¤Î¤@­Ó©Î¤@¦ê¦r¤¸¡FµM«á
+³Ì°ò¥»ªº HELP ¥\¯à¬O C-h c¡CÁä¤J C-h¡A¦r¤¸ c¡A¥H¤Î¤@­Ó©Î¤@¦ê¦r¤¸¡FµM«á
Emacs ·|Åã¥Ü¤@­Ó«D±`²µuªº¦³Ãö³o­Ó«ü¥Oªº¸ÑÄÀ¡C
>> Áä¤J C-h c C-p¡C
@@ -877,7 +876,7 @@ Emacs ·|Åã¥Ü¤@­Ó«D±`²µuªº¦³Ãö³o­Ó«ü¥Oªº¸ÑÄÀ¡C
©ó¨ç¼Æ¦WºÙ¬O¥Ñ¡u¥Î¨Ó«ü¥X³o«ü¥O¦b°µ¨Ç¤°»ò¡v¦Ó³Q¿ï©w¡A¥¦­Ì¦]¦¹¤]¥i¥H§@¬°
«D±`²µuªº¤å¥ó -- ¨¬°÷´£¿ô±z¤w¸g¾Ç¹Lªº«ü¥O¡C
-¦h¦r¤¸«ü¥O¹³¬O C-x C-s ©M ¡]¦pªG±z¨S¦³ META ©Î EDIT ©Î ALT Áä¡^<ESC>v
+¦h¦r¤¸«ü¥O¹³¬O C-x C-s ©M ¡]¦pªG±z¨S¦³ META ©Î EDIT ©Î ALT Áä¡^<ESC>v
¤]¥i¥H¦b C-h c «á­±¥X²{¡C
­n¨ú±o§ó¦h¦³Ãö¤@­Ó«ü¥Oªº¸ê°T¡A¥Î C-h k ¨Ó¨ú¥N¨Ï¥Î C-h c ¡C
@@ -933,13 +932,13 @@ find-file ¡^ªº®ÇÃä¡C
¥i¯à·|¯S§O³ßÅwªº¥\¯à¯S¦â¬O¥i¥H¸`¬Ù¥´¦r¶qªº completion ÁÙ¦³Â²¤ÆÀɮ׳B²z
ªº dired ¡C
-Completion ¬O¤@ºØÁקK¤£¥²­nªº¥´¦rªº¤è¦¡¡CÁ|¨Ò¨Ó»¡¡A¦pªG±z·Q­n¤Á´«
+Completion ¬O¤@ºØÁקK¤£¥²­nªº¥´¦rªº¤è¦¡¡CÁ|¨Ò¨Ó»¡¡A¦pªG±z·Q­n¤Á´«
*Messages* ½w½Ä°Ï¡A±z¥i¥HÁä¤J C-x b *M<Tab> ¡A¥u­n¥i¥H±q±z¤w¸gÁä¤Jªº¤å
¦r¤¤½T©w¡A Emacs ´N·|±N³Ñ¤Uªº½w½Ä°Ï¦WºÙ¸É»ô¡C Completion ¬O¦b Emacs ¨Ï
¥Î¤â¥Uªº Info ¤¤¡AºÙ¬°¡uCompletion¡vªº¸`ÂI¤¤©Ò¸ÑÄÀªº¡C
Dired ¨Ï±z¥i¥H¦b¤@­Ó¥Ø¿ý¤¤¦C¥XÀɮס]¦¸¥Ø¿ý«h¬O¥i¿ïªº¡^¡B¦b¦Cªí¤¤¨ì³B²¾
-°Ê¡B«ô³X¡B­«·s©R¦W¡B§R°£¥H¤Î¹ïÀɮק@¾Þ§@¡C Dired ¬O¦b Emacs ¨Ï¥Î¤â¥Uªº
+°Ê¡B«ô³X¡B­«·s©R¦W¡B§R°£¥H¤Î¹ïÀɮק@¾Þ§@¡C Dired ¬O¦b Emacs ¨Ï¥Î¤â¥Uªº
Info ¤¤¡AºÙ¬°¡uDired¡vªº¸`ÂI¤¤©Ò¸ÑÄÀªº¡C
¨Ï¥Î¤â¥U¤]¸ÑÄÀ¤F³\¦h¨ä¥¦ Emacs ªº¥\¯à¯S¦â¡C
@@ -948,7 +947,7 @@ Info ¤¤¡AºÙ¬°¡uDired¡vªº¸`ÂI¤¤©Ò¸ÑÄÀªº¡C
* µ²½×¡] CONCLUSION ¡^
----------------------
-°O¦í¡A­n§¹¥þÂ÷¶} Emacs ½Ð¨Ï¥Î C-x C-c ¡C­n¼È®ÉÂ÷¶}¨ì shell¡Aµy«á¦A¦^¨ì
+°O¦í¡A­n§¹¥þÂ÷¶} Emacs ½Ð¨Ï¥Î C-x C-c ¡C­n¼È®ÉÂ÷¶}¨ì shell¡Aµy«á¦A¦^¨ì
Emacs¡A½Ð¨Ï¥Î C-z ¡C
¥»§Ö³t«ü«n¹ï©ó©Ò¦³ªº·s¤âÀ³¸Ó³£¬O©ö©ó²z¸Ñªº¡A©Ò¥H¦pªG±zµo²{¤F¤°»ò¦a¤è¤£
@@ -958,9 +957,9 @@ Emacs¡A½Ð¨Ï¥Î C-z ¡C
* ½Ķ¡] TRANSLATION ¡^
-----------------------
-¥»§Ö³t«ü«nªºÂ½Ä¶¤H­û¦Cªí¦p¤U¡A¦pªG±z¦b¾\Ū¥»¤å¤§«e¡A¡u§¹¥þ¡v¹ï Emacs
+¥»§Ö³t«ü«nªºÂ½Ä¶¤H­û¦Cªí¦p¤U¡A¦pªG±z¦b¾\Ū¥»¤å¤§«e¡A¡u§¹¥þ¡v¹ï Emacs
¨S¦³·§©À¡A½Ð§i¶D§Ú­Ì±zªº·N¨£¥H§@¬°¥»¤å«áÄòªº§ï¶i¨Ì¾Ú¡C½Ķ¤]´£¨Ñ¤F¤@¥÷
-¡mGNU Emacs ¤¤¤å³B²z»¡©ú¡n¦b
+¡mGNU Emacs ¤¤¤å³B²z»¡©ú¡n¦b
http://www.gnu.org/software/chinese/guide/emacs-chinese.zh.html ¡q³¡¥÷
¤º®e¤w¸g¾ã²z¨ì¥»§Ö³t«ü«n¡r¡A¤]½Ð±z¦Û¦æ°Ñ¾\¡C
@@ -1050,7 +1049,8 @@ issue here>¡v¡C
³o­Óª©¥»ªº§Ö³t«ü«n©M GNU Emacs ¤@¼Ë³£¬Oª©Åv¤Æªº¡A¨Ã¥B¤¹³\¦b¬Y¨Ç±ø¥ó¤U
´²§G¨ä«þ¨©¡G
-Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation
+Copyright (C) 1985, 1996, 1998, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Chinese Translation by Chao-Hong Liu (2002, 2003)
Permission is granted to anyone to make or distribute verbatim copies
diff --git a/etc/calccard.tex b/etc/calccard.tex
index 7dec45450f..41c3b3bad4 100644
--- a/etc/calccard.tex
+++ b/etc/calccard.tex
@@ -13,7 +13,8 @@
% Typical command to format: tex calccard.tex
% Typical command to print (3 cols): dvips -t landscape calccard.dvi
-% Copyright (c) 1987, 1992, 2001 Free Software Foundation, Inc.
+% Copyright (C) 1987, 1992, 2001, 2002, 2003, 2004,
+% 2005 Free Software Foundation, Inc.
% This file is part of GNU Emacs.
@@ -60,7 +61,7 @@
\def\versionnumber{2.03}
\def\versiondate{November 2001}
-\def\year{2001}
+\def\year{2005}
\def\version{v\versionnumber}
\def\shortcopyrightnotice{\vskip 1ex plus 2 fill
diff --git a/etc/compilation.txt b/etc/compilation.txt
index 42e62af9df..72ff5ac531 100644
--- a/etc/compilation.txt
+++ b/etc/compilation.txt
@@ -394,3 +394,10 @@ checking FONTCONFIG_CFLAGS...
g++ -o foo.o foo.cc
tool1 -output=foo foo.x
tool2 --outfile foo foo.y
+
+Compilation started at Wed Jul 20 12:20:10
+Compilation interrupt at Wed Jul 20 12:20:10
+Compilation killed at Wed Jul 20 12:20:10
+Compilation terminated at Wed Jul 20 12:20:10
+Compilation exited abnormally with code 1 at Wed Jul 20 12:21:12
+Compilation finished at Thu Jul 21 15:02:15
diff --git a/etc/cs-dired-ref.tex b/etc/cs-dired-ref.tex
index b19ff2bdfc..12e3c01c87 100644
--- a/etc/cs-dired-ref.tex
+++ b/etc/cs-dired-ref.tex
@@ -1,5 +1,5 @@
% Reference Card for Dired
-% Copyright (C) 2000 Free Software Foundation, Inc.
+% Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
% Czech hyphenation rules applied
\chyph
@@ -47,7 +47,7 @@
% e.g. in the TeX Live CD).
\def\versionnumber{0.1}
-\def\year{2000}
+\def\year{2005}
\def\version{May \year\ v\versionnumber}
\def\shortcopyrightnotice{\vskip 1ex plus 2 fill
diff --git a/etc/cs-refcard.tex b/etc/cs-refcard.tex
index 43e4e38612..1164817a14 100644
--- a/etc/cs-refcard.tex
+++ b/etc/cs-refcard.tex
@@ -11,7 +11,8 @@
\columnsperpage=1
-% Copyright (c) 1987, 1993, 1996, 1997, 2001 Free Software Foundation, Inc.
+% Copyright (C) 1987, 1993, 1996, 1997, 2001, 2002, 2003, 2004,
+% 2005 Free Software Foundation, Inc.
% This file is part of GNU Emacs.
@@ -65,7 +66,7 @@
% e.g. in the TeX Live CD).
\def\versionnumber{2.2}
-\def\year{1997}
+\def\year{2005}
\def\shortcopyrightnotice{\vskip 1ex plus 2 fill
\centerline{\small \copyright\ \year\ Free Software Foundation, Inc.
diff --git a/etc/cs-survival.tex b/etc/cs-survival.tex
index 768224eb82..4140f2a858 100644
--- a/etc/cs-survival.tex
+++ b/etc/cs-survival.tex
@@ -21,7 +21,7 @@
\endinput
\fi
-% Copyright (c) 2000, 2004 Free Software Foundation, Inc.
+% Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
% This file is part of GNU Emacs.
@@ -49,7 +49,7 @@
% e.g. in the TeX Live CD).
\def\versionnumber{1.0}
-\def\year{2000}
+\def\year{2005}
\def\copyrightnotice{\penalty-1\vfill
\vbox{\smallfont\baselineskip=0.8\baselineskip\raggedcenter
diff --git a/etc/de-refcard.tex b/etc/de-refcard.tex
index 7ac0e2a862..bb0ce3c978 100644
--- a/etc/de-refcard.tex
+++ b/etc/de-refcard.tex
@@ -7,7 +7,8 @@
\columnsperpage=2
-% Copyright (c) 1987, 1993, 1996, 2000 Free Software Foundation, Inc.
+% Copyright (C) 1987, 1993, 1996, 2000, 2002, 2003, 2004,
+% 2005 Free Software Foundation, Inc.
% This file is part of GNU Emacs.
@@ -52,7 +53,7 @@
% If there were room, it would be nice to see a section on Dired.
\def\versionnumber{2.1}
-\def\year{1996}
+\def\year{2005}
\def\version{March \year\ v\versionnumber}
\def\shortcopyrightnotice{\vskip 1ex plus 2 fill
diff --git a/etc/dired-ref.tex b/etc/dired-ref.tex
index df7745d4bc..62038525a2 100644
--- a/etc/dired-ref.tex
+++ b/etc/dired-ref.tex
@@ -1,5 +1,6 @@
% Reference Card for Dired
-% Copyright (C) 2000. 2001 Free Software Foundation, Inc.
+% Copyright (C) 2000, 2001, 2002, 2003, 2004,
+% 2005 Free Software Foundation, Inc.
% This file is part of GNU Emacs.
@@ -40,7 +41,7 @@
\def\versionnumber{0.1}
-\def\year{2000}
+\def\year{2005}
\def\version{May \year\ v\versionnumber}
\def\shortcopyrightnotice{\vskip 1ex plus 2 fill
diff --git a/etc/edt-user.doc b/etc/edt-user.doc
index 683c1ae2ba..9910317de0 100644
--- a/etc/edt-user.doc
+++ b/etc/edt-user.doc
@@ -2,7 +2,8 @@ File: edt-user.doc --- EDT Emulation User Instructions
For GNU Emacs 19
-Copyright (C) 1986, 1992, 1994, 1995, 1999, 2000 Free Software Foundation, Inc.
+Copyright (C) 1986, 1992, 1994, 1995, 1999, 2000, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Author: Kevin Gallagher <kevingal@onramp.net>
Maintainer: Kevin Gallagher <kevingal@onramp.net>
diff --git a/etc/emacs.1 b/etc/emacs.1
index 95617414e7..97529ddee2 100644
--- a/etc/emacs.1
+++ b/etc/emacs.1
@@ -1,4 +1,5 @@
-.\" Copyright (C) 1995, 1999, 2000, 2001 Free Software Foundation, Inc.
+.\" Copyright (C) 1995, 1999, 2000, 2001, 2002, 2003, 2004,
+.\" 2005 Free Software Foundation, Inc.
.\"
.\" This file is part of GNU Emacs.
.\"
@@ -535,7 +536,7 @@ Joachim Martillo and Robert Krawitz added the X features.
Copyright
.if t \(co
.if n (c)
-1995, 1999, 2000, 2001 Free Software Foundation, Inc.
+1995, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
.PP
Permission is granted to make and distribute verbatim copies of this
document provided the copyright notice and this permission notice are
diff --git a/etc/emacs.py b/etc/emacs.py
index f644db2d8b..1eba14f67a 100644
--- a/etc/emacs.py
+++ b/etc/emacs.py
@@ -1,6 +1,6 @@
"""Definitions used by commands sent to inferior Python in python.el."""
-# Copyright (C) 2004 Free Software Foundation, Inc.
+# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
# Author: Dave Love <d.love@dl.ac.uk>
# This file is part of GNU Emacs.
diff --git a/etc/emacsclient.1 b/etc/emacsclient.1
index e562d37360..bd641c9fc6 100644
--- a/etc/emacsclient.1
+++ b/etc/emacsclient.1
@@ -9,28 +9,30 @@ emacsclient \- tells a running Emacs to visit a file
.SH "DESCRIPTION"
This manual page documents briefly the
.BR emacsclient
-command.
-This manual page was written for the Debian GNU/Linux distribution
-because the original program does not have a manual page.
-Instead, it has documentation in the GNU Info format; see below.
+command. Full documentation is available in the GNU Info format; see
+below.
+This manual page was originally written for the Debian GNU/Linux
+distribution, but is not specific to that system.
.PP
-.B emacsclient
-works in conjunction with the built-in server of Emacs.
-.PP
-You typically do not call
.B emacsclient
-directly. Instead, you set the environment variable EDITOR
-to
+works in conjunction with the built-in Emacs server.
+.PP
+You can either call
.B emacsclient
-and let programs like 'vipw' or 'bug' or anything run
-it for you, which will use an existing Emacs to visit the file.
+directly or let other programs run it for you when necessary. On
+GNU and Unix systems many programs consult the environment
+variable EDITOR (sometimes also VISUAL) to obtain the command used for
+editing. Thus, setting this environment variable to 'emacsclient'
+will allow these programs to use an already running Emacs for editing.
+Other operating systems might have their own methods for defining the
+default editor.
For
-.B emacsclient
-to work, you need an already running Emacs with a server. Within Emacs, call
+.B emacsclient
+to work, you need an already running Emacs with a server. Within Emacs, call
the function
`server-start'. (Your `.emacs' file can do this automatically if you
-add the expression `(server-start)' to it.)
+add the expression `(server-start)' to it.)
When you've finished editing the buffer, type `C-x #'
(`server-edit'). This saves the file and sends a message back to the
@@ -54,23 +56,25 @@ immediately without waiting for you to "finish" the buffer in Emacs.
do not visit files but instead evaluate the arguments as Emacs
Lisp expressions.
.TP
+.B \-s, \-\-socket-name=FILENAME
+Use socket named FILENAME for communication.
+.TP
.B \-a, \-\-alternate-editor=EDITOR
if the Emacs server is not running, run the specified editor instead.
This can also be specified via the `ALTERNATE_EDITOR' environment variable.
.TP
.B \-d, \-\-display=DISPLAY
tell the server to display the files on the given display.
+.TP
+.B \-V, \-\-version
+print version information and exit
+.TP
+.B \-h, \-\-help
+print this usage information message and exit
.SH "SEE ALSO"
The program is documented fully in
.IR "Using Emacs as a Server"
available via the Info system.
-.SH BUGS
-If there is no running Emacs server,
-.B emacsclient
-cannot launch one. I use a small Perl script instead of raw
-.B emacsclient
-to do it (it works only with systems which have BSD sockets, which is fine
-for Debian GNU/Linux).
.SH AUTHOR
This manual page was written by Stephane Bortzmeyer <bortzmeyer@debian.org>,
for the Debian GNU/Linux system (but may be used by others).
diff --git a/etc/emacstool.1 b/etc/emacstool.1
index 664e1c1028..7f3200a070 100644
--- a/etc/emacstool.1
+++ b/etc/emacstool.1
@@ -136,7 +136,7 @@ emacs(1)
Copyright
.if t \(co
.if n (c)
-2001 Free Software Foundation, Inc.
+2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
.PP
Permission is granted to make and distribute verbatim copies of this
document provided the copyright notice and this permission notice are
diff --git a/etc/etags.1 b/etc/etags.1
index 2a84c622e0..0c0e12bb6c 100644
--- a/etc/etags.1
+++ b/etc/etags.1
@@ -1,4 +1,5 @@
-.\" Copyright (c) 1992, 2001 Free Software Foundation
+.\" Copyright (C) 1992, 2001, 2002, 2003, 2004,
+.\" 2005 Free Software Foundation, Inc.
.\" See section COPYING for conditions for redistribution
.TH etags 1 "23nov2001" "GNU Tools" "GNU Tools"
.de BP
@@ -288,7 +289,7 @@ Stallman.
Copyright
.if t \(co
.if n (c)
-1999, 2001 Free Software Foundation, Inc.
+1999, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
.PP
Permission is granted to make and distribute verbatim copies of this
document provided the copyright notice and this permission notice are
diff --git a/etc/fr-drdref.tex b/etc/fr-drdref.tex
index d4b21e9c13..e64fe9574a 100644
--- a/etc/fr-drdref.tex
+++ b/etc/fr-drdref.tex
@@ -1,6 +1,6 @@
% Reference Card for Dired
-% Copyright (C) 2000 Free Software Foundation, Inc.
+% Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
% This file is part of GNU Emacs.
@@ -41,7 +41,7 @@
\def\versionnumber{0.1}
-\def\year{2000}
+\def\year{2005}
\def\version{Mai \year\ v\versionnumber}
\def\shortcopyrightnotice{\vskip 1ex plus 2 fill
diff --git a/etc/fr-refcard.tex b/etc/fr-refcard.tex
index 49f2a20165..bff17c6d62 100644
--- a/etc/fr-refcard.tex
+++ b/etc/fr-refcard.tex
@@ -8,7 +8,8 @@
\columnsperpage=1
-% Copyright (c) 1987, 1993, 1996, 1997 Free Software Foundation, Inc.
+% Copyright (C) 1987, 1993, 1996, 1997, 2002, 2003, 2004,
+% 2005 Free Software Foundation, Inc.
% This file is part of GNU Emacs.
@@ -53,7 +54,7 @@
% If there were room, it would be nice to see a section on Dired.
\def\versionnumber{2.2}
-\def\year{1997}
+\def\year{2005}
\def\shortcopyrightnotice{\vskip 1ex plus 2 fill
\centerline{\small \copyright\ \year\ Free Software Foundation, Inc.
diff --git a/etc/fr-survival.tex b/etc/fr-survival.tex
index 912a097709..e73db5352a 100644
--- a/etc/fr-survival.tex
+++ b/etc/fr-survival.tex
@@ -22,7 +22,7 @@
\endinput
\fi
-% Copyright (c) 2000, 2004 Free Software Foundation, Inc.
+% Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
% This file is part of GNU Emacs.
@@ -44,7 +44,7 @@
% Translated to french by \'Eric Jacoboni <jaco@teaser.fr> in November 2001
\def\versionnumber{1.0}
-\def\year{2000}
+\def\year{2005}
\def\copyrightnotice{\penalty-1\vfill
\vbox{\smallfont\baselineskip=0.8\baselineskip\raggedcenter
diff --git a/etc/gfdl.1 b/etc/gfdl.1
index 0974486ed6..b8e627971a 100644
--- a/etc/gfdl.1
+++ b/etc/gfdl.1
@@ -11,7 +11,7 @@ Version 1.1, March 2000
Copyright
.if t \(co
.if n (c)
-2000 Free Software Foundation, Inc.
+2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
diff --git a/etc/gnus-refcard.tex b/etc/gnus-refcard.tex
index 343de2d6f6..87c0203242 100644
--- a/etc/gnus-refcard.tex
+++ b/etc/gnus-refcard.tex
@@ -112,7 +112,8 @@
\newcommand{\Copyright}{%
\begin{center}
- Copyright \copyright\ 1995 Free Software Foundation, Inc.\\*
+ Copyright \copyright\ 1995, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.\\*
Copyright \copyright\ 1995 Vladimir Alexiev
$<$vladimir@cs.ualberta.ca$>$.\\*
Copyright \copyright\ 2000 Felix Natter $<$fnatter@gmx.net$>$.\\*
diff --git a/etc/gnus-tut.txt b/etc/gnus-tut.txt
index 16800048c3..29b5356e9e 100644
--- a/etc/gnus-tut.txt
+++ b/etc/gnus-tut.txt
@@ -24,7 +24,7 @@ was done by moi, yours truly, your humble servant, Lars Magne
Ingebrigtsen. If you have a WWW browser, you can investigate to your
heart's delight at <URL:http://www.ifi.uio.no/~larsi/larsi.html>.
-;; Copyright (C) 1995 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Keywords: news
diff --git a/etc/grep.txt b/etc/grep.txt
new file mode 100644
index 0000000000..8acfc4fc64
--- /dev/null
+++ b/etc/grep.txt
@@ -0,0 +1,87 @@
+* Introduction -*-grep-*-
+
+This shows the different kinds of messages grep recognizes by default and
+how they are rendered. It is intended both to help you decide which matchers
+you need and as a test of the matchers. Move the mouse over a colored part
+to see how much text was actually matched.
+
+Please do not edit this file in grep-mode, it may lose escape
+sequences on saving. Visit this file literally for editing.
+
+
+* GNU grep 2.5.1
+
+grep -nH -e "INFO tree" ../info/*
+../info/dir:6:File: dir Node: Top This is the top of the INFO tree
+
+* GNU grep 2.5.1 with default colors
+
+grep -nH --color=always -e "INFO tree" ../info/*
+../info/dir:6:File: dir Node: Top This is the top of the INFO tree
+
+* GNU grep 2.5.1-cvs with the specified matching color
+
+GREP_COLORS='mt=01;31:fn=:ln=:bn=:se=:ml=:cx=:ne' grep -nH --color=always -e "INFO tree" ../info/*
+../info/dir:6:File: dir Node: Top This is the top of the INFO tree
+
+* GNU grep 2.5.1-cvs with colors for the file name, line number and match
+
+GREP_COLORS='mt=01;31:fn=35:ln=32:bn=:se=:ml=36:cx=37:ne' grep -nH --color=always -e "INFO tree" ../info/*
+../info/dir:6:File: dir Node: Top This is the top of the INFO tree
+1:2:3:4:text
+1:2:3:4:text
+1:2:3:4:text
+
+* GNU grep 2.5.1-cvs with default colors
+
+grep -nH --color=always -e "INFO tree" ../info/*
+../info/dir:6:File: dir Node: Top This is the top of the INFO tree
+
+* GNU grep 2.5.1 on lines starting with a number and colon
+
+grep -nH -e "Universal Time" ../lispref/*
+../lispref/os.texi:1010:0:00 January 1, 1970 UTC (Coordinated Universal Time)
+
+* GNU grep 2.5.1 with context lines
+
+grep -C 2 -nH --color=always -e "INFO tree" ../info/*
+../info/dir-4-looking at that node, which is (dir)Top.
+../info/dir-5-
+../info/dir:6:File: dir Node: Top This is the top of the INFO tree
+../info/dir-7-
+../info/dir-8-The Info Directory
+
+* GNU grep 2.5.1 on files recognized as binary
+
+Binary file emacs-7 matches
+Binary file 2005-06 matches
+
+* GNU grep 2.5.1: other messages
+
+Grep started at Tue Jul 19 15:41:30
+grep: ../info/dirinfo: No such file or directory
+Grep interrupt at Tue Jul 19 15:42:31
+Grep killed at Tue Jul 19 15:42:31
+Grep terminated at Tue Jul 19 15:42:31
+Grep exited abnormally with code 2 at Tue Jul 19 15:42:31
+Grep finished with no matches found at Tue Jul 19 15:43:12
+Grep finished (matches found) at Thu Jul 21 15:02:15
+
+* agrep
+
+agrep -n "INFO tree" ../info/*
+../info/dir: 6: File: dir Node: Top This is the top of the INFO tree
+
+* unknown greps
+
+grep -nH -e "xyzxyz" ../info/*
+../info/emacs-2:1205:10:inserts `xyzxyzxyzxyz' in the current buffer.
+../info/emacs-2:1205:10-15:inserts `xyzxyzxyzxyz' in the current buffer.
+../info/emacs-2:1205.10-1205.15:inserts `xyzxyzxyzxyz' in the current buffer.
+../info/emacs-2 1205.10-15 inserts `xyzxyzxyzxyz' in the current buffer.
+../info/emacs-2 1205.10-1205.15 inserts `xyzxyzxyzxyz' in the current buffer.
+../info/emacs-2 1205 inserts `xyzxyzxyzxyz' in the current buffer.
+
+;;; Local Variables:
+;;; buffer-read-only: t
+;;; End:
diff --git a/etc/orgcard.ps b/etc/orgcard.ps
index 298ba03da3..de5513954b 100644
--- a/etc/orgcard.ps
+++ b/etc/orgcard.ps
@@ -1,6 +1,6 @@
%!PS-Adobe-2.0
%%Creator: dvips(k) 5.92b Copyright 2002 Radical Eye Software
-%%Title: org-ref.dvi
+%%Title: orgcard.dvi
%%Pages: 2
%%PageOrder: Ascend
%%Orientation: Landscape
@@ -8,9 +8,9 @@
%%DocumentFonts: CMBX10 CMR8 CMTT8 CMR7 CMSY8 CMBX8 CMTI8 CMR6 CMSY6
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: dvips -t landscape -o org-ref.ps org-ref.dvi
+%DVIPSCommandLine: dvips -t landscape -o orgcard.ps orgcard.dvi
%DVIPSParameters: dpi=600, compressed
-%DVIPSSource: TeX output 2005.07.04:0825
+%DVIPSSource: TeX output 2005.08.30:1410
%%BeginProcSet: texc.pro
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -1934,357 +1934,364 @@ A95CD2B6F18935C37F49E9A73E97A8602C5C26EE13D7A04A188336FCAB4CDEE0
23DE9D803FD6E8D846B3F729BD36137E834E016242CD2F7BF048959DD45AD413
19B985D05E5D422F3D0968375EA6A90FBEBF8B42B15F15280469D69629C08A42
1C298CC027CC288B9C984239ABB96B6A891C1360D08F9ECC22202861E4CE9B39
-8BF32D2E5635B6583D04BC0AA187D10FE773067ACF3B528CD412ED96902B0056
-567103E3FD911A099ADDB9EAEB3C08F1B36A918FE865B7DAE1C49F21650E65F0
-C6845C15740631BCB7618A3266D83E54976BCDC707883E531F3F833AD0DE88A0
-CDB84D8384602B992263C3C223D1B5393DC98C75EFF9AD8D98A764228C70A303
-28D87B1A5510A579D01088C26D9667DB86F72FA302A3A8EEF7E05DD1835E72C0
-66A0728CB0DD8C34BA1D772886333BC78C79374026347FAC9CED39B7FBA84DEC
-E70EABA29B80B4E813C0E6D5ECA5E9ECDF0413AF7556EA458C3C3B49A4B14A05
-3034C04E1F8665532D053F810683C957050FCF44C5D4040CF09893DBF641D68C
-0969D67BEBBA6DA451D446DCF87B8243365E7158D89332FB33CA28F0A83A7A63
-D22A0948A46F0AB9B2CDECECDA40FA75B046CED41C017FF79FBD7380CF33D726
-B03304BF8EE1EE450C065BC8B83643AA74F8D45924181D1D0C52CE78C36DFE66
-99CFBD08406AB9FDCC61242472612AF009F8625C966AC9A7228B85912CA77A9C
-832F9D14190A1DC798D4E99B5D067A020FAD7E13E2E5A155A94E46853CB93619
-39183DAAB590F1BE12C3C4B0209A93CB015E58EEA72C0F71E68EDF1CAD4CA776
-9320076D70BD2874A166F2CF735BD5154F9FBB219C868A568A7C176060F78092
-1E3661E66B7E0A8DCF294E09D487AD7F7D1ABEF83E7E0E5BDC60D672A4D8F5A2
-4C33479DB4FB7105158E19C62FB0E1B9749E6A9D4BFDF7884B1922C4C48265FB
-7851C1116696C02337B64F1A0445396102B541EE1CA10D8311F79CC58F2106D0
-12FF6B1D274B810AF318BEF04467B5066889896BBF019F63DD5DAC53EDB1CD7F
-AD10D90B2D3CE615546860B11AFD0D6B705DAC7545579DDD3ED867F31615CF4E
-F3E4BBD8527C9C3CB4DEBE71F1AC965A69A1C6E244BD5A49FC81135A587EA904
-A863FF7D421C407EDE08825D78924635E6968CAC4399D231C785C9048FD8C916
-0B2676DB4D91487B862B25F68DBBD03B604BD875420565855CCBEF9AF0793964
-4FD45E490EFE697A470FA3C60192E660C45083E27B9E569DD1DBE07706975B9C
-9AF2851279A7630999C92E9867F55D56CBBA0CA13A0F041CD0F3ADB318A0D298
-ED48F8288691BB2CE08B6A73E9FA89DAF661F201947BD64C1EB769EA3A0C6FC0
-3DC343AEF2379881E46627AD2F653B4C6BC37E8D8452C3A7E399C0B6B3D93671
-F51A92EEA7712A872D0BEBEBB071C83D9254A24C8799CCB5D2FF4DB31075483F
-3743AE4BD1CEECE6B9432BB89399FE62B87DAB3B19FA924FCC1F6C3DCA1B0049
-51024011B8670DCE537387069A8732AC4ADDD77B2A0D5D97105810854595C4E8
-0663FD917B5B587B8ADA22351D79F5E5AD494FADE90336AFC27FF9FE8BC770D6
-0A8D6FBE6E45B3D4DB20E91A53D84C8B100813CEB9A81B03E142748475EEE77A
-892B3458A3AAD744A20ACD28C7AA6C5A996C9A9900F2D6B3C1169DF3BF2B1A9A
-56EF83195431EE89A89CCA5A0EB6A59D7D89179B6C127BA0981FE0122E4184A8
-FA9094D9C3D54BB7CBA31FD03C7048A09AE67C956A5363F5D51ABB19CA264D9D
-5D515F61DBD9C35D259950530A95350A313CFA8CF06413ABEF844771BF99590E
-F9A2F28975AFD00D700E83A59A3F0B7238CC74A8C1C9DB059C84DD91F1E07580
-C4C1311FF1C4AF2AFAA07CDCE72B0928663109CB31DE1548C72EA321F0EAFE9A
-ACE0E0BBD840254E30D9A46162DACC79A07F21BA056BD90AD312A2D728CB94F5
-FDD65516843523741D2430C5338FDB4274162B8C0409ABF94581C1A3D8636BCB
-78A98069466C0C869BA08047E9C154DC6FF00A1DDCC2C4AF4D5DA5437BD02616
-C0139731CAA7817984BE614D6D41E9C21AEA1CBC9E56C783F68364023CB95387
-C71A72D9DCD59222964D04650181988D140295091175DD985F5B53B070D20B89
-5E4B621C848C9370E0687B45EB1070A688A94BE949D242AA6266ED2D64C2518C
-4A5E75442F030E137D2E3BD654C4E4EDAFF7B46EEDCC9090D537B6CE01DD6D0F
-1872A47A04ECDED2421B511118B0628148D2289B74B79B3A68CA7A2547D644B5
-2ABB83CBBFFE319957FD2189E272DA2C2E35DACA8EE229F37EB4C94C920A65C7
-165A2ACFF7B92CE4338F3030E157CC75281E1F33AF00386FBE6003C4C8CDB57C
-4EA70A31E2CD15FE6732F98BE47354C2F92AF632B5BA1C7ACCA3633ED13919BA
-106E6ABCBDC11006BA4560AFB17C7091BC1A632E7870B65717656A89EE550576
-B5D3BD5DD829886BA59D186770871C3D293EBED70D66EE3AEA926F2AE6AC6CEE
-30CE46B99DCEA2D15384C53D08C6F1A083A24C025D92832E16E816B893B3F2F6
-68BDF430788D1167B14633E0AD0FD74951C5826BE0F4B8CDD23CFAA88907C43D
-1678FB2C4053E0E2056BC4B33F36A896D1BC212B0262B6CB59AB3A5ADCC027C9
-EA6A2C0F1EA2DC6B88517BF08AF54C9B1A4A7B0A4BB9A66ABECB539BB6BA1F9F
-313F2A5619949D0FEF977DFB87ABB8B8DD420F3097B2B8BEC00EA5A3E8C207CF
-508C7CA5133CA63B98A14E11FB57BB7C461D7C8C767DB10E68BCEA1D5A4B7F29
-7AE639BFD660B1CFC78DEF00CD1278833E48A65BE281C9438976BBB475AC6818
-C533FB4D2F4D3727B68F533D03554393D66FEFDAD1A3BE79FCEF05B98A5D9EF3
-71F4D16E531408B2D866286CB89B50DAAE9978B96C8BEA869F9E90B780F0C98C
-1618C4F6FDDA21820BBA795B0AF3D00F96635FC5062544317A62A37060F965CF
-3BF8A9C7B5C3D74914E0AF04AFFDA0FB1D1E644E2FB8125E94C480B4ED41FF6B
-DE326A771B82A9C44B4DAA194D3C2A8855CA293787D7D5F466A2587860B64408
-6F14F78C085F63E6B63AC41FE7574E5E22C723202B7D42A1BE0D14A299231F75
-66FB900C2A030D0E09EF5107F9905A5C66E6A5648FBA2B8E80217160EB797496
-FE3D4904C8E3B6FDE528D1B931C369AE5115114B3701CD40B57457341D735576
-ABE1907500771C3EC5F562B63DCA85FAF5769ABF0F8F74A678E508A59802F1E1
-B11545E6C8697D1A7FBD4ED7A5DE57778DF66E04AD354E5A45E199615C6CBFC7
-7F6C232D710E8CD5F9953DDFE922B2CF50F02F65A96E1BEF0C1FE6B5C52415B9
-052B9C062B532A6B83260D13AB6D3B2A48D780E03B4519F4A2152B82D1A90359
-7CC62EBC5F26608232CDB89D2CD44F0E889AF80B1A9F8C0B9DE0EED9787D70AA
-AFE3DEF464503D9E56674C9BCD0BC65876F2F455C83412E8FCAC08ADE7F8E2AE
-CDA7A57425C7ACEF0D58CC85F71D8512B32D9C06AC001382A4095FEA02E2BF2B
-A7EB6C298B10CD398780A7120CE9A31DE391C349AA273C890F620172CC434C23
-33265359372A5451C4DACF0C859BA6D37AAAADD08D2F85DCDA2399D894840D7D
-AD9870DD307B9D602661D7ACA2F84FAFDFFABF5A89AFA9973161DC1CF3A3943D
-CB84A9C241C8B6D6CBAFD2DDC75166C3C2D5994DF4D2C60739F34E7805582A15
-76191F4150309E55FA04EF8A59C4DF8EF1C95E57F0C255B63C82A7775D4CF3BD
-A3C56600BB869D411A5ABE7EC6C67437B328DFF2F2BD6267A43D69B6788802B9
-249DAE42336C2A3DE75816951644C742C36C51F120943DE8B75052EE4405A346
-E157546DCB7D845D81AEB84E70B857B9152C3FA6D5F3BAEC8611C14F67B54DAC
-F58BBDBAD4C473C0DA872330902A46610865EB0EF8F97078841AF74758F0E6E6
-3DBA2B1659FB937AADD1C8A612C61F0C1A9636F0624E64D6D92966D892F44F09
-48A4BDFC9A83C267ACEF143585C51ED45F59126AF7EBCEC2B9584B0FC6C1E670
-FC382E476B6C33071A9FD3FC2D0F943DBE055BAEDAD6702DC0F474F9B2DAFFFB
-C0AF48B326EC447E31210586B7DCD517FB61F4D4870A5E467492F40CCEAA4F2D
-B06BF4FD8B31D9650D032A0A28E1D413162C649352784A0414C474A82DC471FF
-1FFBDAE7795DDB8BF3DF22C393E939F5634C540DFE2590D71BC1444BBD79A9D9
-7261CAC5207814AAA58D8B135A52A3D3174110FAE364257A6F79AB3B73B52A0A
-EF08DC05593BD0327BEA4697339E45996E5D6812D166165790D8E4543C130DC5
-34725E44BB037555803390CAF9F94FD6BC08AFC3ACE747B9728D8CF0128D5B4E
-1275C4BD7E50AB5F980DB3C3281E3FC4A500FC6DD0038D35F4F5589679647238
-FD7EE68BFA9AE20EB140B7277073E6F26C7EF556FD311D510C92E89B70762F42
-410ED318AFD46F66F605E98D1EF12F00727B3B3F21F695241B4B5863FB1C27E9
-6BBD4365B9AEEFE8A18AFE350731AAA0ED817498539433027D50C8D38284E888
-1E6A1E6CD54F851B264E2FC4597A6A4FE03C7CFFF7D1F75CEF43E97B22096A1B
-D8BE2DC4A899E64492359B346D9C0051361B6AE9DF079BDF21FBD274597B3C02
-4D0FB1C66B8AE0AAFCE0C1CAC54BEFE069C0BE9505EB0B1AE60869B63C396698
-EF594E1C8E5995AD22DAD027BDBA4BF2FA9B570E8F0FA3CAEECEF6DB8C4819E4
-AEBD7165A655F1B7828527DCA9D01324FBFEEDD6797C8E3E9E17B760C70D7AF8
-8EC0AEBBB2C448DFDA6B6B4BEB43291772174F1C369DBD1C4183C8E00A4DB46F
-208C324163E0BDE572A84B85393892545249DB26457AF5FB311CD5EAA11D7F9C
-3E491B0D49C77898AD873381077DF84EF4498C012D7752B22F0660810B6EC0F8
-B66D447775AD659C51D3893CD2B4509E8B9D1413A99527F720571784E7B9302B
-92175F1FCA726E8AD6D82B9B7E853FFA5739D0DE0A02BB115DABF83B1E4DE706
-C23532EE82BD57109F9A7A4E6A87DB4FF5C698B04003312F1BA23AEEE22162EF
-F22F7D338554AB08625B26D74F7D23772532A371AEDA9CC2962B0B665393FF04
-0B032502628AC491E593D0D450757AB016B2C74C6AD44594E0FEC2F880B578CB
-5C4D6A409FD6B64B9F1BD7CD8B69676814D169609D2ADB2F1E98F6C8F1A16D90
-63FEB3C8FC663DE0CCA1C5CFF03828FD1DF28678492DA710EA61B9096A173CA5
-FA8A85DCE00EA42ACCA03EF856F3F17FA32A69DF9F73C46944705C5DC20A7535
-34CCC3878E878A0BAC55B7D56CE2C43C102D0AB841BD4A3C5EA0379D321413C8
-6C2DF639D4EEA521E0A1C68D8B60319EB999707001795562E8AED4ABFAA486FD
-C11D4F12ED45A04DC72264A882C97510C91F2DD77E3D5685DB2CE52C4746F613
-AD98EF16AA9773CB00735151B7D4B9315441BC3B8BDDA5ACF619F49B6052AFAB
-0F19D9ACFC8D6E0CA79A25A8360F9749EF39FB60404E318BB1A98EEAD98FA0E8
-40DFD76BC3A84404F7D3904BFB2EE3597D8364EA556E4F7D18F32F1D86D10287
-8AE46984461ED91AE22B6EFE0CE5511921B539122DA3EB48707B8ABFCCF2E6F3
-9408D626EBD0C2A1A87827ABAAF02873B675AB54BC6CB5B40E697471320BB686
-9D845AD686DCA663AB31B4C2A1915C55A814FBA82E77736F7F258C1AE7B42449
-FD341CE08D65E648A3FB4DE280353F79FD70578A0C38C963461BE98100EE4084
-CC1DEF4E35B10BB81C632FF1AB4511B80C881A729EAB34C9E9D217E3A57EFC52
-6B73AAB4911830A00BA599013AD3BB83BD3DBC7445C316172B3B8A22B8148ADC
-FF33379CBA195094D2C2CCAE0E260D8DFEC35153BB3533BE014F456A108C9D62
-5C21C1BCD3CB9D7AA0DB74AE571A88AF6BEDDB6DE3DAF92AE60187819E8EB8A6
-7CC1CCBB5F23E63A107EC8143F0F69B62CFC95605231FE605A989407218AE464
-C2B566EB86E1075B0D8FF788B726FDA5F5F2D8743C39224C2231A46426F3B6AC
-747E69C46AC322733DC052641526E775F10924F0AF404C37BD47369986746AEE
-ECC7CAAC1B2CF6E5D86A46F4F6AAA2BB7707BA4D89F1B46DA3024A84228E1A5C
-BA5EDB68205AE6971A255381FC06BC03644D67B082FD503F502B28141D437C84
-E809F5C78BA5FBD5B8D51C012C3EFCA915505897C8099F0938EC15464FF4EAAD
-2012A1239E0251BB126F4E400C170BD1C47656CC010235236733633CE22A43D6
-3E043B687B32BAC9EDB90DEA0D0B0015E8C1DE4EE0B0E0C10F2F50F4E35B31BC
-915A1D984614AC0B10AF2FF1B28FC135D07072C0530C50FB6ABEBC1592CAB0C7
-2FF36245ECB609DD787852E5509AA57B3EC5F6186B16A4EF52ADF58D7ECD1D34
-B2BDC2BA556F7915F5293A8CB3F44E707A57F6CDBD91E90F9146874311F25B80
-A7348FA90D09459843F842FCCECFE4025D12B2BF2B61CA32E6F72B8618390560
-0157F80C82BC6A54B9F0289215D94C662CCFA55EFD0650B0ED761D98C65BD47C
-F7CD595FEF1C7DA57F3B79FD55ABBCE8D30B1D0DE32994D52F8885A87F0C109B
-D90052BCEF87DE36DB4A852E910C792C094D0D0228C53D20ADA83280C79E9100
-8AF8888CAB9835D6CE65D7FE36B18F365C4F6324DD5670157B37AF55B205F460
-D10A0D16CDCDA78539CF166ACECEF425A1740B7C8F02D13F2A86070416AD9AF7
-BD30314C6DC920E3CB78117564ABB1195397CD66FC92F54B5F1535C15E02F763
-C92A2F3F4CD1FEAD965306DF3614D0362B0191492905777B75D8D1C6F5064A1F
-111B7EFE43756B4F0996030C00503EFC5351D388C150BEC0FDA5AB0E218423E5
-78F87F1B7684AFA6DC450EF115ACF8AC2C8DFF33AD39FEA1008A46EA9D6BABBF
-B5F220B209770EF010154C87A4BC067315192ACEECE255BC6A5896C2F4963170
-576E250C3F8520E1E413A30A1C17F50F6E8D2DD87EC02320176F355709D75320
-D1747ABB9EA215793CAF3BDAC8F5C0812A630FE85D7FFC3AD199E5D83B068C44
-B757C8A127C3993C01E25FD94725415298FCFA762ED456DD7DBEDDA2F7AB71E6
-A289E0F59FAF62E3A2CB6A0995CC06838C8F9A6E19226B0E0953E2BA3764BBDC
-257212FA3143D2B67D308AD49A0B245F0A97B09919C307B326D575F1F865ADBC
-E292206795305174C193A4CABB0044936E51BF95D0B13E81F2C64248F1D9749E
-CEC22448489B2AC1D766933B570E3471B4917ECB1D66E0A4779B084B1D22074D
-108867FEC1329F5B30FA344C19FABB7C09A50F49A5B0A1C42413B3ED9FC39B36
-500AD32B07AEE4A5C0DFE29DAC2C6FEC431842A473EB710293F23774FB448E51
-3EB6B4A27D98078B2A4DF3A5F0F41308374765C86C0A879641FAD025EB77D7BC
-9328E717E2EE4AEF31A3FD23573DDB8E81F20F6499FC2BB4C94D3F1054785E0E
-6F3B8D6176EDA6E386FCBB034F6E82F6FE43CB83AA1147B05D51BBB03C477F54
-38FC98086DE0E04722C5F0CBF9270E0DFB928EC7387710118513A3C97C0D6A9C
-D67BBC5AA5DA3A33BB0F534096582355E0B3BFF7E6536FBF496FE4E05F006F88
-C7C28672CC58838790821AA48534FCFB8DFD4EBA9C94E4F50E0B9E046651F779
-E11B8915503682E7FDD90F05DFFCC5A009CE64FBBD223E2634DC95803805F4D1
-C27B4D543FA3EF2B222DAAACF40C526B2A1563C0968E7F2FB22489810A530519
-100FB442B5F972F960FF6BD86A19A1F297F93DDFF83CE2347EA3F861596B961D
-4FEDC423B8262ED0F0352DA19F07ED09117CA72EFF0CA7B666EA45493D1E1317
-559D4B5D278F107042D276C9AFA6A093ED696867BC1041E5F25B11C1687C8C1A
-72DB2FCD4B632FC212D774785F2D3579BC0DBDDBC8CCFBCF7B686ED3BD92D4F5
-378CDE86406399B059198B66E88BB9EF7E572C6460C36B0F2FA3E19AC56F93EE
-60F1F7BCE76F0AF284C3F41C8BB69F7D34B4644AECA4E9324CE2EE4E4044F4EE
-7B9C28E8B454D894445AB47B05F7B4B94529808A007A5E3A7D323F661F9D9C0B
-B5BF1C24FAE9D951AF26493C3C9302C4C040A33E94E6596246511185628C7A02
-15D33184493337E2543B1D82FD5ABF4F47E894E809C51DE0ABE163D378910FF1
-717FA82AD420E076611F5559AA027F1F82433B4B103CC1541D342330D9BE4592
-9B9112E1FAACB0FFD59326ABB3A352C54D097E0B79A91A0CB39B77AABC40D191
-C895ECDE7E9439DD2098E2D81E56F13F178CB8DFDCA5759C4580BF1DCF7AA3AE
-83F2D998FF3B9789DDD4B2A3E1F5CEEEAB48CB410F5C07DD3FBB4C362BE0D32B
-5BEA9A428692EC6585A20F11A5C73FA22D023131B1B416AC0B2F4A4C801863BB
-D43B180F82391830064FBCC5A233E3ABC5B30C1FF8155C61E589604EC6C16E48
-F3C676C95C57B8E9D4305C1B1C7ECD75B3A5C7F8B8849AA1B46FDDD928D92B21
-D0B6FFBAD0B71D101EC153669E32324C497CD26093D0D2E4AA197F9D5E459C50
-709C64D20552A3B9DA9475D3658C302B5E7EAE0DAD3F9270A327A6644AF5C3FB
-8338C062F33478E38E82C09510F27C2FD1FB2D304355F28B35C9EDFA0AAED925
-F2D1493BECA291483EB47FF0442C3692D29D10FA92ADF3C9AD85D5AC09D35949
-166DBEBAF7D425DBDF179F8BCF21912C5A2123E869DE9A9CEB4803F2C04414BE
-45DF573DB40F5B9E42406F49862C7B23826CCCB05E76BA23BAA5A17CDA93D4EB
-59569951158FC068E32ABDD8930D6C4C58A7DE1D39030E3B818E3382938F466E
-47E8189A6B902AEE4798286CF0C032E0F2AD018380C904C2F4EC61ED98CCDF25
-9E2C691BE9812FD5E0CE01F2C94134C9F0C05F4B7F1260DEC20B9907E1B5D372
-8677FB4F0485ED87A3F6EA1A647072D635F7E2838649CFE37A4FF8182882BF7E
-9474583F4E9D3548795E0A63D4859BD27B662D156DD893B3799371DB1BC75A38
-0F454EBF825D683CF2CBC8B308AEE9D8FF8EBB8A7DEA067AEFE8CC77331156CB
-20210ADE2B5DD0A9F77BB6E98F3630800BF33915E73E515B34E58516D1AD87B5
-00A8969EE2595D2365AD69FA4F67CCAA7D243B8D03FB39CA136DC1E5FD434750
-8A329F7D11DC4D33F6A0BEC9A23E5EE1A18FD5C3640E3F30FC2D8CCE5630E618
-A273CACED00DA6F094148C5D6751DD983A2823418223E715DBE8ED167B2D1999
-650D0FD8685884BCF1D6147C162BDBBB6597DCEAED3B5CAA75F301D46F2F770A
-CA1C8997E99D16CC0A58572FE1D68383D87335A38AF8C27556FF19CC421B8BE1
-8AF89CDBB98273BF4E43025A710B4ACB5D7F2C77249CF1756282B74CE43F037B
-F62DEC52EA41330A2783B5E64F72392EE25FCE9A7E872F4A9AA7BB41E5368888
-6DC531A2E602696EDA1CD3DCF808F62176E9198AAE9CA8925038D41E17570FD2
-E976F627F7213AC8EE1B2BC240871B7CC1C61B81BAA031B8396536AA62A67DE7
-63FBDFCFD363DB5CE786230B302B786A859C48BBA8CC27EADB1FBC84F1059FA1
-3A02148B4CEF5DA6D90664E72DC6F3EA267E4102102F18D79FFBE4E2A642E94E
-F3D9376838236476B1030A0C47D28F4E7EF6358D213AC0A95391659FE736010D
-355826A83F7FBEDF3164FF177C16C41789E84F375C6FEFEA767DF654B0533E98
-A1430FEE50F41D39D41DC2ED6EA7EE1FCAB31FCE526D5556E89D36F3B402C5E1
-C0CCEAFA157772B77556AAC8F874A019EAE0A797BCF85655A7834D4DC32D388F
-F3E48C0F7B338BBA1C9E949C5C0BC1A727A77FEBE57E1421FF81FE4AA81869FE
-86EF313CAD75613726AB3F7508BC904A7E55F092A16D605802D36509525EE2E0
-18B8CE25A0BEC74D167F9E766E30C4EB0D7914F4DA044FD895F3A9C196E23256
-9033CF1E352E82193458B6CFD32238CC93CCBB0E05E8E6AED8CB27157BB148C5
-C644977C16D7F4FC50DA22A28CF8F945B5E0209C8D715E8E7D9D80F32FEACD13
-E6928F4BB60E9684C0F865C9D0C2EEA5EDB0A355FB16426A2405D124F3A01977
-1DE108F66E30EE01ECAA74FE0DEC9A6D485B084FA8A38EC3A59B23FD35B72F87
-ABC6B7D73EDA44DEAC4AA7285D15339EAC0B54B52FEC5B7EA723622704A3DE1C
-AAD548509991E18B3AD4CAC7FCBA320ED3989A185CAFA4E22A42E1B5C209F774
-F5FDE4CF0FD23978F3C37BC3EB97A0AA9B9CBC66538FF705F8F7E2C3CD58A359
-40958DC811EBBD7F16902417BC1C97C3D409E4039E0569C6826D22923806BBCA
-E601CFEB9B249597BF69BB74FA9607EA9CAC2DE0C8B958574B715D64D5E2AE19
-DF262825913DE26CB598B36E6F8168F7641A58018B9ADBF73237113B9FBB958F
-1A3CF592672A51EE2463CD7F22F058597DB9C7316CCD49EFAEFB6A20646E0DDF
-794C0A9DFB62A42FC95483D7F578BA3163317AEB14561F49F6E2A909B7C92370
-2592FF0614A1AAB9AC39E93A2DE2D38330AA56BD51D1FD225D0DDA8E91B94267
-127CADEC25E9769512EE28557E051F516329445C31D75E19711CEFDF77224F25
-8B590ABB3BCACF4C3620142B0401F7218BA00C67A748A2DA5F784EF53521F536
-7110D64B659B7BCD26E03F6D35A6EA3452A8F33B4A4E580AEDBC83E7D882BF65
-AACBDB77189BD88AD8A0CAB62EA74CD673A9B37AD1C40065C309BB399045594D
-7BCACB882630E12489BD5E049F217C8498287D768B4D0BF904BF0BE1C6340D18
-C14229DE0AC87C1FB28EAF752A2C88FB5B80A4EA1066F11DD918A2FB2E18DBD8
-384E38D2B645EB843A019723C71FEA7C4D02621308D92FD72A10522EFB409D8B
-9A5E51F4AA9D768ED428750A6F34FBFEF6FDBF163B13F6FF96450BC2DE22D65D
-F7F0F5223CFD29524C61D0070228ED1113C58F48FA3154E53E67567B46F7040F
-B03DAD476D4B4A2705ED9521BD22F48AE00AD101CD53BD79B7172ADBB6D4C4CD
-951D9CB787F957A1177A7F967A3B867D48A74A0EFF9ACB491BAAB6C997896895
-2F3A1DCFFDC2D71659F916C1630ECE089BF7318201DAEE72972A8AFD0C69D5BE
-B5DBBF85ACF39AEEEB8CD634A58D4AD84A49E75E39A5799D53DDAACB7CC08310
-23D44AEEC34D256B1C6C208CF20E986B5F52A866FBE4221FF02A77459AA91933
-4DDA62FD7070BBA306D113FFE2F96090AD748C09470FEB4FFD0CF8C72EA68FB9
-3F00F3F93A56DE5659A40ECAFEDF5E3CF327CBF8DAC7DF31F0F02EC416863D12
-2787C56399B9BE4AB5DEF7D7E185FF02521844F75C48D1ADEA4C0D8436B3A780
-8A55EB846C5CFFFC5D207B0F269DB3DAA7E06FFFAD34ED5A49BFFE73CAA09B6D
-AF0C693F71CE69B77FC1378A3C4790CBE8B5546FFF134AE8CB103DD6376EF16E
-03501532E3F725E58F36089E3718C635EF95FE9921EEDB08F0CFAEDDFBFB3336
-517AE8ECA540F6918563EAB9D1B5E5BFFAAADC83D0867125E2050A05EF871ED8
-CD0AAACE7D95D37065EA0C92E46115A732F468AA43FF12337839C206157A96BF
-A8DFD01BFDF8E2D76E4D46C5B9AEF23193156FE4B535C6155F79149384737DB6
-BAFDB4DC69A64056EEE87A1186B137B6D9D394EB8811AADAE996D67EC403083A
-86771A4CDF9AC65678A65DCF46CD1EA9CBE4C1D839CD7F166BA2CA8521F698FD
-4CDEF798D360867ADC4C8FD100DC3AB3B62C5BF2527A688D3DB498AB5F407879
-970F2EF1EEBDBC4521CFCBC3E621F992F3EAD3E9737976CDB56596E661129545
-2EBE036A72F668E809D454DACA709F2C0531CCB26910652CCBF94EFC3A4B3852
-B144EB820877E7A55B33B3E9B2B1786729B0643517AD956A7A4779334D0A342A
-3DD38F70100854C0B3032397BCDA640CD12C985BB2B5835AA83D442166613350
-BACB4CA9F706141A9E9EB3DFF314B1A82113CA28B74B6603D67AA2D15A36972B
-1D8B0057D3D8EB92A1809023EB95762577BD753193DCAF7021366943AFF53A8B
-A9ECCB74BF27EE70B1D0B73078CA5CB5AACC1BEE0A61A75981F8A0A3253035FA
-1D5D6A1D47DF111693DD9A1D35D9B865C06BD05A688B0D9BC285C0EBB1DF7B2F
-2CEA26CFF7583EFED470D4BF02CAE6E4CCFE5347F61F669BF8E82ECD2112E672
-86D10C529DDB600B5237C11BEE28BC3120A0E212E2ED4F52BDF6980675D7DE7C
-89FBE11E19865B1C163EE5F4D410F95A434056202DB1BDD10B3A75FA3C091D5B
-E3E2F888A6509E1755BFB39F9EE35AEACEDE970EAF42BBFB0D441BED621A8E20
-F504AAB0F511661754B03BFBDEE9E5D704B1FFC70E429E97B8C5651C90044269
-58BB39683838446D49507DCB70AB0DEDEFB73F05E621BC7371D21465AC659AA8
-90786F8CF2A0B0ECA4B40774D7143F92F2B0A95417C475DA5308B5BDCEC67A74
-A425CD76801FF2E115FA3A95818D088392C84FCBC00D3B3C7D683253414D4C5D
-74446BBFD130AC89A0C9B68BB1CD772A1BFE8776D0772ED8C00C13C8D0412D7B
-526A73A0E38885B79551DAC3E1060537C0EE8FFE574C4B9E8155E2CD83FD85BE
-191BDD6ACAEE898A02717A9725196FA59E41FB45D2733CE77289FD178AF07D7A
-FEF8D6BABC7DA5425A45AB8EF3C2E369432252E497B172A6FFD4D3DD957C0E26
-0D3D402EAD21FB3E404DB8082DF2ED2C300A0AEC0DA12B7FB571F415017D44E2
-57509A41CFC2284455635F50F06937D23699B43084728FCA9DD25A7264B9D1F4
-2E086976B56237887470653AC62DE323911A64507B40DBF281BB060AE635F37D
-BB4F9EF7456EF62EAACAB52F0606DFA777D2965BF03D7CDA312AE654EBFA92C7
-580B7C2A2E604389152704BDF3008ED2F58200D825D0F60C7BF39AF14816B2DA
-5738DE7338132B7E7E92424B7FDFB15D8E1EC176CBB7E15F3FA064CF04E357DC
-72FDD1E8AF8079B1134EAE3E5CB6A7262994C71714691E8BD7CFF2676EA4D0C2
-A5FCD6C622B3B34469E3B2FCD810AE0252B2814EB02C544B0458CF12DAACAC5F
-4A2E078844AC2AC74543F4763CDC6FC081073CD60E276AA6E7F1D948EFA02C23
-2FC1567CD952C837AA1ABD3E3077F5AA7F9986F01B0A9EE91C0EEA3895260CB6
-3B4EA5F58F8C8C23D42C81764E72399D2EDF40C8F18EFAF113AD16E753263943
-55EEC4F01AA885DCBCDB7C9E251210AB2B9382EE45050CC1184F592BBD65D6FD
-44D9EA6BC7583CA725A1DCD28EA77A085B0A47CFCF5A847C5D29C4F64F2A17DB
-BEAD7B3BA43BAF8548B65DFB4814135A2A789E7E76C978DEAE0138AF8A0AE4BD
-B4D22A02C169BB0DA5215B2B91A10ED3A2A9797E5C5FBD11BB295B02C7498B13
-6D90D8CD79D4606007D408E8D336D75D42519BACFB7164C2797F0E9FCD98F178
-D82372F263BAF8B2D1F185E549BA63428E2B8DBCCDD243AD605DD10666F367C2
-3EB98C9157E068FCAB8D91AF9683EEE87A1158A562C911574136CFC172D50C4F
-70BC388C728E821395579A081CC946F528CE6F3471B7615F67623F9138DF8FD0
-CAADC4E42AEBF892B36AC169C716DDA724300E9378B809DC6739929C3108A812
-F9C116118E9AE1B066E1928A4A442CE02B2D3BFE18D406AAAC1603E754224AEE
-1B802E92CCDCDEF94BAA8955F389B7565AB67D73CED601FA7BFF438717EAD65B
-449941F0C87F048B9186C9C78A3D43A3D4C372B5F8DA74DAE6DD2A2816E44303
-790F04C13F08E0815B43FCD837A67BF4A2A86FECB6ED6FFA56018961A0C528FB
-472971A8E4C47C974DE12133616F3CBBFA20CE57B572F751649D9AE64A61F271
-0DDE783CF2509DFC2ED2CE7467574AAF79101D56D3D2664DDA30FC7DD5B5C6B7
-0BD084CA516A72E6D3F8B7FEDF0F11EF9CA594C2318EEA3CC266A2F4C2F2AC2C
-AB1ABDC5F7419F46308865F1FA63CF2AF4AEBB8319372B3305AA052477ACD838
-7A35218A6CD4A7C0ADE0C3F8B005D6E30C8A208A3518C1134DC34D0E64F804A4
-258A995097F17642E97FE9CC38A34C250B8828B4FBA1840EECBD06D427FE7E10
-4EFAFEBBC934AA295E12F25D6FA3D277C7C88DA60D818A8A303364BD6B2C0288
-6E94BD8E474F28BFB951BE4ABC493AB0EA6EFF110193105DF8E9CEAE1CE549D0
-A907F7A7CF1AD20E121FA6547F93CC10D7957B36ACAF213EE436C92A00AB1A24
-540E535440938E748DAA6401133235D1CC74EC8FF80F9E297FB6C56C12B4E0A4
-D53AB28F11618F2C793F6EACB593E56B8370ED5CFF467B5FFF04AD11BC5A3AF0
-A6EF110B540CD2C87070FFCA3AA0776FF070C384BCDACB0FBD4921C06E24C8F0
-CE590D788FB8C1BCF9E083B4778818F92269C274B0CC6565E2D70FFFA2480381
-040C5CA012341D51427A59C3FC9B5121956B4323872E67BA499876052131B266
-C21F0B8B37902C7C3156FAEB668AE6A7851BC7AA62FE60D792B35B6A38183B23
-E5FB11DBBAF1E60B0D9DF0E84B9EA6F1EA6C37B84736FE657F4A29E92F7DD89D
-3473C81FD7F595770BA69C91DAA3154425278D323C3E50A14FF72A02BF3820D6
-6621B91A96A1D2F76710143D41C8305E02810780D868D822DC6056DFA4690F24
-90BE5BB4F14902B97F5FB4CF31A6C8B346A76B95D82EEF610AAFF9F6B88E782C
-F0E46DD18BD1CD53C92075AFEA0C1F0870DA52455847B22A638DABEA04C90ACF
-0D89E8345F118E5E26A3934AC0C0C9F1269946E17F1AF5759123CE2359B60ED6
-3FB22A23380A34DF818CDA8570B36B92C4634A80AA4ABEFFFE36865AFB384DA8
-70E5CB4829052F8BEB962841C2030BBBF874EDEFE149EB8A38DE0ED59903FCBC
-25788EFBB825265AFD7FF2F8D5F9A947EA94A368C52986E8640A6D6A11B14DFD
-CF435B2F1F7C168D1E9C7B84B2C2D9E235DC59799B99971FE9E6D9780EAC653C
-981FBDF083B949310FF20F7B383BD10737136E88B9D294677C7C63CC50A41AC1
-B4649631134034DB9FF76E0B19799396A232809A5BE397B63B528A0E860D38AD
-A90BF0D4246F012E19CEABC74F21E2BD46FACF96D5F033B6023A98DA51653D59
-C306875AA02EDC3DB78060D72B0A00596BE36367A1681ECFEEFA447DB8DE6879
-18962C974B55038A8F67AA553ECD27C6C72D46CEADA75D68D7DACB40B063F9F7
-464401B0AE4CC61A1F55A7E40FBD0FEB890DD2FE36D9641E40BD2F6D20C54353
-C3B282E7F46D61EF3A41F8BCB31FA38EE2B99B671841DA2FAD644C11AE20B6F8
-C7D5D99806643412273F874273FBD04C65F048D76086EA1156F07A47CA0FE349
-391E906747C833320E84E18781C61DEA8FACB8D9DDF08D29E5983F2E1FDC8C72
-C200B63415529A45978010EA5C150BA9D70CF4F5799DA551A1CF7041A17DD5F4
-153A868BD4B81A25551784E2A6EE42996F4D6CFAED97725C940C0FE9FFE0AA31
-FB2A32941E6C555FCF33B4B8E802C40B423599C8E88C6DF1AEEC28938FCF3BAB
-B6846C20D7EC7278A909073BD15BA75F470F82237BBFF6E7287A3771378A944C
-8CA6215F95437DCC9EA67F7A8721FA63614CA7BC5054EF5E5716FD4B7DEFDE48
-FA8D2AF9F0B3BD92BF5F48A0DCC8406B0A940FBB5D35B56A49B7D4605A00F82D
-495AEBF2B413F19FE37AECED8060D5C32E9FE0EE9C0FB14045AE87D04B92A734
-0A35DBFFE12CB1ED64C924E4ADEE0AD635BFC70CCEC92FB07B1DE13E3D14B09C
-94590CE5F2F4B7D0C697F6F30E217ED09B35917714712B1182D687302770C205
-C3D17944AC1CC6AE2A023707E13DC1299256DB1211650F76A969D74F940CA580
-6B499C40B76BA77D12688A8CF75E90A19AA3E368D6C99FCF8163450CAD6EA028
-84D4E9A5279013354D9C8D7FB8BCF3FD31433C822F0A412A3115B0E5E71079F6
-60C6BBE10380872D5D75F1BE9BB6DE755103E4B376458B97E0B50BF8932940AE
-F95D4002737966FF15A0B67C5B717AFF0E95B9F8F3498D7CCB538FF133A977EF
-3471FCE3B83D5395F282D1982B2A6CDBD1C0DE44B3CA286E7E3F3E82B3561635
-6E462A4ABFAE8DE9331FEABA97AE7E7C93F0A30F4E3FDF4DFD66E5CBE234ADD8
-0AEFB354B80ADBDC128EAE328AF10FFDEF587B462A88F62F463D640C4F8898D4
-1AAECA8EAE36639F6CC17B68BC1F1202F462BF7CB20CBD42FF2DEC420B4A7001
-90A1F1499D49731DBC0C5DD4AADC4C32A7349219F25150117D733A0D51A7E51D
-88712AF2AC91D73A906CCFFAEA98C68DB967D96DA69E38A0406F2DD149B3E771
-68D65EF65F99A4AD33BB5B15672E57433BC84C9023BA77997E82473C557D18A9
-60F7064934EDDA12E614186A092930690D2DF97E1955FA75CA3CA077EC39A561
-27FC8DCBF13DC183774AF61C2B1B65E5E4
+8BF32EFC8C0D1CC0C1622ABA0B6CE939036B2D9CAFA2A3B0C4B5DD9AE5B2D798
+CC856CB41F82D3B5FCBBF70D07E05369713730081901FEDE318F9DA81D39F84C
+45D0996AC0E8FD780FD2E5E6BD013D98463E0A51034735243F2B3695371E8451
+6A6EC4236E47A282AD2966E06BF3FB59C6222C15A34F1E910E637D805741BC1D
+CD426BF31361147DA45BDA2884880D90AEE92DF02AE5C4772537FEEA157A6D50
+3BBB910A80A2EF41D18213631584B343ECFBD6BA006AD6BCAC63E9CD9430DF59
+98091BE32FE17FCA7B32DCA95052F5BACF73FEAFCE5EA47B740FDC972C2FAB94
+E1FE42F8536DE4DD0DBFC4CCF3A96DC1140F736344D4DC796756948ABEE0433B
+BFFD9F1A343259444D248598844888F046800D6BFC7BFE3F63900767727A8742
+10C756EC6380274290F84F7B2055C2390BF04B466B5D4437C0D6AC55C90792CE
+8A8BB5602BC96118B07FDB8692006E91585273AEFF55D71967011A1658205ECB
+A0B0C1CE1F7C5167A5868D5DA81EE5CC3A41983425663776391EA37525FF1357
+2CBD0C9B4644850880C5115C7F0677A605C1009D018A9D6BF4F94A6DD019CA26
+FA7D748D55D441CE1111EFE5254381E1F916912E1B446CC7803DEB5C9B1AF811
+3938473A2FDD49E5A0360F4020CAF9E85E056E59430B18AD352BA929C9A3DA10
+D7C524D92AEA6F4DCC13E2B59DBC0B8C0CD90B1E4E82BCEE516928BC9E1BB67A
+060EFD856CC9F1CFFEF90C421DBB3CAFD1959B332EADE93C9CCB31006248BD6A
+5D79AA8E049C5EA70DAB46F5D3E73984814E9F3E15A0383EFCD157240D43BF23
+F84372FB3915791E581FA0E4CD457289FACCC08C0D37CEC1FC45DE3751445A9F
+824A6B006B5E672AAABEC2B8D5DB7B0745C1D01C52657B7DF4FFB9803FD9655F
+B7D34C6048E8BF44A0235DFA9791770CB3E451E01ED7A578512DCA397F24F71D
+B2784D0778C02BCD5A88FB1671F8019523D8ECD0F42D273A72F2140D3C14F40F
+7BC451BE2FD39FA297D9857745B4B8F8531CA0DFD9E72E8EE0E7FBCDA811C8D4
+167DA0037F9F1F181115209C22FA250C8234695C1085931C3D92585563366C74
+826D4E5F9A61F39E3F8CEB8701591C4A5FC62940C2729A2D9FFAB09F833D47C8
+1B184163D87FB4E5EC4BD91B81C325FDA8ECC31EAC76FAB333A9EE090C202EFA
+FB2BF753A5AB8D147F8949C6FCA5922E1B2C6231ED86BBB953166DE2C08A3DC2
+433C76CAA7260AC901C3B4E2E78C8A6064F0ABBA1F4D16BACAC5288F199A0929
+25F1DC8ECA38DA299A229D86E105C29CCD0FD59585467BAB46AECA7A76905CEB
+1CE91EFB79E3B4EE3CDE096E2CF63DFF71544E639567BC8F12263B2F596CB4F1
+FEECEB69763A7EE15B0E59A2529A116E6E3BD067BFB3690021068ECBF18F6D9C
+3F3F07D8C7E2A7793FDEE84EAB71613A6EA8F6AC665A7C0376A6406171EAF3F3
+4E466A08318F942F2830757721CE2B193F3A7404D51375DF34495AE48356DD78
+E4AB3A71C2BE2094D5196BBBEBF056029805A302F6AE5F4A9BDB25461E81617E
+A634959D343DAC10BD072CE16D7C51C120F9B6A1D75EBC4D03DF60048B8CE15A
+94FD31DAE86A4BF525C979C7E96BC1DE88069A342C9E07C0340AA83DCF381134
+0C13C315D1B690B5E858A20362441C9F61A20B70392F87078E5C3F8B4AF23D99
+B051B170140D0069DC6E2D4FFAC6E45EE56221264A894AE68FABF04994EF9D87
+EF92B498493E3F0B2F003C47C861320E714FE36F9B4669226E40753B2FA90731
+CE281E469DB371C975B186E2910879681485763CD9316CD4017C5D9ACE43DCA0
+38397FE463F2A3D6B72209FBEA175E75793163F0FE4A2CAE3C7E5061D1A7C31E
+1F8FD3082D2743CEEA008B0F0AB55C2BBA23918A1BE4200DC628662775AC2D66
+FB16BB7C06C295357A1BD655CFF3E0C49046C2CFC70FDB87E62C2EA187A0914D
+2B55FDECDD9309FC215AF8882D65174ECEC01F38158C4D96FF9EF1B17AF32EB4
+E7C2B4770F5CE67E2B26BA0ABA9116BB3F89944E308A0127C99B1A145F730B50
+28473FD0DE250D63A7116DA1ECCE93B02F3CED8C894E6B090F5A01A26822503C
+EA68C5A7BC8734C35E40D3A56449F6AC36406A0818C666F0EFB88BF02AC4C296
+201B0D0848450A54B3FE1A75F641D1592D265CA639D29DD99C47AC8DCAA2FE5F
+0216CD31751A42FB48F53200053979FD87DEBBF427363CE1748FAADFA0C6E2C7
+9B407F5D041D9383385891A86F33AC51F0C7F4902580D9446D8118D8EF2BB177
+5C2A39867EF485A454C07CD835350997F5C18EC1C3A83E57F57D8A0813EF784D
+19B088E03344EEB3EE8AF03D18B2A4EB5A57E1DE60CFFC487FF1C2DCCDC88C40
+1B7B1B16A0DB3AA16474F6CF5F92C7490CA1F3D94B33B18DAAAED531D2740961
+53F662902417A01C2B33489862A446A5D7BC27B87ED382CC41175114C7B0D42E
+6DEED8A64B3034F764BDAFAA477191564F3EF1339976051C0BFF59E56FA20C7D
+C5954E0A805A4A8431B40401E8A188D2409A16013427152F64CD8CD502C5EC4E
+B2F5AFFBF1F4D5BBD636109F2AF10BF4737DC0F722E11649EA017EBB2F4F531C
+9D08E88CCC7D3345E4B2A96F14C9CF8E211B90F8A2CE2EF57A68BDA5997271C1
+93A69D91A285B2198A12F8B3C23FCA396CBF176473CC5A4C4E24ED72990BDF14
+162EDFE244272250864246D493134DBC29C5CF2C8A5B5E27FCCFC7C577C014FE
+FD8F723CFC46F2D9700738788930F22656B5F1AD5A34C4EA6C96EF45C8E68138
+CE87FEA609914E3936624E1E6B167A60237A34C04FF1500C52E7258FDF3DE58E
+FFED1699614DE43622D1057F172E54AEE1257FCC853C0D1828B072F7F4477309
+4E3E42B5C00413307335285F8404FE1229D1B2006D482993E7F96D8C9BB7C41E
+CB0A9B91F02CAAA3B8A05143ED6330BE0ADC9549D1AE8A46B2BB68E3002F3589
+0D5AFDA53BF17BC6E069E5B1CB3CD24362C702BF44F7823E005F0700AD2E150C
+CC5E486F4AE4103A5D0C7396F31C42843ECA1EAF0632AB3EA191C0701EFA0C42
+452C72B6ECD57240A505F49CDC390DE48C5251F9232F837CE604CA7C6AC0F742
+6742EE1BA48956E6CAB43F05485A4457F44BFF2E75846BFB56F9C34B17CBF84E
+4133424ADA7942199449554E493E2CBF5A4EAD39A22C166F02E5332197F32C88
+542CDD0D5018D322396F3BF767CAEB823ECD801D22E536D6201747DE4D2CFEFC
+30CF112F6DA37736C836CE44A458B170B974F2BC9B7EE06AB478F2EB94774A5A
+F18E82473C5016AE0FA8AE9DFA174F17945A5F3526C73A24D348E2A2FD14899E
+5D33177E01B7D101A571E196405CA95FE795CBD73F7185DE01F99C1122B2C050
+A4D54AC01881582AE55E34FCFB39189C4482230FE1C01F7BAF31F97B59DA6823
+606D7E318EDA739F6C18B7A3F011E76EEA67C696EE9EEBFEBC8F1F95CB450D0A
+FDCA2740E7CF611F427FD44ECD90CEA692377130C239B3A0AF9F492F377C55F6
+0C2910E3FBC614DE8F8F917FF5ED25702A5500D9477B5A09B0A12C9DAAB966C3
+AF6B4F5C16BC519B8D147E414C1334F009730E52C0C1242685F40530A32E236C
+2143B0053A7FBF6DE9CC6DA142DEE3A61E338B0E9ECE657C046F2540CA50BC49
+55062DBDC0CC1295991242EA7C749000E114EF1795ADF45A4CE8B33DB1815CB5
+CA3B4D8703CA72082B63700BD8ED24610FF157C3BB2A704FE41AFB1FAF4774F1
+A208ED52A9684A802003AAD6D9FCD5A3CF635FCC938931CB94C751212CCCDA6E
+202FEB609EB5232D1CC78DC78F60A00441965117AB45E898BEEE41B9A21D4B17
+64F5DD48296352202F5BB49BD6D7C8A031AE5E9667E077ADB2AE7D92D61EFF47
+3599436C302EA12D0C1713FDC98CFBEF052D7F06666FA15DF8571D712A3A77E1
+370D07F557A30CB110CBAF7AEFC425F9C9A4BD06F54608B44AA3B796F560711F
+6EAD4AEF60B83DB1E356D7B6844375FB3AAA0389F56D070F426C759ECD2F970B
+2E65032797BEE2FFDD78CF0B7C9684F6EB8FAAB6502F4676CA8F23D37CC4D4A3
+42EFDCFAC381E4B95D63E26FAC8DC58232288CDF0A98F076816242E68A3C3189
+9B2F6F8F06DF0A52211E3953A57A51EE1327E6C519A50F2B0857987530CA262F
+A7634CBCBE1BABB7EF1917AD836C66FB19A1C993ACEA40D291AA07755E5F4CE3
+877EA9256745044ED37695871840F5FD39ECC03B9A65955C2886E773F51BA327
+36D4B9077056B5C4D31075BDB84D95F39217123A292CCD32F072F3DFFFB937F1
+7A543C93033C9BE51423EAF43AFE5D40F75C7614C707D898342BF2E84E557470
+A08F92931617AF53A9E90036C4E235DF6C8A66366558DEEDBC6267DDB46D1DDB
+B943EF9381859201FA74BC1EE0D11E52A75D89678663CAF13969A433B817D0BF
+AFE672FD7B7E0E318140A2E18A2829FB9BF621B9519FD20B415F338E2DAAB087
+FD4F4FCB88E7AF5C24C95D596F35D46AE8075E7AF122CBFD661A144081C53AC8
+AEB6F0121693634DD7514440936609024EA1609687A6BCF2AAF1302FB5D59126
+E724B35374577B44AD979B36CCD696E4B8C86B659C7A07C12F1B07DF63902F46
+DB26E527586481898BA0C1C4D0343E72D90C446446C5A5BA75B6D6E3A45646E2
+6161A12398845D942EC234685037E7FD00EB78E2DDFEB6FBF29EB0D2507ED3E5
+645F4CF42B5164A3052755B879329C913274965209606A41AA739A8072E3C7A3
+68B2E9B1FD527C93AF479C377271D51821315A483ADBE61E4E5B8AD254E17DF9
+4D4832CED4009A88EF7A13CE454500545B81911091C6965B384A8F8AF977318E
+3F5C7120A28882A2176C5B815E337C52FA5A66BEB55528A34FAADB58884EA98C
+D8226D65ECF97382A37C9D02350C87F7D9E050D45814D2DC6B2490EA5A19D366
+10D06715C71F9505F9169A3B210B1B8ADCF919A2CFC751BFC47AA8132F660073
+5C6C9629E8DF4A06AC8FD77039C5B292BA00600E039217297C519FA7CDC5171E
+5B8E1DD51B4DFBBCC7BEB3AF99C723F4C6148F6F4187E15C9A5C5F24A565722B
+FE9DFBA7CC0C6A01BDA00C8075623ABCF59FB8062983174198FA1818CC644D6B
+A7C7E3773993773D2B4C009FDAF9DE26A95EB4F7B7157472028965A2AE646234
+B13F3406DD2C8C078CD8A4078364413CBDF63FB582B25E9C0E4B8A7F9F0BF493
+E9E1F0C3B711D5FFBE44E588422055F792D7D5D3A2482120333C99AB487308BC
+614DA8C5B16E239689ADE4FDEB69E9F61578786E38036B913EE77A89B3B7867C
+E27D009FB44BF2D9DFDCD9F66FD2D13BC1599B13F2E19F4D34182B3929758BD1
+F0B825E52213B52C5C091DD2E6E9216CD4E8AF0B82A0789FE40DB0EED926AC4A
+C8A67A33101086A925F3E677B7F6EF0A5C33CD3A354464EA92C3D860B90D08F0
+7E2CD9F57A06EF377955ADD81969BB714DD25267F29115C02FA60F8F7B3E1646
+48FB8C60D0F0E08560DF756D96F320ABD285FD35FFBAA476C6ACB989BCF92394
+11CD8FE3FA053111EF9A7CD5A32A4986150A5F800340849B5D4CAC1FD9C581E8
+D0E0166EAD80174CFABC7EEC0F1C3928BD465CC690E73DE9E0F91ECBCB6E694F
+BA399F2998FF36013EFADC8D4C24D76EFC29AC6EC6766E61FB9D1738C70848AA
+C5E93D89FD24B6053F40775BF36A1137464BAC9CADBC12CFB564B030D0AA2CC4
+0D2C53EFA25F3DB0712532C89D9156B498B9FA8D7B5F6EFB475650866CF6E79D
+DA67C0533FD0F8536CAAF909744672E14CA51A667845689D5D94473242E1B804
+D6A717F082000AE27D8A159BB2042E36FAE0B193DBBB218F5C528BD203F4D146
+057399E10E7BA35BE63B729ABF9DC1891239A573A67B44E361F29962A2C4E628
+E106F9E0A7390B0EDA6FBFA1DFB6C99C71D56E977B1EE6C0D2AC1FA77511F2A0
+4F80FBC1173CEF67FE8D3F0EAE17224FB730041148F4E9A6E7D401810D30A923
+249F6DC070651B57B47A513DCD5C06D82C8319A92629B36278EB6BFE9739F203
+26B15E42525FE6D439BA608478213F5848E8BBAB6872011F130F003A94C8612A
+ED46690E81CDA8EC5948CA0F57455116B81A0AFCB200285EADBECAF3F3249279
+E80D9ABD82F22F12A9E14F6BC249942717E73CFF0BF9B205301F80EA09C6A847
+AB937AA4C2D0E60AA335177B4B86A1D4D5ACEF074120E2DE632A82598D51FCB0
+B32C6C900255A00101E57AA5EFE2DB09CC07BE8DC99F796713092DB97D6912BD
+D8B0C40313F3D6061F0AFC4B89413514A9EE113ED95BB7729E29F144AA0D42EC
+CBDA616D1295537975D0E09D3F59F7BD2D5965E2C35C85EC56383CE14EA9D8FB
+7F28F5A3F3088F970C4BE07982E140F52E1345FAEFE04F4C508A33672611D76E
+33DC6BE4C84BBAD738A71539E8416E5C8B2DF65068B29FA0ADADA5992DC6941B
+AA856C98EE3B244520159B884CF4339C891B86E917E7DD54A712B5B572AB5696
+9256DCA1D8E073C2F5E754C845FF861419026385F21F5B5134372D27AEE08B72
+E234E74D06FAFAA327A769105DBD300D0F75C286F4AC3A7706B377321B828CF9
+85A48B4394C32B09F6CA7A92F93B8143AFB83FB6C1FB0F181C64A23C04651AB1
+830A7CB62F5755D3A0B780FED3A290C752678D4A30C7EE1B8179749D415202DC
+85C2DF88383A620044BF850B733EA1ABCD96BEEF7BDF2FD6EA0449B6D61DBD07
+D3A8FABDFC7961B06F7C2F2906BAB7A3BD33BA8928109E8BC4B405D9163D3CBC
+5C664B1B2A18BC21C3EF35CD3E7D99999DA3205F41B15BBE2C9E76CE7EECCF18
+E5186D5A4AEF72CD7DCF1C76DF9CCE29C92BB28B8C1A9A05C4602B82DEAB9354
+9258C2CBA3D9146358B69C420BE22F1603F6FE4C39D2423FDCBDD2BEE0BF6B40
+4F7BDE641C19DCF7684E7495EADDF3A86D3DA4C4E93DC00398C5CCEE3F3C95A2
+D72201367CC2D4A5BA6B0DAA88E488CA671EF45FFEBDFFEAB634811BB0884670
+7EA730CECC91C30A2B6ED9CD41CC8465209F05DF45C3FA514703BEAFF3A6DBE4
+978CD593E8E540D4B2D99055CA68FACCC4D1A2F709615805E885B840A806C952
+E5B0BA85C23488AA8EEB924B99489C748602F82973B081BAB206D808C08F8C11
+75B1D192FAFF8C8BC3148AED1B7206AEC32CAD33D1E15DB3CB4CF58957F2FFE1
+9A2D1E838916289220638EE91B9DDD691EF6D83017F35EB2E924708E655A8CB1
+CBA59DCAA9F787DD62352699DC1AD43CA225BC10B53B8298AC5B8C316FE433A5
+FFF41E657EBF3DA92F7815919E3693C9C6F14098F35F206EC9D9972517D1C233
+6A838D0FC455502DE6C9CFEC92560026D5E9FBFB9CA05A15BEE9992F7FD73779
+3AF7CBCE1CDE7AEC92F2453431A1712E20B7C8222656589D379348583058DD50
+035F956EF757456D651B53B0E2E12AAC4FDF5B063B9BFA53DAE05542D55AF892
+B2AA10EB49EB839625A0FB4344F552F24279DEAA4E0E25E5EF1C73DABE4F1C84
+44CA224F92C9CB2FD5EBDBB510B98F3FCADB388FB72418BB298934195D623CC4
+EC6177AA90E8DC19CCCDD49B0B5E4588DFBA825C32135F92494B37C5C13C80FD
+4199D717A7BC47E9F43ED5751DBF7DB3B1296E37E6C4E0C9858C4FB0EB5373B0
+E70643A0BD54D080D8B4A7EE78A455240D2BA072A20FC76EB2121BC58C1654CD
+2F9EB646568BD4C95F4AD8505921041A20DA936FE009F1758CECB5838173133A
+ADF49A309504BCA3C0E1C61CAB5ADB599130F1987943B7A2D0AA2C7883AD7BBC
+5483F8225867EC447117DD15D7976B924F12BE6D1D83E9157E02FFBD5D9BE32E
+3173FF8C0D6DE6E8932E02B2ED98E320172C97118F8A20049CACE8CC3DA954A7
+6613384E2619602E9BF84E3470B14A692371F6C9BD320D207BBFDDD4B5F7FD10
+16E495EEF83B33C6A6E490806C9E95AFCA72209760AF1BD12E8D454E29882181
+1E78BEA63628526F89724BCBA66266EC783B6CC3846F9C4F14E49ED879647D0E
+79C3EAFE8F21A85727214955CA5F7E4C4DE351D560C2E5F6585572B31199F88D
+CCEDB5E2F1D98627F4D701E06D1492DE6A6BC55200A18C811FE7F34BFE805AFC
+CD62FF2CC89AF62DE15A81E5749DFE00DF841697466967BD315E282A21711EDC
+ECB58F3C0469CAEBE96FCF3C34AC90428765C57419FED782EC8F497341565D0C
+9ADB90CCE9022B299C7B7036FF1773AEAEFBA6B4CAFC5CC2E1EB60B01DF29813
+F7990B64DCDDA4E8D614907093030734F52C87D2D70F6C41314E02231AA15E22
+5B4EAFD207E6003C88A986FBC0678FD6385BD57F147EE134522E16C674183041
+9CED60638095EA1574C7A56A1A08ABC233D65D257D64594E3ACC6FECD22D6277
+62724C1EA3BB6E141D8C1318E6DDF314CA8342FA8AA3D586DDCFE9B491A34D06
+FB96033D2CF9A0CE07E5B985F953AC5BFEBDD740BF2E4E84234A9873CFFCC429
+E62C40E98C198C6A8600375B8C57F94B99DB9F39718718C63F71B7013BD50DF4
+8B07070F306E3867CE805847066DE7A8889F745CA3325AB658AE774229A12EE0
+2754E9AE1A2CC0BFB41CE64EDE6C35F64D3B31393A633961A65B0948942435E3
+C135496114762A1C96C359A017102CC8514ABC5F8FD478C4D948377C62095B0D
+5941FCEB8976498D64E5AF4847E90D91356B02F5D3F1DD82EE9CB361A7BD30BD
+90ED3211D307B07A3E86C65CBDC303D1209F45B24FB163893ABCDCFE016A618B
+EF5577344EFA756DA4BA55B4F5783D97398D9F0BF1E2C4ADC5CEE0197D7FE6AB
+5F2993332A8F5D1505292307642A38A29217AC559BAC069186B81A0CD3061A8C
+87F94EDE385C9E391EFF99F1D4BFEC8954F396314A75D66E8051B334048B243D
+B4997AFB7594C8A99364AC553875A4E136C4E6BE5CC819D74C6B6A242FF119C5
+D65141D2C57A82C6A23FB2CCE13F7B0F9D0F1F638A285B828EFC971A6DA81560
+7069805EF29C3B54DCCC41304E41EDA03F49455FE03D4778544926538ACF49C0
+145CECAE7C3E55C7524883C0F3AFE5434A728960653BE4A85348763E2A32A12E
+7AEDF42B6CD1FA2F3233A677F914008A55EA0904BC3AB68A578F71EB628A3B9C
+D044EE55D7E0199A1D12254371E9178CD23B04EA9652F138104C81DB89625F79
+8DE1334A827DCF796A23EA8B51A1E694F2DD4F90A9ACCD4444B598DEB7C03424
+325FDABF04A476D9F5ECFA4F3FC0117FDBE5038FED06A0A37081D72158A97BC9
+ABE850B51A6875B8D71C31F6A47B65DEEC08C1A7A2939A116365B21B58324065
+F0764301DA41634E83358DBD3D5443883F2CF9776FEFEB5671D036DD05FF9FEC
+48E47776C13E10F7FD4EB2E542B4A8D74E1D50DAE2FD949235838C33A9940EB1
+EF77C7655DDC5C2CE4C16303DF83E4CC78DF773AD2E3273FF071E4B04D0FC8E3
+FAA7EE4880A63C620F02E13AB11D05A61C97FF1189CDC9BDD7D5DCD77FE5E59A
+80E0FFA93B933B37CC51E382C264281704D35A8FC56D31E7B33A020C25F22A25
+91FE54E44380484DD5676FFBBB49AFDE6682FFAE124A8A126483C207E6442F28
+5AE4A7BF8CF7FE15A764212C5D69B290D174D586E7D7720DE5A4C39C00B7CBCE
+EC1C270661EB0254A773D951F44170306A22866CB23F9C968817532F7BAF9B50
+C4CC8F167D11E24F3C673F466BDA42936AA8EE3A28EA11C0BF7C67598DB45862
+EE00FDF6A9FD7A1A66F3616E1910422D17466D169FF553F2FDDD533A7E0271E7
+870EAF618B153D88BDC83FB599151E6385C2EF9A10D8E60FAB9769D92F230838
+F68922A3CB0A464A4CC11DB15F452B990752F49C114A5CC8B683F44C6C430D3F
+4B72157F1D80D39672CB326DD0FD543B0F269B70C3F9901DA2A4308CAB155C1D
+0641FAD7B74CB1CF11FDE1078EDF5B97C18C6E21CCB01768537D5E4860BC090E
+45617C7D605EB165C1882B111A0FE68ED219D5066B17C10EA722965A5B5AED1B
+AB06E59D586C1FA30F806B01EBB9B2F16890AA768D4BCF8714F5DDA695E00D5F
+D60063E20356610830D24DB4BBF20C6FB34F9D0772AA79904A81FBEA67E59254
+0E93D259FCA04ACE24FDF64644472B09C8919E7FF0775744460026E6BF994E85
+20128B9E699F5AE3E54FFC891B59FDADA39D0F270571FC1349E036B95D7A138C
+73A4C487E1009677EEEBFF2D4AC4FC8B54082F9556104959F6D5FB7F93F55435
+82AC9F999D2BD61FECF71669FD2A92F79CA12C8ACA80281E5023EA0F5F29C545
+DA6912173E8C03774EBA0F6CF988E97360A0F025EBB33A4D96F60542F8CC55BE
+9394D13D5416149D28FE1E2737D99888846182153CF8412750DC06DE7D69CA8B
+4E2EF5F60BF49E8FA303307DD211ECB9D48419A61A0F1FAF7F27D047EBDE5E47
+10BBB3D73217BD6D02328039B28F6289ED67E3685380C89BD7C863B10A5CD28C
+74FE3D9DD16CD17670DB0372953E2507669C4C790FD78571FD084870D2BCBE41
+2BB1F34E907CC27345776DE346EFBEFBB3E1CDB281C57EF9C35E201605B9FE9C
+29D7C668D3D978773AF7B0ECD12DA7F3DA93549740246B962AABE06B35C70960
+5E2584C24AA8C85D57F30D26997B708728970F2088C7CDB31951F15553CA8F84
+10F6736DEB73F54C8C7385ECE031E21659919200E0405F7C125C2F02E9B91CA5
+F7F16189ACF40DABD4E49ABD0655B38A9F45DC55580FF6117EFE285B244E9246
+73B994BA85A3B34189E5E501D7E62B75DA9264EA295D04C2376572D33EC65660
+3AED8708ECBD0804C5192BEC8E76DB9612E61AE8F4A7EC82C95AE01AE4B2AB38
+E0AB1E8FDEF7FE0B767F81D85196D46F915AB8CB3E9228293762EFD7DE31F4F9
+0DE2FC0E65E7D82B882A809DF681F19DFA11443487B6280518579F98B4F1A502
+EA4B74C001DE061E8C09BF15FB500A26AB8A63EC8D7957DB52FB736D6AB6D401
+ADCF4213EA6CF340E1156D125DBD8B19F456008F8094E98B06EB6DA5096ABDC5
+6BACB34BFA69816F1F2265E0117177A5544502BA91AC3593E2930AA30D276CA7
+59A56BCCF1CECA5A74D6BAA897BB4103249F13C8504DE04E5C0E22A733D7CB62
+153DC1E8534706C59D20F2BB5966CCE975C05C4F95D1BB69C7D45FF329F8C01F
+CCDFDFA2C0941B083203D1F0A7648B7F6B8C33A1115081A1DB09D9541088494C
+AF44453108961AB4161A40A2A1A8F1B1C454E181D9AD054BA86FEBE2A1B901B9
+B9A9BA4B9633F90D45C2138CCF1EAB4BEEEF2336EDE66FB7CFD0A84A226ACF64
+680C748BB7BDFB62F93C2BEE638ABB3A59F3CD19055AC504A0E160CB13A7C1F5
+1D1AD0095D138A3FD85F25CCF4304E82D758E963C69CB8392EA5C995B7D1802C
+9D7CB493E2F572E9998346A157CF9FCBFB95846088C7376AC82F58BE46B16281
+A87532D5F6EE9E85C23C3F1960FF99CD970E6EDD1BE8D492D312359BDFBDF59E
+E0B6738BEDC5F16B7EBE0F7A775EAB4BE2CBD067F7F77CAF443A4BD9AE10B7FE
+7173FEE658922032B21F77A7A48325E51CC52FED690023344E49EF2614F0A63F
+D474E6D89BE40194235F5BD341B449DFBBCC9E8AF23241A36EAA316BAB5FFD8C
+69DA203716290169CB07A0EEE2BC4BD005CC548090B8D4EB82104C83696FDB7E
+10D4B935924EA19E7C35E9379F204C10BB0854C55E7867194D9D3544EA1DA675
+5E9B3A0792BE2E87B611F92BBA99C01ED1F21366699464733D774BEC5B0A2B4C
+6E8C68CFAEF8E0C69A1685BCCEBD8900C1E9C5CD26808696D16D125DAB3E5A79
+4A9484029864AD3BBDA91883A4D5DB1DF9BF789D7F18A6D5BF13A72680682A5B
+196BC80E977E553FBD0EA62F08952013D77814F6ADDFC5C68A667B43B26FCD50
+EDD49E8F1B6DD262DC0B4E2EF5A1150B3DBCA61E4F0ABA689BF862FB62AB65CA
+1E64F0C816D45BD236B557E1A8668EC76644EF5F607205E3F789CE757D4FDCE3
+A4D9F039F1CB8A40AA352BFBAD6643E30579D4265002BD3EFA420E275FEAA4A9
+412E33C557C0625F06A565F856989D62581CEB59A4877CA6DE7935E7D7CD2D81
+029F282754F1D25B522EE9374EED11147A229A44D5447F3265226E0889DB7C4C
+2D262A6CBD15E4565C324A5508564CFEE3534C4572581E818396620BF86AF511
+3200CCAA7DB922183B3D4DD6A9C2429AAEE0A1384C74A61715E96C5D69A4E4FF
+6408DD6ECF517D44BC8130971441BBD4819D25993C4CBED0591CEA1D2BDEB54D
+CBF02D516A2AB97E6EBAA7D883F90C521C130BB0049FB9C22A55402C162D1E54
+2EB04A71BBCC56812460362093742AC01579A95F3E0E1BE0C6E26FAACBF5980A
+A1EC5FE4811A1506C01931ABD5AF4800CD13EFD3F6F5B5F1A862EB3E7EA70CED
+FD99468911AB9C55E8A5CFE3F17855AC3825BBF7EDDDB6E44603F8E9FD0DBB51
+A990B69EB47CBE44770BFD17A9DBA044FDC61AC83F5017B5C0D2E6521A217503
+430D75EF4BFE5FCAE780CF8BAC999C8B3947AE40BC76CF2BCA11BE8D4EB40BC7
+EF1E2791B9F186FE4CC9426E909162AA6B8ED62121844A58A7AD67A119A94F8E
+875129AF889A8B2D49B7822EDB60132A4CFFCD4D5484E9967A3045B9AFD4B608
+A9BB626BF68B1F304E2E4E8F3E492E07DEBA18627ED11EB09E3C619B1DF9C7F7
+26F8BF1463A1E2DE2156B15FD44199E7A0C130EFC3EA967C0C8EAC057D821733
+7C923B779B2EB4C7F8CDA663708FEDFDDD2359B1DB313CCC890F7188DC1078C2
+FC523A2AD140ED1197301E87CA2F279B3545829AB7BDB40FC5FCFE5034EA7A70
+EF18705FD531098B573691DC707570426AA6FE1462CF9DBF00DC67D81FB83FFE
+CFDBB288207180B0BD705938B41AA48E68E557186BAEAD79759D699266A9A9DD
+D7477F7F45E7F28C7F63F597A7E67762DED6C385EB2FBE9CFD52A5D714741720
+5BB4ADD90DDBA6C760C231A58AE55F2EAD1EE93F11C5E8C708F22DAB168469B9
+BD3FDCD68EADBC1CC464C54E0D16C93269010EBAA0C5370E8E945C7BAFF08A95
+940A574143B6F9670D39FB03A25E49E164CD4DE8B3131FAC9D15F5B0447CCFC7
+4452E108BBA7358698B0FAB49402B21C3A69000223667EF56BC5873CEC8D8EE5
+F019652EA7C433C11D7B0C4996F2D21899DCBDED1A8D530733A7C92B925F75B1
+D2D6A25B3862BAB0025A66E29BB5744AF1F68CB10DE298C36B620C115B942F90
+3912F0D9646907EFCAAD7C05E5E0B053F3639EAE98A853466C5F0ADB18495648
+262C3FB2813EEA2D2211B71F1447522E0B4C5C745EA34A154214D57C8943893C
+248CA1CF244490775F70B52BB2D959A9D892A241C298C495FB39AC7BF0D6C655
+3F150712AA065FCB56C3EB03F8A9CA8268DB79C11B4CEC8C9E84DFDD2BA3671E
+CF1B12AEDCEAF5884548F7F9EA628262CE709321E47F8B4214C2A108E5ABD663
+783CD6AC5984CC08DBEBA75F7ACCF2A3A6CA42BE5A3777080F30182C1C038F6C
+9426B5488684A0E82966E4C8EE3ECD5674B6E5508F43E0526E14F38618BE6DE9
+EE175DA4CA32A6405D726C411D89C755A8ED1F73D9DBE67FEADC9DB448668FB3
+CB6838C400F05B902D27F3AFA0BA11148541288201DFEC8A08D6B3D1D972AA53
+8DAE043A766E84CEC8894D30B7E77CAC1683363E747A4FEE17D9B83BA9754796
+20FC1A0AEED75C71EF48FED0E99317B67F690F615CCD479133B7E08DD8EB46CA
+D5895810E01E07ED6D17BB54F5B9AA19D2B1ECF2795E777227B12242C07BCAA7
+2D5F6AA8083B43C6928FA28EECE66CB90899763AA1037E4C1AC76741097DF3F8
+6BD297528CC9F538C5AEEFD5A7038CAA230A09DE750B740DC8398072A0876528
+946BE8088F6EB74ECA0CC1DA30A43AC47351AC7934E90A88DAD80EC957087768
+B9893241462946A9C5A843D454DF125A906D70D9C4812EB36759537E0372D2B5
+3F4905D8F605EBA26C49A167D48E177BB6821FD39E775D9569D387673B976306
+57537EB480132851DED5740C2E175D5B08CF40BE96EC1810865DEE2B52B1CF44
+CDE1607EDD185CAC4330016DA7343C9F3DCD21BB3492FA1D027CF81E76E45358
+55F5DD22884FB50B80A2388F673EF7FD7CFF4AD4AC212EC5BBFED0EAF7ABD2FE
+1FD35C0C7360DA40622DA59FEA983B702A6C53FB975EA85DF0A5DACFCC8C8549
+786DAE9D57A2029DE7185AD4E283AE57618BA3CF37744C18C882678F34A161D3
+8ADD4757DAB9B77FB891EE0DE945D551043A286426751CD6A62279E99F21D0F1
+C4E3042E8A474AF9920CF416B50A94ED092661711C4FF54A8606E1912066F340
+59CD492D9BEA791E7AC9486E6CB214169B238084ECA7515D03F9F78601AFC144
+18EA9CF8C814CA5D2F05AE6D23BED9E8A0D41E323CF572CE98599BAEA8562285
+6327E1B8A141E395C2FFE6DC90F6648598DF8B8389D8AB2E1D982F1FDC71A6CF
+51994FAB23671F641D0A54906AD41759FFC09A2273D48AE572258FAFB3B768E7
+2CCDACF0DC0125F7E1D56388B817F0ACF62258E3F80317494E3D21F8A317AC28
+A82E16A930CBB531D05F7BA59667AFD26474333C201768124C80E97F92EB0A6D
+73AE9A8BDD37FA688920AE2A5AF906CAF90ECBA54E5F6ADBBBC0F45DE40F147E
+B2F17C816231D41ACB54D82D2D3498A9D41A4172BFDB56CFA196986AD6D28430
+983186893BA6C30408997347FB265BD80EE95E011E6C397D1D1592CC1C34AEA1
+7706D3B35D946E0C0790652F688879A53231202AB3A6B495E6E251E6829F0549
+94F5A375E8AC0696660E002B6C195446D0E08BB7BE160EFCF356A81BEDA21934
+B3365D78CEDCCDB705594895418C48D91C9AD97637D37DFE69624F7885106965
+C574270839038CC543B62CC351A2FEB42F664810D5613D27B1D86351C669FE8C
+37787213F68E0657240DF253186228CA5CEC4283A4C0A125F6262B566190B701
+3AF5BDAD86A1F84029FDD7ACB5A11A23107E5413E67809AB9DA6BA5C3CCCC2EA
+9D4270831EAD274C3AC9DF833BC8EBF339376EADEE48D748C4F71C97B43DBA6A
+FD014C2F73B6F18EB9E52F3A7B1994B00E38020C6EF4529C318386E1F62ADA34
+95B878B5F1A3F2D7FE2EE48CC8FFB79E3140993DB96AD77281A7D314880464BD
+0C205CE8A86714EE8B3A334E002DD04AFBE3C3B95E8A2B4F41CEAFA6A2CF2F95
+A06B2D1412E221D968E847313C86AAB3DE19725D2A380484CB7FE6B636DEB3BD
+1C01FF657B8287339DB0A67F62AA692F14BD29175748552DF93E3247CCF71BC9
+04D1F745A4159C7AC635EF6A41106A821F3017BCA5C0D8FCBB1ABCCED6302ED7
+B9DCE19F8E88C23CD19CFA9550FC79A609942ED70B8E6BBF29422A2D7E28B9D1
+4797414CF2766E7CC48626049DAD906C45EA994EF5C3352342A127081B7632EA
+61293A7A688022E6380B68CB3E60D5F464F8B2D1F185F2C56D2879C65F1EDC6C
+E31AC52A05C95D96DFE2AB700DD868C718EA003669F163CDFFA3568DC92941D7
+471E6B53BB763A3A6CEEC8771287709FC88D048749CACC598977ED1676EF1F16
+34B7285528C06B059EB6528368F622FF958555AFF122823B4FCC62E4AA36BAC0
+B7CD09BB34A19A926A66AF74F996D7A6FDFBBCAE7BAC2F7C6F9432FFB4B767E5
+5EC547750CC6C4CD4202F7E289B7E8A842D8046BF9D3F38F5B401DA65FC0A792
+4EC3116BAD5B959468EDBCA52C433209E602EED5066765E2489C6BBB0F094CE5
+5FC789A3413D958578ABDDE73153553092916729EFB532556990ADBC56865AFC
+A9812247D518F0E035E08D9DEA3C3764041F02301DD5C66EA559B3D47E18CE25
+BB4A6691C178902DDE9B1ECFE9CAC98190BB39465B5B1736B15583708878CE1B
+E81750434A6D847218D4348AF6C56A2FFDFFE0934DDE3BB25A9678FA201A67E0
+717A6311D0E49A9474A29B0A251473F267C7F8886B9B55BCB6F609D98D2E8038
+718ACEEA982EC047A5FA3F28F9546A8010A1DF995F41E11E64B997046CE7EB2B
+3556D4B27D23AF70E78A0EE95BF48FB0F7C217E39EE61DB6635EB84434464C73
+2D3B0F36AC2959BF039038A018ED1DE4CF72B7BD7A51D5CCB9FEC0B2B1968E19
+23491E9C97ADB33FC9B09FD5EABAD326D0BDBE90AFB69122C71A488F401CD387
+45DD12DD92022DB180DDCBB531ABA3CA4A5892F3E1D3528384596FD646ED97A2
+C9E2C29F1299FA52159F7CF060810CB99F2B1B261708AAF94AFA022F9A3CD267
+11432D4DF4F9F7BCF1434F9D9C94EC5BEBC6C98432BC339E0DB2461623880887
+1CFE5DA076E7A3CED52E2E307B1CDDB1D0E273A4774177DB4664C75B69C857BC
+FB693B1E0DE72065D2B6BF7466FD272B1BF9DA5B838E04DA93C92F7A526F4389
+3063774999A51F2A863D118592
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -2295,7 +2302,7 @@ F95D4002737966FF15A0B67C5B717AFF0E95B9F8F3498D7CCB538FF133A977EF
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
-TeXDict begin 55380996 39158280 1000 600 600 (org-ref.dvi)
+TeXDict begin 55380996 39158280 1000 600 600 (orgcard.dvi)
@start /Fa 242[61 13[{ TeXbbad153fEncoding ReEncodeFont }1
49.8132 /CMSY6 rf /Fb 134[32 1[43 32 34 24 24 24 1[34
30 34 50 18 32 1[18 34 30 19 27 34 27 34 30 13[34 44
@@ -2323,10 +2330,10 @@ TeXDict begin 55380996 39158280 1000 600 600 (org-ref.dvi)
rf /Fi 133[31 37 37 51 37 39 27 28 28 37 39 35 39 59
20 37 22 20 39 35 22 31 39 31 39 35 2[35 1[35 3[53 72
53 53 51 39 52 1[48 55 53 65 44 55 1[25 53 55 46 48 54
-51 50 53 6[20 6[35 35 35 1[35 20 24 20 55 35 27 27 20
-2[35 59 35 20 19[39 39 41 11[{ TeXf7b6d320Encoding ReEncodeFont }70
-66.4176 /CMR8 rf /Fj 141[57 2[69 76 6[69 42 63 76 61
-1[67 14[103 2[103 1[131 9[99 16[69 69 1[69 1[46 3[53
+51 50 53 6[20 4[35 1[35 35 35 1[35 20 24 20 55 35 27
+27 20 2[35 59 35 20 19[39 39 41 11[{ TeXf7b6d320Encoding ReEncodeFont }
+71 66.4176 /CMR8 rf /Fj 141[57 2[69 76 6[69 42 63 76
+61 1[67 14[103 2[103 1[131 9[99 16[69 69 1[69 1[46 3[53
53 40[{ TeXf7b6d320Encoding ReEncodeFont }19 119.552
/CMBX10 rf end
%%EndProlog
@@ -2339,7 +2346,7 @@ TeXDict begin
%%Page: 1 1
TeXDict begin @landscape 1 0 bop -169 -357 a Fj(Org-Mo)t(de)45
b(Reference)h(Card)g(\(1/2\))546 -242 y Fi(\(for)23 b(v)n(ersion)h
-(3.13\))-150 -42 y Fh(Getting)37 b(Started)-150 125 y
+(3.15\))-150 -42 y Fh(Getting)37 b(Started)-150 125 y
Fi(Put)24 b(the)h(follo)n(wing)e(in)g(y)n(our)h Fg(~/.emacs)931
102 y Ff(1)-150 199 y Fg(\(autoload)38 b('org-mode)g("org")e("Org)h
(mode")g(t\))-150 268 y(\(autoload)h('org-diary)g("org")f("Org)f(mode)h
@@ -2467,81 +2474,82 @@ y Fg(<vm:folder#id>)950 b Fi(VM)23 b(message)2046 4073
y Fg(<vm://myself@some.where)q(.org)q(/fo)q(lder)q(#id)q(>)105
b Fi(VM)23 b(remote)2046 4143 y(W)-6 b(anderlust)25 b
Fg(<wl:...>)h Fi(and)e(RMAIL)f Fg(<rmail:...>)k Fi(lik)n(e)c(VM)4242
--364 y Fh(T)-10 b(ables)4242 -255 y Fd(Creating)25 b(a)i(table)4242
--168 y Fi(insert)c(a)h(new)g(Org-mo)r(de)g(table)330
-b Fg(M-x)36 b(org-table-create)4242 -98 y Fi(...)30 b(or)23
-b(just)h(start)g(t)n(yping,)g(e.g.)173 b Fg(|Name|Phone|Age)39
-b(RET)d(|-)g(TAB)4242 -28 y Fi(con)n(v)n(ert)25 b(region)f(to)g(table)
-741 b Fg(C-c)36 b(C-c)4242 41 y Fi(...)30 b(separator)24
+-364 y Fh(T)-10 b(ables)4242 -265 y Fd(Creating)25 b(a)i(table)4242
+-181 y Fi(insert)c(a)h(new)g(Org-mo)r(de)g(table)330
+b Fg(M-x)36 b(org-table-create)4242 -111 y Fi(...)30
+b(or)23 b(just)h(start)g(t)n(yping,)g(e.g.)173 b Fg(|Name|Phone|Age)39
+b(RET)d(|-)g(TAB)4242 -41 y Fi(con)n(v)n(ert)25 b(region)f(to)g(table)
+741 b Fg(C-c)36 b(C-c)4242 28 y Fi(...)30 b(separator)24
b(at)h(least)f(3)g(spaces)537 b Fg(C-3)36 b(C-c)g(C-c)4242
-128 y Fd(Commands)26 b(a)n(v)-5 b(ailable)25 b(inside)j(tables)4242
-215 y Fi(The)17 b(follo)n(wing)f(commands)i(w)n(ork)f(when)g(the)h
-(cursor)e(is)g Fc(inside)k(a)f(table)p Fi(.)4242 285
+113 y Fd(Commands)26 b(a)n(v)-5 b(ailable)25 b(inside)j(tables)4242
+197 y Fi(The)17 b(follo)n(wing)f(commands)i(w)n(ork)f(when)g(the)h
+(cursor)e(is)g Fc(inside)k(a)f(table)p Fi(.)4242 266
y(Outside)24 b(of)e(tables,)i(the)g(same)f(k)n(eys)h(ma)n(y)f(ha)n(v)n
-(e)h(other)g(functionalit)n(y)-6 b(.)4242 371 y Fd(Re-aligning)25
-b(and)i(\014eld)h(motion)4242 458 y Fi(re-align)22 b(the)i(table)g
+(e)h(other)g(functionalit)n(y)-6 b(.)4242 351 y Fd(Re-aligning)25
+b(and)i(\014eld)h(motion)4242 435 y Fi(re-align)22 b(the)i(table)g
(without)g(mo)n(ving)g(the)g(cursor)70 b Fg(C-c)36 b(C-c)4242
-528 y Fi(re-align)23 b(the)h(table,)g(mo)n(v)n(e)h(to)f(next)h(\014eld)
-311 b Fg(TAB)4242 598 y Fi(mo)n(v)n(e)24 b(to)h(previous)e(\014eld)762
-b Fg(S-TAB)4242 667 y Fi(re-align)23 b(the)h(table,)g(mo)n(v)n(e)h(to)f
-(next)h(ro)n(w)328 b Fg(RET)4242 754 y Fd(Ro)n(w)26 b(and)h(column)g
-(editing)4242 841 y Fi(mo)n(v)n(e)d(the)h(curren)n(t)f(column)g(left)
-544 b Fg(M-LEFT)4242 911 y Fi(mo)n(v)n(e)24 b(the)h(curren)n(t)f
-(column)g(righ)n(t)497 b Fg(M-RIGHT)4242 980 y Fi(kill)23
-b(the)h(curren)n(t)g(column)731 b Fg(M-S-LEFT)4242 1050
+505 y Fi(re-align)23 b(the)h(table,)g(mo)n(v)n(e)h(to)f(next)h(\014eld)
+311 b Fg(TAB)4242 574 y Fi(mo)n(v)n(e)24 b(to)h(previous)e(\014eld)762
+b Fg(S-TAB)4242 644 y Fi(re-align)23 b(the)h(table,)g(mo)n(v)n(e)h(to)f
+(next)h(ro)n(w)328 b Fg(RET)4242 728 y Fd(Ro)n(w)26 b(and)h(column)g
+(editing)4242 812 y Fi(mo)n(v)n(e)d(the)h(curren)n(t)f(column)g(left)
+544 b Fg(M-LEFT)4242 882 y Fi(mo)n(v)n(e)24 b(the)h(curren)n(t)f
+(column)g(righ)n(t)497 b Fg(M-RIGHT)4242 952 y Fi(kill)23
+b(the)h(curren)n(t)g(column)731 b Fg(M-S-LEFT)4242 1022
y Fi(insert)23 b(new)i(column)f(to)g(left)f(of)h(cursor)f(p)r(osition)
-104 b Fg(M-S-RIGHT)4242 1137 y Fi(mo)n(v)n(e)24 b(the)h(curren)n(t)f
-(ro)n(w)f(up)678 b Fg(M-UP)4242 1207 y Fi(mo)n(v)n(e)24
+104 b Fg(M-S-RIGHT)4242 1106 y Fi(mo)n(v)n(e)24 b(the)h(curren)n(t)f
+(ro)n(w)f(up)678 b Fg(M-UP)4242 1176 y Fi(mo)n(v)n(e)24
b(the)h(curren)n(t)f(ro)n(w)f(do)n(wn)594 b Fg(M-DOWN)4242
-1276 y Fi(kill)23 b(the)h(curren)n(t)g(ro)n(w)g(or)f(horizon)n(tal)h
-(line)291 b Fg(M-S-UP)4242 1346 y Fi(insert)23 b(new)i(ro)n(w)e(ab)r(o)
+1245 y Fi(kill)23 b(the)h(curren)n(t)g(ro)n(w)g(or)f(horizon)n(tal)h
+(line)291 b Fg(M-S-UP)4242 1315 y Fi(insert)23 b(new)i(ro)n(w)e(ab)r(o)
n(v)n(e)i(the)f(curren)n(t)g(ro)n(w)285 b Fg(M-S-DOWN)4242
-1433 y Fi(insert)23 b(horizon)n(tal)i(line)e(b)r(elo)n(w)h(the)h
-(curren)n(t)f(ro)n(w)100 b Fg(C-c)36 b(-)4242 1503 y
+1399 y Fi(insert)23 b(horizon)n(tal)i(line)e(b)r(elo)n(w)h(the)h
+(curren)n(t)f(ro)n(w)100 b Fg(C-c)36 b(-)4242 1469 y
Fi(insert)23 b(horizon)n(tal)i(line)e(ab)r(o)n(v)n(e)i(the)g(curren)n
-(t)f(ro)n(w)100 b Fg(C-u)36 b(C-c)g(-)4242 1589 y Fd(Regions)4242
-1676 y Fi(cut)25 b(rectangular)f(region)758 b Fg(C-c)36
-b(C-h)g(C-w)4242 1746 y Fi(cop)n(y)25 b(rectangular)f(region)715
-b Fg(C-c)36 b(C-h)g(M-w)4242 1816 y Fi(paste)25 b(rectangular)f(region)
-695 b Fg(C-c)36 b(C-h)g(C-y)4242 1885 y Fi(\014ll)23
+(t)f(ro)n(w)100 b Fg(C-u)36 b(C-c)g(-)4242 1553 y Fd(Regions)4242
+1637 y Fi(cut)25 b(rectangular)f(region)758 b Fg(C-c)36
+b(C-h)g(C-w)4242 1707 y Fi(cop)n(y)25 b(rectangular)f(region)715
+b Fg(C-c)36 b(C-h)g(M-w)4242 1777 y Fi(paste)25 b(rectangular)f(region)
+695 b Fg(C-c)36 b(C-h)g(C-y)4242 1847 y Fi(\014ll)23
b(paragraph)h(across)g(selected)h(cells)399 b Fg(C-c)36
-b(C-q)4242 1972 y Fd(Calculations)4242 2059 y Fi(Except)31
+b(C-q)4242 1931 y Fd(Calculations)4242 2015 y Fi(Except)31
b(for)e(the)i(summation)f(commands,)h(these)g(need)g(the)g(Emacs)4242
-2129 y(calc)24 b(pac)n(k)l(age)i(installed.)4242 2215
-y(replace)e(curren)n(t)g(\014eld)g(with)g(result)f(of)h(form)n(ula)129
-b Fg(C-c)36 b(=)4242 2285 y Fi(...)30 b(same)24 b(calculation)h(for)e
-(rest)g(of)h(column)267 b Fg(C-u)36 b(C-c)g(=)4242 2355
-y Fi(re-apply)23 b(all)g(stored)i(equations)g(to)f(curren)n(t)g(line)96
-b Fg(C-c)36 b(*)4242 2425 y Fi(re-apply)23 b(all)g(stored)i(equations)g
+2085 y(calc)24 b(pac)n(k)l(age)i(installed.)4242 2169
+y(set)e(and)g(ev)l(al)g(column)g(form)n(ula)567 b Fg(C-c)36
+b(=)4242 2239 y Fi(set)24 b(and)g(ev)l(al)g(named-\014eld)h(form)n(ula)
+433 b Fg(C-u)36 b(C-c)g(=)4242 2308 y Fi(edit)24 b(form)n(ulas)f(in)g
+(separate)i(bu\013er)473 b Fg(C-c)36 b(')4242 2378 y
+Fi(re-apply)23 b(all)g(stored)i(equations)g(to)f(curren)n(t)g(line)96
+b Fg(C-c)36 b(*)4242 2448 y Fi(re-apply)23 b(all)g(stored)i(equations)g
(to)f(en)n(tire)g(table)101 b Fg(C-u)36 b(C-c)g(*)4242
-2511 y(TAB)p Fi(,)30 b Fg(RET)f Fi(and)f Fg(C-c)37 b(C-c)28
+2532 y(TAB)p Fi(,)30 b Fg(RET)f Fi(and)f Fg(C-c)37 b(C-c)28
b Fi(trigger)h(automatic)g(recalculation)h(in)d(lines)4242
-2581 y(starting)d(with:)31 b Fg(|)36 b(#)f(|)p Fi(.)4242
-2668 y(rotate)23 b(recalculation)f(mark)g(through)g(#)g(*)g(!)30
-b(^)p 5533 2668 22 4 v 47 w($)71 b Fg(C-#)4242 2755 y
-Fi(displa)n(y)24 b(column)g(n)n(um)n(b)r(er)f(cursor)h(is)f(in)354
-b Fg(C-c)36 b(?)4242 2824 y Fi(sum)23 b(n)n(um)n(b)r(ers)h(in)f(curren)
-n(t)i(column/rectangle)143 b Fg(C-c)36 b(+)4242 2908
+2602 y(starting)d(with:)31 b Fg(|)36 b(#)f(|)p Fi(.)4242
+2686 y(rotate)25 b(calculation)g(mark)e(through)i(#)e(*)h(!)31
+b(^)p 5487 2686 22 4 v 49 w($)115 b Fg(C-#)4242 2770
+y Fi(displa)n(y)24 b(column)g(n)n(um)n(b)r(er)f(cursor)h(is)f(in)354
+b Fg(C-c)36 b(?)4242 2840 y Fi(sum)23 b(n)n(um)n(b)r(ers)h(in)f(curren)
+n(t)i(column/rectangle)143 b Fg(C-c)36 b(+)4242 2924
y Fi(cop)n(y)25 b(do)n(wn)f(with)g(incremen)n(t)625 b
-Fg(S-RET)5857 2885 y Ff(4)4242 2995 y Fi(A)27 b(form)n(ula)g(can)h
-(also)f(b)r(e)h(t)n(yp)r(ed)g(directly)g(in)n(to)g(in)n(to)f(a)h
-(\014eld.)42 b(It)28 b(will)4242 3065 y(b)r(e)c(executed)i(b)n(y)e
-Fg(TAB)p Fi(,)g Fg(RET)h Fi(and)f Fg(C-c)36 b(C-c)p Fi(:)4242
-3152 y(Example:)31 b(Add)24 b(Col1)g(and)g(Col2)522 b
-Fg(=$1+$2)4242 3221 y Fi(...)30 b(with)24 b(prin)n(tf)f(format)g(sp)r
-(eci\014cation)387 b Fg(=$1+$2;\045.2f)4242 3291 y Fi(...)30
+Fg(S-RET)5857 2900 y Ff(4)4242 3008 y Fi(A)25 b(form)n(ula)f(can)i
+(also)f(b)r(e)h(t)n(yp)r(ed)g(directly)g(in)n(to)f(in)n(to)h(a)f
+(\014eld)g(and)h(will)4242 3078 y(executed)31 b(b)n(y)e
+Fg(TAB)p Fi(,)h Fg(RET)g Fi(and)f Fg(C-c)36 b(C-c)p Fi(.)47
+b(A)28 b(leading)h Fg(=)g Fi(in)n(tro)r(duces)h(a)4242
+3148 y(column)24 b(form)n(ula,)e Fg(:=)j Fi(a)e(named-\014eld)i(form)n
+(ula.)4242 3232 y(Example:)31 b(Add)24 b(Col1)g(and)g(Col2)522
+b Fg(=$1+$2)4242 3301 y Fi(...)30 b(with)24 b(prin)n(tf)f(format)g(sp)r
+(eci\014cation)387 b Fg(=$1+$2;\045.2f)4242 3371 y Fi(...)30
b(with)24 b(constan)n(ts)h(from)e(constan)n(ts.el)352
-b Fg(=$1/$c/$cm)4242 3361 y Fi(Apply)24 b(curren)n(t)g(\(for)f(this)h
-(column\))g(form)n(ula)200 b Fg(=)4242 3431 y Fi(Sum)24
-b(all)f(n)n(um)n(b)r(ers)g(ab)r(o)n(v)n(e/left)j(of)d(cursor)292
-b Fg(=sum)36 b(/)g(=sumh)4242 3500 y Fi(Sum)24 b(just)f(the)i(3)f
-(\014elds)f(closest)i(to)f(cursor)279 b Fg(=sum3/=sumh3)4242
-3587 y Fd(Miscellaneous)4242 3674 y Fi(toggle)25 b(visibilit)n(y)d(of)i
-(v)n(ertical)g(lines)474 b Fg(C-c)36 b(|)4242 3744 y
-Fi(exp)r(ort)25 b(as)e(tab-separated)j(\014le)370 b Fg(M-x)36
-b(org-table-export)4242 3813 y Fi(imp)r(ort)23 b(tab-separated)j
-(\014le)447 b Fg(M-x)36 b(org-table-import)4242 3900
-y Fd(T)-7 b(ables)27 b(created)f(with)h(the)g Fg(table.el)i
+b Fg(=$1/$c/$cm)4242 3441 y Fi(sum)23 b(from)g(3rd)h(hline)f(ab)r(o)n
+(v)n(e)i(to)f(here)411 b Fg(:=vsum\(&III\))4242 3511
+y Fi(apply)24 b(curren)n(t)g(column)g(form)n(ula)518
+b Fg(=)4242 3595 y Fd(Miscellaneous)4242 3679 y Fi(toggle)25
+b(visibilit)n(y)d(of)i(v)n(ertical)g(lines)474 b Fg(C-c)36
+b(|)4242 3749 y Fi(exp)r(ort)25 b(as)e(tab-separated)j(\014le)370
+b Fg(M-x)36 b(org-table-export)4242 3819 y Fi(imp)r(ort)23
+b(tab-separated)j(\014le)447 b Fg(M-x)36 b(org-table-import)4242
+3903 y Fd(T)-7 b(ables)27 b(created)f(with)h(the)g Fg(table.el)i
Fd(pac)n(k)-5 b(age)4242 3987 y Fi(insert)23 b(a)h(new)g
Fg(table.el)i Fi(table)582 b Fg(C-c)36 b(~)4242 4057
y Fi(recognize)25 b(existing)f(table.el)g(table)474 b
@@ -2551,7 +2559,7 @@ end
%%Page: 2 2
TeXDict begin @landscape 2 1 bop -169 -357 a Fj(Org-Mo)t(de)45
b(Reference)h(Card)g(\(2/2\))546 -242 y Fi(\(for)23 b(v)n(ersion)h
-(3.13\))-150 -36 y Fh(Timeline)37 b(and)g(Agenda)-150
+(3.15\))-150 -36 y Fh(Timeline)37 b(and)g(Agenda)-150
120 y Fi(sho)n(w)24 b(timeline)f(of)h(curren)n(t)g(org)f(\014le)458
b Fg(C-c)36 b(C-r)-150 190 y Fi(...)30 b(include)24 b(past)h(dates)793
b Fg(C-u)36 b(C-c)g(C-r)-150 288 y Fi(add)24 b(curren)n(t)g(\014le)g
@@ -2623,7 +2631,7 @@ b(C-x)g(h)2046 169 y Fi(exp)r(ort)25 b(as)e(HTML)g(and)h(op)r(en)h(in)e
b(arg)g(sets)g(n)n(b.)31 b(of)23 b(headline)i(lev)n(els,)e(e.g.)182
b Fg(C-3)36 b(C-c)g(C-x)g(h)2046 337 y Fi(insert)23 b(template)j(of)d
(exp)r(ort)h(options)423 b Fg(C-c)36 b(C-x)g(t)2046 435
-y Fi(toggle)25 b(\014xed)f(width)g(for)f(line)g(or)h(region)346
+y Fi(toggle)25 b(\014xed)f(width)g(for)f(en)n(try)h(or)g(region)295
b Fg(C-c)36 b(:)2046 534 y Fd(HTML)27 b(formatting)2046
632 y Fi(mak)n(e)d(w)n(ords)g Fd(b)r(old)897 b Fg(*bold*)2046
702 y Fi(mak)n(e)24 b(w)n(ords)g Fc(italic)898 b Fg(/italic/)2046
@@ -2676,10 +2684,9 @@ b(Lines)28 b(starting)g(with)g Fg(#)2046 3273 y Fi(are)j(commen)n(ts)g
3441 y(toggle)h(COMMENT)d(k)n(eyw)n(ord)j(on)f(en)n(try)285
b Fg(C-c)36 b(;)2046 3644 y Fh(Completion)2046 3800 y
Fi(In-bu\013er)e(completion)g(completes)h(TODO)d(k)n(eyw)n(ords)i(at)g
-(headline)2046 3869 y(start,)26 b(T)-6 b(eX)26 b(macros)f(after)h(\\)p
-Fg(\\)p Fi(",)h(option)f(k)n(eyw)n(ords)g(after)g(\\)p
-Fg(#-)p Fi(",)h(k)n(ey-)2046 3939 y(w)n(ord)d(form)n(ulas)e(after)i(\\)
-p Fg(=)p Fi(",)g(and)g(dictionary)g(w)n(ords)g(elsewhere.)2046
+(headline)2046 3869 y(start,)28 b(T)-6 b(eX)27 b(macros)g(after)g(\\)p
+Fg(\\)p Fi(",)h(option)g(k)n(eyw)n(ords)g(after)f(\\)p
+Fg(#-)p Fi(",)h(and)2046 3939 y(dictionary)c(w)n(ords)g(elsewhere.)2046
4037 y(Complete)h(w)n(ord)e(at)h(p)r(oin)n(t)702 b Fg(M-TAB)4242
-364 y Fh(Calendar)36 b(and)h(Diary)i(In)m(tegration)4242
-208 y Fi(T)-6 b(o)35 b(include)g(en)n(tries)g(from)f(the)i(Emacs)f
@@ -2738,7 +2745,7 @@ b Fi(with)g(the)h(cur-)4242 3574 y(sor)h(still)g(in)g(a)h(line)f(to)h
Fg(org-CUA-compatibility)p Fi(.)4535 3770 y Fb(Cop)n(yrigh)n(t)4838
3768 y(c)4821 3770 y Fa(\015)d Fb(2005)i(F)-5 b(ree)21
b(Soft)n(w)n(are)i(F)-5 b(oundation,)20 b(Inc.)4795 3826
-y(v3.13)h(for)h(Org-Mo)r(de)e(3.13,)i(2005)4912 3882
+y(v3.15)h(for)h(Org-Mo)r(de)e(3.15,)i(2005)4912 3882
y(Author:)k(Philip)18 b(Ro)r(ok)n(e)4473 3937 y(based)j(on)g(refcard)g
(design)g(and)f(format)i(b)n(y)f(Stephen)f(Gildea)4242
4022 y(P)n(ermission)28 b(is)f(gran)n(ted)i(to)f(mak)n(e)h(and)e
diff --git a/etc/orgcard.tex b/etc/orgcard.tex
index 27131a001c..e90b602b44 100644
--- a/etc/orgcard.tex
+++ b/etc/orgcard.tex
@@ -1,11 +1,11 @@
-% Reference Card for Org Mode 3.13
+% Reference Card for Org Mode 3.15
%
%**start of header
\newcount\columnsperpage
% This file can be printed with 1, 2, or 3 columns per page (see below).
% At the moment this card works quite nicely in 3 column format and
-% currently takes most of 2 pages. It is thus suited to producing one
+% currently takes 2 full pages. It is thus suited to producing one
% double-side page when printed.
% There are a couple of tweaks in the format of this card which make it work
@@ -32,8 +32,8 @@
% You should have received a copy of the GNU General Public License
% along with GNU Emacs; see the file COPYING. If not, write to
-% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-% Boston, MA 02110-1301, USA.
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
% This file is intended to be processed by plain TeX (TeX82).
%
@@ -58,7 +58,7 @@
% Thanks to Paul Rubin, Bob Chassell, Len Tower, and Richard Mlynarik
% for their many good ideas.
-\def\orgversionnumber{3.13}
+\def\orgversionnumber{3.15}
\def\year{2005}
\def\shortcopyrightnotice{\vskip 1ex plus 2 fill
@@ -467,29 +467,30 @@ Outside of tables, the same keys may have other functionality.
Except for the summation commands, these need the Emacs calc package
installed.
-\key{replace current field with result of formula}{C-c =}
-\key{... same calculation for rest of column}{C-u C-c =}
+\key{set and eval column formula}{C-c =}
+\key{set and eval named-field formula}{C-u C-c =}
+\key{edit formulas in separate buffer}{C-c '}
\key{re-apply all stored equations to current line}{C-c *}
\key{re-apply all stored equations to entire table}{C-u C-c *}
\kbd{TAB}, \kbd{RET} and \kbd{C-c C-c} trigger automatic recalculation
in lines starting with: {\tt | \# |}.
-\key{rotate recalculation mark through \# * ! \^ \_ \$}{C-\#}
+\key{rotate calculation mark through \# * ! \^ \_ \$}{C-\#}
\key{display column number cursor is in}{C-c ?}
\key{sum numbers in current column/rectangle}{C-c +}
\key{copy down with increment}{S-RET$^4$}
-A formula can also be typed directly into into a field. It will be
-executed by \kbd{TAB}, \kbd{RET} and \kbd{C-c C-c}:
+A formula can also be typed directly into into a field and will
+executed by \kbd{TAB}, \kbd{RET} and \kbd{C-c C-c}. A leading \kbd{=}
+introduces a column formula, \kbd{:=} a named-field formula.
\key{Example: Add Col1 and Col2}{=\$1+\$2}
\key{... with printf format specification}{=\$1+\$2;\%.2f}
\key{... with constants from constants.el}{=\$1/\$c/\$cm}
-\key{Apply current (for this column) formula}{=}
-\key{Sum all numbers above/left of cursor}{=sum / =sumh}
-\key{Sum just the 3 fields closest to cursor}{=sum3/=sumh3}
+\key{sum from 3rd hline above to here}{:=vsum(\&III)}
+\key{apply current column formula}{=}
{\bf Miscellaneous}
@@ -593,7 +594,7 @@ in the current directory.
\key{insert template of export options}{C-c C-x t}
-\key{toggle fixed width for line or region}{C-c :}
+\key{toggle fixed width for entry or region}{C-c :}
{\bf HTML formatting}
@@ -646,8 +647,8 @@ Subtrees whose header starts with COMMENT are never exported.
\section{Completion}
In-buffer completion completes TODO keywords at headline start, TeX
-macros after ``{\tt \\}'', option keywords after ``{\tt \#-}'',
-keyword formulas after ``{\tt =}'', and dictionary words elsewhere.
+macros after ``{\tt \\}'', option keywords after ``{\tt \#-}'', and
+dictionary words elsewhere.
\key{Complete word at point}{M-TAB}
diff --git a/etc/pl-refcard.tex b/etc/pl-refcard.tex
index df8c83566b..dfbb5a2783 100644
--- a/etc/pl-refcard.tex
+++ b/etc/pl-refcard.tex
@@ -32,7 +32,7 @@
\columnsperpage=2
-% Copyright (c) 1999, 2004 Free Software Foundation, Inc.
+% Copyright (C) 1999, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
% This file is part of GNU Emacs.
@@ -73,7 +73,7 @@
% If there were room, it would be nice to see a section on Dired.
\def\versionnumber{1.1}
-\def\year{1999}
+\def\year{2005}
\def\shortcopyrightnotice{\vskip 1ex plus 2 fill
\centerline{\small \copyright\ \year\ Free Software Foundation, Inc.
diff --git a/etc/refcard.tex b/etc/refcard.tex
index d4a2194214..5567320c98 100644
--- a/etc/refcard.tex
+++ b/etc/refcard.tex
@@ -14,7 +14,8 @@
\letterpaper=1
% Nothing else needs to be changed below this line.
-% Copyright (c) 1987, 1993, 1996, 1997, 2005 Free Software Foundation, Inc.
+% Copyright (C) 1987, 1993, 1996, 1997, 2002, 2003, 2004,
+% 2005 Free Software Foundation, Inc.
% This file is part of GNU Emacs.
@@ -289,7 +290,7 @@ To enter GNU Emacs 22, just type its name: \kbd{emacs}
\key{{\bf insert} contents of another file into this buffer}{C-x i}
\key{replace this file with the file you really want}{C-x C-v}
\key{write buffer to a specified file}{C-x C-w}
-\key{version control checkin/checkout}{C-x C-q}
+\key{toggle read-only status of buffer}{C-x C-q}
\section{Getting Help}
@@ -301,14 +302,14 @@ the directions. If you are a first-time user, type \kbd{C-h t} for a
\key{scroll help window}{C-M-v}
\key{apropos: show commands matching a string}{C-h a}
-\key{show the function a key runs}{C-h c}
+\key{describe the function a key runs}{C-h k}
\key{describe a function}{C-h f}
\key{get mode-specific information}{C-h m}
\section{Error Recovery}
\key{{\bf abort} partially typed or executing command}{C-g}
-\metax{{\bf recover} a file lost by a system crash}{M-x recover-file}
+\metax{{\bf recover} files lost by a system crash}{M-x recover-session}
\metax{{\bf undo} an unwanted change}{C-x u, C-_ {\rm or} C-/}
\metax{restore a buffer to its original contents}{M-x revert-buffer}
\key{redraw garbaged screen}{C-l}
@@ -572,7 +573,7 @@ minibuffer. Type \kbd{F10} to activate the menu bar using the minibuffer.
\section{Info}
\key{enter the Info documentation reader}{C-h i}
-\key{find specified function or variable in Info}{C-h C-i}
+\key{find specified function or variable in Info}{C-h S}
\beginindentedkeys
Moving within a node:
@@ -591,6 +592,7 @@ Moving between nodes:
\key{follow cross reference (return with \kbd{l})}{f}
\key{return to last node you saw}{l}
\key{return to directory node}{d}
+\key{go to top node of Info file}{t}
\key{go to any node by name}{g}
Other:
diff --git a/etc/ru-refcard.tex b/etc/ru-refcard.tex
index d62eedd17b..1083055bd9 100644
--- a/etc/ru-refcard.tex
+++ b/etc/ru-refcard.tex
@@ -1,3 +1,5 @@
+% Copyright (C) 1997, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
\documentclass[10pt]{article}
\usepackage{multicol,tabularx}
\usepackage[a4paper,hmargin={2cm,2cm},vmargin={2cm,2cm},nohead,twoside]{geometry}
@@ -17,7 +19,7 @@
\setlength{\ColThreeWidth}{25mm}
\newcommand{\versionnumber}[0]{2.2}
-\newcommand{\nyear}[0]{1997}
+\newcommand{\nyear}[0]{2005}
\newcommand\shortcopyrightnotice[0]{\vskip 1ex plus 2 fill
\centerline{\footnotesize \copyright\ \nyear\ Free Software Foundation, Inc.
diff --git a/etc/sk-dired-ref.tex b/etc/sk-dired-ref.tex
index 19983aeeb3..26846834b3 100644
--- a/etc/sk-dired-ref.tex
+++ b/etc/sk-dired-ref.tex
@@ -1,5 +1,5 @@
% Reference Card for Dired
-% Copyright (C) 2000 Free Software Foundation, Inc.
+% Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
% Slovak hyphenation rules applied
\shyph
@@ -48,7 +48,7 @@
% e.g. in the TeX Live CD).
\def\versionnumber{0.1}
-\def\year{2000}
+\def\year{2005}
\def\version{May \year\ v\versionnumber}
\def\shortcopyrightnotice{\vskip 1ex plus 2 fill
diff --git a/etc/sk-refcard.tex b/etc/sk-refcard.tex
index ca40c194c9..40f36f2109 100644
--- a/etc/sk-refcard.tex
+++ b/etc/sk-refcard.tex
@@ -11,7 +11,8 @@
\columnsperpage=1
-% Copyright (c) 1987, 1993, 1996, 1997 Free Software Foundation, Inc.
+% Copyright (C) 1987, 1993, 1996, 1997, 2002, 2003, 2004,
+% 2005 Free Software Foundation, Inc.
% This file is part of GNU Emacs.
@@ -67,7 +68,7 @@
% e.g. in the TeX Live CD).
\def\versionnumber{2.2}
-\def\year{1997}
+\def\year{2005}
\def\shortcopyrightnotice{\vskip 1ex plus 2 fill
\centerline{\small \copyright\ \year\ Free Software Foundation, Inc.
diff --git a/etc/sk-survival.tex b/etc/sk-survival.tex
index ff94cc4370..346516cf48 100644
--- a/etc/sk-survival.tex
+++ b/etc/sk-survival.tex
@@ -21,7 +21,7 @@
\endinput
\fi
-% Copyright (c) 2000, 2004 Free Software Foundation, Inc.
+% Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
% This file is part of GNU Emacs.
@@ -50,7 +50,7 @@
% e.g. in the TeX Live CD).
\def\versionnumber{1.0}
-\def\year{2000}
+\def\year{2005}
\def\copyrightnotice{\penalty-1\vfill
\vbox{\smallfont\baselineskip=0.8\baselineskip\raggedcenter
diff --git a/etc/survival.tex b/etc/survival.tex
index 2c5ada3c16..0e164d7654 100644
--- a/etc/survival.tex
+++ b/etc/survival.tex
@@ -25,7 +25,7 @@
\endinput
\fi
-% Copyright (c) 2000 Free Software Foundation, Inc.
+% Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
% This file is part of GNU Emacs.
@@ -45,7 +45,7 @@
% Boston, MA 02110-1301, USA.
\def\versionnumber{1.0}
-\def\year{2000}
+\def\year{2005}
\def\copyrightnotice{\penalty-1\vfill
\vbox{\smallfont\baselineskip=0.8\baselineskip\raggedcenter
diff --git a/etc/vipcard.tex b/etc/vipcard.tex
index 5591f151f9..cca644b6bf 100644
--- a/etc/vipcard.tex
+++ b/etc/vipcard.tex
@@ -7,7 +7,7 @@
\columnsperpage=1
-% Copyright (c) 1987 Free Software Foundation, Inc.
+% Copyright (C) 1987, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
% This file is part of GNU Emacs.
@@ -54,7 +54,7 @@
\def\versionnumber{1.2}
-\def\year{1987}
+\def\year{2005}
\def\version{September \year\ v\versionnumber}
\def\shortcopyrightnotice{\vskip 1ex plus 2 fill
diff --git a/etc/viperCard.tex b/etc/viperCard.tex
index e5e0bded89..50f65b2c0d 100644
--- a/etc/viperCard.tex
+++ b/etc/viperCard.tex
@@ -7,7 +7,8 @@
\columnsperpage=2
-% Copyright (c) 1995, 1996, 1997 Free Software Foundation, Inc.
+% Copyright (C) 1995, 1996, 1997, 2002, 2003, 2004,
+% 2005 Free Software Foundation, Inc.
% This file is part of GNU Emacs.
@@ -61,7 +62,7 @@
\def\versionnumber{3.0}
-\def\year{1997}
+\def\year{2005}
\def\version{August \year\ v\versionnumber}
\def\shortcopyrightnotice{\vskip 1ex plus 2 fill
diff --git a/leim/ChangeLog b/leim/ChangeLog
index e53d29a39a..9ccaad4917 100644
--- a/leim/ChangeLog
+++ b/leim/ChangeLog
@@ -1,3 +1,8 @@
+2005-07-08 Kenichi Handa <handa@m17n.org>
+
+ * quail/japanese.el (quail-japanese-kanji-kkc): Fix order of
+ insertion and deletion.
+
2005-07-04 Lute Kamstra <lute@gnu.org>
Update FSF's address in GPL notices.
diff --git a/leim/quail/japanese.el b/leim/quail/japanese.el
index fa87a9935b..09b005a7bb 100644
--- a/leim/quail/japanese.el
+++ b/leim/quail/japanese.el
@@ -79,9 +79,9 @@
(when (= (char-before (overlay-end quail-conv-overlay)) ?n)
;; The last char is `n'. We had better convert it to `$B$s(B'
;; before kana-kanji conversion.
- (goto-char (overlay-end quail-conv-overlay))
- (delete-char -1)
- (insert ?$B$s(B))
+ (goto-char (1- (overlay-end quail-conv-overlay)))
+ (insert ?$B$s(B)
+ (delete-char 1))
(let* ((from (copy-marker (overlay-start quail-conv-overlay)))
(len (- (overlay-end quail-conv-overlay) from)))
(quail-delete-overlays)
diff --git a/lib-src/.gitignore b/lib-src/.gitignore
index 167540307a..66933a62c3 100644
--- a/lib-src/.gitignore
+++ b/lib-src/.gitignore
@@ -1,7 +1,7 @@
DOC
Makefile.c
b2m
-ctags
+ctags*
cvtmail
digest-doc
ebrowse
@@ -9,8 +9,7 @@ emacsclient
emacsserver
etags
fakemail
-fns-*
-fns.el
+getopt.h
hexl
make-docfile
movemail
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog
index bd6949c799..5767b49aae 100644
--- a/lib-src/ChangeLog
+++ b/lib-src/ChangeLog
@@ -1,3 +1,34 @@
+2005-07-27 Juanma Barranquero <lekktu@gmail.com>
+
+ * .cvsignore: Don't ignore fns-* and fns.el, which are no longer
+ generated. Ignore also ctags.c and getopt.h.
+
+ * makefile.w32-in (clean): Delete getopt.h.
+ (getopt.h): New rule.
+
+2005-07-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ Merge gnulib getopt implementation into Emacs.
+
+ * Makefile.in (mostlyclean): Remove getopt.h, getopt.h-t.
+ (GETOPT_H): New macro, from gnulib.
+ (getopt.h): New rule, from gnulib.
+ (GETOPTOBJS): Now autoconfigured.
+ (GETOPTDEPS): getopt.h is now autoconfigured.
+ (getopt.o, getopt1.o): Depend on $(GETOPT_H), not ${srcdir}/getopt.h.
+ (getopt.o): Depend on ${srcdir}/gettext.h.
+ (movemail.o): Depend on $(GETOPT_H).
+ * getopt.c, getopt1.c: Sync from gnulib.
+ * getopt_.h, getopt_int.h, gettext.h: New files, from gnulib.
+ * getopt.h: Removed (now is getopt_.h).
+
+2005-07-13 Ken Raeburn <raeburn@gnu.org>
+
+ * pop.c: Don't include des.h (or variants thereof); krb.h will do
+ it.
+ (sendline): Add the \r\n to the line in a temporary buffer, and
+ write it all at once.
+
2005-07-04 Lute Kamstra <lute@gnu.org>
Update FSF's address in GPL notices.
diff --git a/lib-src/Makefile.in b/lib-src/Makefile.in
index 372983221a..274bbabe29 100644
--- a/lib-src/Makefile.in
+++ b/lib-src/Makefile.in
@@ -1,6 +1,6 @@
# Makefile for lib-src subdirectory in GNU Emacs.
-# Copyright (C) 1985, 1987, 1988, 1993, 1994, 2002, 2003, 2004
-# Free Software Foundation, Inc.
+# Copyright (C) 1985, 1987, 1988, 1993, 1994, 2002, 2003, 2004,
+# 2005 Free Software Foundation, Inc.
# This file is part of GNU Emacs.
@@ -344,7 +344,7 @@ uninstall:
rm -f ${UTILITIES} ${INSTALLABLES} ${SCRIPTS} ${INSTALLABLE_SCRIPTS})
mostlyclean:
- -rm -f core *.o
+ -rm -f core *.o getopt.h getopt.h-t
clean: mostlyclean
-rm -f ${INSTALLABLES} ${UTILITIES} ${DONT_INSTALL}
@@ -382,11 +382,18 @@ test-distrib${EXEEXT}: ${srcdir}/test-distrib.c
$(CC) ${ALL_CFLAGS} -o test-distrib ${srcdir}/test-distrib.c
./test-distrib ${srcdir}/testfile
-GETOPTOBJS = getopt.o getopt1.o
-GETOPTDEPS = $(GETOPTOBJS) ${srcdir}/getopt.h
-getopt.o: ${srcdir}/getopt.c ${srcdir}/getopt.h
+/* We need the following in order to create a <getopt.h> when the system
+ doesn't have one that works with the given compiler. */
+GETOPT_H = @GETOPT_H@
+getopt.h: getopt_.h
+ cp $(srcdir)/getopt_.h $@-t
+ mv $@-t $@
+
+GETOPTOBJS = @GETOPTOBJS@
+GETOPTDEPS = $(GETOPTOBJS) $(GETOPT_H)
+getopt.o: ${srcdir}/getopt.c $(GETOPT_H) ${srcdir}/gettext.h
${CC} -c ${CPP_CFLAGS} ${srcdir}/getopt.c
-getopt1.o: ${srcdir}/getopt1.c ${srcdir}/getopt.h
+getopt1.o: ${srcdir}/getopt1.c $(GETOPT_H)
${CC} -c ${CPP_CFLAGS} ${srcdir}/getopt1.c
#ifdef REGEXP_IN_LIBC
@@ -430,7 +437,7 @@ b2m${EXEEXT}: ${srcdir}/b2m.c ../src/config.h $(GETOPTDEPS)
movemail${EXEEXT}: movemail.o pop.o $(GETOPTDEPS)
$(CC) ${LINK_CFLAGS} ${MOVE_FLAGS} movemail.o pop.o $(GETOPTOBJS) $(LOADLIBES) $(LIBS_MAIL) $(LIBS_MOVE) -o movemail
-movemail.o: ${srcdir}/movemail.c ../src/config.h
+movemail.o: ${srcdir}/movemail.c ../src/config.h $(GETOPT_H)
$(CC) -c ${CPP_CFLAGS} -Demacs ${MOVE_FLAGS} ${srcdir}/movemail.c
pop.o: ${srcdir}/pop.c ../src/config.h
diff --git a/lib-src/cvtmail.c b/lib-src/cvtmail.c
index 4dd6bb20a6..562c5522ed 100644
--- a/lib-src/cvtmail.c
+++ b/lib-src/cvtmail.c
@@ -1,4 +1,5 @@
-/* Copyright (C) 1985, 1994 Free Software Foundation
+/* Copyright (C) 1985, 1994, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/lib-src/digest-doc.c b/lib-src/digest-doc.c
index 9db4a19080..d3df334841 100644
--- a/lib-src/digest-doc.c
+++ b/lib-src/digest-doc.c
@@ -1,7 +1,8 @@
/* Give this program DOC-mm.nn.oo as standard input and it outputs to
standard output a file of nroff output containing the doc strings.
- Copyright (C) 1987, 1994, 2001 Free Software Foundation Inc.
+ Copyright (C) 1987, 1994, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/lib-src/ebrowse.c b/lib-src/ebrowse.c
index bc323fbbbd..49e353cf53 100644
--- a/lib-src/ebrowse.c
+++ b/lib-src/ebrowse.c
@@ -1,7 +1,7 @@
/* ebrowse.c --- parsing files for the ebrowse C++ browser
- Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99,
- 2000, 2001, 2002 Free Software Foundation Inc.
+ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+ 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c
index 7cb40bb196..4908d49441 100644
--- a/lib-src/emacsclient.c
+++ b/lib-src/emacsclient.c
@@ -1,6 +1,6 @@
/* Client process that communicates with GNU Emacs acting as server.
- Copyright (C) 1986, 1987, 1994, 1999, 2000, 2001, 2003, 2004
- Free Software Foundation, Inc.
+ Copyright (C) 1986, 1987, 1994, 1999, 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/lib-src/emacstool.c b/lib-src/emacstool.c
index f0e9ad8c1f..b883b442bd 100644
--- a/lib-src/emacstool.c
+++ b/lib-src/emacstool.c
@@ -1,5 +1,6 @@
/*
- Copyright (C) 1986, 1988, 1990, 1991 Free Software Foundation, Inc.
+ Copyright (C) 1986, 1988, 1990, 1991, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/lib-src/etags.c b/lib-src/etags.c
index 2f273771a9..fe4fa84f4c 100644
--- a/lib-src/etags.c
+++ b/lib-src/etags.c
@@ -1,6 +1,7 @@
/* Tags file maker to go with GNU Emacs -*- coding: latin-1 -*-
- Copyright (C) 1984, 1987-1989, 1993-1995, 1998-2001, 2002, 2004
- Free Software Foundation, Inc. and Ken Arnold
+ Copyright (C) 1984, 1987, 1988, 1989, 1993, 1994, 1995,
+ 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc. and Ken Arnold
This file is not considered part of GNU Emacs.
diff --git a/lib-src/fakemail.c b/lib-src/fakemail.c
index cf6c1ff334..de1e2cbf85 100644
--- a/lib-src/fakemail.c
+++ b/lib-src/fakemail.c
@@ -1,5 +1,6 @@
/* sendmail-like interface to /bin/mail for system V,
- Copyright (C) 1985, 1994, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1994, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/lib-src/getopt.c b/lib-src/getopt.c
index 6799045bde..70fd418626 100644
--- a/lib-src/getopt.c
+++ b/lib-src/getopt.c
@@ -2,8 +2,9 @@
NOTE: getopt is now part of the C library, so if you don't know what
"Keep this file name-space clean" means, talk to drepper@gnu.org
before changing it!
- Copyright (C) 1987,88,89,90,91,92,93,94,95,96,98,99,2000,2001,2002
- Free Software Foundation, Inc.
+ Copyright (C) 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
+ 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003,
+ 2004, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
This program is free software; you can redistribute it and/or modify
@@ -30,35 +31,8 @@
# include <config.h>
#endif
-#if !defined __STDC__ || !__STDC__
-/* This is a separate conditional since some stdc systems
- reject `defined (const)'. */
-# ifndef const
-# define const
-# endif
-#endif
-
#include <stdio.h>
-/* Comment out all this code if we are using the GNU C Library, and are not
- actually compiling the library itself. This code is part of the GNU C
- Library, but also included in many other GNU distributions. Compiling
- and linking in this code is a waste when using the GNU C library
- (especially if it is a shared library). Rather than having every GNU
- program understand `configure --with-gnu-libc' and omit the object files,
- it is simpler to just do this in the source for each such file. */
-
-#define GETOPT_INTERFACE_VERSION 2
-#if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2
-# include <gnu-versions.h>
-# if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
-# define ELIDE_CODE
-# endif
-#endif
-
-#ifndef ELIDE_CODE
-
-
/* This needs to come after some library #include
to get __GNU_LIBRARY__ defined. */
#ifdef __GNU_LIBRARY__
@@ -68,32 +42,18 @@
# include <unistd.h>
#endif /* GNU C library. */
+#include <string.h>
+
#ifdef VMS
# include <unixlib.h>
-# if HAVE_STRING_H - 0
-# include <string.h>
-# endif
#endif
-#if HAVE_LIBINTL_H
+#ifdef _LIBC
# include <libintl.h>
-#endif /* HAVE_LIBINTL_H */
-
-#if 0
-# ifdef _LIBC
-# include <libintl.h>
-# else /* not #ifdef _LIBC */
-/* This is for other GNU distributions with internationalized messages. */
-# include "gettext.h"
-# endif /* end #ifdef _LIBC */
-#endif /* end #if 0 */
-
-#if HAVE_LIBINTL_H
- /* Should I include libintl.h here as in regex.c ? */
-# define _(msgid) gettext (msgid)
-#else /* not #if HAVE_LIBINTL_H */
-# define _(msgid) (msgid)
-#endif /* end #if HAVE_LIBINTL_H */
+#else
+# include "gettext.h"
+# define _(msgid) gettext (msgid)
+#endif
#if defined _LIBC && defined USE_IN_LIBIO
# include <wchar.h>
@@ -103,21 +63,22 @@
# define attribute_hidden
#endif
-/* This version of `getopt' appears to the caller like standard Unix `getopt'
- but it behaves differently for the user, since it allows the user
- to intersperse the options with the other arguments.
+/* Unlike standard Unix `getopt', functions like `getopt_long'
+ let the user intersperse the options with the other arguments.
- As `getopt' works, it permutes the elements of ARGV so that,
+ As `getopt_long' works, it permutes the elements of ARGV so that,
when it is done, all the options precede everything else. Thus
all application programs are extended to handle flexible argument order.
- Setting the environment variable POSIXLY_CORRECT disables permutation.
- Then the behavior is completely standard.
+ Using `getopt' or setting the environment variable POSIXLY_CORRECT
+ disables permutation.
+ Then the application's behavior is completely standard.
GNU application programs can use a third alternative mode in which
they can distinguish the relative order of options and other arguments. */
#include "getopt.h"
+#include "getopt_int.h"
/* For communication from `getopt' to the caller.
When `getopt' finds an option that takes an argument,
@@ -142,21 +103,6 @@ char *optarg;
/* 1003.2 says this must be 1 before any call. */
int optind = 1;
-/* Formerly, initialization of getopt depended on optind==0, which
- causes problems with re-calling getopt as programs generally don't
- know that. */
-
-int __getopt_initialized attribute_hidden;
-
-/* The next char to be scanned in the option-element
- in which the last option character we returned was found.
- This allows us to pick up the scan where we left off.
-
- If this is zero, or a null string, it means resume the scan
- by advancing to the next ARGV-element. */
-
-static char *nextchar;
-
/* Callers store zero here to inhibit the error message
for unrecognized options. */
@@ -168,57 +114,12 @@ int opterr = 1;
int optopt = '?';
-/* Describe how to deal with options that follow non-option ARGV-elements.
-
- If the caller did not specify anything,
- the default is REQUIRE_ORDER if the environment variable
- POSIXLY_CORRECT is defined, PERMUTE otherwise.
-
- REQUIRE_ORDER means don't recognize them as options;
- stop option processing when the first non-option is seen.
- This is what Unix does.
- This mode of operation is selected by either setting the environment
- variable POSIXLY_CORRECT, or using `+' as the first character
- of the list of option characters.
-
- PERMUTE is the default. We permute the contents of ARGV as we scan,
- so that eventually all the non-options are at the end. This allows options
- to be given in any order, even with programs that were not written to
- expect this.
+/* Keep a global copy of all internal members of getopt_data. */
- RETURN_IN_ORDER is an option available to programs that were written
- to expect options and other ARGV-elements in any order and that care about
- the ordering of the two. We describe each non-option ARGV-element
- as if it were the argument of an option with character code 1.
- Using `-' as the first character of the list of option characters
- selects this mode of operation.
+static struct _getopt_data getopt_data;
- The special argument `--' forces an end of option-scanning regardless
- of the value of `ordering'. In the case of RETURN_IN_ORDER, only
- `--' can cause `getopt' to return -1 with `optind' != ARGC. */
-
-static enum
-{
- REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER
-} ordering;
-
-/* Value of POSIXLY_CORRECT environment variable. */
-static char *posixly_correct;
-#ifdef __GNU_LIBRARY__
-/* We want to avoid inclusion of string.h with non-GNU libraries
- because there are many ways it can cause trouble.
- On some systems, it contains special magic macros that don't work
- in GCC. */
-# include <string.h>
-# define my_index strchr
-#else
-
-# if HAVE_STRING_H
-# include <string.h>
-# else
-# include <strings.h>
-# endif
+#ifndef __GNU_LIBRARY__
/* Avoid depending on library functions or files
whose names are inconsistent. */
@@ -227,43 +128,8 @@ static char *posixly_correct;
extern char *getenv ();
#endif
-static char *
-my_index (str, chr)
- const char *str;
- int chr;
-{
- while (*str)
- {
- if (*str == chr)
- return (char *) str;
- str++;
- }
- return 0;
-}
-
-/* If using GCC, we can safely declare strlen this way.
- If not using GCC, it is ok not to declare it. */
-#ifdef __GNUC__
-/* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h.
- That was relevant to code that was here before. */
-# if (!defined __STDC__ || !__STDC__) && !defined strlen
-/* gcc with -traditional declares the built-in strlen to return int,
- and has done so at least since version 2.4.5. -- rms. */
-extern int strlen (const char *);
-# endif /* not __STDC__ */
-#endif /* __GNUC__ */
-
#endif /* not __GNU_LIBRARY__ */
-/* Handle permutation of arguments. */
-
-/* Describe the part of ARGV that contains non-options that have
- been skipped. `first_nonopt' is the index in ARGV of the first of them;
- `last_nonopt' is the index after the last of them. */
-
-static int first_nonopt;
-static int last_nonopt;
-
#ifdef _LIBC
/* Stored original parameters.
XXX This is no good solution. We should rather copy the args so
@@ -277,14 +143,11 @@ extern char **__libc_argv;
# ifdef USE_NONOPTION_FLAGS
/* Defined in getopt_init.c */
extern char *__getopt_nonoption_flags;
-
-static int nonoption_flags_max_len;
-static int nonoption_flags_len;
# endif
# ifdef USE_NONOPTION_FLAGS
# define SWAP_FLAGS(ch1, ch2) \
- if (nonoption_flags_len > 0) \
+ if (d->__nonoption_flags_len > 0) \
{ \
char __tmp = __getopt_nonoption_flags[ch1]; \
__getopt_nonoption_flags[ch1] = __getopt_nonoption_flags[ch2]; \
@@ -306,17 +169,12 @@ static int nonoption_flags_len;
`first_nonopt' and `last_nonopt' are relocated so that they describe
the new indices of the non-options in ARGV after they are moved. */
-#if defined __STDC__ && __STDC__
-static void exchange (char **);
-#endif
-
static void
-exchange (argv)
- char **argv;
+exchange (char **argv, struct _getopt_data *d)
{
- int bottom = first_nonopt;
- int middle = last_nonopt;
- int top = optind;
+ int bottom = d->__first_nonopt;
+ int middle = d->__last_nonopt;
+ int top = d->optind;
char *tem;
/* Exchange the shorter segment with the far end of the longer segment.
@@ -328,19 +186,19 @@ exchange (argv)
/* First make sure the handling of the `__getopt_nonoption_flags'
string can work normally. Our top argument must be in the range
of the string. */
- if (nonoption_flags_len > 0 && top >= nonoption_flags_max_len)
+ if (d->__nonoption_flags_len > 0 && top >= d->__nonoption_flags_max_len)
{
/* We must extend the array. The user plays games with us and
presents new arguments. */
char *new_str = malloc (top + 1);
if (new_str == NULL)
- nonoption_flags_len = nonoption_flags_max_len = 0;
+ d->__nonoption_flags_len = d->__nonoption_flags_max_len = 0;
else
{
memset (__mempcpy (new_str, __getopt_nonoption_flags,
- nonoption_flags_max_len),
- '\0', top + 1 - nonoption_flags_max_len);
- nonoption_flags_max_len = top + 1;
+ d->__nonoption_flags_max_len),
+ '\0', top + 1 - d->__nonoption_flags_max_len);
+ d->__nonoption_flags_max_len = top + 1;
__getopt_nonoption_flags = new_str;
}
}
@@ -386,76 +244,71 @@ exchange (argv)
/* Update records for the slots the non-options now occupy. */
- first_nonopt += (optind - last_nonopt);
- last_nonopt = optind;
+ d->__first_nonopt += (d->optind - d->__last_nonopt);
+ d->__last_nonopt = d->optind;
}
/* Initialize the internal data when the first call is made. */
-#if defined __STDC__ && __STDC__
-static const char *_getopt_initialize (int, char *const *, const char *);
-#endif
static const char *
-_getopt_initialize (argc, argv, optstring)
- int argc;
- char *const *argv;
- const char *optstring;
+_getopt_initialize (int argc, char **argv, const char *optstring,
+ int posixly_correct, struct _getopt_data *d)
{
/* Start processing options with ARGV-element 1 (since ARGV-element 0
is the program name); the sequence of previously skipped
non-option ARGV-elements is empty. */
- first_nonopt = last_nonopt = optind;
+ d->__first_nonopt = d->__last_nonopt = d->optind;
- nextchar = NULL;
+ d->__nextchar = NULL;
- posixly_correct = getenv ("POSIXLY_CORRECT");
+ d->__posixly_correct = posixly_correct || !!getenv ("POSIXLY_CORRECT");
/* Determine how to handle the ordering of options and nonoptions. */
if (optstring[0] == '-')
{
- ordering = RETURN_IN_ORDER;
+ d->__ordering = RETURN_IN_ORDER;
++optstring;
}
else if (optstring[0] == '+')
{
- ordering = REQUIRE_ORDER;
+ d->__ordering = REQUIRE_ORDER;
++optstring;
}
- else if (posixly_correct != NULL)
- ordering = REQUIRE_ORDER;
+ else if (d->__posixly_correct)
+ d->__ordering = REQUIRE_ORDER;
else
- ordering = PERMUTE;
+ d->__ordering = PERMUTE;
#if defined _LIBC && defined USE_NONOPTION_FLAGS
- if (posixly_correct == NULL
+ if (!d->__posixly_correct
&& argc == __libc_argc && argv == __libc_argv)
{
- if (nonoption_flags_max_len == 0)
+ if (d->__nonoption_flags_max_len == 0)
{
if (__getopt_nonoption_flags == NULL
|| __getopt_nonoption_flags[0] == '\0')
- nonoption_flags_max_len = -1;
+ d->__nonoption_flags_max_len = -1;
else
{
const char *orig_str = __getopt_nonoption_flags;
- int len = nonoption_flags_max_len = strlen (orig_str);
- if (nonoption_flags_max_len < argc)
- nonoption_flags_max_len = argc;
+ int len = d->__nonoption_flags_max_len = strlen (orig_str);
+ if (d->__nonoption_flags_max_len < argc)
+ d->__nonoption_flags_max_len = argc;
__getopt_nonoption_flags =
- (char *) malloc (nonoption_flags_max_len);
+ (char *) malloc (d->__nonoption_flags_max_len);
if (__getopt_nonoption_flags == NULL)
- nonoption_flags_max_len = -1;
+ d->__nonoption_flags_max_len = -1;
else
memset (__mempcpy (__getopt_nonoption_flags, orig_str, len),
- '\0', nonoption_flags_max_len - len);
+ '\0', d->__nonoption_flags_max_len - len);
}
}
- nonoption_flags_len = nonoption_flags_max_len;
+ d->__nonoption_flags_len = d->__nonoption_flags_max_len;
}
else
- nonoption_flags_len = 0;
+ d->__nonoption_flags_len = 0;
#endif
return optstring;
@@ -503,10 +356,6 @@ _getopt_initialize (argc, argv, optstring)
`flag' field is nonzero, the value of the option's `val' field
if the `flag' field is zero.
- The elements of ARGV aren't really const, because we permute them.
- But we pretend they're const in the prototype to be compatible
- with other systems.
-
LONGOPTS is a vector of `struct option' terminated by an
element containing a name which is zero.
@@ -515,32 +364,32 @@ _getopt_initialize (argc, argv, optstring)
recent call.
If LONG_ONLY is nonzero, '-' as well as '--' can introduce
- long-named options. */
+ long-named options.
+
+ If POSIXLY_CORRECT is nonzero, behave as if the POSIXLY_CORRECT
+ environment variable were set. */
int
-_getopt_internal (argc, argv, optstring, longopts, longind, long_only)
- int argc;
- char *const *argv;
- const char *optstring;
- const struct option *longopts;
- int *longind;
- int long_only;
+_getopt_internal_r (int argc, char **argv, const char *optstring,
+ const struct option *longopts, int *longind,
+ int long_only, int posixly_correct, struct _getopt_data *d)
{
- int print_errors = opterr;
+ int print_errors = d->opterr;
if (optstring[0] == ':')
print_errors = 0;
if (argc < 1)
return -1;
- optarg = NULL;
+ d->optarg = NULL;
- if (optind == 0 || !__getopt_initialized)
+ if (d->optind == 0 || !d->__initialized)
{
- if (optind == 0)
- optind = 1; /* Don't scan ARGV[0], the program name. */
- optstring = _getopt_initialize (argc, argv, optstring);
- __getopt_initialized = 1;
+ if (d->optind == 0)
+ d->optind = 1; /* Don't scan ARGV[0], the program name. */
+ optstring = _getopt_initialize (argc, argv, optstring,
+ posixly_correct, d);
+ d->__initialized = 1;
}
/* Test whether ARGV[optind] points to a non-option argument.
@@ -548,40 +397,41 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
from the shell indicating it is not an option. The later information
is only used when the used in the GNU libc. */
#if defined _LIBC && defined USE_NONOPTION_FLAGS
-# define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0' \
- || (optind < nonoption_flags_len \
- && __getopt_nonoption_flags[optind] == '1'))
+# define NONOPTION_P (argv[d->optind][0] != '-' || argv[d->optind][1] == '\0' \
+ || (d->optind < d->__nonoption_flags_len \
+ && __getopt_nonoption_flags[d->optind] == '1'))
#else
-# define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0')
+# define NONOPTION_P (argv[d->optind][0] != '-' || argv[d->optind][1] == '\0')
#endif
- if (nextchar == NULL || *nextchar == '\0')
+ if (d->__nextchar == NULL || *d->__nextchar == '\0')
{
/* Advance to the next ARGV-element. */
/* Give FIRST_NONOPT & LAST_NONOPT rational values if OPTIND has been
moved back by the user (who may also have changed the arguments). */
- if (last_nonopt > optind)
- last_nonopt = optind;
- if (first_nonopt > optind)
- first_nonopt = optind;
+ if (d->__last_nonopt > d->optind)
+ d->__last_nonopt = d->optind;
+ if (d->__first_nonopt > d->optind)
+ d->__first_nonopt = d->optind;
- if (ordering == PERMUTE)
+ if (d->__ordering == PERMUTE)
{
/* If we have just processed some options following some non-options,
exchange them so that the options come first. */
- if (first_nonopt != last_nonopt && last_nonopt != optind)
- exchange ((char **) argv);
- else if (last_nonopt != optind)
- first_nonopt = optind;
+ if (d->__first_nonopt != d->__last_nonopt
+ && d->__last_nonopt != d->optind)
+ exchange ((char **) argv, d);
+ else if (d->__last_nonopt != d->optind)
+ d->__first_nonopt = d->optind;
/* Skip any additional non-options
and extend the range of non-options previously skipped. */
- while (optind < argc && NONOPTION_P)
- optind++;
- last_nonopt = optind;
+ while (d->optind < argc && NONOPTION_P)
+ d->optind++;
+ d->__last_nonopt = d->optind;
}
/* The special ARGV-element `--' means premature end of options.
@@ -589,28 +439,29 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
then exchange with previous non-options as if it were an option,
then skip everything else like a non-option. */
- if (optind != argc && !strcmp (argv[optind], "--"))
+ if (d->optind != argc && !strcmp (argv[d->optind], "--"))
{
- optind++;
+ d->optind++;
- if (first_nonopt != last_nonopt && last_nonopt != optind)
- exchange ((char **) argv);
- else if (first_nonopt == last_nonopt)
- first_nonopt = optind;
- last_nonopt = argc;
+ if (d->__first_nonopt != d->__last_nonopt
+ && d->__last_nonopt != d->optind)
+ exchange ((char **) argv, d);
+ else if (d->__first_nonopt == d->__last_nonopt)
+ d->__first_nonopt = d->optind;
+ d->__last_nonopt = argc;
- optind = argc;
+ d->optind = argc;
}
/* If we have done all the ARGV-elements, stop the scan
and back over any non-options that we skipped and permuted. */
- if (optind == argc)
+ if (d->optind == argc)
{
/* Set the next-arg-index to point at the non-options
that we previously skipped, so the caller will digest them. */
- if (first_nonopt != last_nonopt)
- optind = first_nonopt;
+ if (d->__first_nonopt != d->__last_nonopt)
+ d->optind = d->__first_nonopt;
return -1;
}
@@ -619,17 +470,17 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
if (NONOPTION_P)
{
- if (ordering == REQUIRE_ORDER)
+ if (d->__ordering == REQUIRE_ORDER)
return -1;
- optarg = argv[optind++];
+ d->optarg = argv[d->optind++];
return 1;
}
/* We have found another option-ARGV-element.
Skip the initial punctuation. */
- nextchar = (argv[optind] + 1
- + (longopts != NULL && argv[optind][1] == '-'));
+ d->__nextchar = (argv[d->optind] + 1
+ + (longopts != NULL && argv[d->optind][1] == '-'));
}
/* Decode the current option-ARGV-element. */
@@ -648,8 +499,9 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
This distinction seems to be the most useful approach. */
if (longopts != NULL
- && (argv[optind][1] == '-'
- || (long_only && (argv[optind][2] || !my_index (optstring, argv[optind][1])))))
+ && (argv[d->optind][1] == '-'
+ || (long_only && (argv[d->optind][2]
+ || !strchr (optstring, argv[d->optind][1])))))
{
char *nameend;
const struct option *p;
@@ -659,15 +511,15 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
int indfound = -1;
int option_index;
- for (nameend = nextchar; *nameend && *nameend != '='; nameend++)
+ for (nameend = d->__nextchar; *nameend && *nameend != '='; nameend++)
/* Do nothing. */ ;
/* Test all long options for either exact match
or abbreviated matches. */
for (p = longopts, option_index = 0; p->name; p++, option_index++)
- if (!strncmp (p->name, nextchar, nameend - nextchar))
+ if (!strncmp (p->name, d->__nextchar, nameend - d->__nextchar))
{
- if ((unsigned int) (nameend - nextchar)
+ if ((unsigned int) (nameend - d->__nextchar)
== (unsigned int) strlen (p->name))
{
/* Exact match found. */
@@ -698,37 +550,44 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
char *buf;
if (__asprintf (&buf, _("%s: option `%s' is ambiguous\n"),
- argv[0], argv[optind]) >= 0)
+ argv[0], argv[d->optind]) >= 0)
{
+ _IO_flockfile (stderr);
+
+ int old_flags2 = ((_IO_FILE *) stderr)->_flags2;
+ ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL;
if (_IO_fwide (stderr, 0) > 0)
__fwprintf (stderr, L"%s", buf);
else
fputs (buf, stderr);
+ ((_IO_FILE *) stderr)->_flags2 = old_flags2;
+ _IO_funlockfile (stderr);
+
free (buf);
}
#else
fprintf (stderr, _("%s: option `%s' is ambiguous\n"),
- argv[0], argv[optind]);
+ argv[0], argv[d->optind]);
#endif
}
- nextchar += strlen (nextchar);
- optind++;
- optopt = 0;
+ d->__nextchar += strlen (d->__nextchar);
+ d->optind++;
+ d->optopt = 0;
return '?';
}
if (pfound != NULL)
{
option_index = indfound;
- optind++;
+ d->optind++;
if (*nameend)
{
/* Don't test has_arg with >, because some C compilers don't
allow it to be used on enums. */
if (pfound->has_arg)
- optarg = nameend + 1;
+ d->optarg = nameend + 1;
else
{
if (print_errors)
@@ -738,7 +597,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
int n;
#endif
- if (argv[optind - 1][1] == '-')
+ if (argv[d->optind - 1][1] == '-')
{
/* --option */
#if defined _LIBC && defined USE_IN_LIBIO
@@ -757,38 +616,48 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
#if defined _LIBC && defined USE_IN_LIBIO
n = __asprintf (&buf, _("\
%s: option `%c%s' doesn't allow an argument\n"),
- argv[0], argv[optind - 1][0],
+ argv[0], argv[d->optind - 1][0],
pfound->name);
#else
fprintf (stderr, _("\
%s: option `%c%s' doesn't allow an argument\n"),
- argv[0], argv[optind - 1][0], pfound->name);
+ argv[0], argv[d->optind - 1][0],
+ pfound->name);
#endif
}
#if defined _LIBC && defined USE_IN_LIBIO
if (n >= 0)
{
+ _IO_flockfile (stderr);
+
+ int old_flags2 = ((_IO_FILE *) stderr)->_flags2;
+ ((_IO_FILE *) stderr)->_flags2
+ |= _IO_FLAGS2_NOTCANCEL;
+
if (_IO_fwide (stderr, 0) > 0)
__fwprintf (stderr, L"%s", buf);
else
fputs (buf, stderr);
+ ((_IO_FILE *) stderr)->_flags2 = old_flags2;
+ _IO_funlockfile (stderr);
+
free (buf);
}
#endif
}
- nextchar += strlen (nextchar);
+ d->__nextchar += strlen (d->__nextchar);
- optopt = pfound->val;
+ d->optopt = pfound->val;
return '?';
}
}
else if (pfound->has_arg == 1)
{
- if (optind < argc)
- optarg = argv[optind++];
+ if (d->optind < argc)
+ d->optarg = argv[d->optind++];
else
{
if (print_errors)
@@ -798,27 +667,36 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
if (__asprintf (&buf, _("\
%s: option `%s' requires an argument\n"),
- argv[0], argv[optind - 1]) >= 0)
+ argv[0], argv[d->optind - 1]) >= 0)
{
+ _IO_flockfile (stderr);
+
+ int old_flags2 = ((_IO_FILE *) stderr)->_flags2;
+ ((_IO_FILE *) stderr)->_flags2
+ |= _IO_FLAGS2_NOTCANCEL;
+
if (_IO_fwide (stderr, 0) > 0)
__fwprintf (stderr, L"%s", buf);
else
fputs (buf, stderr);
+ ((_IO_FILE *) stderr)->_flags2 = old_flags2;
+ _IO_funlockfile (stderr);
+
free (buf);
}
#else
fprintf (stderr,
_("%s: option `%s' requires an argument\n"),
- argv[0], argv[optind - 1]);
+ argv[0], argv[d->optind - 1]);
#endif
}
- nextchar += strlen (nextchar);
- optopt = pfound->val;
+ d->__nextchar += strlen (d->__nextchar);
+ d->optopt = pfound->val;
return optstring[0] == ':' ? ':' : '?';
}
}
- nextchar += strlen (nextchar);
+ d->__nextchar += strlen (d->__nextchar);
if (longind != NULL)
*longind = option_index;
if (pfound->flag)
@@ -833,8 +711,8 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
or the option starts with '--' or is not a valid short
option, then it's an error.
Otherwise interpret it as a short option. */
- if (!long_only || argv[optind][1] == '-'
- || my_index (optstring, *nextchar) == NULL)
+ if (!long_only || argv[d->optind][1] == '-'
+ || strchr (optstring, *d->__nextchar) == NULL)
{
if (print_errors)
{
@@ -843,15 +721,15 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
int n;
#endif
- if (argv[optind][1] == '-')
+ if (argv[d->optind][1] == '-')
{
/* --option */
#if defined _LIBC && defined USE_IN_LIBIO
n = __asprintf (&buf, _("%s: unrecognized option `--%s'\n"),
- argv[0], nextchar);
+ argv[0], d->__nextchar);
#else
fprintf (stderr, _("%s: unrecognized option `--%s'\n"),
- argv[0], nextchar);
+ argv[0], d->__nextchar);
#endif
}
else
@@ -859,28 +737,36 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
/* +option or -option */
#if defined _LIBC && defined USE_IN_LIBIO
n = __asprintf (&buf, _("%s: unrecognized option `%c%s'\n"),
- argv[0], argv[optind][0], nextchar);
+ argv[0], argv[d->optind][0], d->__nextchar);
#else
fprintf (stderr, _("%s: unrecognized option `%c%s'\n"),
- argv[0], argv[optind][0], nextchar);
+ argv[0], argv[d->optind][0], d->__nextchar);
#endif
}
#if defined _LIBC && defined USE_IN_LIBIO
if (n >= 0)
{
+ _IO_flockfile (stderr);
+
+ int old_flags2 = ((_IO_FILE *) stderr)->_flags2;
+ ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL;
+
if (_IO_fwide (stderr, 0) > 0)
__fwprintf (stderr, L"%s", buf);
else
fputs (buf, stderr);
+ ((_IO_FILE *) stderr)->_flags2 = old_flags2;
+ _IO_funlockfile (stderr);
+
free (buf);
}
#endif
}
- nextchar = (char *) "";
- optind++;
- optopt = 0;
+ d->__nextchar = (char *) "";
+ d->optind++;
+ d->optopt = 0;
return '?';
}
}
@@ -888,12 +774,12 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
/* Look at and handle the next short option-character. */
{
- char c = *nextchar++;
- char *temp = my_index (optstring, c);
+ char c = *d->__nextchar++;
+ char *temp = strchr (optstring, c);
/* Increment `optind' when we start to process its last character. */
- if (*nextchar == '\0')
- ++optind;
+ if (*d->__nextchar == '\0')
+ ++d->optind;
if (temp == NULL || c == ':')
{
@@ -904,7 +790,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
int n;
#endif
- if (posixly_correct)
+ if (d->__posixly_correct)
{
/* 1003.2 specifies the format of this message. */
#if defined _LIBC && defined USE_IN_LIBIO
@@ -927,16 +813,24 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
#if defined _LIBC && defined USE_IN_LIBIO
if (n >= 0)
{
+ _IO_flockfile (stderr);
+
+ int old_flags2 = ((_IO_FILE *) stderr)->_flags2;
+ ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL;
+
if (_IO_fwide (stderr, 0) > 0)
__fwprintf (stderr, L"%s", buf);
else
fputs (buf, stderr);
+ ((_IO_FILE *) stderr)->_flags2 = old_flags2;
+ _IO_funlockfile (stderr);
+
free (buf);
}
#endif
}
- optopt = c;
+ d->optopt = c;
return '?';
}
/* Convenience. Treat POSIX -W foo same as long option --foo */
@@ -951,14 +845,14 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
int option_index;
/* This is an option that requires an argument. */
- if (*nextchar != '\0')
+ if (*d->__nextchar != '\0')
{
- optarg = nextchar;
+ d->optarg = d->__nextchar;
/* If we end this ARGV-element by taking the rest as an arg,
we must advance to the next element now. */
- optind++;
+ d->optind++;
}
- else if (optind == argc)
+ else if (d->optind == argc)
{
if (print_errors)
{
@@ -970,11 +864,19 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
_("%s: option requires an argument -- %c\n"),
argv[0], c) >= 0)
{
+ _IO_flockfile (stderr);
+
+ int old_flags2 = ((_IO_FILE *) stderr)->_flags2;
+ ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL;
+
if (_IO_fwide (stderr, 0) > 0)
__fwprintf (stderr, L"%s", buf);
else
fputs (buf, stderr);
+ ((_IO_FILE *) stderr)->_flags2 = old_flags2;
+ _IO_funlockfile (stderr);
+
free (buf);
}
#else
@@ -982,7 +884,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
argv[0], c);
#endif
}
- optopt = c;
+ d->optopt = c;
if (optstring[0] == ':')
c = ':';
else
@@ -990,22 +892,23 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
return c;
}
else
- /* We already incremented `optind' once;
+ /* We already incremented `d->optind' once;
increment it again when taking next ARGV-elt as argument. */
- optarg = argv[optind++];
+ d->optarg = argv[d->optind++];
/* optarg is now the argument, see if it's in the
table of longopts. */
- for (nextchar = nameend = optarg; *nameend && *nameend != '='; nameend++)
+ for (d->__nextchar = nameend = d->optarg; *nameend && *nameend != '=';
+ nameend++)
/* Do nothing. */ ;
/* Test all long options for either exact match
or abbreviated matches. */
for (p = longopts, option_index = 0; p->name; p++, option_index++)
- if (!strncmp (p->name, nextchar, nameend - nextchar))
+ if (!strncmp (p->name, d->__nextchar, nameend - d->__nextchar))
{
- if ((unsigned int) (nameend - nextchar) == strlen (p->name))
+ if ((unsigned int) (nameend - d->__nextchar) == strlen (p->name))
{
/* Exact match found. */
pfound = p;
@@ -1031,22 +934,30 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
char *buf;
if (__asprintf (&buf, _("%s: option `-W %s' is ambiguous\n"),
- argv[0], argv[optind]) >= 0)
+ argv[0], argv[d->optind]) >= 0)
{
+ _IO_flockfile (stderr);
+
+ int old_flags2 = ((_IO_FILE *) stderr)->_flags2;
+ ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL;
+
if (_IO_fwide (stderr, 0) > 0)
__fwprintf (stderr, L"%s", buf);
else
fputs (buf, stderr);
+ ((_IO_FILE *) stderr)->_flags2 = old_flags2;
+ _IO_funlockfile (stderr);
+
free (buf);
}
#else
fprintf (stderr, _("%s: option `-W %s' is ambiguous\n"),
- argv[0], argv[optind]);
+ argv[0], argv[d->optind]);
#endif
}
- nextchar += strlen (nextchar);
- optind++;
+ d->__nextchar += strlen (d->__nextchar);
+ d->optind++;
return '?';
}
if (pfound != NULL)
@@ -1057,7 +968,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
/* Don't test has_arg with >, because some C compilers don't
allow it to be used on enums. */
if (pfound->has_arg)
- optarg = nameend + 1;
+ d->optarg = nameend + 1;
else
{
if (print_errors)
@@ -1069,11 +980,20 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
%s: option `-W %s' doesn't allow an argument\n"),
argv[0], pfound->name) >= 0)
{
+ _IO_flockfile (stderr);
+
+ int old_flags2 = ((_IO_FILE *) stderr)->_flags2;
+ ((_IO_FILE *) stderr)->_flags2
+ |= _IO_FLAGS2_NOTCANCEL;
+
if (_IO_fwide (stderr, 0) > 0)
__fwprintf (stderr, L"%s", buf);
else
fputs (buf, stderr);
+ ((_IO_FILE *) stderr)->_flags2 = old_flags2;
+ _IO_funlockfile (stderr);
+
free (buf);
}
#else
@@ -1083,14 +1003,14 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
#endif
}
- nextchar += strlen (nextchar);
+ d->__nextchar += strlen (d->__nextchar);
return '?';
}
}
else if (pfound->has_arg == 1)
{
- if (optind < argc)
- optarg = argv[optind++];
+ if (d->optind < argc)
+ d->optarg = argv[d->optind++];
else
{
if (print_errors)
@@ -1100,26 +1020,35 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
if (__asprintf (&buf, _("\
%s: option `%s' requires an argument\n"),
- argv[0], argv[optind - 1]) >= 0)
+ argv[0], argv[d->optind - 1]) >= 0)
{
+ _IO_flockfile (stderr);
+
+ int old_flags2 = ((_IO_FILE *) stderr)->_flags2;
+ ((_IO_FILE *) stderr)->_flags2
+ |= _IO_FLAGS2_NOTCANCEL;
+
if (_IO_fwide (stderr, 0) > 0)
__fwprintf (stderr, L"%s", buf);
else
fputs (buf, stderr);
+ ((_IO_FILE *) stderr)->_flags2 = old_flags2;
+ _IO_funlockfile (stderr);
+
free (buf);
}
#else
fprintf (stderr,
_("%s: option `%s' requires an argument\n"),
- argv[0], argv[optind - 1]);
+ argv[0], argv[d->optind - 1]);
#endif
}
- nextchar += strlen (nextchar);
+ d->__nextchar += strlen (d->__nextchar);
return optstring[0] == ':' ? ':' : '?';
}
}
- nextchar += strlen (nextchar);
+ d->__nextchar += strlen (d->__nextchar);
if (longind != NULL)
*longind = option_index;
if (pfound->flag)
@@ -1129,7 +1058,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
}
return pfound->val;
}
- nextchar = NULL;
+ d->__nextchar = NULL;
return 'W'; /* Let the application handle it. */
}
if (temp[1] == ':')
@@ -1137,26 +1066,26 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
if (temp[2] == ':')
{
/* This is an option that accepts an argument optionally. */
- if (*nextchar != '\0')
+ if (*d->__nextchar != '\0')
{
- optarg = nextchar;
- optind++;
+ d->optarg = d->__nextchar;
+ d->optind++;
}
else
- optarg = NULL;
- nextchar = NULL;
+ d->optarg = NULL;
+ d->__nextchar = NULL;
}
else
{
/* This is an option that requires an argument. */
- if (*nextchar != '\0')
+ if (*d->__nextchar != '\0')
{
- optarg = nextchar;
+ d->optarg = d->__nextchar;
/* If we end this ARGV-element by taking the rest as an arg,
we must advance to the next element now. */
- optind++;
+ d->optind++;
}
- else if (optind == argc)
+ else if (d->optind == argc)
{
if (print_errors)
{
@@ -1168,11 +1097,19 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
%s: option requires an argument -- %c\n"),
argv[0], c) >= 0)
{
+ _IO_flockfile (stderr);
+
+ int old_flags2 = ((_IO_FILE *) stderr)->_flags2;
+ ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL;
+
if (_IO_fwide (stderr, 0) > 0)
__fwprintf (stderr, L"%s", buf);
else
fputs (buf, stderr);
+ ((_IO_FILE *) stderr)->_flags2 = old_flags2;
+ _IO_funlockfile (stderr);
+
free (buf);
}
#else
@@ -1181,7 +1118,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
argv[0], c);
#endif
}
- optopt = c;
+ d->optopt = c;
if (optstring[0] == ':')
c = ':';
else
@@ -1190,8 +1127,8 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
else
/* We already incremented `optind' once;
increment it again when taking next ARGV-elt as argument. */
- optarg = argv[optind++];
- nextchar = NULL;
+ d->optarg = argv[d->optind++];
+ d->__nextchar = NULL;
}
}
return c;
@@ -1199,18 +1136,40 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
}
int
-getopt (argc, argv, optstring)
- int argc;
- char *const *argv;
- const char *optstring;
+_getopt_internal (int argc, char **argv, const char *optstring,
+ const struct option *longopts, int *longind,
+ int long_only, int posixly_correct)
+{
+ int result;
+
+ getopt_data.optind = optind;
+ getopt_data.opterr = opterr;
+
+ result = _getopt_internal_r (argc, argv, optstring, longopts, longind,
+ long_only, posixly_correct, &getopt_data);
+
+ optind = getopt_data.optind;
+ optarg = getopt_data.optarg;
+ optopt = getopt_data.optopt;
+
+ return result;
+}
+
+/* glibc gets a LSB-compliant getopt.
+ Standalone applications get a POSIX-compliant getopt. */
+#if _LIBC
+enum { POSIXLY_CORRECT = 0 };
+#else
+enum { POSIXLY_CORRECT = 1 };
+#endif
+
+int
+getopt (int argc, char *const *argv, const char *optstring)
{
- return _getopt_internal (argc, argv, optstring,
- (const struct option *) 0,
- (int *) 0,
- 0);
+ return _getopt_internal (argc, (char **) argv, optstring, NULL, NULL, 0,
+ POSIXLY_CORRECT);
}
-#endif /* Not ELIDE_CODE. */
#ifdef TEST
@@ -1218,9 +1177,7 @@ getopt (argc, argv, optstring)
the above definition of `getopt'. */
int
-main (argc, argv)
- int argc;
- char **argv;
+main (int argc, char **argv)
{
int c;
int digit_optind = 0;
diff --git a/lib-src/getopt1.c b/lib-src/getopt1.c
index 4ec1e50b83..8aa9b18357 100644
--- a/lib-src/getopt1.c
+++ b/lib-src/getopt1.c
@@ -1,6 +1,6 @@
/* getopt_long and getopt_long_only entry points for GNU getopt.
- Copyright (C) 1987,88,89,90,91,92,93,94,96,97,98
- Free Software Foundation, Inc.
+ Copyright (C) 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1996, 1997,
+ 1998, 2004, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
This program is free software; you can redistribute it and/or modify
@@ -26,36 +26,10 @@
#else
# include "getopt.h"
#endif
-
-#if !defined __STDC__ || !__STDC__
-/* This is a separate conditional since some stdc systems
- reject `defined (const)'. */
-#ifndef const
-#define const
-#endif
-#endif
+#include "getopt_int.h"
#include <stdio.h>
-/* Comment out all this code if we are using the GNU C Library, and are not
- actually compiling the library itself. This code is part of the GNU C
- Library, but also included in many other GNU distributions. Compiling
- and linking in this code is a waste when using the GNU C library
- (especially if it is a shared library). Rather than having every GNU
- program understand `configure --with-gnu-libc' and omit the object files,
- it is simpler to just do this in the source for each such file. */
-
-#define GETOPT_INTERFACE_VERSION 2
-#if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2
-#include <gnu-versions.h>
-#if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
-#define ELIDE_CODE
-#endif
-#endif
-
-#ifndef ELIDE_CODE
-
-
/* This needs to come after some library #include
to get __GNU_LIBRARY__ defined. */
#ifdef __GNU_LIBRARY__
@@ -67,14 +41,20 @@
#endif
int
-getopt_long (argc, argv, options, long_options, opt_index)
- int argc;
- char *const *argv;
- const char *options;
- const struct option *long_options;
- int *opt_index;
+getopt_long (int argc, char *__getopt_argv_const *argv, const char *options,
+ const struct option *long_options, int *opt_index)
{
- return _getopt_internal (argc, argv, options, long_options, opt_index, 0);
+ return _getopt_internal (argc, (char **) argv, options, long_options,
+ opt_index, 0, 0);
+}
+
+int
+_getopt_long_r (int argc, char **argv, const char *options,
+ const struct option *long_options, int *opt_index,
+ struct _getopt_data *d)
+{
+ return _getopt_internal_r (argc, argv, options, long_options, opt_index,
+ 0, 0, d);
}
/* Like getopt_long, but '-' as well as '--' can indicate a long option.
@@ -83,31 +63,30 @@ getopt_long (argc, argv, options, long_options, opt_index)
instead. */
int
-getopt_long_only (argc, argv, options, long_options, opt_index)
- int argc;
- char *const *argv;
- const char *options;
- const struct option *long_options;
- int *opt_index;
+getopt_long_only (int argc, char *__getopt_argv_const *argv,
+ const char *options,
+ const struct option *long_options, int *opt_index)
{
- return _getopt_internal (argc, argv, options, long_options, opt_index, 1);
+ return _getopt_internal (argc, (char **) argv, options, long_options,
+ opt_index, 1, 0);
}
-# ifdef _LIBC
-libc_hidden_def (getopt_long)
-libc_hidden_def (getopt_long_only)
-# endif
+int
+_getopt_long_only_r (int argc, char **argv, const char *options,
+ const struct option *long_options, int *opt_index,
+ struct _getopt_data *d)
+{
+ return _getopt_internal_r (argc, argv, options, long_options, opt_index,
+ 1, 0, d);
+}
-#endif /* Not ELIDE_CODE. */
#ifdef TEST
#include <stdio.h>
int
-main (argc, argv)
- int argc;
- char **argv;
+main (int argc, char **argv)
{
int c;
int digit_optind = 0;
diff --git a/lib-src/getopt.h b/lib-src/getopt_.h
index 953a7d1525..fbd45d42aa 100644
--- a/lib-src/getopt.h
+++ b/lib-src/getopt_.h
@@ -1,5 +1,6 @@
/* Declarations for getopt.
- Copyright (C) 1989-1994, 1996-1999, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 1996, 1997, 1998, 1999,
+ 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
This program is free software; you can redistribute it and/or modify
@@ -22,6 +23,64 @@
# define _GETOPT_H 1
#endif
+/* Standalone applications should #define __GETOPT_PREFIX to an
+ identifier that prefixes the external functions and variables
+ defined in this header. When this happens, include the
+ headers that might declare getopt so that they will not cause
+ confusion if included after this file. Then systematically rename
+ identifiers so that they do not collide with the system functions
+ and variables. Renaming avoids problems with some compilers and
+ linkers. */
+#if defined __GETOPT_PREFIX && !defined __need_getopt
+# include <stdlib.h>
+# include <stdio.h>
+# if HAVE_UNISTD_H
+# include <unistd.h>
+# endif
+# undef __need_getopt
+# undef getopt
+# undef getopt_long
+# undef getopt_long_only
+# undef optarg
+# undef opterr
+# undef optind
+# undef optopt
+# define __GETOPT_CONCAT(x, y) x ## y
+# define __GETOPT_XCONCAT(x, y) __GETOPT_CONCAT (x, y)
+# define __GETOPT_ID(y) __GETOPT_XCONCAT (__GETOPT_PREFIX, y)
+# define getopt __GETOPT_ID (getopt)
+# define getopt_long __GETOPT_ID (getopt_long)
+# define getopt_long_only __GETOPT_ID (getopt_long_only)
+# define optarg __GETOPT_ID (optarg)
+# define opterr __GETOPT_ID (opterr)
+# define optind __GETOPT_ID (optind)
+# define optopt __GETOPT_ID (optopt)
+#endif
+
+/* Standalone applications get correct prototypes for getopt_long and
+ getopt_long_only; they declare "char **argv". libc uses prototypes
+ with "char *const *argv" that are incorrect because getopt_long and
+ getopt_long_only can permute argv; this is required for backward
+ compatibility (e.g., for LSB 2.0.1).
+
+ This used to be `#if defined __GETOPT_PREFIX && !defined __need_getopt',
+ but it caused redefinition warnings if both unistd.h and getopt.h were
+ included, since unistd.h includes getopt.h having previously defined
+ __need_getopt.
+
+ The only place where __getopt_argv_const is used is in definitions
+ of getopt_long and getopt_long_only below, but these are visible
+ only if __need_getopt is not defined, so it is quite safe to rewrite
+ the conditional as follows:
+*/
+#if !defined __need_getopt
+# if defined __GETOPT_PREFIX
+# define __getopt_argv_const /* empty */
+# else
+# define __getopt_argv_const const
+# endif
+#endif
+
/* If __GNU_LIBRARY__ is not already defined, either we are being used
standalone, or this is the first header included in the source file.
If we are being used with glibc, we need to include <features.h>, but
@@ -33,6 +92,17 @@
# include <ctype.h>
#endif
+#ifndef __THROW
+# ifndef __GNUC_PREREQ
+# define __GNUC_PREREQ(maj, min) (0)
+# endif
+# if defined __cplusplus && __GNUC_PREREQ (2,8)
+# define __THROW throw ()
+# else
+# define __THROW
+# endif
+#endif
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -77,7 +147,7 @@ extern int optopt;
The field `has_arg' is:
no_argument (or 0) if the option does not take an argument,
required_argument (or 1) if the option requires an argument,
- optional_argument (or 2) if the option takes an optional argument.
+ optional_argument (or 2) if the option takes an optional argument.
If the field `flag' is not NULL, it points to a variable that is set
to the value given in the field `val' when the option is found, but
@@ -92,11 +162,7 @@ extern int optopt;
struct option
{
-# if (defined __STDC__ && __STDC__) || defined __cplusplus
const char *name;
-# else
- char *name;
-# endif
/* has_arg can't be an enum because some compilers complain about
type mismatches in all the code that assumes it is an int. */
int has_arg;
@@ -136,39 +202,20 @@ struct option
arguments to the option '\0'. This behavior is specific to the GNU
`getopt'. */
-#if (defined __STDC__ && __STDC__) || defined __cplusplus
-# ifdef __GNU_LIBRARY__
-/* Many other libraries have conflicting prototypes for getopt, with
- differences in the consts, in stdlib.h. To avoid compilation
- errors, only prototype getopt for the GNU C library. */
-extern int getopt (int ___argc, char *const *___argv, const char *__shortopts);
-# else /* not __GNU_LIBRARY__ */
-extern int getopt ();
-# endif /* __GNU_LIBRARY__ */
-
-# ifndef __need_getopt
-extern int getopt_long (int ___argc, char *const *___argv,
- const char *__shortopts,
- const struct option *__longopts, int *__longind);
-extern int getopt_long_only (int ___argc, char *const *___argv,
- const char *__shortopts,
- const struct option *__longopts, int *__longind);
+extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
+ __THROW;
-/* Internal only. Users should not call this directly. */
-extern int _getopt_internal (int ___argc, char *const *___argv,
+#ifndef __need_getopt
+extern int getopt_long (int ___argc, char *__getopt_argv_const *___argv,
+ const char *__shortopts,
+ const struct option *__longopts, int *__longind)
+ __THROW;
+extern int getopt_long_only (int ___argc, char *__getopt_argv_const *___argv,
const char *__shortopts,
- const struct option *__longopts, int *__longind,
- int __long_only);
-# endif
-#else /* not __STDC__ */
-extern int getopt ();
-# ifndef __need_getopt
-extern int getopt_long ();
-extern int getopt_long_only ();
+ const struct option *__longopts, int *__longind)
+ __THROW;
-extern int _getopt_internal ();
-# endif
-#endif /* __STDC__ */
+#endif
#ifdef __cplusplus
}
@@ -179,5 +226,5 @@ extern int _getopt_internal ();
#endif /* getopt.h */
-/* arch-tag: 9adb7828-e6a6-40cd-8512-0cdf1f20ddd4
+/* arch-tag: e36f5607-3ac6-4cdc-9aa7-c26c6525fe9b
(do not change this comment) */
diff --git a/lib-src/getopt_int.h b/lib-src/getopt_int.h
new file mode 100644
index 0000000000..f59ab32ce2
--- /dev/null
+++ b/lib-src/getopt_int.h
@@ -0,0 +1,134 @@
+/* Internal declarations for getopt.
+ Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 1996, 1997, 1998, 1999,
+ 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#ifndef _GETOPT_INT_H
+#define _GETOPT_INT_H 1
+
+extern int _getopt_internal (int ___argc, char **___argv,
+ const char *__shortopts,
+ const struct option *__longopts, int *__longind,
+ int __long_only, int __posixly_correct);
+
+
+/* Reentrant versions which can handle parsing multiple argument
+ vectors at the same time. */
+
+/* Data type for reentrant functions. */
+struct _getopt_data
+{
+ /* These have exactly the same meaning as the corresponding global
+ variables, except that they are used for the reentrant
+ versions of getopt. */
+ int optind;
+ int opterr;
+ int optopt;
+ char *optarg;
+
+ /* Internal members. */
+
+ /* True if the internal members have been initialized. */
+ int __initialized;
+
+ /* The next char to be scanned in the option-element
+ in which the last option character we returned was found.
+ This allows us to pick up the scan where we left off.
+
+ If this is zero, or a null string, it means resume the scan
+ by advancing to the next ARGV-element. */
+ char *__nextchar;
+
+ /* Describe how to deal with options that follow non-option ARGV-elements.
+
+ If the caller did not specify anything,
+ the default is REQUIRE_ORDER if the environment variable
+ POSIXLY_CORRECT is defined, PERMUTE otherwise.
+
+ REQUIRE_ORDER means don't recognize them as options;
+ stop option processing when the first non-option is seen.
+ This is what Unix does.
+ This mode of operation is selected by either setting the environment
+ variable POSIXLY_CORRECT, or using `+' as the first character
+ of the list of option characters, or by calling getopt.
+
+ PERMUTE is the default. We permute the contents of ARGV as we
+ scan, so that eventually all the non-options are at the end.
+ This allows options to be given in any order, even with programs
+ that were not written to expect this.
+
+ RETURN_IN_ORDER is an option available to programs that were
+ written to expect options and other ARGV-elements in any order
+ and that care about the ordering of the two. We describe each
+ non-option ARGV-element as if it were the argument of an option
+ with character code 1. Using `-' as the first character of the
+ list of option characters selects this mode of operation.
+
+ The special argument `--' forces an end of option-scanning regardless
+ of the value of `ordering'. In the case of RETURN_IN_ORDER, only
+ `--' can cause `getopt' to return -1 with `optind' != ARGC. */
+
+ enum
+ {
+ REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER
+ } __ordering;
+
+ /* If the POSIXLY_CORRECT environment variable is set
+ or getopt was called. */
+ int __posixly_correct;
+
+
+ /* Handle permutation of arguments. */
+
+ /* Describe the part of ARGV that contains non-options that have
+ been skipped. `first_nonopt' is the index in ARGV of the first
+ of them; `last_nonopt' is the index after the last of them. */
+
+ int __first_nonopt;
+ int __last_nonopt;
+
+#if defined _LIBC && defined USE_NONOPTION_FLAGS
+ int __nonoption_flags_max_len;
+ int __nonoption_flags_len;
+# endif
+};
+
+/* The initializer is necessary to set OPTIND and OPTERR to their
+ default values and to clear the initialization flag. */
+#define _GETOPT_DATA_INITIALIZER { 1, 1 }
+
+extern int _getopt_internal_r (int ___argc, char **___argv,
+ const char *__shortopts,
+ const struct option *__longopts, int *__longind,
+ int __long_only, int __posixly_correct,
+ struct _getopt_data *__data);
+
+extern int _getopt_long_r (int ___argc, char **___argv,
+ const char *__shortopts,
+ const struct option *__longopts, int *__longind,
+ struct _getopt_data *__data);
+
+extern int _getopt_long_only_r (int ___argc, char **___argv,
+ const char *__shortopts,
+ const struct option *__longopts,
+ int *__longind,
+ struct _getopt_data *__data);
+
+#endif /* getopt_int.h */
+
+/* arch-tag: 8bfc548f-23d6-46aa-b5b5-2739b0edaf79
+ (do not change this comment) */
diff --git a/nt/inc/gettext.h b/lib-src/gettext.h
index cd251314cb..658fa17fcb 100755..100644
--- a/nt/inc/gettext.h
+++ b/lib-src/gettext.h
@@ -1,20 +1,20 @@
/* Convenience header for conditional use of GNU <libintl.h>.
- Copyright (C) 1995-1998, 2000-2002 Free Software Foundation, Inc.
+ Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2004,
+ 2005 Free Software Foundation, Inc.
- This program is free software; you can redistribute it and/or modify it
- under the terms of the GNU Library General Public License as published
- by the Free Software Foundation; either version 2, or (at your option)
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
- You should have received a copy of the GNU Library General Public
- License along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA. */
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
#ifndef _LIBGETTEXT_H
#define _LIBGETTEXT_H 1
@@ -37,6 +37,16 @@
# include <locale.h>
#endif
+/* Many header files from the libstdc++ coming with g++ 3.3 or newer include
+ <libintl.h>, which chokes if dcgettext is defined as a macro. So include
+ it now, to make later inclusions of <libintl.h> a NOP. */
+#if defined(__cplusplus) && defined(__GNUG__) && (__GNUC__ >= 3)
+# include <cstdlib>
+# if (__GLIBC__ >= 2) || _GLIBCXX_HAVE_LIBINTL_H
+# include <libintl.h>
+# endif
+#endif
+
/* Disabled NLS.
The casts to 'const char *' serve the purpose of producing warnings
for invalid uses of the value returned from these functions.
@@ -68,5 +78,5 @@
#endif /* _LIBGETTEXT_H */
-/* arch-tag: 07b35a70-3531-4cda-9674-2968467143ec
+/* arch-tag: 3d01bb8e-82e3-4674-9812-de4c4224f7d1
(do not change this comment) */
diff --git a/lib-src/grep-changelog b/lib-src/grep-changelog
index 04468535e0..45bf841ae5 100755
--- a/lib-src/grep-changelog
+++ b/lib-src/grep-changelog
@@ -1,6 +1,7 @@
#! /usr/bin/perl
-# Copyright (C) 1999, 2000, 2001, 2004 Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005 Free Software Foundation, Inc.
#
# This file is part of GNU Emacs.
#
diff --git a/lib-src/hexl.c b/lib-src/hexl.c
index 05e0658e56..0dfdddf468 100644
--- a/lib-src/hexl.c
+++ b/lib-src/hexl.c
@@ -1,5 +1,5 @@
/* Convert files for Emacs Hexl mode.
- Copyright (C) 1989 Free Software Foundation, Inc
+ Copyright (C) 1989, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is not considered part of GNU Emacs.
diff --git a/lib-src/make-docfile.c b/lib-src/make-docfile.c
index 6c0816ed98..537eafec7f 100644
--- a/lib-src/make-docfile.c
+++ b/lib-src/make-docfile.c
@@ -1,6 +1,6 @@
/* Generate doc-string file for GNU Emacs from source files.
- Copyright (C) 1985, 86, 92, 93, 94, 97, 1999, 2000, 01, 2004
- Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1992, 1993, 1994, 1997, 1999, 2000, 2001,
+ 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/lib-src/makefile.w32-in b/lib-src/makefile.w32-in
index d8e8c205b3..bfda0f25d5 100644
--- a/lib-src/makefile.w32-in
+++ b/lib-src/makefile.w32-in
@@ -1,5 +1,6 @@
# -*- Makefile -*- for GNU Emacs on the Microsoft W32 API.
-# Copyright (c) 2000-2001, 2004 Free Software Foundation, Inc.
+# Copyright (C) 2000, 2001, 2002, 2003, 2004,
+# 2005 Free Software Foundation, Inc.
#
# This file is part of GNU Emacs.
#
@@ -286,6 +287,7 @@ install: $(INSTALL_FILES)
clean:
- $(DEL) *~ DOC* $(COMPILER_TEMP_FILES)
- $(DEL) ctags.c
+ - $(DEL) getopt.h
- $(DEL_TREE) $(OBJDIR)
cleanall: clean
@@ -301,6 +303,8 @@ cleanall: clean
$(CP) $(ALL_DEPS) $@
../src/paths.h: ../nt/paths.h
$(CP) $(ALL_DEPS) $@
+getopt.h: getopt_.h
+ $(CP) $(ALL_DEPS) $@
### DEPENDENCIES ###
diff --git a/lib-src/movemail.c b/lib-src/movemail.c
index f82bebd4f2..e8f1122e94 100644
--- a/lib-src/movemail.c
+++ b/lib-src/movemail.c
@@ -1,6 +1,7 @@
/* movemail foo bar -- move file foo to file bar,
locking file foo the way /bin/mail respects.
- Copyright (C) 1986, 92, 93, 94, 96, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1986, 1992, 1993, 1994, 1996, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/lib-src/ntlib.c b/lib-src/ntlib.c
index c346ccd908..caaf521206 100644
--- a/lib-src/ntlib.c
+++ b/lib-src/ntlib.c
@@ -1,5 +1,5 @@
/* Utility and Unix shadow routines for GNU Emacs support programs on NT.
- Copyright (C) 1994 Free Software Foundation, Inc.
+ Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/lib-src/ntlib.h b/lib-src/ntlib.h
index b1cb97dabd..07e730567f 100644
--- a/lib-src/ntlib.h
+++ b/lib-src/ntlib.h
@@ -1,5 +1,5 @@
/* Utility and Unix shadow routines for GNU Emacs support programs on NT.
- Copyright (C) 1994 Free Software Foundation, Inc.
+ Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/lib-src/pop.c b/lib-src/pop.c
index 9a85ba3746..9bc73e90a5 100644
--- a/lib-src/pop.c
+++ b/lib-src/pop.c
@@ -1,5 +1,6 @@
/* pop.c: client routines for talking to a POP3-protocol post-office server
- Copyright (c) 1991, 1993, 1996, 1997, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1991, 1993, 1996, 1997, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Written by Jonathan Kamens, jik@security.ov.com.
This file is part of GNU Emacs.
@@ -76,17 +77,6 @@ extern struct servent *hes_getservbyname (/* char *, char * */);
# ifdef HAVE_KRB5_H
# include <krb5.h>
# endif
-# ifdef HAVE_DES_H
-# include <des.h>
-# else
-# ifdef HAVE_KERBEROSIV_DES_H
-# include <kerberosIV/des.h>
-# else
-# ifdef HAVE_KERBEROS_DES_H
-# include <kerberos/des.h>
-# endif
-# endif
-# endif
# ifdef HAVE_KRB_H
# include <krb.h>
# else
@@ -1403,12 +1393,24 @@ sendline (server, line)
{
#define SENDLINE_ERROR "Error writing to POP server: "
int ret;
-
- ret = fullwrite (server->file, line, strlen (line));
- if (ret >= 0)
- { /* 0 indicates that a blank line was written */
- ret = fullwrite (server->file, "\r\n", 2);
- }
+ char *buf;
+
+ /* Combine the string and the CR-LF into one buffer. Otherwise, two
+ reasonable network stack optimizations, Nagle's algorithm and
+ delayed acks, combine to delay us a fraction of a second on every
+ message we send. (Movemail writes line without \r\n, client
+ kernel sends packet, server kernel delays the ack to see if it
+ can combine it with data, movemail writes \r\n, client kernel
+ waits because it has unacked data already in its outgoing queue,
+ client kernel eventually times out and sends.)
+
+ This can be something like 0.2s per command, which can add up
+ over a few dozen messages, and is a big chunk of the time we
+ spend fetching mail from a server close by. */
+ buf = alloca (strlen (line) + 3);
+ strcpy (buf, line);
+ strcat (buf, "\r\n");
+ ret = fullwrite (server->file, buf, strlen (buf));
if (ret < 0)
{
diff --git a/lib-src/pop.h b/lib-src/pop.h
index 5267ec97eb..eed24a8993 100644
--- a/lib-src/pop.h
+++ b/lib-src/pop.h
@@ -1,5 +1,6 @@
/* pop.h: Header file for the "pop.c" client POP3 protocol.
- Copyright (c) 1991,1993 Free Software Foundation, Inc.
+ Copyright (C) 1991, 1993, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Written by Jonathan Kamens, jik@security.ov.com.
This file is part of GNU Emacs.
diff --git a/lib-src/profile.c b/lib-src/profile.c
index 7bc7186c25..615a43d912 100644
--- a/lib-src/profile.c
+++ b/lib-src/profile.c
@@ -1,5 +1,6 @@
/* profile.c --- generate periodic events for profiling of Emacs Lisp code.
- Copyright (C) 1992, 1994, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1992, 1994, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Author: Boaz Ben-Zvi <boaz@lcs.mit.edu>
diff --git a/lib-src/rcs-checkin b/lib-src/rcs-checkin
index 2a7de0f2f1..beee6ce29f 100755
--- a/lib-src/rcs-checkin
+++ b/lib-src/rcs-checkin
@@ -2,7 +2,8 @@
# This script accepts any number of file arguments and checks them into RCS.
-# Copyright (C) 1993, 1994, 1995, 2001, 2002 Free Software Foundation, Inc.
+# Copyright (C) 1993, 1994, 1995, 2001, 2002, 2003, 2004,
+# 2005 Free Software Foundation, Inc.
#
# This file is part of GNU Emacs.
#
diff --git a/lib-src/rcs2log b/lib-src/rcs2log
index 05864c2ad2..4e7c6c1bb1 100755
--- a/lib-src/rcs2log
+++ b/lib-src/rcs2log
@@ -55,7 +55,7 @@ Report bugs to <bug-gnu-emacs@gnu.org>.'
Id='$Id$'
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2001, 2002, 2003,
-# 2004 Free Software Foundation, Inc.
+# 2004, 2005 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -72,7 +72,7 @@ Id='$Id$'
# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
-Copyright='Copyright (C) 2004 Free Software Foundation, Inc.
+Copyright='Copyright (C) 2005 Free Software Foundation, Inc.
This program comes with NO WARRANTY, to the extent permitted by law.
You may redistribute copies of this program
under the terms of the GNU General Public License.
diff --git a/lib-src/sorted-doc.c b/lib-src/sorted-doc.c
index 120a510f00..cb04be2684 100644
--- a/lib-src/sorted-doc.c
+++ b/lib-src/sorted-doc.c
@@ -1,8 +1,8 @@
/* Give this program DOC-mm.nn.oo as standard input and it outputs to
standard output a file of texinfo input containing the doc strings.
- Copyright (C) 1989, 1992, 1994, 1996, 1999, 2000, 2001
- Free Software Foundation Inc.
+ Copyright (C) 1989, 1992, 1994, 1996, 1999, 2000, 2001, 2002, 2003,
+ 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/lib-src/test-distrib.c b/lib-src/test-distrib.c
index 0bbc6806d7..0d3587af8d 100644
--- a/lib-src/test-distrib.c
+++ b/lib-src/test-distrib.c
@@ -1,7 +1,7 @@
/* test-distrib.c --- testing distribution of nonprinting chars
- Copyright (C) 1987, 1993, 1994, 1995, 1999, 2001
- Free Software Foundation Inc.
+ Copyright (C) 1987, 1993, 1994, 1995, 1999, 2001, 2002, 2003,
+ 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/lib-src/update-game-score.c b/lib-src/update-game-score.c
index d9d20b8525..46d0d8b060 100644
--- a/lib-src/update-game-score.c
+++ b/lib-src/update-game-score.c
@@ -1,5 +1,5 @@
/* update-game-score.c --- Update a score file
- Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/lib-src/vcdiff b/lib-src/vcdiff
index 8e1722d43b..a57811a7f6 100755
--- a/lib-src/vcdiff
+++ b/lib-src/vcdiff
@@ -3,8 +3,8 @@
# Enhanced sccs diff utility for use with vc mode.
# This version is more compatible with rcsdiff(1).
#
-# Copyright (C) 1992, 1993, 1995, 1997, 2001, 2004
-# Free Software Foundation, Inc.
+# Copyright (C) 1992, 1993, 1995, 1997, 2001, 2002, 2003, 2004,
+# 2005 Free Software Foundation, Inc.
#
# This file is part of GNU Emacs.
#
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index f5dbc71ff9..1bcdf7628b 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,2519 @@
+2005-09-02 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * term/xterm.el (terminal-init-xterm): Add eval-when-compile to
+ fix compilation warning. Reorder the key definitions to group
+ together keys emitted by the current version of xterm.
+
+ * progmodes/vhdl-mode.el (vhdl-highlight-faces)
+ (vhdl-speedbar-entity-face, vhdl-speedbar-entity-selected-face):
+ Reorder predicates to correct min-color usage.
+
+2005-09-01 Chong Yidong <cyd@stupidchicken.com>
+
+ * longlines.el (longlines-mode): Inhibit read-only when encoding.
+ Kill local variables when longlines-mode is turned off.
+
+2005-09-01 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * obsolete/lazy-lock.el (lazy-lock) <defgroup>: Move from font-lock.el.
+
+ * obsolete/fast-lock.el (fast-lock) <defgroup>: Move from font-lock.el.
+
+ * font-lock.el (fast-lock, lazy-lock) <defgroup>: Remove.
+ (font-lock-lines-before): Change default to being inactive.
+ (font-lock-default-fontify-region): Obey font-lock-lines-before.
+ (font-lock-after-change-function): Don't handle f-l-lines-before here.
+
+2005-08-31 Michael Albinus <michael.albinus@gmx.de>
+
+ * net/tramp.el (tramp-handle-make-auto-save-file-name):
+ Deactivate temporarily advice if active (not needed for Emacs 22,
+ but for backwards compatibility).
+ (tramp-exists-file-name-handler): Rewrite. First implementation
+ was too simple.
+ (tramp-advice-make-auto-save-file-name):
+ Call `tramp-handle-make-auto-save-file-name' (again, just for
+ backwards compatibility).
+
+2005-08-31 Reto Zimmermann <reto@gnu.org>
+
+ * progmodes/vhdl-mode.el
+ (vhdl-update-sensitivity-list): Handle multi-dimensional array access.
+ (vhdl-end-p): Fix indentation bug "else" after "-- when".
+ (vhdl-set-default-project): New function (easier setting of default).
+ (vhdl-port-copy): Handle extended identifiers for generics.
+ (vhdl-compiler-alist): Better description for error message regexp.
+ (vhdl-make): Query for target, use previous as default.
+ (vhdl-port-copy): Fix port copy for port names starting with "signal".
+ (vhdl-font-lock-keywords-2): Fix fontification for record
+ el. assign.
+ (vhdl-speedbar-make-subpack-line): Add package body link.
+ (vhdl-generate-makefile-1): Not include itself as dependency.
+ (vhdl-font-lock-init): Highlight c-preprocessor directives.
+ (vhdl-*ward-syntactic-ws): Skip c-preprocessor directives.
+ (vhdl-get-syntactic-context): Handle c-preprocessor directives.
+ (vhdl-update-sensitivity-list): Start scan at opening parenthesis.
+ (vhdl-fixup-whitespace-region): Fix jumping point (infinite loop).
+ (vhdl-update-sensitivity-list-buffer): Add string argument for `error'.
+ (vhdl-import-project): Add string argument for `error'.
+ (vhdl-compose-configuration)
+ (vhdl-compose-configuration-architecture): Add configuration
+ declaration generation.
+ (vhdl-scan-directory-contents): Scan for block/generate hierarchy.
+ (vhdl-trailer-re): Add "record" keyword (better indentation).
+ (vhdl-fixup-whitespace-region): "[^ \t\"-]+" instead of
+ "[^ \t-\"]+".
+ (vhdl-font-lock-keywords-2): Not highlight formal parameter after '|'.
+ (vhdl-testbench-entity-file-name)
+ (vhdl-testbench-architecture-file-name): Allow separate
+ customization of testbench file names.
+ (vhdl-beginning-of-block): Handle optional subprogram parameter list.
+ (vhdl-get-visible-signals): Allow newline within alias declaration.
+ (vhdl-update-sensitivity-list): Signal read only on certain attributes.
+ (vhdl-fixup-whitespace-region): Fix bug with strings (double quotes).
+ (member-ignore-case): Alias for missing function in XEmacs.
+ (vhdl-compiler-alist): Add unit-to-file name mapping for Cadence NC.
+ (vhdl-update-sensitivity-list): Ignore case on read signals.
+ (vhdl-replace-string): Adjust case only for file names.
+ (vhdl-update-sensitivity-list): Fix search for read signals.
+ (vhdl-update-sensitivity-list): Exclude formal parameters.
+ (vhdl-get-visible-signals): Include aliases of signals.
+ (vhdl-get-visible-signals): Fix signal name searching.
+ (vhdl-port-flatten, vhdl-port-reverse-direction): Better message.
+ (vhdl-fixup-whitespace-region): Fix for character
+ literals (e.g. ':').
+
+2005-08-31 Juanma Barranquero <lekktu@gmail.com>
+
+ * ansi-color.el (comint-last-output-start):
+ * bs.el (font-lock-verbose):
+ * diff-mode.el (add-log-buffer-file-name-function):
+ * dired-x.el (vm-folder-directory):
+ * faces.el (help-xref-stack-item):
+ * files.el (font-lock-keywords):
+ * find-lisp.el (dired-buffers, dired-subdir-alist):
+ * ido.el (cua-inhibit-cua-keys):
+ * log-view.el (cvs-minor-wrap-function):
+ * outline.el (font-lock-warning-face):
+ * simple.el (compilation-current-error):
+ * speedbar.el (ange-ftp-path-format, efs-path-regexp)
+ (font-lock-keywords, x-pointer-hand2, x-pointer-top-left-arrow):
+ * tooltip.el (comint-prompt-regexp):
+ * w32-fns.el (explicit-shell-file-name):
+ * term/mac-win.el (mac-charset-info-alist)
+ (mac-services-selection, mac-system-script-code):
+ * term/tty-colors.el (msdos-color-values):
+ * term/w32-win.el (xlfd-regexp-registry-subnum):
+ * term/x-win.el (x-keysym-table, x-selection-timeout)
+ (x-session-id, x-session-previous-id):
+ * textmodes/ispell.el (mail-yank-prefix):
+ * textmodes/makeinfo.el (tex-end-of-header, tex-start-of-header):
+ * textmodes/org.el (calc-embedded-close-formula)
+ (calc-embedded-open-formula)
+ (font-lock-unfontify-region-function):
+ * textmodes/reftex-global.el (isearch-next-buffer-function)
+ (TeX-master):
+ * textmodes/reftex.el (font-lock-keywords):
+ * textmodes/tex-mode.el (font-lock-comment-face)
+ (font-lock-doc-face):
+ * textmodes/texinfo.el (outline-heading-alist):
+ Add defvars.
+
+ * textmodes/artist.el (x-pointer-crosshair): Add defvar.
+ (artist-spray-chars, artist-mode-init, artist-replace-string)
+ (artist-select-erase-char, artist-vap-find-endpoints-horiz)
+ (artist-vap-find-endpoints-vert, artist-vap-find-endpoints-swne)
+ (artist-vap-find-endpoints-nwse): "?\ " -> "?\s".
+
+ * textmodes/conf-mode.el (outline-heading-end-regexp): Add defvar.
+ (conf-align-assignments): "?\ " -> "?\s".
+
+ * textmodes/reftex-index.el (TeX-master): Add defvar.
+ (reftex-index-phrases-marker): Move up defvar.
+
+ * textmodes/reftex-toc.el (zmacs-regions): Add defvar.
+ (reftex-toc-include-labels-indicator)
+ (reftex-toc-include-index-indicator)
+ (reftex-toc-max-level-indicator): Move up declarations.
+
+ * net/tramp.el (tramp-handle-make-auto-save-file-name): Pass list
+ of args to `tramp-run-real-handler', even if it's empty in this case.
+
+2005-08-31 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * dired.el (dired-move-to-filename-regexp): Add date format for
+ Mac OS X 10.3 in East Asian locales.
+
+2005-08-31 Michael Albinus <michael.albinus@gmx.de>
+
+ * files.el (make-auto-save-file-name): Add file name handler call
+ if applicable.
+
+ * net/tramp.el (tramp-file-name-handler-alist)
+ (tramp-file-name-for-operation): Add `make-auto-save-file-name'.
+ (tramp-handle-make-auto-save-file-name): Rename from
+ `tramp-make-auto-save-file-name'.
+ (tramp-exists-file-name-handler): New defun.
+ (tramp-advice-make-auto-save-file-name): Make defadvice only when
+ `make-auto-save-file-name' is not a magic file name operation.
+
+2005-08-30 Carsten Dominik <dominik@science.uva.nl>
+
+ * textmodes/org.el (org-special-keyword): New face.
+ (org-table-copy-down, org-table-eval-formula)
+ (org-table-recalculate, org-init-section-numbers):
+ Use `string-to-number' instead of `string-to-int'.
+ (org-get-location): Use `insert-buffer-substring' instead of
+ `insert-buffer'.
+ (org-modify-diary-entry-string): New function.
+ (org-get-entries-from-diary): Set the hook for `add-to-diary-list'.
+ (org-disable-agenda-to-diary): Rename from `org-disable-diary'.
+ (org-toggle-fixed-width-section): Use QUOTE keyword if there is no
+ active region.
+ (org-export-as-html): Handle QUOTE keyword.
+ (org-quote-string): New option.
+ (org-bookmark-jump-unhide): New function, used for
+ `bookmark-after-jump-hook'.
+ (org-diary-default-entry): Apply only when not called through
+ `org-agenda'.
+
+2005-08-30 Juanma Barranquero <lekktu@gmail.com>
+
+ * net/eudc.el (mode-popup-menu):
+ * play/handwrite.el (ps-printer-name, ps-lpr-command):
+ * progmodes/ada-mode.el (compile-auto-highlight)
+ (skeleton-further-elements):
+ * progmodes/autoconf.el (font-lock-syntactic-keywords):
+ * progmodes/cmacexp.el (msdos-shells):
+ * progmodes/compile.el (font-lock-extra-managed-props)
+ (font-lock-keywords, font-lock-maximum-size)
+ (font-lock-support-mode):
+ * progmodes/grep.el (font-lock-lines-before):
+ * progmodes/idlw-complete-structtag.el (idlwave-completion-help-info):
+ * progmodes/mixal-mode.el (compile-command):
+ * progmodes/perl-mode.el (font-lock-comment-face)
+ (font-lock-doc-face, font-lock-string-face):
+ * progmodes/prolog.el (comint-prompt-regexp):
+ * progmodes/sh-script.el (font-lock-comment-face)
+ (font-lock-set-defaults, font-lock-string-face):
+ * progmodes/sql.el (font-lock-keyword-face)
+ (font-lock-set-defaults, font-lock-string-face):
+ * progmodes/vhdl-mode.el (compilation-file-regexp-alist)
+ (itimer-version, lazy-lock-defer-contextually)
+ (lazy-lock-defer-on-scrolling, lazy-lock-defer-on-the-fly):
+ Add defvars.
+
+ * progmodes/cperl-mode.el (cperl-electric-lbrace)
+ (cperl-electric-keyword, cperl-electric-pod)
+ (cperl-electric-backspace, cperl-forward-re)
+ (cperl-fix-line-spacing, cperl-fill-paragraph): "?\ " -> "?\s".
+ (vc-rcs-header, vc-sccs-header): Add defvars.
+
+ * progmodes/fortran.el (fortran-indent-to-column): "?\ " -> "?\s".
+ (font-lock-syntactic-keywords, gud-find-expr-function):
+ Add defvars.
+
+ * progmodes/gdb-ui.el (tool-bar-map): Add defvar.
+ (gdb-frame-parameters): Declare before use.
+
+ * progmodes/gud.el (gdb-active-process, gdb-define-alist)
+ (gdb-macro-info, gdb-server-prefix, gdb-show-changed-values)
+ (gdb-var-changed, gdb-var-list, tool-bar-map): Add defvars.
+ (gud-expr-compound-sep, gud-expr-compound): "?\ " -> "?\s".
+
+ * progmodes/idlw-help.el (browse-url-generic-args): Add defvar.
+ (idlwave-help-with-source): Use `insert-buffer-substring', not
+ `insert-buffer'.
+
+2005-08-29 Juri Linkov <juri@jurta.org>
+
+ * outline.el (hide-entry, hide-leaves, outline-toggle-children):
+ Put outline-back-to-heading function call inside save-excursion.
+
+2005-08-29 Juanma Barranquero <lekktu@gmail.com>
+
+ * man.el (Man-init-defvars, Man-translate-references)
+ (Man-support-local-filenames, Man-highlight-references):
+ * progmodes/sql.el (sql-interactive-mode):
+ * shell.el (shell-mode, shell-resync-dirs): Fix typos in docstrings.
+
+ * emacs-lisp/checkdoc.el (compilation-error-regexp-alist)
+ (compilation-mode-font-lock-keywords): Add defvars.
+ (checkdoc-interactive-loop): "?\ " -> "?\s".
+
+ * emacs-lisp/lisp-mode.el (font-lock-comment-face)
+ (font-lock-doc-face, font-lock-string-face)
+ (font-lock-keywords-case-fold-search): Add defvars.
+ (emacs-lisp-mode-syntax-table): "?\ " -> "?\s".
+
+ * obsolete/sun-fns.el (mouse-select-or-drag-move-point):
+ Don't pass X and Y (they are ignored anyway).
+ (mouse-set-mark, mouse-select-window, mouse-delete-other-windows)
+ (mouse-delete-window): Make arguments optional.
+
+ * obsolete/rnews.el (news-add-news-group): Don't use `end-of-line'.
+ (caesar-translate-table, minor-modes, news-buffer-save)
+ (news-group-name, news-minor-modes): Add defvars.
+
+ * emacs-lisp/lselect.el (mouse-highlight-priority)
+ (x-lost-selection-functions, zmacs-regions):
+ * emacs-lisp/pp.el (font-lock-verbose):
+ * emacs-lisp/syntax.el (font-lock-beginning-of-syntax-function):
+ * emacs-lisp/tcover-ses.el (ses-initial-global-parameters)
+ (ses-mode-map):
+ * emacs-lisp/tcover-unsafep.el (safe-functions):
+ * international/mule-cmds.el (mac-system-coding-system)
+ (mac-system-locale):
+ * language/ethio-util.el (rmail-current-message)
+ (rmail-message-vector):
+ * language/thai-util.el (thai-auto-composition-mode):
+ * mail/metamail.el (rmail-current-message, rmail-message-vector):
+ * mail/mspools.el (rmail-inbox-list, vm-crash-box)
+ (vm-folder-directory, vm-init-file, vm-init-file-loaded)
+ (vm-primary-inbox, vm-spool-files):
+ * mail/rmail.el (deleted-head, font-lock-fontified)
+ (mail-abbrev-syntax-table, mail-abbrevs, messages-head)
+ (rmail-use-spam-filter, rsf-beep, rsf-sleep-after-message)
+ (total-messages):
+ * mail/rmail-spam-filter.el (bbdb/mail_auto_create_p)
+ (rmail-summary-mode-map):
+ * mail/rmailkwd.el (rmail-buffer, rmail-current-message)
+ (rmail-last-label, rmail-last-multi-labels)
+ (rmail-summary-vector, rmail-total-messages):
+ * mail/rmailmsc.el (rmail-current-message, rmail-inbox-list):
+ * mail/rmailsum.el (msgnum):
+ * mail/uce.el (gnus-original-article-buffer, mail-reply-buffer)
+ (rmail-current-message):
+ * obsolete/fast-lock.el (font-lock-face-list):
+ * obsolete/rnewspost.el (mail-reply-buffer):
+ * obsolete/scribe.el (compile-command):
+ * obsolete/x-menu.el (x-process-mouse-hook): Add defvars.
+
+2005-08-28 John Paul Wallington <jpw@gnu.org>
+
+ * ibuf-ext.el (ibuffer-auto-update-changed):
+ Use `frame-or-buffer-changed-p' to check whether we need to update.
+ (ibuffer-auto-mode): Don't advise `get-buffer-create' and
+ `kill-buffer'. Initialise `ibuffer-auto-buffers-changed'
+ as a `frame-or-buffer-changed-p' state vector instead.
+
+2005-08-27 Romain Francoise <romain@orebokech.com>
+
+ * textmodes/makeinfo.el (makeinfo-compile):
+ Use `compilation-start'. Set `next-error-function' according to
+ `disable-errors'.
+ (makeinfo-next-error): New function.
+ (makeinfo-region): Adjust to new `makeinfo-compile' prototype.
+ (makeinfo-buffer): Likewise.
+
+ * progmodes/compile.el (compilation-start): Add autoload cookie.
+
+ * progmodes/antlr-mode.el: Don't autoload `compilation-start'.
+ * textmodes/sgml-mode.el: Likewise.
+ * progmodes/python.el: Likewise.
+
+2005-08-27 Eli Zaretskii <eliz@gnu.org>
+
+ * simple.el (blink-matching-paren-distance): Document the meaning
+ of nil value, and allow to customize to nil.
+
+ * eshell/esh-ext.el (eshell-windows-shell-file): Look for
+ command.com, not command.exe.
+
+2005-08-26 John Wiegley <johnw@newartisans.com>
+
+ * eshell/esh-cmd.el (eshell-rewrite-named-command): Change the
+ code around a bit so that an extraneous nil argument is not added
+ to a command when no args are given.
+
+ * eshell/esh-arg.el (eshell-parse-double-quote): If a
+ double-quoted argument resolves to nil, return it as an empty
+ string rather than as nil. This made it impossible to pass "" to
+ a shell script as a null string argument.
+
+2005-08-26 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * outline.el (outline-invent-heading): New fun.
+ (outline-promote, outline-demote): Use it.
+ (outline-move-subtree-down): Remove unused vars `re' and `txt'.
+ (outline-end-of-subtree): Remove unused var `opoint'.
+
+2005-08-26 David Reitter <david.reitter@gmail.com>
+
+ * menu-bar.el (truncate-lines, write-file, print-buffer)
+ (ps-print-buffer-faces, ps-print-buffer, split-window):
+ Disable menu items when the frame they refer to is invisible, or when
+ they refer to a buffer and the minibuffer is selected.
+
+2005-08-26 Pavel Kobiakov <pk_at_work@yahoo.com>
+
+ * progmodes/flymake.el (flymake-highlight-err-lines):
+ Use save-excursion around flymake-highlight-line to preserve point.
+
+2005-08-26 Eli Zaretskii <eliz@gnu.org>
+
+ * progmodes/octave-mod.el: Change Author and Maintainer address.
+ (octave-maintainer-address): Change Kurt's email address.
+ * progmodes/octave-inf.el: Change Author and Maintainer address.
+ * progmodes/octave-hlp.el: Change Author and Maintainer address.
+
+2005-08-26 Kim F. Storm <storm@cua.dk>
+
+ * subr.el (version-list-<, version-list-<=, version-list-=):
+ Renamed from integer-list-*.
+ (version-list-not-zero): Likewise. Fix while loop.
+ (version=): Use version-list-= instead of string-equal.
+
+2005-08-26 Richard M. Stallman <rms@gnu.org>
+
+ * outline.el (outline-promote): Try shortening the heading.
+ As last resort, read the heading to use.
+ (outline-demote): As last resort, read the heading to use.
+
+2005-08-26 Romain Francoise <romain@orebokech.com>
+
+ * progmodes/compile.el (compilation-start): Doc fix.
+
+ * progmodes/antlr-mode.el (antlr-default): Fix defface form.
+ (antlr-font-lock-additional-keywords): Fix reference to
+ `antlr-font-lock-literal-regexp' erroneously changed during the
+ mass face rename.
+ (antlr-run-tool): Use `compilation-start'.
+
+ * textmodes/sgml-mode.el (sgml-validate): Use `compilation-start'
+ instead of the obsolete `compile-internal'.
+
+2005-08-26 Juanma Barranquero <lekktu@gmail.com>
+
+ * calendar/cal-bahai.el (date, displayed-month, displayed-year)
+ (number, original-date):
+ * calendar/cal-china.el (date):
+ * calendar/cal-coptic.el (date):
+ * calendar/cal-french.el (date):
+ * calendar/cal-hebrew.el (date, entry, number, original-date):
+ * calendar/cal-islam.el (date, number, original-date):
+ * calendar/cal-iso.el (date):
+ * calendar/cal-julian.el (date):
+ * calendar/cal-mayan.el (date):
+ * calendar/cal-menu.el (date, event):
+ * calendar/cal-persia.el (date):
+ * calendar/lunar.el (date):
+ * calendar/solar.el (date): Add defvars.
+
+ * emerge.el:
+ * ibuffer.el:
+ * info-xref.el:
+ * obsolete/bg-mouse.el:
+ * obsolete/sun-curs.el:
+ * obsolete/swedish.el: Move the `defvar's to the top level.
+
+ * smerge-mode.el (smerge-refined-change): Add :group.
+
+2005-08-25 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * smerge-mode.el (smerge-remove-props): Make the args non-optional.
+ (smerge-keep-n): Remove props.
+ (smerge-keep-base, smerge-keep-other, smerge-keep-mine)
+ (smerge-keep-current, smerge-kill-current): Don't remove props anymore
+ now that it's done in smerge-keep-n.
+ (smerge-refined-change): New face.
+ (smerge-refine-chopup-region, smerge-refine-highlight-change)
+ (smerge-refine): New funs.
+ (smerge-basic-map): Bind smerge-refine.
+
+2005-08-25 Juri Linkov <juri@jurta.org>
+
+ * progmodes/grep.el (grep, grep-mode): Make buffer-local variables
+ compilation-process-setup-function and compilation-disable-input
+ in grep-mode instead of let-bindings in grep.
+
+ * menu-bar.el (menu-bar-options-menu, menu-bar-options-save):
+ Delete "Automatic File De/compression" (auto-compression-mode).
+
+2005-08-25 Juanma Barranquero <lekktu@gmail.com>
+
+ * obsolete/bg-mouse.el: Move to obsolete/ from term/.
+ Silence warning about non-existent variable.
+
+2005-08-25 Richard M. Stallman <rms@gnu.org>
+
+ * menu-bar.el (menu-bar-describe-menu): Delete "What's New".
+ Rename "Describe Key" to "Describe Key or Mouse Operation".
+
+ * mail/mailalias.el (build-mail-aliases): Delete comments
+ from the contents before processing them.
+
+ * isearch.el (isearch-edit-string): Erase the Search prompt
+ if user enters an empty string and there is no default.
+
+ * comint.el (comint-file-name-prefix): Add autoload.
+
+2005-08-25 Joe Corneli <jcorneli@math.utexas.edu>
+
+ * subr.el (play-sound): Rearrange to avoid warning.
+
+2005-08-25 Carsten Dominik <dominik@science.uva.nl>
+
+ * calendar/diary-lib.el (diary-modify-entry-list-string-function):
+ New hook.
+ (add-to-diary-list): Call `diary-modify-entry-list-string-function'
+
+2005-08-24 Vinicius Jose Latorre <viniciusjl@ig.com.br>
+
+ * subr.el (version-separator, version-regexp-alist): New vars used by
+ version comparison funs.
+ (integer-list-<, integer-list-=, integer-list-<=)
+ (integer-list-not-zero): New funs for integer list comparison.
+ (version-to-list, version=, version<, version<=): New funs for version
+ comparison.
+
+2005-08-24 Juanma Barranquero <lekktu@gmail.com>
+
+ * emerge.el (merge-begin, merge-end, template, A-begin, A-end)
+ (B-begin, B-end, diff, diff-vector, valid-diff): Defvar at compile
+ time to silence the byte-compiler.
+
+ * ibuffer.el (ibuffer-compile-make-eliding-form)
+ (ibuffer-check-formats): Use `with-no-warnings' to hide references
+ to `ibuffer-elide-long-columns' (which is defined on ibuffer.el,
+ so it's silly to get warnings for it).
+ (ibuffer-auto-mode, ibuffer-cached-filter-formats)
+ (ibuffer-compiled-filter-formats, ibuffer-filter-format-alist)
+ (ibuffer-filter-group-kill-ring, ibuffer-filter-groups)
+ (ibuffer-filtering-qualifiers, ibuffer-hidden-filter-groups)
+ (ibuffer-inline-columns, ibuffer-show-empty-filter-groups)
+ (ibuffer-tmp-hide-regexps, ibuffer-tmp-show-regexps):
+ Defvar at compile time.
+ (ibuffer-compiled-formats, ibuffer-cached-eliding-string)
+ (ibuffer-cached-formats, ibuffer-cached-elide-long-columns):
+ Declare them before use.
+
+ * info-xref.el (info-xref-xfile-alist, info-xref-filename-heading)
+ (info-xref-good, info-xref-bad): Defvar at compile time.
+
+ * obsolete/mlsupport.el (filter-region, execute-monitor-command):
+ Use `let*' instead of `let'.
+
+ * obsolete/sun-curs.el (icon-edit, *mouse-window*, *mouse-x*)
+ (*mouse-y*, menu, char): Defvar at compile time.
+ (sc::menu): Declare it before use.
+ (sc::pack-one-line): Use `let', not `let*'.
+
+ * obsolete/swedish.el (news-inews-hook, news-group-hook-alist)
+ (mail-send-hook): Defvar at compile time.
+
+ * term/bg-mouse.el (bg-mouse-x, bg-mouse-y, bg-cursor-window):
+ Defvar at compile time.
+
+ * term/sun-mouse.el (current-global-mousemap)
+ (current-local-mousemap): Declare them before use.
+
+2005-08-24 Carsten Dominik <dominik@science.uva.nl>
+
+ * bookmark.el (bookmark-after-jump-hook): New hook.
+ (bookmark-jump): Run `bookmark-after-jump-hook'.
+
+2005-08-23 Juri Linkov <juri@jurta.org>
+
+ * faces.el (minibuffer-prompt): Doc fix.
+
+2005-08-23 Juanma Barranquero <lekktu@gmail.com>
+
+ * progmodes/xscheme.el: Trivial changes to silence warnings.
+ (xscheme-previous-mode, xscheme-previous-process-state):
+ Add defvars.
+ (xscheme-last-input-end, xscheme-process-command-line)
+ (xscheme-process-name, xscheme-buffer-name)
+ (xscheme-expressions-ring-max, xscheme-expressions-ring)
+ (xscheme-expressions-ring-yank-pointer, xscheme-running-p)
+ (xscheme-control-g-synchronization-p)
+ (xscheme-control-g-disabled-p, xscheme-string-receiver)
+ (default-xscheme-runlight, xscheme-runlight)
+ (xscheme-runlight-string, xscheme-process-filter-state)
+ (xscheme-allow-output-p, xscheme-prompt, xscheme-mode-string):
+ Move to beginning of file.
+ (scheme-interaction-mode-commands-alist)
+ (scheme-interaction-mode-map, scheme-debugger-mode-map): Declare
+ them before use. Note: the initialization code for the variables
+ has not been moved because it uses functions that reference the
+ variables.
+ (xscheme-control-g-message-string, xscheme-process-filter-alist)
+ (xscheme-prompt-for-expression-map): Declare them before use.
+ (scheme-debugger-mode-commands): "?\ " -> "?\s".
+
+2005-08-23 Ed Swarthout <ed.swarthout@gmail.com> (tiny change)
+
+ * hexl.el (hexl-print-current-point-info): Fix simple spelling
+ error.
+
+2005-08-22 Juri Linkov <juri@jurta.org>
+
+ * faces.el (set-face-underline): Delete this duplicate function
+ and make an obsolete alias to set-face-underline-p.
+ (set-face-underline-p): Use docstring of set-face-underline.
+ (describe-face): Create hyperlink to parent face.
+
+ * info.el (Info-insert-dir): Use save-excursion around
+ insert-buffer-substring.
+ (Info-isearch-search): Use LITERAL arg of replace-regexp-in-string.
+ (Info-escape-percent): Delete function.
+ (Info-fontify-node): Replace Info-escape-percent by
+ replace-regexp-in-string with REP arg set to lambda that
+ duplicates `%' and preserves text properties.
+
+ * progmodes/compile.el (compilation-disable-input): Doc fix.
+ (define-compilation-mode): Doc fix and refill.
+ (kill-compilation): Use `mode-name' in the error message.
+ (compilation-find-file): Use `compilation-error' in the
+ read-file-name's prompt.
+
+2005-08-22 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * smerge-mode.el (smerge-basic-map): Bind smerge-combine-with-next.
+ (smerge-auto-leave): Make undo re-enable the mode.
+ (debug-ignored-errors): Add the user-error of impossible resolution.
+ (smerge-resolve): Move things around a bit, in preparation for later.
+ (smerge-diff): Don't fail if the buffer has no associated file.
+ (ediff-ancestor-buffer, ediff-quit-hook): Quieten byte-compiler.
+ (smerge-conflict-overlay): New function.
+ (smerge-match-conflict): Don't add text properties here.
+ (smerge-find-conflict): Instead, add an overlay here.
+ Also check for the case where we're inside a conflict already, so as to
+ obviate the need for font-lock-multiline, which is unbearably slow with
+ large conflicts and ciomplex font-lock patterns.
+ (smerge-remove-props): Remove overlay rather than text-properties.
+ (smerge-mode): Don't set font-lock-multiline.
+ Remove overlays when turned off.
+
+2005-08-21 Kim F. Storm <storm@cua.dk>
+
+ * ido.el (ido-ignore-item-p): Use save-match-data.
+ Bind case-fold-search to ido-case-fold locally.
+
+2005-08-20 Richard M. Stallman <rms@gnu.org>
+
+ * files.el (normal-mode): If font lock is on, turn it off and on.
+
+ * subr.el (replace-regexp-in-string): Doc fix.
+
+ * startup.el (command-line-1): Don't suppress startup screen
+ due to existing processes.
+
+ * progmodes/grep.el (grep): Bind compilation-disable-input to t.
+
+ * progmodes/compile.el (compilation-disable-input): Default to nil.
+
+2005-08-20 Kevin Rodgers <ihs_4664@yahoo.com> (tiny change)
+
+ * progmodes/compile.el (compilation-disable-input): New defcustom.
+ (compilation-start): If compilation-disable-input is non-nil, send
+ EOF to the compilation process.
+
+2005-08-20 Eli Zaretskii <eliz@gnu.org>
+
+ * textmodes/tex-mode.el (tex-bibtex-file, tex-send-tex-command):
+ Run the argument of tex-shell-cd-command through
+ convert-standard-filename, to get the correct style of slashes on
+ Windows, and enclose the result in quotes, in case the file name
+ includes whitespace or other special characters.
+
+2005-08-19 Andreas Schwab <schwab@suse.de>
+
+ * progmodes/gud.el (gud-kill-buffer-hook): Don't kill unrelated
+ process.
+
+2005-08-18 Luc Teirlinck <teirllm@auburn.edu>
+
+ * cus-start.el (minibuffer-prompt-properties): Correct typo.
+
+2005-08-18 Kim F. Storm <storm@cua.dk>
+
+ * scroll-lock.el: Fix errors due to incorrect line wrapping.
+
+2005-08-18 Richard M. Stallman <rms@gnu.org>
+
+ * scroll-lock.el: New file.
+
+2005-08-18 Thien-Thi Nguyen <ttn@gnu.org>
+
+ * dired.el (dired-move-to-end-of-filename):
+ Handle fifo as rendered by "ls -lF": Don't include trailing "|".
+
+2005-08-18 Kim F. Storm <storm@cua.dk>
+
+ * ido.el (ido-everywhere): Fix defcustom :set function to disable
+ rather than toggle mode when custom value is nil.
+ (ido-everywhere): Fix defun doc string.
+
+2005-08-17 Richard M. Stallman <rms@gnu.org>
+
+ * cus-start.el (minibuffer-prompt-properties): Use "Don't Enter"
+ as tag instead of "Inviolable".
+
+2005-08-17 Kim F. Storm <storm@cua.dk>
+
+ * windmove.el (windmove-coordinates-of-position): Remove.
+ (windmove-coordinates-of-window-position): Remove.
+ (windmove-reference-loc): Use posn-at-point instead.
+
+ * subr.el (insert-for-yank-1): Doc fix.
+
+ * ido.el (ido-enter-matching-directory): Rename from
+ ido-enter-single-matching-directory. Change 'slash choice to
+ 'only. Add 'first choice.
+ (ido-exhibit): Adapt to above changes.
+
+2005-08-16 Luc Teirlinck <teirllm@auburn.edu>
+
+ * Makefile.in: Expand comment about building loaddefs.el.
+
+2005-08-16 Nick Roberts <nickrob@snap.net.nz>
+
+ * progmodes/gdb-ui.el (toggle-gdb-use-inferior-io-buffer):
+ Comment use of defadvice.
+
+ * progmodes/gud.el (gud-jump): Rework for gdb-ui.
+
+2005-08-15 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * buff-menu.el, compare-w.el, emacs-lisp/testcover.el,
+ * play/gomoku.el, play/mpuz.el, progmodes/flymake.el,
+ * progmodes/gdb-ui.el, progmodes/idlw-help.el,
+ * progmodes/idlw-shell.el, progmodes/ld-script.el,
+ * progmodes/which-func.el, ruler-mode.el, strokes.el,
+ * textmodes/sgml-mode.el, textmodes/table.el: Do not use face-alias
+ for backward compatibility for faces that did not appear in the
+ previous Emacs release.
+
+ * simple.el (next-error-follow-minor-mode): Fix init value and lighter.
+
+2005-08-15 Kim F. Storm <storm@cua.dk>
+
+ * emulation/cua-base.el (cua-delete-region): Return t if
+ deleted region was non-empty.
+ (cua-replace-region): Inhibit overwrite-mode for
+ self-insert-command if replaced region was non-empty.
+ (cua--explicit-region-start, cua--status-string): Make them
+ buffer-local at top-level...
+ (cua-mode): ...rather than when mode is enabled.
+
+2005-08-15 Thien-Thi Nguyen <ttn@gnu.org>
+
+ * progmodes/vhdl-mode.el (vhdl-emacs-21):
+ Set t for Emacs 21, 22, and so on.
+
+2005-08-15 David Ponce <david@dponce.com>
+
+ * tree-widget.el Update Commentary header.
+ (tree-widget-theme): Doc fix.
+ (tree-widget-space-width): New option.
+ (tree-widget-image-properties): Look up in the default theme too.
+ (tree-widget--cursors): Only for images with arrow pointer shape.
+ (tree-widget-lookup-image): Pointer shape is hand by default.
+ (tree-widget-icon): Rename generic icon widget from
+ `tree-widget-control'.
+ (tree-widget-*-icon): Rename from `tree-widget-*-control' and
+ derive from `tree-widget-icon'.
+ (tree-widget-handle): Improve default look and feel of the text
+ representation.
+ (tree-widget): Rename :*-control properties to :*-icon properties.
+ Add :action and :help-echo properties.
+ (tree-widget-after-toggle-functions): Move.
+ (tree-widget-close-node, tree-widget-open-node): Remove.
+ (tree-widget-before-create-icon-functions): New hook.
+ (tree-widget-value-create): Update to allow customization of icons
+ and nodes at run-time via that new hook.
+ (tree-widget-icon-create, tree-widget-leaf-node-icon-p)
+ (tree-widget-icon-action, tree-widget-icon-help-echo)
+ (tree-widget-action, tree-widget-help-echo): New functions.
+
+2005-08-15 Kim F. Storm <storm@cua.dk>
+
+ * ido.el (ido-buffer-internal): Use with-no-warnings.
+ (ido-make-merged-file-list): Use while-no-input.
+
+2005-08-15 Richard M. Stallman <rms@gnu.org>
+
+ * textmodes/flyspell.el (flyspell-mark-duplications-flag): Doc fix.
+ (flyspell-large-region): Fix doc and custom type.
+
+2005-08-14 Richard M. Stallman <rms@gnu.org>
+
+ * files.el (interpreter-mode-alist): Doc fix.
+
+ * mail/rmail.el (rmail-nonignored-headers): New variable.
+ (rmail-clear-headers): Use it.
+ (rmail-reply): Better handling of mail-followup-to header.
+
+ * progmodes/sh-script.el (sh-font-lock-keywords-var):
+ Rename variable from sh-font-lock-keywords. In the `shell' entry,
+ don't try to refer to executable-font-lock-keywords.
+ (sh-font-lock-keywords-var-1): Rename from sh-font-lock-keywords-1.
+ (sh-font-lock-keywords-var-2): Rename from sh-font-lock-keywords-2.
+ (sh-font-lock-keywords): Append executable-font-lock-keywords here.
+ (sh-mode): Set comment-start-skip, local-abbrev-table,
+ imenu-case-fold-search.
+ (sh-set-shell): Don't set them here.
+ (sh-feature): Simplify. Get rid of the eval-a-variable feature.
+ Don't cache the results in the original alist; don't ever modify
+ that alist.
+
+ * textmodes/flyspell.el (flyspell-mode): Autoload a defvar.
+
+ * textmodes/ispell.el (lookup-words): Cope with case where ARGS is
+ empty.
+
+2005-08-15 Andreas Schwab <schwab@suse.de>
+
+ * desktop.el: Put autoload cookie at risky-local-variable declarations.
+
+ * dired.el, info.el, mail/rmail.el: Revert last change.
+
+2005-08-14 Thien-Thi Nguyen <ttn@gnu.org>
+
+ * dired.el: Fix dependency bug: Wrap `desktop-buffer-mode-handlers'
+ modification in `eval-after-load' form.
+ * info.el: Likewise.
+ * mail/rmail.el: Likewise.
+
+2005-08-14 Juri Linkov <juri@jurta.org>
+
+ * progmodes/compile.el (compilation-mode-font-lock-keywords):
+ Remove highlighting of "Compilation started". Highlight only
+ the word "finished" in "Compilation finished". Add highlighting
+ of "interrupt", "killed", "terminated" and the exit code.
+ (compilation-start): Add newline after header. Use exactly the
+ same time stamp format as the finishing message.
+ (compilation-mode-map): Add ellipsis to "Search Files (grep)".
+
+ * progmodes/grep.el (grep-mode-map): Add ellipsis to "Another grep".
+ (grep-mode-font-lock-keywords): Don't highlight "Grep started".
+ Add highlighting of "interrupt", "killed", "terminated".
+
+ * delsel.el (delete-selection-pre-hook): If overwrite-mode is
+ enabled and the current command is self-insert-command, call it
+ explicitly with overwrite-mode bound to nil, to not allow it
+ to delete the character after the selected region.
+
+2005-08-12 Matt Hodges <MPHodges@member.fsf.org>
+
+ * emacs-lisp/eldoc.el: Add move-beginning-of-line,
+ move-end-of-line, end-of-line, and beginning-of-line to the list
+ of commands after which the echo area is updated.
+
+2005-08-12 Eli Zaretskii <eliz@gnu.org>
+
+ * cus-edit.el (custom-save-all, custom-save-delete):
+ Bind recentf-exclude to exclude custom-file.
+
+2005-08-12 Ehud Karni <ehud@unix.mvs.co.il>
+
+ * mail/rmailsum.el (rmail-summary-end-of-message): New command
+ to go to the bottom of the mail message. Added to
+ `rmail-summary-mode-map' with key "/".
+ (rmail-summary-show-message): New (internal) function for use by
+ both `rmail-summary-beginning/end-of-message'.
+ (rmail-summary-beginning-of-message): Change to use
+ rmail-summary-show-message.
+
+ * mail/rmail.el (rmail-end-of-message): New command to go to the
+ end of the current message. Added to `rmail-mode-map' with key "/".
+ (rmail-beginning-of-message): Fix to work as documented.
+ (rmail-mode): Change documentation.
+
+ * progmodes/compile.el (compilation-start): Add the line
+ "Compilation started" with compilation start time.
+ (compilation-mode-font-lock-keywords): Add `started' to keywords.
+
+2005-08-11 Luc Teirlinck <teirllm@auburn.edu>
+
+ * menu-bar.el (menu-bar-options-menu): Standardize capitalization
+ of menu items.
+
+2005-08-11 Richard M. Stallman <rms@gnu.org>
+
+ * simple.el (pop-global-mark): Reverse test of widen-automatically.
+
+ * battery.el (battery-status-function): Don't use ignore-errors.
+
+2005-08-11 Lute Kamstra <lute@gnu.org>
+
+ * emacs-lisp/generic.el (generic-font-lock-defaults): Declare with
+ define-obsolete-variable-alias.
+
+2005-08-11 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * net/ange-ftp.el: Use \\` and \\' instead of ^ and $ in regexps.
+ (ange-ftp-send-cmd): Revert last change, and expand
+ the comment explaining the problem.
+
+2005-08-10 Luc Teirlinck <teirllm@auburn.edu>
+
+ * ldefs-boot.el: Update.
+
+ * menu-bar.el (menu-bar-showhide-menu): Rename "Date, Time and Mail"
+ item to "Time, Load and Mail". Change help echo text.
+
+ * time.el (display-time-use-mail-icon, display-time-format)
+ (display-time-string-forms): Shorten first line of docstrings.
+
+2005-08-10 Lars Hansen <larsh@soem.dk>
+
+ * desktop.el (desktop-buffer-mode-handlers):
+ Make non-customizable. Add autoload cookie. Change initial value to
+ nil; add elements in respective modules instead. Fix doc string.
+ (desktop-load-file): New function.
+ (desktop-minor-mode-handlers): New autoloaded variable.
+ (desktop-create-buffer): Call minor mode handlers.
+ Use desktop-load-file to load major and minor mode modules prior to
+ checking for a handler.
+ (desktop-save): Don't add nil to desktop-minor-modes for minor
+ modes with nil function in desktop-minor-mode-table. Don't delete
+ desktop file before rewriting it.
+ (desktop-locals-to-save): Add autoload cookie. Don't make
+ automatically buffer-local. Add variables column-number-mode,
+ size-indication-mode, indent-tabs-mode,
+ indicate-buffer-boundaries, indicate-empty-lines and
+ show-trailing-whitespace.
+ (desktop-clear): Allow desktop-clear-preserve-buffers to contain
+ regexps. Don't use desktop-clear-preserve-buffers-regexp.
+ (desktop-clear-preserve-buffers-regexp): Delete.
+ (desktop-clear-preserve-buffers): Update initial value and docstring.
+ (desktop-save-buffer): Fix doc string.
+
+ * hilit-chg.el: Add handler to desktop-minor-mode-handlers.
+ (hilit-chg-desktop-restore): New function.
+ (highlight-changes-mode): Add highlight-changes-mode to
+ desktop-locals-to-save.
+
+ * dired.el: Add handler to desktop-buffer-mode-handlers.
+ (dired-restore-desktop-buffer): Remove autoload cookie.
+ (dired-mode): Add autoload cookie.
+
+ * info.el: Add handler to desktop-buffer-mode-handlers.
+ (Info-restore-desktop-buffer): Remove autoload cookie.
+ (Info-mode): Add autoload cookie.
+
+ * mh-e/mh-e.el: Add handler to desktop-buffer-mode-handlers.
+ (mh-restore-desktop-buffer): Remove autoload cookie.
+ (mh-folder-mode): Add autoload cookie.
+
+ * mail/rmail.el: Add handler to desktop-buffer-mode-handlers.
+ (rmail-restore-desktop-buffer): Remove autoload cookie.
+
+2005-08-11 Masatake YAMATO <jet@gyve.org>
+
+ * hexl.el (hexl-address-region):
+ (hexl-ascii-region, hexl-font-lock-keywords):
+ (hexl-highlight-line-range): Use the term "region"
+ instead of "area" for consistency with the other symbols
+ defined in hexl.el.
+
+2005-08-09 Luc Teirlinck <teirllm@auburn.edu>
+
+ * menu-bar.el (menu-bar-options-save): Move `display-time-mode' to
+ correct group: it is set with `menu-bar-make-mm-toggle' (pointed
+ out by Juri Linkov). Add `display-battery-mode'.
+
+2005-08-09 Juri Linkov <juri@jurta.org>
+
+ * progmodes/compile.el (compilation-mode-font-lock-keywords):
+ Remove `-text' from face variable names.
+ (compilation-error-file-name, compilation-warning-file-name)
+ (compilation-info-file-name): Delete faces.
+ (compilation-line-number, compilation-column-number):
+ Remove face underlining.
+ (compilation-message-face): Set to `underline' value by default.
+ (compilation-error-face, compilation-warning-face)
+ (compilation-info-face): Remove `-file-name' from face names.
+ (compilation-error-text-face, compilation-warning-text-face)
+ (compilation-info-text-face): Delete face variables.
+ (compilation-text-face): Delete function.
+
+ * progmodes/grep.el (grep-regexp-alist): Use `.+?' instead of `[^:\n]+'.
+ (grep-mode-font-lock-keywords): Use `.+?' instead of `[^\n-]+'.
+ (grep-error-face): Set to `compilation-error' instead of
+ `compilation-error-face' (which is redefined to `grep-hit-face' in
+ grep buffers).
+ (grep-mode-font-lock-keywords): Remove `-text' from face variable
+ names. Use `grep-error-face' instead of `compilation-error-text-face'.
+
+ * dired-aux.el (dired-do-query-replace-regexp):
+ Use `query-replace-read-args'.
+
+ * replace.el (query-replace-read-from, query-replace-read-to)
+ (query-replace-read-args): Rename arg `string' to `prompt'.
+
+ * menu-bar.el (menu-bar-showhide-menu): Add `showhide-battery'.
+
+2005-08-09 Katsumi Yamaoka <yamaoka@jpl.org> (tiny change)
+
+ * net/ange-ftp.el (ange-ftp-send-cmd): Make it work properly with
+ uploading files.
+ (ange-ftp-canonize-filename): Handle file names beginning with ~
+ correctly.
+
+2005-08-09 Juanma Barranquero <lekktu@gmail.com>
+
+ * textmodes/fill.el (canonically-space-region)
+ (fill-context-prefix, fill-french-nobreak-p)
+ (fill-delete-newlines, fill-comment-paragraph)
+ (justify-current-line): "?\ " -> "?\s".
+
+2005-08-09 Ben North <ben@redfrontdoor.org> (tiny change)
+
+ * textmodes/fill.el (fill-nonuniform-paragraphs):
+ Improve argument/docstring consistency.
+
+2005-08-09 Richard M. Stallman <rms@gnu.org>
+
+ * textmodes/ispell.el (ispell-word): More fboundp checks.
+
+ * files.el (find-file-noselect): Don't call set-buffer-major-mode.
+ (find-file-noselect-1): Call it here, only if RAWFILE.
+ (normal-mode): Always set some major mode.
+ (save-some-buffers-action-alist): Change some explanation strings.
+ (file-name-non-special): In the `quote' method, use unwind-protect.
+
+2005-08-09 Magnus Henoch <mange@freemail.hu>
+
+ * textmodes/ispell.el (ispell-find-aspell-dictionaries): New command.
+ (ispell-have-aspell-dictionaries): New variable.
+ (ispell-aspell-data-dir, ispell-aspell-dict-dir): New variables.
+ (ispell-get-aspell-config-value): New function.
+ (ispell-aspell-find-dictionary): New function.
+ (ispell-aspell-add-aliases): New function.
+ (ispell-valid-dictionary-list): Call ispell-find-aspell-dictionaries if
+ appropriate. Don't look for ispell dictionaries if we use aspell.
+ (ispell-menu-map): Don't build a submenu of dictionaries.
+
+2005-08-09 Richard M. Stallman <rms@gnu.org>
+
+ * progmodes/sql.el (sql-interactive-mode-map): Use fboundp.
+ (sql-read-passwd): Use read-passwd.
+
+ * progmodes/idlw-toolbar.el (idlwave-toolbar)
+ (idlwave-toolbar-is-possible): Add defvars.
+
+ * progmodes/idlw-shell.el (idlwave-xemacs-hack-mouse-track):
+ Avoid warnings.
+
+ * progmodes/idlw-rinfo.el (idlwave-system-variables-alist)
+ (idlwave-system-class-info, idlwave-executive-commands-alist):
+ Use defvar.
+
+ * progmodes/cc-engine.el (c-guess-basic-syntax): Add autoload.
+
+ * mail/supercite.el (sc-ask, sc-no-blank-line-or-header):
+ Avoid warnings.
+
+ * mail/rmail.el (rmail-ignored-headers): Don't hide mime-version:
+ and content-type: headers.
+
+ * eshell/eshell.el (eshell): Avoid warnings about eshell-mode.
+
+ * emacs-lisp/map-ynp.el (map-y-or-n-p): Reorder the options
+ and rename some of them to be more self-explanatory.
+
+ * calendar/calendar.el (calendar-mode-map): Bind < and > usefully.
+
+ * startup.el (command-line-1): Implement -scriptload.
+
+ * replace.el (occur-engine): Initial *Occur* output not undoable.
+
+ * menu-bar.el (menu-bar-file-menu): Rename some menu items
+ and improve help strings.
+
+ * isearch.el (isearch-repeat): When changing direction,
+ mark search successful.
+
+ * ediff-init.el: Use (featurep 'xemacs).
+
+ * comint.el (send-invisible): Identify buffer, if not selected.
+
+ * align.el: Delete autoload for c-guess-basic-syntax.
+
+2005-08-09 Juanma Barranquero <lekktu@gmail.com>
+
+ * textmodes/refbib.el (r2b-convert-record, r2b-convert-buffer):
+ Improve argument/docstring consistency. Doc fixes.
+ (r2b-variables, r2bv-address, r2bv-annote, r2bv-author)
+ (r2bv-booktitle, r2bv-date, r2bv-decade, r2bv-editor)
+ (r2bv-entry-kind, r2bv-institution, r2bv-journal, r2bv-keywords)
+ (r2bv-kn, r2bv-month, r2bv-note, r2bv-number, r2bv-ordering)
+ (r2bv-organization, r2bv-pages, r2bv-primary-author)
+ (r2bv-publisher, r2bv-school, r2bv-title, r2bv-title-first-word)
+ (r2bv-tr, r2bv-type, r2bv-volume, r2bv-where, r2bv-year):
+ Defvar at compile time.
+
+2005-08-09 Juri Linkov <juri@jurta.org>
+
+ * info.el: Replace `info' with upper-case `Info' where appropriate.
+ (info-title-1, info-title-2, info-title-3, info-title-4)
+ (info-menu-header): Move up face definitions.
+ (info-menu-star): Rename from `info-menu-5'.
+ (Info-fontify-node): Replace `info-menu-5' with `info-menu-star'.
+ (Info-fontify-visited-nodes): Fix docstring.
+ (Info-hide-note-references): Fix docstring.
+ (Info-up, Info-next-reference, Info-prev-reference): Put cursor on
+ menu items in the same way as on cross-references.
+ (info-apropos): Fix sorting order and formatting to be like in the
+ stand-alone Info browser. Display error messages for 1 sec.
+ (Info-mode-map): Move down `c' key binding. Bind `^' to `Info-up'.
+ (Info-mode-menu): Remove item for `Info-search-case-sensitively'
+ from the menu bar.
+ (Info-insert-dir): Restore point after calling
+ `insert-buffer-substring'.
+
+2005-08-08 Richard M. Stallman <rms@gnu.org>
+
+ * emacs-lisp/lmenu.el (lucid-menubar-map, lucid-failing-menubar)
+ (recompute-lucid-menubar): Add defvars.
+
+ * mail/sendmail.el (mail-yank-original): Use with-no-warnings.
+
+ * mail/reporter.el (reporter-dump-state): Use insert-buffer-substring.
+
+ * net/net-utils.el (run-dig): Rename from `dig'.
+
+ * play/gametree.el (gametree-mode): Use make-local-variable,
+ not make-variable-buffer-local.
+
+ * progmodes/ada-prj.el (ada-prj-display-page): Use with-no-warnings.
+
+ * ansi-color.el (ansi-color-make-extent)
+ (ansi-color-set-extent-face): Use fboundp, not functionp.
+
+ * autorevert.el (auto-revert-tail-mode): Use make-local-variable,
+ not make-variable-buffer-local.
+
+ * bookmark.el (Info-current-file): Add defvar.
+ (bookmark-jump-noselect): Use with-no-warnings.
+
+ * completion.el (c-mode-map, fortran-mode-map): Add defvars.
+
+ * ebuff-menu.el (Helper-return-blurb): Add defvar.
+
+ * ffap.el (gnus-summary-buffer, gnus-article-buffer): Add defvars.
+
+ * find-file.el (ada-procedure-start-regexp)
+ (ada-package-start-regexp): Add defvars.
+
+ * info.el (Info-insert-dir): Use insert-buffer-substring.
+
+ * xml.el (xml-att-def-re): Add defvar.
+
+ * icomplete.el (icomplete-exhibit): Adapt to new while-no-input
+ calling convention.
+
+ * subr.el (while-no-input): Return t if there is input.
+
+2005-08-08 Luc Teirlinck <teirllm@auburn.edu>
+
+ * cus-start.el (all): Add `overflow-newline-into-fringe'.
+
+2005-08-08 Juanma Barranquero <lekktu@gmail.com>
+
+ * cmuscheme.el (inferior-scheme-mode-hook, inferior-scheme-mode)
+ (scheme-prev-l/c-dir/file): Fix typos in docstrings.
+
+2005-08-08 Emilio C. Lopes <eclig@gmx.net>
+
+ * cmuscheme.el (scheme-start-file): Replace reference to
+ `user-emacs-directory' by "~/.emacs.d/".
+
+2005-08-08 Thien-Thi Nguyen <ttn@gnu.org>
+
+ * info.el (Info-dir-remove-duplicates): Avoid case folding
+ in loop; instead, keep downcased strings for comparison.
+ Suggested by Helmut Eller.
+
+2005-08-07 Michael Albinus <michael.albinus@gmx.de>
+
+ Sync with Tramp 2.0.50.
+
+ * tramp.el: Remove defvar of `last-coding-system-used' in the
+ XEmacs case; not necessary anymore.
+ (tramp-user-regexp): Allow "@" as part of user name.
+ (tramp-handle-set-visited-file-modtime)
+ (tramp-handle-insert-file-contents)
+ (tramp-handle-write-region): No special handling for
+ `last-coding-system-used, because this is done in
+ `tramp-accept-process-output' now.
+ (tramp-accept-process-output): New defun.
+ (tramp-process-one-action, tramp-process-one-multi-action)
+ (tramp-wait-for-regexp, tramp-wait-for-output)
+ (tramp-discard-garbage-erase-buffer): Call it. Reported by David
+ Howells <dhowells@redhat.com>.
+ (clear-visited-file-modtime): Defadvice removed. The check for
+ unset buffer's modtime does not need to be based on
+ `tramp-buffer-file-attributes'. Suggested by RMS.
+ (tramp-message): Insert "\n" if not being at beginning of line.
+ (tramp-find-shell): Use `tramp-barf-if-no-shell-prompt' for code
+ sequence with same logic.
+ (tramp-completion-handle-expand-file-name): Discard call of
+ `tramp-drop-volume-letter'. It is not necessary, and there have
+ been problems with (expand-file-name "~/.netrc" "/") in ange-ftp.
+ Reported by Richard G. Bielawski <Richard.G.Bielawski@wellsfargo.com>.
+ (tramp-do-copy-or-rename-file-out-of-band): Transfer message
+ should always be visible.
+ (tramp-handle-insert-directory, tramp-setup-complete)
+ (tramp-set-process-query-on-exit-flag)
+ (tramp-append-tramp-buffers): Pacify byte-compiler.
+ (tramp-bug): Delete non-existing variables from list.
+ Apply `tramp-load-report-modules' as pre-hook.
+ Mask `tramp-password-prompt-regexp', `tramp-shell-prompt-pattern' and
+ `shell-prompt-pattern' because of non-7bit characters.
+ Reported by Sebastian Luque <sluque@mun.ca>.
+ (tramp-reporter-dump-variable, tramp-load-report-modules): New defuns.
+ (tramp-match-string-list): Remove function.
+ (tramp-wait-for-regexp): Remove call of that function.
+ Suggested by Kim F. Storm <storm@cua.dk>.
+ (tramp-set-auto-save-file-modes): Use octal integer code #o600
+ instead of octal character code ?\600. The latter resulted in a
+ syntax error with XEmacs.
+
+ * tramp-smb.el: Remove defvar of `last-coding-system-used' in the
+ XEmacs case; not necessary anymore.
+ (tramp-smb-handle-write-region): No special handling for
+ `last-coding-system-used, because this is done in
+ `tramp-accept-process-output' now.
+ (tramp-smb-wait-for-output): Call `tramp-accept-process-output'.
+
+2005-08-06 Luc Teirlinck <teirllm@auburn.edu>
+
+ * wid-edit.el (widget-choice-value-create):
+ Unconditionally respect user choice. Set :explicit-choice back to nil
+ when no longer needed.
+ (widget-choice-action): Unconditionally respect user choice.
+ Eliminate :explicit-choice-value.
+
+ * fringe.el (set-fringe-indicators-1, fringe-indicators): Delete.
+
+ * menu-bar.el (menu-bar-options-save): Replace `fringe-indicators'
+ with `indicate-empty-lines' and `indicate-buffer-boundaries'.
+ (menu-bar-showhide-fringe-menu): Add new item "Empty line indicators"
+ running new function `toggle-indicate-empty-lines'.
+ Rename "Customize" item to "Customize fringe".
+ Rename "Indicators" item to "Buffer boundaries" and change help echo.
+ (menu-bar-showhide-fringe-ind-menu): Change several help echos.
+ Add `menu-bar-showhide-fringe-ind-customize' as "Other (customize)".
+ Delete "Empty lines only" item.
+ (menu-bar-showhide-fringe-ind-customize): New function.
+ (menu-bar-showhide-fringe-ind-mixed)
+ (menu-bar-showhide-fringe-ind-box)
+ (menu-bar-showhide-fringe-ind-right)
+ (menu-bar-showhide-fringe-ind-left)
+ (menu-bar-showhide-fringe-ind-none): Use `indicate-buffer-boundaries'
+ instead of `fringe-indicators'.
+
+2005-08-06 Michael Kifer <kifer@cs.stonybrook.edu>
+
+ * viper.el (viper-emacs-state-mode-list): Add recentf-dialog-mode.
+ Change the date of last update.
+
+2005-08-06 Michael Kifer <kifer@cs.stonybrook.edu>
+
+ * viper-cmd.el (viper-harness-minor-mode, viper-exec-delete)
+ (viper-exec-yank, viper-put-back): Don't display modification msg
+ if in the minibuffer.
+
+ * viper-init.el (viper-replace-overlay-cursor-color)
+ (viper-insert-state-cursor-color, viper-vi-state-cursor-color):
+ Make variables frame local.
+
+ * viper-util.el (viper-append-filter-alist): Use append instead of
+ nconc.
+
+ * viper.el (viper-vi-state-mode-list)
+ (viper-emacs-state-mode-list): Move help-mode and
+ completion-list-mode from the first list to the second.
+ (viper-mode): Docstring.
+ (viper-go-away, viper-non-hook-settings): Don't localize
+ minor-mode-alist in newer Emacsen. Add advice to
+ set-cursor-color. Don't bind "\C-c\\".
+
+2005-08-06 Emilio C. Lopes <eclig@gmx.net>
+
+ * cmuscheme.el (scheme-trace-command, scheme-untrace-command)
+ (scheme-macro-expand-command): New user options.
+ (scheme-trace-procedure, scheme-expand-current-form): New commands.
+ (scheme-form-at-point, scheme-start-file)
+ (scheme-interactively-start-process): New functions.
+ (scheme-get-process): New function, extracted from `scheme-proc'.
+ (run-scheme): Call `scheme-start-file' to get start file, and pass
+ it to `make-comint'.
+ (switch-to-scheme, scheme-proc):
+ Call `scheme-interactively-start-process' if no Scheme buffer/process
+ is available.
+
+2005-08-06 Juri Linkov <juri@jurta.org>
+
+ * progmodes/compile.el (compilation-mode-font-lock-keywords):
+ Use `compilation-text-face', `compilation-info-text-face' and
+ `compilation-error-text-face' instead of `font-lock-keyword-face'.
+ (compilation-error): New face.
+ (compilation-error-file-name): Inherit from
+ `compilation-error' instead of `font-lock-warning-face'.
+ (compilation-warning-file-name): Inherit from
+ `compilation-warning' instead of `font-lock-warning-face'.
+ (compilation-info, compilation-error-file-name)
+ (compilation-warning-file-name, compilation-info-file-name)
+ (compilation-line-number, compilation-column-number): Doc fix.
+ (compilation-error-text-face, compilation-warning-text-face)
+ (compilation-info-text-face): New face variables.
+ (compilation-line-face, compilation-column-face)
+ (compilation-enter-directory-face)
+ (compilation-leave-directory-face): Doc fix.
+ (compilation-text-face): New function.
+
+ * progmodes/grep.el (grep-regexp-alist): Set 5th arg `TYPE' to 0
+ instead of 1 to display binary file names as info file links.
+ (grep-error-face): Use `compilation-error-face' instead of
+ `font-lock-keyword-face'.
+ (grep-mode-font-lock-keywords): Use `compilation-info-text-face'
+ and `compilation-warning-text-face' instead of
+ `font-lock-keyword-face'. Use `compilation-error-text-face'
+ instead of `grep-error-face'.
+
+2005-08-05 Kenichi Handa <handa@m17n.org>
+
+ * international/code-pages.el: Add autoload cookies for all coding
+ systems.
+
+2005-08-04 Luc Teirlinck <teirllm@auburn.edu>
+
+ * cus-start.el (all): Put undo.c where it alphabetically belongs.
+
+2005-08-04 Juri Linkov <juri@jurta.org>
+
+ * progmodes/compile.el (compilation-mode-map):
+ * progmodes/grep.el (grep-mode-map):
+ Bind TAB to `compilation-next-error' and [backtab] to
+ `compilation-previous-error'.
+
+ * progmodes/grep.el (grep-regexp-alist): Replace complex regexp
+ matching line numbers, column numbers and their ranges with regexp
+ matching only line numbers.
+ (grep-context-face): New face variable.
+ (grep-mode-font-lock-keywords): Use it.
+
+ * faces.el (read-face-name): Delete duplicate faces.
+
+2005-08-02 Juanma Barranquero <lekktu@gmail.com>
+
+ * thumbs.el (thumbs-find-image): Don't make variables
+ automatically buffer local.
+ (thumbs-current-tmp-filename, thumbs-current-image-filename)
+ (thumbs-image-num): Make automatically buffer local.
+ (thumbs-show-thumbs-list): Use `make-local-variable', not
+ `make-variable-buffer-local'.
+ (thumbs-insert-image): Make `thumbs-current-image-size' buffer-local.
+
+ * play/doctor.el (doctor-type-symbol): "?\ " -> "?\s".
+ (**mad**, *debug*, *print-space*, *print-upcase*, abuselst)
+ (abusewords, account, afraidof, arerelated, areyou, bak, beclst)
+ (bother, bye, canyou, chatlst, continue, deathlst, describe)
+ (drnk, drugs, eliza-flag, elizalst, famlst, feared, fears)
+ (feelings-about, foullst, found, hello, history, howareyoulst)
+ (howdyflag, huhlst, ibelieve, improve, inter, isee, isrelated)
+ (lincount, longhuhlst, lover, machlst, mathlst, maybe, moods)
+ (neglst, obj, object, owner, please, problems, qlist)
+ (random-adjective, relation, remlst, repetitive-shortness)
+ (replist, rms-flag, schoollst, sent, sexlst, shortbeclst)
+ (shortlst, something, sportslst, stallmanlst, states, subj)
+ (suicide-flag, sure, things, thlst, toklst, typos, verb, want)
+ (whatwhen, whereoutp, whysay, whywant, zippy-flag, zippylst):
+ Defvar at compile time.
+
+ * progmodes/ada-mode.el (ada-mode): Use `make-local-variable',
+ not `make-variable-buffer-local'.
+
+2005-08-02 Kim F. Storm <storm@cua.dk>
+
+ * emulation/cua-rect.el (cua--highlight-rectangle): Only show
+ rectangle overlay in selected window.
+
+2005-08-01 Luc Teirlinck <teirllm@auburn.edu>
+
+ * cus-start.el (all): Put `indicate-empty-lines' in fringe group
+ instead of display group. Make `indicate-buffer-boundaries'
+ customizable through Custom.
+
+2005-08-01 Juanma Barranquero <lekktu@gmail.com>
+
+ * progmodes/gdb-ui.el (gdb-frame-address, gdb-var-changed)
+ (gdb-output-sink, gdba, gdb-cpp-define-alist-program)
+ (gdb-set-gud-minor-mode, gdb-exited, gdb-setup-windows)
+ (gdb-put-string): Fix typos in docstrings.
+
+2005-08-01 Nick Roberts <nickrob@snap.net.nz>
+
+ Update copyright notices of files in progmodes directory for
+ release of Emacs 22.1.
+
+ * progmodes/gdb-ui.el (gdb-enable-debug-log): Add autoload cookie.
+
+ * progmodes/gud.el (gud-tooltip-mode): Add autoload cookie.
+ Don't barf if the GUD buffer has been killed.
+
+2005-08-01 Kim F. Storm <storm@cua.dk>
+
+ * textmodes/table.el (table-yank-handler): Change defcustom to defvar.
+
+2005-07-29 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * simple.el (next-error-follow-minor-mode):
+ make-variable-buffer-local -> make-local-variable.
+
+ * emacs-lisp/cl-extra.el: Require CL also when compiling.
+
+ * emacs-lisp/bytecomp.el (byte-compile-make-variable-buffer-local)
+ (byte-compile-form-make-variable-buffer-local): New functions to warn
+ about misuses of make-variable-buffer-local where make-local-variable
+ was meant.
+
+2005-07-29 Juanma Barranquero <lekktu@gmail.com>
+
+ * bs.el (bs-attributes-list): Doc fix.
+ (bs): Update url-link.
+
+ * desktop.el (desktop-save-buffer): Fix typos in docstring.
+ (desktop-load-default): Simplify.
+
+ * ibuffer.el (ibuffer-columnize-and-insert-list)
+ (ibuffer-mouse-toggle-mark, ibuffer-count-marked-lines)
+ (ibuffer-unmark-all, ibuffer-toggle-marks)
+ (ibuffer-unmark-forward, ibuffer-unmark-backward)
+ (ibuffer-compile-make-format-form, ibuffer-format-column)
+ (ibuffer-current-buffers-with-marks)
+ (ibuffer-update-title-and-summary): "?\ " -> "?\s".
+ (ibuffer): Doc fix.
+ (ibuffer-mode): Fix typo in docstring.
+ (ibuffer-hooks, ibuffer-mode-hooks): Make obsolete and declare
+ with `define-obsolete-variable-alias'.
+ (ibuffer-elide-long-columns): Mark as obsolete. Doc fix.
+
+2005-07-29 Kenichi Handa <handa@m17n.org>
+
+ * international/mule-cmds.el (select-message-coding-system):
+ Be sure to use LF for end-of-line. If no coding system is decided,
+ return iso-8859-1-unix.
+
+2005-07-28 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * net/ange-ftp.el (ange-ftp-gateway-fatal-msgs)
+ (ange-ftp-pending-error-line): New vars.
+ (ange-ftp-process-handle-line, ange-ftp-process-filter): Use them
+ to handle the non-fatal no-route-to-host messages.
+ (internal-ange-ftp-mode): Make the no-match regexp more efficient.
+
+2005-07-28 Juanma Barranquero <lekktu@gmail.com>
+
+ * isearch.el (isearch-mode-map, isearch-other-meta-char)
+ (isearch-quote-char, isearch-printing-char)
+ (isearch-text-char-description): "?\ " -> "?\s".
+ (isearch-lazy-highlight-cleanup)
+ (isearch-lazy-highlight-initial-delay)
+ (isearch-lazy-highlight-interval)
+ (isearch-lazy-highlight-max-at-a-time)
+ (isearch-lazy-highlight-face, isearch-lazy-highlight-cleanup):
+ Declare with define-obsolete-*-alias macros.
+ (isearch-forward): Fix typo in docstring.
+ (search-invisible, search-ring-yank-pointer)
+ (regexp-search-ring-yank-pointer): Doc fixes.
+
+ * recentf.el (recentf-menu-append-commands-p): Declare with
+ `define-obsolete-variable-alias'.
+ (recentf-max-saved-items, recentf-menu-filter)
+ (recentf-arrange-by-rule-subfilter): Doc fixes.
+ (recentf-menu-append-commands-flag)
+ (recentf-initialize-file-name-history, recentf-expand-file-name)
+ (recentf-clear-data): Fix typos in docstrings.
+
+2005-07-28 Nick Roberts <nickrob@snap.net.nz>
+
+ * progmodes/gdb-ui.el: Smarten comments.
+ (gdb-info-breakpoints-custom): Use nowarn when finding file.
+
+2005-07-27 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * term/apollo.el (terminal-init-apollo): New function containing
+ all former top level forms in the file.
+ * term/bobcat.el (terminal-init-bobcat):
+ * term/cygwin.el (terminal-init-cygwin):
+ * term/iris-ansi.el (terminal-init-iris-ansi):
+ * term/linux.el (terminal-init-linux):
+ * term/news.el (terminal-init-news):
+ * term/rxvt.el (terminal-init-rxvt):
+ * term/sun.el (terminal-init-sun):
+ * term/tvi970.el (terminal-init-tvi970):
+ * term/vt100.el (terminal-init-vt100):
+ * term/vt102.el (terminal-init-vt102):
+ * term/vt125.el (terminal-init-vt125):
+ * term/vt200.el (terminal-init-vt200):
+ * term/vt201.el (terminal-init-vt201):
+ * term/vt220.el (terminal-init-vt220):
+ * term/vt240.el (terminal-init-vt240):
+ * term/vt300.el (terminal-init-vt300):
+ * term/vt320.el (terminal-init-vt320):
+ * term/vt400.el (terminal-init-vt400):
+ * term/vt420.el (terminal-init-vt420):
+ * term/wyse50.el (terminal-init-wyse50):
+ * term/xterm.el (terminal-init-xterm): Likewise.
+
+ * term/README: Describe the terminal-init-* functionality.
+
+ * startup.el (command-line): After loading the terminal initialization
+ file call the corresponding terminal initialization function.
+
+2005-07-27 Kenichi Handa <handa@m17n.org>
+
+ * ps-bdf.el (bdf-read-font-info): Ignore glyphs whose ENCODING is
+ negative.
+
+ * ps-mule.el (ps-mule-bitmap-prologue): Fix arguments to setcharwidth.
+ (ps-mule-composition-prologue): Fix for the case that
+ RelativeCompose is false.
+
+2005-07-26 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * smerge-mode.el (smerge-ediff): Use insert-buffer-substring.
+
+ * descr-text.el (describe-char): Handle the case where the list of
+ chars is displayed in a separate frame.
+ Be a bit more discriminating when looking for the char.
+
+2005-07-26 Juanma Barranquero <lekktu@gmail.com>
+
+ * bookmark.el (bookmark-automatically-show-annotations)
+ (bookmark-read-annotation-text-func): Doc fixes.
+ (bookmark-save): Improve argument/docstring consistency.
+ (bookmark-get-bookmark, bookmark-get-bookmark-record)
+ (bookmark-alist-from-buffer)
+ (bookmark-upgrade-file-format-from-0)
+ (bookmark-grok-file-format-version)
+ (bookmark-maybe-upgrade-file-format, bookmark-kill-line)
+ (bookmark-read-annotation-mode)
+ (bookmark-insert-current-bookmark, bookmark-jump)
+ (bookmark-exit-hook): Fix typos in docstrings.
+ (bookmark-exit-hooks): Define as obsolete alias.
+ (bookmark-exit-hook-internal): Run `bookmark-exit-hook',
+ not `bookmark-exit-hooks'. Fix docstring.
+ (bookmark-bmenu-select): "?\ " -> "?\s".
+
+2005-07-25 Ari Roponen <arjuropo@cc.jyu.fi> (tiny change)
+
+ * startup.el (command-line): Fix typo.
+
+2005-07-24 Richard M. Stallman <rms@gnu.org>
+
+ * tooltip.el (tooltip-mode): Test emacs-basic-display,
+ not emacs-quick-startup.
+
+2005-07-24 Juanma Barranquero <lekktu@gmail.com>
+
+ * emacs-lisp/re-builder.el (reb-with-current-window): Delete.
+ (reb-next-match, reb-show-subexp): Use `with-selected-window'
+ instead of `reb-with-current-window'.
+ (reb-prev-match): Likewise. Also, don't move left if the search
+ was unsuccessful.
+ (reb-initialize-buffer): New function.
+ (re-builder, reb-change-syntax): Use it.
+
+ * man.el (Man-goto-page): Make second argument NOERROR optional.
+
+2005-07-23 Richard M. Stallman <rms@gnu.org>
+
+ * man.el (Man-bgproc-sentinel): Check here for failure to find
+ any man page in the output, and report the error here.
+ (Man-arguments): Make it permanent local.
+ (Man-goto-page): New arg NOERROR. Never kill the current buffer.
+ (Man-mode): Pass t for NOERROR.
+
+ * progmodes/grep.el (grep-error-face): Use font-lock-keyword-face.
+ (grep-mode-font-lock-keywords):
+ Don't use compilation-...-face for messages that are not file names.
+
+ * progmodes/compile.el (compilation-mode-font-lock-keywords):
+ Don't use compilation-...-face for messages that are not file names.
+
+2005-07-22 Juri Linkov <juri@jurta.org>
+
+ * startup.el (normal-splash-screen): Update menu name.
+
+ * tempo.el (tempo-insert-template): Fix 2005-07-16 change.
+
+2005-07-22 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * term/xterm.el: Load term/rxvt if the terminal is actually an
+ rxvt terminal.
+ (xterm-rxvt-set-background-mode): Remove, not used anymore.
+
+ * term/rxvt.el (function-key-map): Use substitute-key-definition
+ to bind {C,S,C-S}-{f1-f10}. Add a few missing key bindings.
+
+ * term/cygwin.el: New file.
+
+2005-07-22 Kim F. Storm <storm@cua.dk>
+
+ * image-file.el (insert-image-file, image-file-yank-handler):
+ Fix last change to maintain a (unique) yank-handler on yanked images.
+
+2005-07-22 Eduardo Mu,Aq(Boz <emufer@terra.es> (tiny change)
+
+ * dired.el (dired-move-to-filename-regexp): Recognize the B suffix
+ of the file size (as in "177B" for 177 bytes). This happens with
+ "ls -lh" on FreeBSD.
+
+2005-07-22 Juanma Barranquero <lekktu@gmail.com>
+
+ * hilit-chg.el (highlight-changes-global-initial-state)
+ (highlight-compare-buffers, hilit-chg-turn-on-maybe)
+ (hilit-chg-fixup, highlight-changes-mode):
+ Fix typos in docstrings.
+ (highlight-changes-global-modes, highlight-changes-rotate-faces):
+ Doc fixes.
+
+2005-07-21 Luc Teirlinck <teirllm@auburn.edu>
+
+ * emacs-lisp/easy-mmode.el (define-minor-mode): Never call the
+ mode function using `eval-after-load'.
+
+2005-07-21 Kim F. Storm <storm@cua.dk>
+
+ * mail/emacsbug.el (report-emacs-bug): Request that backtraces are
+ included when reporting an emacs crash, and tell about the DEBUG file.
+
+ * image-file.el (insert-image-file): Add yank-handler.
+ (image-file-yank-handler): Yank handler to make unique copies of
+ images when they are yanked into a buffer next to each other.
+
+2005-07-21 Juanma Barranquero <lekktu@gmail.com>
+
+ * comint.el (comint-use-prompt-regexp, comint-send-input)
+ (comint-source-default, comint-extract-string)
+ (comint-get-source, comint-word, comint-completion)
+ (comint-source, comint-prompt-read-only, comint-update-fence):
+ Fix typos in docstrings.
+ (comint-use-prompt-regexp-instead-of-fields, comint-kill-output):
+ Declare with define-obsolete-*-alias macros.
+ (comint-previous-matching-input-from-input)
+ (comint-next-matching-input-from-input)
+ (comint-previous-matching-input, comint-next-matching-input)
+ (comint-forward-matching-input):
+ Improve argument/docstring consistency.
+
+ * desktop.el (desktop-clear-preserve-buffers-regexp):
+ Also preserve the *server* buffer.
+
+ * simple.el (clone-indirect-buffer): Doc fix.
+ (fixup-whitespace, just-one-space)
+ (backward-delete-char-untabify, lambda): "?\ " -> "?\s".
+ (next-error, next-error-highlight)
+ (next-error-highlight-no-select, next-error-last-buffer)
+ (next-error-buffer-p, next-error-find-buffer, next-error)
+ (previous-error, next-error-no-select, previous-error-no-select)
+ (open-line, split-line, minibuffer-prompt-width, kill-new)
+ (binary-overwrite-mode): Fix typos in docstrings.
+ (set-fill-column): Fix typo in message.
+
+ * skeleton.el (skeleton-proxy-new): Doc fix.
+
+ * strokes.el (strokes-load-hook): Doc fix.
+ (strokes-grid-resolution, strokes-get-grid-position)
+ (strokes-renormalize-to-grid, strokes-read-stroke)
+ (strokes-read-complex-stroke, strokes-file, strokes-last-stroke)
+ (strokes-global-map): Fix typos in docstrings.
+ (strokes-help): Doc fix. Fix help message and pass it through
+ `substitute-command-keys'.
+
+ * tempo.el (tempo-insert-prompt, tempo-interactive)
+ (tempo-show-completion-buffer, tempo-tags, tempo-match-finder)
+ (tempo-insert-string-functions, tempo-local-tags)
+ (tempo-define-template, tempo-insert-template)
+ (tempo-insert-prompt-compat, tempo-is-user-element)
+ (tempo-insert-mark, tempo-find-match-string, tempo-complete-tag):
+ Fix typos in docstrings.
+
+ * vcursor.el (vcursor-other-window, vcursor-bind-keys)
+ (vcursor-key-bindings, vcursor-use-vcursor-map)
+ (vcursor-find-window, vcursor-scroll-down)
+ (vcursor-disable, vcursor-beginning-of-buffer)
+ (vcursor-end-of-buffer): Fix typos in docstrings.
+ (vcursor-relative-move, vcursor-get-char-count):
+ Improve argument/docstring consistency.
+
+ * version.el: "?\ " -> "?\s".
+
+ * wid-edit.el (widget-default-create, widget-after-change)
+ (widget-default-format-handler, widget-checklist-add-item)
+ (widget-radio-add-item, widget-choose, widget-specify-secret)
+ (widget-field-value-create, widget-field-value-get)
+ (widget-editable-list-format-handler)
+ (widget-editable-list-entry-create, widget-group-value-create)
+ (widget-documentation-link-add)
+ (widget-documentation-string-value-create): "?\ " -> "?\s".
+ (widget-convert-text): Doc fix.
+ (widget-narrow-to-field, widget-field-find)
+ (widget-url-link-action, widget-emacs-library-link-action)
+ (widget-color-notify): Fix typos in docstrings.
+
+ * w32-fns.el (w32-shell-name): Use `bound-and-true-p'.
+ (x-select-text, set-w32-system-coding-system)
+ (w32-add-charset-info): Fix typos in docstrings.
+
+ * emulation/cua-base.el (cua-mode, cua-enable-register-prefix)
+ (cua-enable-cua-keys, cua-use-hyper-key)
+ (cua-virtual-rectangle-edges): Fix typos in docstrings.
+ (cua--M/H-key, cua--init-keymaps): "?\ " -> "?\s".
+
+ * net/tramp.el (tramp-handle-load): Fix typo in error message.
+
+ * emacs-lisp/re-builder.el (regexp-builder): Declare with
+ `defalias' instead of faking it.
+
+ * eshell/em-ls.el (eshell-ls-decorated-name): Doc fix.
+ (eshell-ls-missing, eshell-ls-dired-initial-args)
+ (eshell-ls-use-in-dired): Fix typos in docstrings.
+
+2005-07-20 Kim F. Storm <storm@cua.dk>
+
+ * emulation/cua-base.el (cua-mode): Improve doc string.
+
+2005-07-20 Juanma Barranquero <lekktu@gmail.com>
+
+ * abbrev.el (expand-region-abbrevs): Doc fix.
+ (inverse-add-mode-abbrev, inverse-add-global-abbrev):
+ Improve argument/docstring consistency.
+
+ * arc-mode.el (archive-get-descr, archive-alternate-display):
+ Doc fixes.
+ (archive-l-e): Improve argument/docstring consistency.
+ (archive-tmpdir, archive-unixdate, archive-unixtime)
+ (archive-chmod-entry): Fix typos in docstrings.
+ (archive-unflag, archive-unflag-backwards)
+ (archive-unmark-all-files): "?\ " -> "?\s".
+
+ * buff-menu.el (Buffer-menu-unmark): Doc fix.
+ (Buffer-menu-not-modified, Buffer-menu-execute)
+ (Buffer-menu-toggle-read-only, Buffer-menu-buffer+size)
+ (list-buffers-noselect, Buffer-menu-select): "?\ " -> "?\s".
+
+ * composite.el (compose-string, encode-composition-rule)
+ (compose-last-chars): Fix typos in docstrings.
+
+ * desktop.el (desktop-enable, desktop-basefilename):
+ Declare with `define-obsolete-variable-alias'.
+ (desktop-internal-v2s): Don't quote keywords.
+ (desktop-clear): "?\ " -> "?\s".
+
+ * dired.el (dired-align-file, dired-flag-backup-files)
+ (dired-change-marks, dired-unmark-all-files): "?\ " -> "?\s".
+ (dired-listing-switches, dired-ls-F-marks-symlinks)
+ (dired-dwim-target, dired-load-hook, dired-mode-hook)
+ (dired-directory, dired-faces, dired, dired-revert)
+ (dired-mode, dired-summary, dired-view-file)
+ (dired-copy-filename-as-kill, dired-delete-file)
+ (dired-no-confirm, dired-unmark-all-marks)
+ (dired-sort-by-date-regexp, dired-sort-by-name-regexp)
+ (dired-sort-inhibit, dired-sort-other): Fix typos in docstrings.
+ (dired-undo, dired-get-file-for-visit, dired-sort-toggle-or-edit):
+ Fix typos in message strings.
+
+ * dired-x.el (virtual-dired): Declare with `defalias'.
+ (dired-mark-unmarked-files, dired-local-variables-file)
+ (dired-omit-here-always): Doc fix.
+ (dired-omit-mode, dired-find-subdir)
+ (dired-enable-local-variables, dired-clean-up-buffers-too)
+ (dired-extra-startup, dired-mark-extension, dired-jump)
+ (dired-jump-other-window, dired-omit-localp, dired-virtual-mode)
+ (dired-smart-shell-command, dired-guess-shell-alist-user)
+ (dired-man, dired-initial-position, dired-x-hands-off-my-keys)
+ (dired-x-bind-find-file, dired-x-submit-report):
+ Fix typos in docstrings.
+ (dired-mark-unmarked-files): "?\ " -> "?\s".
+
+ * dirtrack.el (dirtrack-list): Fix typos in docstring.
+
+ * faces.el (describe-face): "?\ " -> "?\s".
+ (read-all-face-attributes, read-face-font, modify-face)
+ (face-attr-construct, italic): Fix typos in docstrings.
+ (frame-update-face-colors): Declare with
+ `define-obsolete-function-alias'.
+
+ * files.el (find-file-noselect, recode-file-name): Doc fixes.
+ (insert-directory, kill-some-buffers): "?\ " -> "?\s".
+ (magic-mode-alist, buffer-file-numbers-unique)
+ (write-file-functions, get-free-disk-space):
+ Fix typos in docstrings.
+ (find-file-not-found-hooks, find-file-hooks, write-file-hooks)
+ (write-contents-hooks, write-file-hooks):
+ Declare with `define-obsolete-variable-alias'.
+
+ * forms-d2.el (arch-rj): Fix typo in docstrings.
+ (arch-tocol): Likewise. "?\ " -> "?\s".
+
+ * frame.el (set-frame-font, cursor-in-non-selected-windows):
+ Fix typo in docstring.
+ (set-screen-width, set-screen-height): Delete redundant info in
+ doctrings.
+ (new-frame, screen-height, screen-width): Declare with
+ `define-obsolete-function-alias'.
+ (delete-frame-hook, blink-cursor): Declare with
+ `define-obsolete-variable-alias'.
+
+ * paths.el (prune-directory-list): Fix typos in docstring.
+
+ * pcvs-util.el (cvs-flags-query, cvs-strings->string)
+ (cvs-prefix-get): Fix typos in docstrings.
+
+ * ps-print.el (ps-extend-face-list, ps-extend-face)
+ (ps-print-background-image): Fix typos in docstrings.
+ (ps-default-fg, ps-default-bg): Doc fixes.
+
+ * s-region.el (s-region-bind): Doc fix.
+ (s-region-move-p1, s-region-move-p2): Fix typos in docstrings.
+
+ * textmodes/org.el (org-table-formula-substitute-names)
+ (org-table-get-vertical-vector): Doc fixes.
+ (org-table-recalculate): Remove unused argument to `message'.
+
+2005-07-19 Carsten Dominik <dominik@science.uva.nl>
+
+ * textmodes/org.el (org-table-column-names)
+ (org-table-column-name-regexp)
+ (org-table-named-field-locations): New variables.
+ (org-archive-subtree): Protect `this-command' when calling
+ `org-copy-subtree' and `org-cut-subtree', to avoid appending to
+ the kill buffer.
+ (org-complete): Remove fixed-formula completion.
+ (org-edit-formulas-map): New variable.
+ (org-table-edit-formulas): New command.
+ (org-finish-edit-formulas, org-abort-edit-formulas)
+ (org-show-variable, org-table-get-vertical-vector): New functions.
+ (org-table-maybe-eval-formula): Handle `:=' fields.
+ (org-table-get-stored-formulas, org-table-store-formulas)
+ (org-table-get-formula, org-table-modify-formulas)
+ (org-table-replace-in-formulas): Handle named field formulas.
+ (org-table-get-specials): Store locations of named fields.
+
+2005-07-19 Juri Linkov <juri@jurta.org>
+
+ * progmodes/grep.el (grep-regexp-alist)
+ (grep-mode-font-lock-keywords, grep-process-setup):
+ Use default GNU grep match color "01;31m" instead of "01;41m".
+ (grep-regexp-alist, grep-mode-font-lock-keywords):
+ Use `\\[[0-9]*m' instead of `\\[00m'.
+ (grep-regexp-alist): Move `\\(?:\033\\[K\\)?' from sgr_end to
+ sgr_start where its handling is more important. Use the real
+ length of sgr_start instead of constant 8.
+ (grep-mode-font-lock-keywords): Don't delete `\\(?:\033\\[K\\)?'
+ specially. Delete all remaining escape sequences.
+ (grep-process-setup): Set "GREP_COLORS" for GNU grep 2.5.1-cvs.
+ (grep-regexp-alist): Make hyperlink only for binary file name
+ instead of the whole line.
+ (grep-mode-map): Bind `backtab' to `compilation-previous-file'.
+ (grep-mode): Add autoload.
+
+ * emacs-lisp/find-func.el (find-function-regexp):
+ Add `define-compilation-mode'.
+
+2005-07-19 Juri Linkov <juri@jurta.org>
+
+ * compare-w.el (compare-ignore-whitespace, compare-windows-sync)
+ (compare-windows-sync-string-size, compare-windows-recenter)
+ (compare-windows-highlight, compare-windows): Add version 22.1.
+ (compare-windows) <defface>: Inherit from lazy-highlight instead
+ of duplicating its default value.
+
+ * cus-edit.el (custom-mode-map): Bind `C-c C-c' to `Custom-set'.
+ (Custom-mode-menu): Use `info' instead of `Info-goto-node'.
+
+ * descr-text.el (describe-char): Create link buttons for `charset'
+ and `code point'. Add the current input method name with a link
+ button to `to input' field. Print face names of display table
+ characters in `The display table entry is displayed by' section
+ instead of printing face-id in the `display' field.
+ Guess hardcoded faces and create a link button for them.
+ Skip empty fields when calculating max-width.
+ Treat `widget-create' specially while inserting strings from the
+ collected field list.
+ (describe-char-after): Made obsolete in version 22.1, not 21.5.
+
+ * diff-mode.el (diff-file-header): Change foreground color from
+ yellow to green on light backgrounds.
+ (diff-context): Inherit from `shadow' only for color/grayscale
+ with more than 88 colors.
+ (diff-indicator-removed, diff-indicator-added)
+ (diff-indicator-changed): New faces.
+ (diff-font-lock-keywords): Use new faces. Regroup rules.
+ Add "^---$" for `normal' diff format. Fontify `#' lines with
+ font-lock-comment-delimiter-face and font-lock-comment-face.
+ Add `#' to ^[^...] in the rule for `diff-context-face'.
+
+ * faces.el (mode-line-highlight): Replace RoyalBlue4 with
+ a button-like box. Inherit from `highlight' on low colors.
+ (shadow): Use shades of gray only for color/grayscale with
+ more than 88 colors. Use green for light backgrounds with
+ 8 colors, and yellow for dark backgrounds with 8 colors.
+
+ * font-lock.el (font-lock-regexp-grouping-backslash):
+ Don't inherit from escape-glyph (use bold for all cases).
+
+ * info.el (info-xref-visited): Use light foreground color `violet'
+ for dark backgrounds instead of dark color `magenta3'.
+ (info-title-1): Use `yellow' color for dark backgrounds.
+
+ * isearch.el (isearch): Use not-too-dark magenta3 instead of
+ too-light magenta2.
+
+ * replace.el (match): Use slightly more light RoyalBlue3 instead
+ of dark RoyalBlue4.
+
+ * wid-edit.el (widget-inactive): Inherit from `shadow'.
+
+2005-07-19 Juanma Barranquero <lekktu@gmail.com>
+
+ * novice.el (disabled-command-hook): Declare it with
+ `define-obsolete-variable-alias'.
+
+ * desktop.el (desktop-enable, desktop-buffer-modes-to-save)
+ (desktop-buffer-misc-functions, desktop-buffer-handlers)
+ (desktop-load-default): Add release to obsolescence info.
+ (desktop-globals-to-clear, desktop-buffer-mode-handlers)
+ (desktop-append-buffer-args, desktop-read):
+ Fix typos in docstrings.
+ (desktop-kill): Fix typo in message.
+ (desktop-save): Doc fix.
+
+2005-07-19 Michael Kifer <kifer@cs.stonybrook.edu>
+
+ * viper-cmd.el (viper-escape-to-state): Bug fix.
+ (viper-envelop-ESC-key): Change the definition of fast
+ keysequence so it'll work with keyboard macros.
+
+ * ediff.el (ediff-patch-buffer): Change the docstring.
+
+2005-07-19 Kenichi Handa <handa@m17n.org>
+
+ * international/mule-cmds.el (select-safe-coding-system): Try to
+ use an auto-coding (if any) before anything else. If the found
+ auto-coding is invalid, show a warning message.
+
+ * international/mule.el (find-auto-coding): New function created
+ by modifying the body of set-auto-coding.
+ (set-auto-coding): Use find-auto-coding to find a coding.
+
+2005-07-18 Richard M. Stallman <rms@gnu.org>
+
+ * allout.el (allout-isearch-expose): Use isearch-mode-end-hook-quit,
+ not isearch-mode-end-hook-error.
+ (allout-before-change-protect): Fix error message.
+
+2005-07-18 Juri Linkov <juri@jurta.org>
+
+ * allout.el (allout-mode):
+ * calculator.el (calculator-copy):
+ * custom.el (custom-known-themes):
+ * dired.el (dired-desktop-buffer-misc-data)
+ (dired-restore-desktop-buffer):
+ * dired-x.el (dired-omit-marker-char):
+ * files.el (basic-save-buffer):
+ * font-core.el (font-lock-mode):
+ * calendar/calendar.el (calendar-goto-hebrew-date)
+ (calendar-goto-coptic-date, calendar-goto-ethiopic-date)
+ (calendar-goto-persian-date):
+ * language/ethio-util.el (ethio-sera-to-fidel-region):
+ * textmodes/picture.el (picture-mode):
+ Delete duplicate duplicate words.
+
+2005-07-18 Juri Linkov <juri@jurta.org>
+
+ * isearch.el (isearch-mode-map): Remove key bindings for regexp
+ chars * ? } |.
+ (isearch-fallback): Don't call `isearch-process-search-char'.
+ (isearch-*-char, isearch-}-char, isearch-|-char): Remove functions.
+ (isearch-process-search-char): Call `isearch-fallback' for regexp
+ chars * ? } |.
+ (isearch-return-char): Make obsolete with `make-obsolete' instead
+ of simply documenting it as obsolete in the docstring.
+ (isearch-fallback): Refill docstring.
+
+ * international/isearch-x.el
+ (isearch-process-search-multibyte-characters): Remove unneeded
+ `concat'. Add intermediate values to `junk-hist' instead of
+ `minibuffer-history'. Test the length of `str'.
+
+2005-07-18 Juanma Barranquero <lekktu@gmail.com>
+
+ * allout.el (allout-resolve-xref): Fix typos in error strings.
+ (allout-before-change-protect): Remove unneeded `concat'.
+
+ * array.el (array-mode, array-reconfigure-rows)
+ (untabify-backward): Fix typos in docstrings.
+ (array-reconfigure-rows): Use `insert-buffer-substring', not
+ `insert-buffer'.
+
+ * calendar/icalendar.el (icalendar--get-unfolded-buffer):
+ * progmodes/ada-mode.el (ada-make-body):
+ Use `insert-buffer-substring' and `goto-char', not `insert-buffer'.
+
+ * dired.el (dired-log):
+ * tar-mode.el (tar-subfile-save-buffer):
+ * play/zone.el (zone-pgm-stress-destress):
+ Use `insert-buffer-substring', not `insert-buffer'.
+
+2005-07-17 Simon Josefsson <jas@extundo.com>
+
+ * mail/smtpmail.el (smtpmail-auth-supported): Prefer PLAIN over LOGIN.
+
+2005-07-16 Jose E. Marchesi <jemarch@gnu.org>
+
+ * lisp/mail/smtpmail.el (smtpmail-auth-supported):
+ Add plain auth method.
+ (smtpmail-try-auth-methods): Add AUTH PLAIN dialog.
+
+2005-07-17 Kim F. Storm <storm@cua.dk>
+
+ * ido.el (dired-other-window): Add ido property.
+
+2005-07-16 Juanma Barranquero <lekktu@gmail.com>
+
+ * emacs-lisp/bytecomp.el (byte-compile-maybe-guarded):
+ Fix typo in docstring.
+ (byte-compile-interactive-only-functions): Add `insert-buffer' and
+ `insert-file-literally'.
+
+ * emacs-lisp/edebug.el (def-edebug-form-spec): Add obsolescence
+ info and delete redundant message. Doc fix.
+ (edebug-install-custom-print-funcs, edebug-reset-print-funcs)
+ (edebug-uninstall-custom-print-funcs): Define as obsolete aliases.
+
+2005-07-16 Richard M. Stallman <rms@gnu.org>
+
+ * emacs-lisp/bytecomp.el (byte-compile-and-recursion): New function.
+ (byte-compile-and): Use byte-compile-and-recursion.
+ (byte-compile-or-recursion): New function.
+ (byte-compile-or): Use that.
+ (byte-compile-if): Guard the else-clause too.
+ (byte-compile-maybe-guarded): Handle (not (featurep 'emacs)).
+
+ * isearch.el (isearch-mode-end-hook-quit): New variable.
+ (isearch-done): Bind it.
+ (isearch-mode-end-hook): Doc fix.
+
+ * allout.el (allout-isearch-did-quit): Variable deleted.
+ (allout-real-isearch-abort): Function name no longer used.
+ (allout-mode): Do allout-enwrap-isearch whenever feature is wanted.
+ (allout-isearch-rectification): isearch-mode always exists.
+ Don't set allout-isearch-did-quit.
+ (allout-isearch-expose): Check isearch-mode-end-hook-error, not
+ allout-isearch-did-quit.
+ (allout-enwrap-isearch): Just add the hook.
+ (allout-isearch-abort): Function deleted.
+ (allout-pre-command-business): Avoid warning.
+
+ * progmodes/pascal.el (pascal-outline-map): Use fboundp, not boundp.
+ Correctly avoid warnings.
+ (pascal-outline): Likewise.
+
+ * progmodes/f90.el (f90-abbrev-start): Avoid warning.
+
+ * progmodes/asm-mode.el (asm-comment): Use with-no-warnings.
+
+ * play/tetris.el (tetris-mode): Avoid warning.
+
+ * play/snake.el (snake-mode): Avoid warning.
+
+ * play/gamegrid.el (gamegrid-shared-game-dir): Add defvar.
+ (gamegrid-set-display-table): Avoid warning.
+ (gamegrid-set-timer): Likewise.
+ (gamegrid-make-mono-tty-face): Use set-face-inverse-video-p.
+ (gamegrid-add-score-with-update-game-score-1): Take FILE
+ as argument.
+ (gamegrid-add-score-with-update-game-score): Pass that argument.
+ Rename have-shared-game-dir to gamegrid-shared-game-dir.
+
+ * net/eudc-hotlist.el (eudc-hotlist-mode): Avoid warnings.
+
+ * net/eudc-bob.el (eudc-jump-to-event): Avoid warning.
+ (eudc-bob-display-jpeg, eudc-bob-can-display-inline-images): Likewise.
+
+ * mail/uce.el (uce-reply-to-uce): Replace beginning-of-buffer
+ and insert-file.
+
+ * mail/supercite.el (sc-no-blank-line-or-header): Avoid warning.
+ (sc-ask): Avoid warnings.
+
+ * eshell/em-hist.el (eshell-rebind-keys-alist): Add defvar.
+ (eshell-hist-initialize): Use that var the natural way.
+
+ * emulation/viper-init.el (viper-activate-input-method): Avoid warning.
+
+ * emacs-lisp/re-builder.el (reb-cook-regexp):
+ Avoid warning calling lre-compile-string.
+ (reb-color-display-p): Avoid warning.
+
+ * calculator.el (calculator-last-input): Guard uses
+ of event-key and key-press-event-p.
+ (event-key, key-press-event-p): Delete definitions.
+
+ * emacs-lisp/find-gc.el (find-gc-unsafe-list)
+ (find-gc-source-directory, find-gc-subrs-callers)
+ (find-gc-noreturn-list, find-gc-source-files)
+ (find-gc-subrs-called): Vars renamed and defvar'd.
+
+ * emacs-lisp/checkdoc.el (checkdoc-make-overlay)
+ (checkdoc-overlay-put, checkdoc-delete-overlay)
+ (checkdoc-overlay-start, checkdoc-overlay-end)
+ (checkdoc-mode-line-update, checkdoc-char=):
+ Define such that compiler knows they are defined.
+ (checkdoc-call-eval-buffer): Delete. Use eval-buffer directly.
+ (checkdoc-read-event): Delete. Use read-event directly.
+
+ * whitespace.el (whitespace-make-overlay)
+ (whitespace-overlay-put, whitespace-delete-overlay)
+ (whitespace-overlay-start, whitespace-overlay-end):
+ Define such that compiler knows they are defined.
+ (whitespace): Move conditional inside.
+
+ * tempo.el (tempo-insert-template): Suppress warning.
+
+ * ediff-diff.el (longlines-mode): Add defvar.
+
+2005-07-16 Gary Howell <g1howell-list@yahoo.com> (tiny change)
+
+ * server.el: Bind "C-x #" in a way that works even if C-x is
+ redefined to a command key, not a prefix key.
+
+2005-07-16 Johan Bockgard <bojohan@users.sourceforge.net> (tiny change)
+
+ * emacs-lisp/cl-macs.el (cl-make-type-test): Defer evaluation of
+ cl-make-type-test till execution time.
+
+2005-07-16 Markus Rost <rost@math.uni-bielefeld.de>
+
+ * dired-x.el (dired-do-relsymlink-regexp): Add missing optional
+ arg ARG and use it.
+
+2005-07-16 Johan Bockgard <bojohan@users.sourceforge.net> (tiny change)
+
+ * emacs-lisp/cl-macs.el (cl-make-type-test): Add `atom' type.
+
+2005-07-15 Luc Teirlinck <teirllm@auburn.edu>
+
+ * emacs-lisp/easy-mmode.el (define-minor-mode): Avoid constructing
+ a defcustom with two :set or :type keywords.
+
+2005-07-15 Richard M. Stallman <rms@gnu.org>
+
+ * emacs-lisp/lisp-mode.el (emacs-lisp-mode-syntax-table):
+ Don't give ^M comment-end syntax.
+
+2005-07-16 Nick Roberts <nickrob@snap.net.nz>
+
+ * progmodes/gdb-ui.el (gdb-var-update, gdb-var-update-handler):
+ Don't consider gdbmi (gdb-mi.el has its own update functions).
+ (gdb-var-delete): Make it work for gdbmi as well.
+ (gdb-speedbar-expand-node): Move var-update here for gdbmi.
+
+ * progmodes/gud.el (etags, sdb): Only require etags when needed.
+ (gud-speedbar-menu-items): Correct logic for enabling items.
+
+2005-07-15 Kim F. Storm <storm@cua.dk>
+
+ * ido.el: Fix commentary.
+ (ido-define-mode-map): Move ido-next-work-file to C-M-o.
+ Use with-no-warnings around ffap-guesser.
+ (ido-file-internal, ido-read-file-name, ido-read-directory-name):
+ Let bind minibuffer-completing-file-name to t.
+
+2005-07-15 Juanma Barranquero <lekktu@gmail.com>
+
+ * startup.el (site-run-file, keyboard-type): Doc fixes.
+ (command-line): Check for "--basic-display" argument; also for
+ "--quick", not "--bare-bones" (which was renamed).
+ (fancy-splash-text): Add missing item "Getting New Versions".
+ (normal-splash-screen): Fix typos and improve consistency with
+ `fancy-splash-text'. Update copyright year.
+
+ * hexl.el (hexl-mode-map): Recognize also `ehelp-command' as a
+ valid binding for `help-char'.
+
+ * emacs-lisp/derived.el (derived-mode-hook-name): Doc fix.
+
+2005-07-14 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * term.el (term-mode): Disable cua-mode for term buffers.
+
+2005-07-14 Juanma Barranquero <lekktu@gmail.com>
+
+ * add-log.el (add-log-mailing-address, change-log-merge):
+ Doc fixes.
+ (change-log-get-method-definition): Fix typo in docstring.
+
+2005-07-14 Kim F. Storm <storm@cua.dk>
+
+ * emulation/cua-base.el:
+ (cua--pre-command-handler-1, cua--pre-command-handler)
+ (cua--post-command-handler-1, cua--post-command-handler):
+ Split in two. Check (buffer local) value of cua-mode.
+ (cua-selection-mode): New command.
+
+2005-07-13 Luc Teirlinck <teirllm@auburn.edu>
+
+ * custom.el (custom-initialize-safe-set)
+ (custom-initialize-safe-default): Doc fixes.
+
+ * frame.el (blink-cursor-mode): Use `custom-initialize-safe-default'
+ and simplify :init-value again.
+
+ * tooltip.el (tooltip-mode): Use `custom-initialize-safe-default'
+ and simplify :init-value again. Delete autoload.
+
+ * startup.el (command-line): Use `custom-reevaluate-setting' again
+ for tooltip-mode.
+
+ * emacs-lisp/easy-mmode.el (define-minor-mode): Avoid constructing
+ a defcustom with two :initialize keywords.
+
+2005-07-13 Juanma Barranquero <lekktu@gmail.com>
+
+ * allout.el (my-mark-marker, allout-isearch-prior-pos)
+ (allout-unprotected, allout-undo-aggregation, allout-snug-back)
+ (allout-post-command-business, allout-flag-region)
+ (isearch-reenable-font-lock, allout-yank)
+ (allout-insert-latex-header, allout-insert-latex-trailer)
+ (allout-latex-verbatim-quote-curr-line, allout-latexify-exposed)
+ (allout-latex-verb-quote): Fix typos in docstrings.
+ (allout-enwrap-isearch, regexp-sans-escapes): Doc fixes.
+ (allout-unprotected, allout-prefix-data):
+ Improve argument/docstring consistency.
+ (allout-chart-subtree): Fix argument spec.
+ (allout-open-topic): Rename `use_sib_bullet' argument to
+ `use-sib-bullet'. Doc fix.
+
+ * whitespace.el (whitespace-check-buffer-leading)
+ (whitespace-check-buffer-trailing)
+ (whitespace-check-buffer-indent)
+ (whitespace-check-buffer-spacetab)
+ (whitespace-check-buffer-ateol, whitespace-highlighted-space)
+ (whitespace-check-leading-whitespace)
+ (whitespace-check-trailing-whitespace)
+ (whitespace-check-spacetab-whitespace)
+ (whitespace-check-indent-whitespace)
+ (whitespace-check-ateol-whitespace, whitespace-abort-on-error)
+ (whitespace-modes): Fix typos in docstrings.
+ (defgroup, defcustom): Doc fixes.
+
+ * winner.el (winner-mode, winner-boring-buffers)
+ (winner-pending-undo-ring): Doc fixes.
+ (winner-ring): Remove unneeded `progn'.
+ (winner-equal): `defsubst' it.
+ (winner-redo): Fix message.
+
+2005-07-13 Kim F. Storm <storm@cua.dk>
+
+ * simple.el (line-move-1): Always use vertical-motion to
+ do the last (or only) line move to ensure some movement.
+ Undo 2005-06-23 change--don't check for overlays.
+
+2005-07-13 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * term/mac-win.el (ccl-encode-mac-roman-font)
+ (ccl-encode-mac-centraleurroman-font)
+ (ccl-encode-mac-cyrillic-font, ccl-encode-mac-symbol-font):
+ (ccl-encode-mac-dingbats-font): Remove check for ASCII.
+ Change charset-id boundary of dimension to ?\xef.
+ (mac-char-fontspec-list): New constant.
+ (fontset-add-mac-fonts): Use it. Accept non-string `base-family'
+ argument. Nil uses itself as family in font-spec. Previous
+ behavior for nil is now provided by non-nil non-string argument.
+ All callers changed. Add font-specs for Mac fonts to
+ "fontset-default" unless iso8859-1 fonts are installed.
+
+2005-07-13 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * progmodes/sh-script.el (sh-get-indent-info): Only indent
+ a continuation line if the \ is preceded by SPC or TAB.
+ (sh-get-indent-info): Simplify.
+ (sh-mark-init, sh-learn-buffer-indent, sh-add-completer):
+ Use with-current-buffer.
+
+ * font-lock.el (font-lock-fontify-keywords-region): Avoid inf-loops
+ when the matched text is empty.
+
+2005-07-12 Luc Teirlinck <teirllm@auburn.edu>
+
+ * startup.el (command-line): Revert to previous handling of
+ tooltip-mode. Explain in comment why the complexity is needed.
+
+ * tooltip.el (tooltip-mode): Revert to previous implementation of
+ its defcustom.
+
+ * frame.el (blink-cursor-mode): Revert to previous implementation
+ of its defcustom. Update comment.
+
+2005-07-12 Lars Hansen <larsh@soem.dk>
+
+ * desktop.el: Update e-mail address.
+
+2005-07-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * term/mac-win.el (mac-services-mail-selection)
+ (mac-services-mail-to): New functions.
+ (mac-application-menu-map): Bind them.
+
+2005-07-12 wulei <milton@wulei.net> (tiny change)
+
+ * progmodes/gdb-ui.el: Add note about buffering with Windows.
+
+2005-07-11 Luc Teirlinck <teirllm@auburn.edu>
+
+ * custom.el (custom-reevaluate-setting): Doc fix.
+
+2005-07-11 Jay Belanger <belanger@truman.edu>
+
+ * calc/calc.el (calc-embedded-announce-formula-alist)
+ (calc-embedded-open-close-plain-alist)
+ (calc-embedded-open-close-mode-alist): Add checks for additional
+ major modes (due to Robert J. Chassell <bob@rattlesnake.com>).
+
+2005-07-11 Juanma Barranquero <lekktu@gmail.com>
+
+ * custom.el (custom-enable-theme): Don't add theme to
+ `custom-enabled-themes' with `push' because there is no
+ setf-method for `delq'.
+
+2005-07-11 Richard M. Stallman <rms@gnu.org>
+
+ * custom.el (custom-declare-variable): Doc fix.
+
+ * dired-aux.el (dired-compare-directories): Remove "." and ".."
+ from the alists.
+
+ * emacs-lisp/edebug.el (edebug-slow-after, edebug-slow-before):
+ Do nothing if edebug-active.
+
+ * emacs-lisp/edebug.el (edebug-enter): Don't with-timeout-suspend here.
+ (edebug-display): Do it here instead.
+
+2005-07-10 Richard M. Stallman <rms@gnu.org>
+
+ * cus-face.el (custom-theme-set-faces): Make it work.
+ (custom-reset-faces): Doc fix.
+ (custom-theme-reset-internal-face, custom-theme-face-value):
+ Functions deleted.
+
+ * custom.el (custom-push-theme): Maintain list of the settings
+ of a given theme in its theme-settings property.
+ Maintain position of old settings in the theme-value
+ or theme-face property.
+ (custom-enabled-themes): New variable.
+ (custom-theme-enabled-p): New function.
+ (provide-theme): Update custom-enabled-themes.
+ Disable and reenable the `user' theme.
+ (require-theme): Doc fix.
+ (custom-do-theme-reset, custom-remove-theme): Functions deleted.
+ (custom-theme-value, custom-theme-variable-value): Likewise.
+ (custom-theme-reset-internal): Likewise.
+ (custom-theme-load-themes): Fix bugs and use custom-disable-theme.
+ (custom-enable-theme, custom-disable-theme): New functions.
+ (custom-variable-theme-value, custom-face-theme-value): Likewise.
+ (custom-theme-recalc-variable, custom-theme-recalc-face): Likewise.
+ (custom-theme-reset-variables): Simplify.
+ (deftheme, custom-declare-theme, custom-make-theme-feature):
+ Definitions moved.
+
+2005-07-10 Chong Yidong <cyd@stupidchicken.com>
+
+ * longlines.el (longlines-show-region)
+ (longlines-unshow-hard-newlines): Recognize hard newlines by
+ non-nil hard property, instead of t.
+
+2005-07-10 Michael Kifer <kifer@cs.stonybrook.edu>
+
+ * viper-cmd.el (viper--key-maps): New variable.
+ (viper-normalize-minor-mode-map-alist): Use viper--key-maps and
+ emulation-mode-map-alists.
+ (viper-envelop-ESC-key): Use viper-subseq.
+ (viper-search-forward/backward/next): Disable debug-on-error.
+
+ * viper-keym.el (viper-toggle-key, viper-quoted-insert-key)
+ (viper-ESC-key): New defcustoms.
+
+ * viper-macs.el (ex-map-read-args): Use viper-subseq.
+
+ * viper-util.el (viper-key-to-emacs-key): Use viper-subseq.
+ (viper-subseq): Copy of subseq from cl.el.
+
+ * viper.el (viper-go-away, viper-set-hooks): Use
+ emulation-mode-map-alists, advise self-insert-command, add-minor-mode.
+
+ * viper-mous.el (viper-current-frame-saved): Use defvar.
+
+ * viper-init.el: Get rid of -face in face names.
+
+ * ediff-diff.el (ediff-extract-diffs, ediff-extract-diffs3):
+ Make it work with longlines mode
+
+ * ediff-mult.el (ediff-meta-mode-hook): New variable.
+
+ * ediff-ptch.el (ediff-file-name-sans-prefix): Quote regexp.
+
+ * ediff-init: Get rid of -face in face names.
+
+2005-07-10 Richard M. Stallman <rms@gnu.org>
+
+ * emacs-lisp/edebug.el (edebug-enter): Call with-timeout-suspend
+ and with-timeout-unsuspend.
+
+ * emacs-lisp/debug.el (debug): Call with-timeout-suspend
+ and with-timeout-unsuspend.
+
+ * emacs-lisp/timer.el (with-timeout-timers): New variable.
+ (with-timeout): Bind that variable to record timers.
+ (with-timeout-suspend, with-timeout-unsuspend): New functions.
+
+ * emacs-lisp/debug.el (debug-help-follow): New function.
+ (debugger-mode-map): Use that instead of help-follow.
+ (debugger-setup-buffer): Use eval-buffer-list
+ to handle eval-buffer frames.
+
+2005-07-10 N. Raghavendra <raghu@mri.ernet.in> (tiny change)
+
+ * timezone.el (timezone-parse-date): Change first regexp
+ so it will not mistakenly match dates with no time zone.
+
+2005-07-10 Jeff Dwork <jeff.dwork@amd.com> (tiny change)
+
+ * facemenu.el (facemenu-read-color): Do case-insensitive matching.
+
+2005-07-10 Luc Teirlinck <teirllm@auburn.edu>
+
+ * custom.el (custom-initialize-safe-set)
+ (custom-initialize-safe-default): New functions.
+
+ * frame.el (blink-cursor-mode): Use `custom-initialize-safe-default'
+ and simplify :init-value.
+
+ * tooltip.el (tooltip-mode): Use `custom-initialize-safe-default'
+ and simplify :init-value. Delete obsolete comment.
+
+ * startup.el (command-line): Use `custom-reevaluate-setting' to
+ handle `tooltip-mode'. Delete obsolete comment.
+
+ * files.el (set-visited-file-name): Avoid calling
+ `file-name-nondirectory' with a nil argument.
+
+2005-07-09 Richard M. Stallman <rms@gnu.org>
+
+ * emacs-lisp/debug.el (debugger-setup-buffer): When eval-buffer
+ was called with nil for the buffer, handle the read position right.
+ Handle read position for eval-region, too.
+
+2005-07-09 Juri Linkov <juri@jurta.org>
+
+ * fringe.el (fringe-mode): Add period in docstring.
+ (fringe-query-style): Build prompt depending on `all-frames' arg.
+
+ * dired.el (dired-marker-char): Avoid quotations for `do' and `mark'
+ to not create links to unrelated functions in the Help buffer.
+
+ * progmodes/compile.el (compilation-mode-hook, compilation-mode):
+ Doc fix.
+
+ * simple.el (next-error-hook): New variable.
+ (next-error): Use it. Doc fix.
+
+ * textmodes/ispell.el (ispell-command-loop): Add current
+ dictionary name and program name to mode-line-format.
+ (ispell-region, ispell-process-line): Add current dictionary name
+ and program name to messages.
+
+2005-07-08 Jay Belanger <belanger@truman.edu>
+
+ * calc/calc.el (calc-embedded-announce-formula-alist)
+ (calc-embedded-open-close-formula-alist)
+ (calc-embedded-open-close-word-alist)
+ (calc-embedded-open-close-plain-alist)
+ (calc-embedded-open-close-new-formula-alist)
+ (calc-embedded-open-close-mode-alist)
+ (calc-embedded-new-buffer-hook, calc-embedded-new-formula-hook)
+ (calc-embedded-mode-hook): New variables.
+
+ * calc/calc-embed.el (calc-embedded-firsttime)
+ (calc-embedded-firsttime-buf, calc-embedded-firsttime-formula):
+ New variables.
+ (calc-do-embedded): Use calc-embedded-firsttime,
+ calc-embedded-firsttime-buf and calc-embedded-firsttime-formula to
+ determine whether or not to run hooks.
+ (calc-embedded-make-info) Set calc-embedded-firsttime-buf and
+ calc-embedded-firsttime-formula appropriately.
+ Set calc-embedded delimiter variables according to mode.
+
+2005-07-08 Richard M. Stallman <rms@gnu.org>
+
+ * emacs-lisp/checkdoc.el (checkdoc-proper-noun-list):
+ Check for "emacs", etc., as entire symbol, not just as word.
+ (checkdoc-file-comments-engine): Use regexp-quote on FN.
+
+ * files.el (set-visited-file-name): Report the error
+ for "empty filename" earlier.
+ (kill-some-buffers): Ignore buffers already dead.
+
+ * fringe.el (fringe-mode): Doc fix.
+
+ * emacs-lisp/bytecomp.el (byte-compile-maybe-guarded):
+ Check for (featurep 'xemacs) and turn off warnings in what it guards.
+ Use unwind-protect to ensure byte-compile-unresolved-functions
+ is updated.
+
+ * whitespace.el (whitespace-buffer-leading-cleanup):
+ Simplify w/ skip-chars-forward.
+ (whitespace-buffer-trailing-cleanup): Simplify w/ skip-chars-backward.
+
+ * mail/rmail.el (rmail-only-expunge): Fix paren error.
+ Unconditionally try to leave point at the same old place.
+
+2005-07-08 Ralf Angeli <angeli@iwi.uni-sb.de> (tiny change)
+
+ * comint.el (comint-postoutput-scroll-to-bottom)
+ (comint-show-maximum-output): Take scroll-margin into consideration.
+
+2005-07-08 Kim F. Storm <storm@cua.dk>
+
+ * ido.el (ido-use-filename-at-point): New choice `guess'.
+ (ido-file-internal): Try ffap-guesser if selected.
+
+ * ido.el (ido-before-fallback-functions): New hook.
+ (ido-buffer-internal, ido-file-internal, ido-read-buffer)
+ (ido-read-file-name): Run it.
+
+2005-07-07 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * progmodes/hideif.el (hide-ifdef-use-define-alist): Pass a list of
+ strings rather than a list of symbols to the completion function.
+
+2005-07-07 Jay Belanger <belanger@truman.edu>
+
+ * calc/calc-units.el (math-apply-units): Change the places in
+ which units are simplified.
+
+2005-07-07 Luc Teirlinck <teirllm@auburn.edu>
+
+ * cus-edit.el (customize-option, customize-option-other-window):
+ Make them handle aliases.
+
+ * custom.el (custom-variable-p): Make it recursively follow
+ aliases. Mention that in the docstring.
+
+2005-07-07 Richard M. Stallman <rms@gnu.org>
+
+ * cus-start.el (exec-path): Use `directory' instead of `file'.
+ Fix tag for nil.
+
2005-07-07 Juanma Barranquero <lekktu@gmail.com>
* replace.el (occur-rename-buffer): Use `generate-new-buffer' also
@@ -10,16 +2526,15 @@
2005-07-07 Kenichi Handa <handa@m17n.org>
- * international/mule.el (make-coding-system): Describe
- `ascii-incompatible' property in the docstring.
+ * international/mule.el (make-coding-system):
+ Describe `ascii-incompatible' property in the docstring.
(set-file-name-coding-system): Signal an error if coding-system is
ascii-incompatible.
(set-keyboard-coding-system): Likewise.
* international/mule-cmds.el (set-default-coding-systems):
Don't set default-file-name-coding-system and
- default-keyboard-coding-system if coding-system is
- ASCII-incompatible.
+ default-keyboard-coding-system if coding-system is ASCII-incompatible.
* international/utf-16.el: Declare that all UTF-16-based coding
systems are ASCII-incompatible.
@@ -661,6 +3176,13 @@
* progmodes/compile.el (compilation-next-error-function):
Don't switch buffers; operate on the current buffer.
+ * progmodes/compile.el (compilation-error-file-name)
+ (compilation-warning-file-name, compilation-info-file-name)
+ (compilation-line-number, compilation-column-number): New faces.
+ (compilation-error-face, compilation-warning-face)
+ (compilation-info-face, compilation-line-face)
+ (compilation-column-face): Use them.
+
* facemenu.el (facemenu-add-face): Warn when font-lock is active.
* comint.el (comint-password-prompt-regexp): Accept ", try again".
@@ -1016,9 +3538,10 @@
New backward-compatibility aliases for renamed faces.
(eshell-run-test): Use renamed eshell-test faces.
- * eshell/em-prompt.el (eshell-prompt):
- Remove "-face" suffix from face name.
- (eshell-prompt-face): New backward-compatibility alias for renamed face.
+ * eshell/em-prompt.el (eshell-prompt): Remove "-face" suffix from
+ face name.
+ (eshell-prompt-face): New backward-compatibility alias for renamed
+ face.
(eshell-emit-prompt): Use renamed eshell-prompt face.
* eshell/em-ls.el (eshell-ls-directory, eshell-ls-symlink)
@@ -1285,20 +3808,22 @@
(ebrowse-draw-member-buffer-class-line, ebrowse-draw-member-long-fn)
(ebrowse-draw-member-short-fn): Use renamed ebrowse faces.
- * progmodes/antlr-mode.el (antlr-default, antlr-keyword, antlr-syntax)
+ * progmodes/antlr-mode.el (antlr-default, antlr-keyword,
+ antlr-syntax)
(antlr-ruledef, antlr-tokendef, antlr-ruleref, antlr-tokenref)
- (antlr-literal): Remove "-face" suffix and "font-lock-" from face names.
+ (antlr-literal): Remove "-face" suffix and "font-lock-" from face
+ names.
(antlr-font-lock-default-face, antlr-font-lock-keyword-face)
(antlr-font-lock-syntax-face, antlr-font-lock-ruledef-face)
(antlr-font-lock-tokendef-face, antlr-font-lock-ruleref-face)
- (antlr-font-lock-tokenref-face, antlr-font-lock-literal-face):
- New backward-compatibility aliases for renamed faces.
+ (antlr-font-lock-tokenref-face, antlr-font-lock-literal-face): New
+ backward-compatibility aliases for renamed faces.
(antlr-default-face, antlr-keyword-face, antlr-syntax-face)
(antlr-ruledef-face, antlr-tokendef-face, antlr-ruleref-face)
- (antlr-tokenref-face, antlr-literal-face): Variables renamed to remove
- "font-lock-". Use renamed antlr-mode faces.
- (antlr-font-lock-additional-keywords): Use renamed faces.
- Replace literal face-names with face variable references.
+ (antlr-tokenref-face, antlr-literal-face): Variables renamed to
+ remove "font-lock-". Use renamed antlr-mode faces.
+ (antlr-font-lock-additional-keywords): Use renamed faces. Replace
+ literal face-names with face variable references.
* buff-menu.el (Buffer-menu-buffer): Remove "-face" suffix from
face name.
@@ -1642,7 +4167,8 @@
(pc-selection-mode):
* emulation/vip.el (vip-find-char-forward):
* emulation/viper-cmd.el (viper-find-char-forward):
- * international/mule-cmds.el (select-safe-coding-system-accept-default-p)
+ * international/mule-cmds.el
+ (select-safe-coding-system-accept-default-p)
(input-method-exit-on-invalid-key):
* international/mule-diag.el (describe-coding-system):
* international/ucs-tables.el (unify-8859-on-encoding-mode):
@@ -1816,11 +4342,12 @@
(smerge-mine-face, smerge-other-face, smerge-base-face)
(smerge-markers-face): Use renamed smerge faces.
- * log-view.el (log-view-file, log-view-message):
- Remove "-face" suffix from face names.
- (log-view-file-face, log-view-message-face):
- New backward-compatibility aliases for renamed faces.
- (log-view-file-face, log-view-message-face): Use renamed log-view faces.
+ * log-view.el (log-view-file, log-view-message): Remove "-face"
+ suffix from face names.
+ (log-view-file-face, log-view-message-face): New
+ backward-compatibility aliases for renamed faces.
+ (log-view-file-face, log-view-message-face): Use renamed log-view
+ faces.
* paren.el (show-paren-match, show-paren-mismatch):
Remove "-face" suffix from face names.
@@ -1832,19 +4359,20 @@
(ruler-mode-margins, ruler-mode-fringes)
(ruler-mode-column-number, ruler-mode-fill-column)
(ruler-mode-comment-column, ruler-mode-goal-column)
- (ruler-mode-tab-stop, ruler-mode-current-column):
- Remove "-face" suffix from face names.
+ (ruler-mode-tab-stop, ruler-mode-current-column): Remove "-face"
+ suffix from face names.
(ruler-mode-default-face, ruler-mode-pad-face)
(ruler-mode-margins-face, ruler-mode-fringes-face)
(ruler-mode-column-number-face, ruler-mode-fill-column-face)
(ruler-mode-comment-column-face, ruler-mode-goal-column-face)
- (ruler-mode-tab-stop-face, ruler-mode-current-column-face):
- New backward-compatibility aliases for renamed faces.
+ (ruler-mode-tab-stop-face, ruler-mode-current-column-face): New
+ backward-compatibility aliases for renamed faces.
(ruler-mode-pad, ruler-mode-margins, ruler-mode-fringes)
(ruler-mode-column-number, ruler-mode-fill-column)
(ruler-mode-comment-column, ruler-mode-goal-column)
(ruler-mode-tab-stop, ruler-mode-current-column)
- (ruler-mode-mouse-grab-any-column, ruler-mode-ruler): Use renamed faces.
+ (ruler-mode-mouse-grab-any-column, ruler-mode-ruler): Use renamed
+ faces.
* whitespace.el (whitespace-highlight): Remove "-face" suffix from
face name.
@@ -2079,10 +4607,12 @@
XEmacs code.
(flyspell-word): Minor simplification.
(flyspell-math-tex-command-p): Quieten the byte-compiler.
- (flyspell-external-point-words): Remove unused vars `size' and `start'.
- (flyspell-do-correct): Rename from flyspell-xemacs-correct.
- Merge the corresponding Emacs code.
- (flyspell-correct-word, flyspell-xemacs-popup): Use flyspell-do-correct.
+ (flyspell-external-point-words): Remove unused vars `size' and
+ `start'.
+ (flyspell-do-correct): Rename from flyspell-xemacs-correct. Merge
+ the corresponding Emacs code.
+ (flyspell-correct-word, flyspell-xemacs-popup): Use
+ flyspell-do-correct.
* emacs-lisp/debug.el (debug): Don't bury the buffer unless it's in
a dedicated window.
@@ -2751,7 +5281,8 @@
2005-05-26 Mark A. Hershberger <mah@everybody.org>
- * xml.el (xml-substitute-special): Don't die for undefined xml entities.
+ * xml.el (xml-substitute-special): Don't die for undefined xml
+ entities.
2005-05-26 Jay Belanger <belanger@truman.edu>
@@ -3186,8 +5717,9 @@
* emacs-lisp/byte-run.el (eval-when-compile): Doc fix.
- * emacs-lisp/bytecomp.el (byte-compile-file-form-custom-declare-variable):
- Call byte-compile-nogroup-warn if appropriate.
+ * emacs-lisp/bytecomp.el
+ (byte-compile-file-form-custom-declare-variable): Call
+ byte-compile-nogroup-warn if appropriate.
* progmodes/compile.el (compilation-finish-function): Mark obsolete.
(compilation-set-window): Don't call left-fringe-p; do it directly.
@@ -3274,8 +5806,8 @@
(reftex-access-search-path): Use `reftex-uniquify' instead of
`reftex-uniq'
- * textmodes/reftex-sel.el (reftex-select-unmark):
- Overlay `before-string' property modification enables for Emacs as well.
+ * textmodes/reftex-sel.el (reftex-select-unmark): Overlay
+ `before-string' property modification enables for Emacs as well.
(reftex-select-item): Use `reftex-delete-overlay'.
(reftex-select-mark): Use `reftex-make-overlay' and
`reftex-overlay-put'.
@@ -3762,7 +6294,8 @@
2005-05-11 Stefan Monnier <monnier@iro.umontreal.ca>
- * files.el (executable-find): Move from executable.el. Use locate-file.
+ * files.el (executable-find): Move from executable.el. Use
+ locate-file.
* progmodes/executable.el (executable-find): Move to files.el.
* font-lock.el (font-lock-fontify-keywords-region): Use a marker
@@ -3991,8 +6524,9 @@
* term/mac-win.el: Don't define or bind scroll bar functions if
x-toolkit-scroll-bars is t.
- (x-select-text, x-get-selection-value):
- Clear x-last-selected-text-clipboard if x-select-enable-clipboard is nil.
+ (x-select-text, x-get-selection-value): Clear
+ x-last-selected-text-clipboard if x-select-enable-clipboard is
+ nil.
(PRIMARY): Put mac-scrap-name property.
(mac-select-convert-to-file-url): New function.
(public.file-url): New selection target type. Add to
@@ -5872,7 +8406,8 @@
minibuffer-with-setup-hook (which breaks turning on/off
file-name-shadow-mode while in the prompt).
- * complete.el (PC-read-include-file-name-internal): Use test-completion.
+ * complete.el (PC-read-include-file-name-internal): Use
+ test-completion.
2005-03-28 Luc Teirlinck <teirllm@auburn.edu>
@@ -6057,7 +8592,8 @@
* midnight.el, vc-cvs.el: Replace `illegal' with `invalid'.
* emacs-lisp/cl-macs.el: Replace `illegal' with `invalid'.
* emulation/vip.el: Replace `illegal' with `invalid'.
- * eshell/esh-io.el, eshell/esh-var.el: Replace `illegal' with `invalid'.
+ * eshell/esh-io.el, eshell/esh-var.el: Replace `illegal' with
+ `invalid'.
* mail/supercite.el: Replace `illegal' with `invalid'.
* progmodes/ebnf-abn.el, progmodes/ebnf-bnf.el
* progmodes/ebnf-ebx.el, progmodes/ebnf-dtd.el, progmodes/ebnf-iso.el
@@ -6067,7 +8603,8 @@
* textmodes/refbib.el, textmodes/refer.el, textmodes/reftex-cite.el
* textmodes/reftex-index.el, textmodes/reftex-parse.el
* textmodes/reftex-ref.el, textmodes/reftex-vars.el
- * textmodes/reftex.el, textmodes/org.el: Replace `illegal' with `invalid'.
+ * textmodes/reftex.el, textmodes/org.el:
+ Replace `illegal' with `invalid'.
2005-03-24 Stefan Monnier <monnier@iro.umontreal.ca>
@@ -6278,7 +8815,8 @@
2005-03-21 Lute Kamstra <lute@gnu.org>
- * generic.el: Fix commentary section. Don't require cl for compilation.
+ * generic.el: Fix commentary section. Don't require cl for
+ compilation.
(generic-mode-list): Add autoload cookie.
(generic-use-find-file-hook, generic-lines-to-scan)
(generic-find-file-regexp, generic-ignore-files-regexp)
@@ -6917,10 +9455,11 @@
* simple.el (normal-erase-is-backspace): Define default value.
- * custom.el (custom-theme-set-variables): Remove unused var `immediate'.
- (custom-reevaluate-setting): Simple function to handle
- variables that are defined before their default value can really
- be computed.
+ * custom.el (custom-theme-set-variables): Remove unused var
+ `immediate'.
+ (custom-reevaluate-setting): Simple function to handle variables
+ that are defined before their default value can really be
+ computed.
* startup.el (command-line): Use it for temporary-file-directory,
small-emporary-file-directory, auto-save-file-name-transforms,
@@ -8048,7 +10587,7 @@
2005-01-21 Ren,Ai(B Kyllingstad <listmailxemacs@kyllingstad.com>
- * pcomplete.el: define pcomplete-read-event instead of read-event,
+ * pcomplete.el: Define pcomplete-read-event instead of read-event,
since it's not a complete read-event implementation
2005-01-20 Jay Belanger <belanger@truman.edu>
@@ -8300,7 +10839,7 @@
* textmodes/org.el (org-set-regexps-and-options): Rename from
`org-set-regexps'. Added checking for STARTUP keyword.
(org-get-current-options): Add STARTUP options.
- (org-table-insert-row): Mode mode intelligent about when
+ (org-table-insert-row): Make mode intelligent about when
realignment is needed.
(org-self-insert-command, org-delete-backward-char, org-delete-char):
New commands.
@@ -8833,7 +11372,8 @@
* progmodes/fortran.el (fortran-mode): Use mode-require-final-newline.
* progmodes/f90.el (f90-mode): Use mode-require-final-newline.
* progmodes/cperl-mode.el (cperl-mode): Use mode-require-final-newline.
- * progmodes/cfengine.el (cfengine-mode): Use mode-require-final-newline.
+ * progmodes/cfengine.el (cfengine-mode): Use
+ mode-require-final-newline.
* progmodes/ada-mode.el (ada-mode): Use mode-require-final-newline.
* textmodes/text-mode.el (text-mode): Use mode-require-final-newline.
* textmodes/texinfo.el (texinfo-mode): Use mode-require-final-newline.
@@ -9201,8 +11741,8 @@
2004-12-19 Jay Belanger <belanger@truman.edu>
- * calc/calc-aent.el (calcAlg-blank-matching-open):
- Temporarily adjust the syntax of both delimiters of half-open intervals.
+ * calc/calc-aent.el (calcAlg-blank-matching-open): Temporarily
+ adjust the syntax of both delimiters of half-open intervals.
2004-12-19 Kim F. Storm <storm@cua.dk>
@@ -9467,7 +12007,8 @@
Reported by Ville Skytt,Ad(B <scop@xemacs.org>.
(vc-svn-annotate-current-time, vc-svn-annotate-time-of-rev)
(vc-svn-annotate-time, vc-svn-annotate-extract-revision-at-line)
- (vc-svn-annotate-command, vc-svn-annotate-re): Support for svn annotate.
+ (vc-svn-annotate-command, vc-svn-annotate-re): Support for svn
+ annotate.
2004-12-12 Juri Linkov <juri@jurta.org>
@@ -9558,7 +12099,8 @@
2004-12-11 Stefan Monnier <monnier@iro.umontreal.ca>
* emacs-lisp/checkdoc.el (checkdoc-continue, checkdoc-comments)
- (checkdoc-message-text, checkdoc-defun): Fix format messages for `error'.
+ (checkdoc-message-text, checkdoc-defun): Fix format messages for
+ `error'.
* textmodes/tex-mode.el (latex-backward-sexp-1): Handle the special
case of \end{verbatim}.
@@ -9856,12 +12398,13 @@
* calc/calc-store.el, calc/calc-stuff.el, calc/calc-trail.el
* calc/calc-undo.el, calc/calc-units.el, calc/calc-vec.el
* calc/calc-yank.el, calc/calcalg2.el, calc/calcalg3.el
- * calc/calccomp.el, calc/calcsel2.el: Replace dummy autoloaded functions
- with provide statements.
+ * calc/calccomp.el, calc/calcsel2.el: Replace dummy autoloaded
+ functions with provide statements.
* calc/calc-alg.el (math-defsimplify): Move from calc-ext.el.
- * calc/calc-embed.el (calc-do-embedded-activate): Remove from autoloads.
+ * calc/calc-embed.el (calc-do-embedded-activate): Remove from
+ autoloads.
* calc/calc-ext.el: Remove dummy autoloading functions from autoloads.
(calc-load-everything, math-defsimplify): Replace dummy autoloading
@@ -9926,11 +12469,12 @@
Replace calls to calc-extensions by appropriate require, replace
calc-extensions-loaded by appropriate featurep.
- * calc/calc-ext.el: Move require to end of file.
- Remove redundant loading of calc.el.
+ * calc/calc-ext.el: Move require to end of file. Remove redundant
+ loading of calc.el.
(calc-extensions-loaded): Remove unnecessary variable.
(calc-extensions): Remove unnecessary function.
- (calc-load-everything): Replace calc-need-macros by appropriate require.
+ (calc-load-everything): Replace calc-need-macros by appropriate
+ require.
* calc/calc-macs.el: Move provide to end of file.
(calc-need-macros): Remove unnecessary function.
@@ -10034,7 +12578,8 @@
* calc/calc-aent.el (calc-eval-error): Declare and initialize the
variable.
- (calc-eval-error): Don't check if the variable calc-eval-error is bound.
+ (calc-eval-error): Don't check if the variable calc-eval-error is
+ bound.
(calc-buffer, calc-digit-value, math-expr-data): Declare them.
(math-alg-inequalities): Move declaration to earlier in the file.
@@ -10110,7 +12655,8 @@
Replace variable pos by declared variable.
* calc/calc-mtx.el (calc-det-lu): New variable.
- (math-det-raw, math-det-step): Replace variable lu by declared variable.
+ (math-det-raw, math-det-step): Replace variable lu by declared
+ variable.
* calc/calc-map.el (math-ms-temp, math-ms-args): New variables.
(math-multi-subst, math-multi-subst-rec): Replace variables temp
@@ -10142,7 +12688,8 @@
(calc-embedded-update, calc-embedded-find-vars): Replace variable
vars-used by declared variable.
- * calc/calc-bin.el (math-format-radix-float): Make pos a local variable.
+ * calc/calc-bin.el (math-format-radix-float): Make pos a local
+ variable.
(math-format-radix-float): Remove unnecessary setq.
(math-radix-float-cache): Declare it.
@@ -11494,7 +14041,7 @@
* simple.el (line-move-invisible-p): Rename from line-move-invisible.
(line-move): New args NOERROR and TO-END.
- Return t if if succeed in moving specified number of lines.
+ Return t if succeed in moving specified number of lines.
(move-end-of-line): New function.
* simple.el (beginning-of-buffer-other-window): Use with-no-warnings.
@@ -11810,7 +14357,8 @@
* play/fortune.el (fortune-to-signature): Don't use interactive-p.
(fortune-in-buffer): Doc fix.
- * play/5x5.el (5x5-new-game): Set up the buffer even if not interactive.
+ * play/5x5.el (5x5-new-game): Set up the buffer even if not
+ interactive.
* net/eudc.el (eudc-display-records): Use with-output-to-temp-buffer;
don't select the temporary buffer.
@@ -12388,7 +14936,8 @@
2004-10-17 Kim F. Storm <storm@cua.dk>
- * language/indian.el (indian-script-language-alist): Swap value and doc.
+ * language/indian.el (indian-script-language-alist): Swap value
+ and doc.
(indian-font-char-index-table): Doc fix.
2004-10-16 Stefan Monnier <monnier@iro.umontreal.ca>
@@ -14052,7 +16601,8 @@
2004-08-08 Lars Hansen <larsh@math.ku.dk>
- * wid-edit.el (widget-sexp-validate): Allow whitespace after expression.
+ * wid-edit.el (widget-sexp-validate): Allow whitespace after
+ expression.
2004-08-08 Luc Teirlinck <teirllm@auburn.edu>
@@ -14222,7 +16772,7 @@
2004-08-16 Reiner Steib <Reiner.Steib@gmx.de>
* calendar/time-date.el (time-to-number-of-days): New function.
- Imported from from Gnus.
+ Imported from Gnus.
2004-07-22 Kim F. Storm <storm@cua.dk>
@@ -14908,9 +17458,10 @@
2004-06-11 Luc Teirlinck <teirllm@auburn.edu>
* dired.el (dired-revert): If buffer is marked unmodified before
- reverting, keep it marked unmodified.
- Adapt to new conventions for commenting out code.
- (dired-make-relative): Adapt to new conventions for commenting out code.
+ reverting, keep it marked unmodified. Adapt to new conventions
+ for commenting out code.
+ (dired-make-relative): Adapt to new conventions for commenting out
+ code.
2004-06-10 Miles Bader <miles@gnu.ai.mit.edu>
@@ -15005,8 +17556,8 @@
2004-06-08 Daniel Pfeiffer <occitan@esperanto.org>
- * progmodes/compile.el (compilation-set-window-height):
- Rearrange the save-* functions because a buffer can have several current
+ * progmodes/compile.el (compilation-set-window-height): Rearrange
+ the save-* functions because a buffer can have several current
point in different windows.
(compilation-error-regexp-alist-alist): Recognize {standard input}
GNU messages (for gcc --pipe) and more kinds of Oracle messages.
@@ -15468,7 +18019,8 @@
2004-05-28 Stefan Monnier <monnier@iro.umontreal.ca>
- * subr.el (with-selected-window): Only save/restore the selected window.
+ * subr.el (with-selected-window): Only save/restore the selected
+ window.
* progmodes/compile.el (compilation-error-regexp-alist):
Use expand-file-name and data-directory.
@@ -15783,7 +18335,7 @@
2004-05-18 Stefan Monnier <monnier@iro.umontreal.ca>
* files.el (auto-save-file-name-transforms): Make sure ange-ftp temp
- files files don't contain an accidental additional /.
+ files don't contain an accidental additional /.
* textmodes/tex-mode.el (tex-compilation-parse-errors): Save excursion
in source buffer.
@@ -15812,7 +18364,8 @@
* eshell/esh-io.el (eshell-get-target): Whitespace changes.
(eshell-output-object-to-target): Improve output speed 20% by not
- calling `eshell-stringify' if something is already known to be a string.
+ calling `eshell-stringify' if something is already known to be a
+ string.
2004-05-15 Alex Ott <ott@jet.msk.su>
@@ -17166,10 +19719,11 @@
2004-04-20 Stefan Monnier <monnier@iro.umontreal.ca>
- * progmodes/compile.el (compilation-error-properties):
- Split into two.
+ * progmodes/compile.el (compilation-error-properties): Split into
+ two.
(compilation-internal-error-properties): New one.
- (compilation-compat-error-properties): Use it. Fix the non-marker case.
+ (compilation-compat-error-properties): Use it. Fix the non-marker
+ case.
2004-04-20 Richard M. Stallman <rms@gnu.org>
@@ -17326,7 +19880,8 @@
2004-04-16 Dave Love <fx@gnu.org>
- * progmodes/python.el (python-compilation-line-number): Fix braindamage.
+ * progmodes/python.el (python-compilation-line-number): Fix
+ braindamage.
(python-load-file): Fix python-orig-start setting.
* progmodes/compile.el: Doc fixes.
@@ -17360,10 +19915,10 @@
2004-04-16 Masatake YAMATO <jet@gyve.org>
- * simple.el (completion-setup-function): Set an initial value
- to `element-common-end' before entering loop. Set a value
- to `element-common-end' at the end of loop.
- The bug is reported by Juri Linkov <juri@jurta.org> in emacs-devel list.
+ * simple.el (completion-setup-function): Set an initial value to
+ `element-common-end' before entering loop. Set a value to
+ `element-common-end' at the end of loop. The bug is reported by
+ Juri Linkov <juri@jurta.org> in emacs-devel list.
(completions-common-part): Rename from completion-de-emphasis.
(completions-first-difference): Rename from completion-emphasis.
Suggested by RMS.
@@ -17430,7 +19985,8 @@
parsing of both attribute and element names.
(xml-ns-parse-ns-attrs, xml-ns-expand-el, xml-ns-expand-attr)
(xml-intern-attrlist): Remove in favor of xml-maybe-do-ns.
- (xml-parse-tag): Update assumed namespaces. Clean up namespace parsing.
+ (xml-parse-tag): Update assumed namespaces. Clean up namespace
+ parsing.
(xml-parse-attlist): Make it do its own namespace parsing.
2004-04-14 Dave Love <fx@gnu.org>
@@ -17474,11 +20030,12 @@
2004-04-14 Kim F. Storm <storm@cua.dk>
* startup.el (emacs-quick-startup): New defvar (set by -Q).
- (command-line): New option -Q. Like -q --no-site-file, but
- in addition it also disables menu-bar, tool-bar, scroll-bars,
+ (command-line): New option -Q. Like -q --no-site-file, but in
+ addition it also disables menu-bar, tool-bar, scroll-bars,
tool-tips, and the blinking cursor.
(command-line-1): Skip startup screen if -Q.
- (fancy-splash-head): Use ":align-to center" prop to center splash image.
+ (fancy-splash-head): Use ":align-to center" prop to center splash
+ image.
* emulation/cua-base.el (cua-read-only-cursor-color)
(cua-overwrite-cursor-color, cua-global-mark-cursor-color): Doc fix.
@@ -18273,7 +20830,8 @@
2004-03-22 Luc Teirlinck <teirllm@auburn.edu>
- * autorevert.el (global-auto-revert-non-file-buffers): Expand docstring.
+ * autorevert.el (global-auto-revert-non-file-buffers): Expand
+ docstring.
(buffer-stale-function): New variable.
(auto-revert-list-diff, auto-revert-dired-file-list)
(auto-revert-dired-changed-p, auto-revert-buffer-p): Delete.
@@ -19494,7 +22052,8 @@
* net/webjump.el (webjump-builtin): Add missing format string argument.
- * midnight.el (midnight-delay-set): Remove extra format string argument.
+ * midnight.el (midnight-delay-set): Remove extra format string
+ argument.
* mail/rmail.el (rmail-get-new-mail): Remove useless use of format.
@@ -20555,7 +23114,8 @@
* subr.el (noreturn, 1value): New macros for test coverage.
See `testcover.el'.
- * emacs-lisp/edebug.el: Add def-edebug-spec for `noreturn' and `1value'.
+ * emacs-lisp/edebug.el: Add def-edebug-spec for `noreturn' and
+ `1value'.
* emacs-lisp/testcover.el (testcover-reinstrument): Special case
for macro `1value'.
@@ -22205,7 +24765,7 @@
* menu-bar.el (menu-bar-options-menu): Supply a body for the
[save-place] binding in the Options menu. Have it require
- 'saveplace' and then toggle the variable manually, to avoid an an
+ 'saveplace' and then toggle the variable manually, to avoid an
unbound variable error. Thanks to <Sebastien.Kirche@sage.com>
for the bug report.
diff --git a/lisp/Makefile.in b/lisp/Makefile.in
index 1174519af9..b8501c5021 100644
--- a/lisp/Makefile.in
+++ b/lisp/Makefile.in
@@ -1,5 +1,5 @@
# Maintenance productions for the Lisp directory
-# Copyright (C) 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
+# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
# This file is part of GNU Emacs.
@@ -218,10 +218,13 @@ $(lisp)/progmodes/cc-mode.elc: \
# Build loaddefs.el to make sure it's up-to-date. If it's not, that
# might lead to errors during the bootstrap because something fails to
# autoload as expected. If there is no emacs binary, then we can't
-# build autoloads yet. In that case we have to use ldefs-boot.el;
-# bootstrap should always work with ldefs-boot.el. (Because
-# loaddefs.el is an automatically generated file, we don't want to
-# store it in the source repository).
+# build autoloads yet. In that case we have to use ldefs-boot.el.
+# Bootstrap should always work with ldefs-boot.el. Therefore,
+# whenever a new autoload cookie gets added that is necessary during
+# bootstrapping, ldefs-boot.el should be updated by overwriting it with
+# an up-to-date copy of loaddefs.el that is uncorrupted by
+# local changes. (Because loaddefs.el is an automatically generated
+# file, we don't want to store it in the source repository).
bootstrap-prepare:
if test -x $(EMACS); then \
diff --git a/lisp/abbrev.el b/lisp/abbrev.el
index b63814e922..774bb1892b 100644
--- a/lisp/abbrev.el
+++ b/lisp/abbrev.el
@@ -1,6 +1,7 @@
;;; abbrev.el --- abbrev mode commands for Emacs
-;; Copyright (C) 1985, 1986, 1987, 1992 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1987, 1992, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: abbrev convenience
@@ -281,7 +282,7 @@ Don't use this function in a Lisp program; use `define-abbrev' instead."
name (abbrev-expansion name table))))
(define-abbrev table (downcase name) exp))))
-(defun inverse-add-mode-abbrev (arg)
+(defun inverse-add-mode-abbrev (n)
"Define last word before point as a mode-specific abbrev.
With prefix argument N, defines the Nth word before point.
This command uses the minibuffer to read the expansion.
@@ -292,15 +293,15 @@ Expands the abbreviation after defining it."
global-abbrev-table
(or local-abbrev-table
(error "No per-mode abbrev table")))
- "Mode" arg))
+ "Mode" n))
-(defun inverse-add-global-abbrev (arg)
+(defun inverse-add-global-abbrev (n)
"Define last word before point as a global (mode-independent) abbrev.
With prefix argument N, defines the Nth word before point.
This command uses the minibuffer to read the expansion.
Expands the abbreviation after defining it."
(interactive "p")
- (inverse-add-abbrev global-abbrev-table "Global" arg))
+ (inverse-add-abbrev global-abbrev-table "Global" n))
(defun inverse-add-abbrev (table type arg)
(let (name exp start end)
@@ -338,9 +339,8 @@ ARG is non-nil. Interactively, ARG is the prefix argument."
(defun expand-region-abbrevs (start end &optional noquery)
"For abbrev occurrence in the region, offer to expand it.
-The user is asked to type y or n for each occurrence.
-A prefix argument means don't query; expand all abbrevs.
-If called from a Lisp program, arguments are START END &optional NOQUERY."
+The user is asked to type `y' or `n' for each occurrence.
+A prefix argument means don't query; expand all abbrevs."
(interactive "r\nP")
(save-excursion
(goto-char start)
diff --git a/lisp/abbrevlist.el b/lisp/abbrevlist.el
index a193a92df0..3be9c257af 100644
--- a/lisp/abbrevlist.el
+++ b/lisp/abbrevlist.el
@@ -1,6 +1,7 @@
;;; abbrevlist.el --- list one abbrev table alphabetically ordered
-;; Copyright (C) 1986, 1992 Free Software Foundation, Inc.
+;; Copyright (C) 1986, 1992, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Suggested by a previous version by Gildea.
;; Maintainer: FSF
diff --git a/lisp/add-log.el b/lisp/add-log.el
index ec802ef4ae..8ea934084f 100644
--- a/lisp/add-log.el
+++ b/lisp/add-log.el
@@ -1,7 +1,7 @@
;;; add-log.el --- change log maintenance commands for Emacs
-;; Copyright (C) 1985, 1986, 1988, 1993, 1994, 1997, 1998, 2000, 2003,
-;; 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1988, 1993, 1994, 1997, 1998, 2000, 2002,
+;; 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: tools
@@ -70,7 +70,7 @@ This defaults to the value returned by the function `user-full-name'."
;;;###autoload
(defcustom add-log-mailing-address nil
- "*Electronic mail addresses of user, for inclusion in ChangeLog headers.
+ "*Email addresses of user, for inclusion in ChangeLog headers.
This defaults to the value of `user-mail-address'. In addition to
being a simple string, this value can also be a list. All elements
will be recognized as referring to the same user; when creating a new
@@ -976,7 +976,7 @@ Has a preference of looking backwards."
(goto-char (match-end 0)))
(defun change-log-get-method-definition ()
-"For objective C, return the method name if we are in a method."
+"For Objective C, return the method name if we are in a method."
(let ((change-log-get-method-definition-md "["))
(save-excursion
(if (re-search-backward "^@implementation\\s-*\\([A-Za-z_]*\\)" nil t)
@@ -1022,7 +1022,7 @@ Point is assumed to be at the start of the entry."
;;;###autoload
(defun change-log-merge (other-log)
- "Merge the contents of ChangeLog file OTHER-LOG with this buffer.
+ "Merge the contents of change log file OTHER-LOG with this buffer.
Both must be found in Change Log mode (since the merging depends on
the appropriate motion commands). OTHER-LOG can be either a file name
or a buffer.
diff --git a/lisp/align.el b/lisp/align.el
index 5c1e8e7b89..2cbc43e38d 100644
--- a/lisp/align.el
+++ b/lisp/align.el
@@ -1,6 +1,7 @@
;;; align.el --- align text to a specific column, by regexp
-;; Copyright (C) 1999, 2000, 2002 Free Sofware Foundation
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
;; Keywords: convenience languages lisp
@@ -383,9 +384,6 @@ The possible settings for `align-region-separate' are:
regexp function)))))))
"The `type' form for any `align-rules-list' variable.")
-(unless (functionp 'c-guess-basic-syntax)
- (autoload 'c-guess-basic-syntax "cc-engine"))
-
(defcustom align-rules-list
`((lisp-second-arg
(regexp . "\\(^\\s-+[^( \t\n]\\|(\\(\\S-+\\)\\s-+\\)\\S-+\\(\\s-+\\)")
diff --git a/lisp/allout.el b/lisp/allout.el
index 518e37083e..a64ba4b8f9 100644
--- a/lisp/allout.el
+++ b/lisp/allout.el
@@ -1,6 +1,7 @@
;;; allout.el --- extensive outline mode for use alone and with other modes
-;; Copyright (C) 1992, 93, 94, 2001, 02, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1993, 1994, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Ken Manheimer <klm@zope.com>
;; Maintainer: Ken Manheimer <klm@zope.com>
@@ -868,15 +869,8 @@ allout-pre- and -post-command-hooks.")
(make-variable-buffer-local 'allout-pre-was-isearching)
;;;_ = allout-isearch-prior-pos nil
(defvar allout-isearch-prior-pos nil
- "Cue for isearch-dynamic-exposure tracking, used by allout-isearch-expose.")
+ "Cue for isearch-dynamic-exposure tracking, used by `allout-isearch-expose'.")
(make-variable-buffer-local 'allout-isearch-prior-pos)
-;;;_ = allout-isearch-did-quit
-(defvar allout-isearch-did-quit nil
- "Distinguishes isearch conclusion and cancellation.
-
-Maintained by `allout-isearch-abort' \(which is wrapped around the real
-isearch-abort), and monitored by `allout-isearch-expose' for action.")
-(make-variable-buffer-local 'allout-isearch-did-quit)
;;;_ = allout-override-protect nil
(defvar allout-override-protect nil
"Used in `allout-mode' for regulate of concealed-text protection mechanism.
@@ -887,16 +881,16 @@ native outline functions to temporarily override that protection.
It's automatically reset to nil after every buffer modification.")
(make-variable-buffer-local 'allout-override-protect)
;;;_ > allout-unprotected (expr)
-(defmacro allout-unprotected (expr)
- "Evaluate EXPRESSION with `allout-override-protect' let-bound t."
+(defmacro allout-unprotected (expression)
+ "Evaluate EXPRESSION with `allout-override-protect' let-bound to t."
`(let ((allout-override-protect t))
- ,expr))
+ ,expression))
;;;_ = allout-undo-aggregation
(defvar allout-undo-aggregation 30
"Amount of successive self-insert actions to bunch together per undo.
This is purely a kludge variable, regulating the compensation for a bug in
-the way that before-change-functions and undo interact.")
+the way that `before-change-functions' and undo interact.")
(make-variable-buffer-local 'allout-undo-aggregation)
;;;_ = file-var-bug hack
(defvar allout-v18/19-file-var-hack nil
@@ -1154,7 +1148,7 @@ Topic text constituents:
HEADER: The first line of a topic, include the topic PREFIX and header
text.
-PREFIX: The leading text of a topic which which distinguishes it from
+PREFIX: The leading text of a topic which distinguishes it from
normal text. It has a strict form, which consists of a
prefix-lead string, padding, and a bullet. The bullet may be
followed by a number, indicating the ordinal number of the
@@ -1343,8 +1337,7 @@ OPEN: A topic that is not closed, though its offspring or body may be."
(if allout-layout
(setq do-layout t))
- (if (and allout-isearch-dynamic-expose
- (not (fboundp 'allout-real-isearch-abort)))
+ (if allout-isearch-dynamic-expose
(allout-enwrap-isearch))
(run-hooks 'allout-mode-hook)
@@ -1407,12 +1400,12 @@ OPEN: A topic that is not closed, though its offspring or body may be."
"Buffer point last returned by `allout-end-of-current-subtree'.")
(make-variable-buffer-local 'allout-recent-end-of-subtree)
;;;_ > allout-prefix-data (beg end)
-(defmacro allout-prefix-data (beg end)
+(defmacro allout-prefix-data (beginning end)
"Register allout-prefix state data - BEGINNING and END of prefix.
For reference by `allout-recent' funcs. Returns BEGINNING."
`(setq allout-recent-prefix-end ,end
- allout-recent-prefix-beginning ,beg))
+ allout-recent-prefix-beginning ,beginning))
;;;_ > allout-recent-depth ()
(defmacro allout-recent-depth ()
"Return depth of last heading encountered by an outline maneuvering function.
@@ -1632,7 +1625,7 @@ list containing, recursively, the charts for the respective subtopics.
The chart for a topics' offspring precedes the entry for the topic
itself.
-\(fn &optional levels)"
+\(fn &optional LEVELS)"
;; The other function parameters are for internal recursion, and should
;; not be specified by external callers. ORIG-DEPTH is depth of topic at
@@ -1999,7 +1992,7 @@ Return depth if successful, nil otherwise."
)
;;;_ > allout-snug-back ()
(defun allout-snug-back ()
- "Position cursor at end of previous topic
+ "Position cursor at end of previous topic.
Presumes point is at the start of a topic prefix."
(if (or (bobp) (eobp))
@@ -2226,8 +2219,7 @@ are exempt from this restriction."
(if rehide-place (goto-char rehide-place))
(allout-hide-current-entry-completely))
(allout-hide-current-entry))
- (error (concat
- "Change within concealed region prevented.")))))))
+ (error "Change within concealed region prevented"))))))
) ; if
) ; defun
;;;_ = allout-post-goto-bullet
@@ -2249,8 +2241,8 @@ are mapped to the command of the corresponding control-key on the
- Implement (and clear) `allout-post-goto-bullet', for hot-spot
outline commands.
-- Massages buffer-undo-list so successive, standard character self-inserts are
- aggregated. This kludge compensates for lack of undo bunching when
+- Massages `buffer-undo-list' so successive, standard character self-inserts
+ are aggregated. This kludge compensates for lack of undo bunching when
`before-change-functions' is used."
; Apply any external change func:
@@ -2325,9 +2317,7 @@ return to regular interpretation of self-insert characters."
(let* ((this-key-num (cond
((numberp last-command-char)
last-command-char)
- ;; XXX Only XEmacs has characterp.
- ((and (fboundp 'characterp)
- (characterp last-command-char))
+ ((fboundp 'char-to-int)
(char-to-int last-command-char))
(t 0)))
mapped-binding)
@@ -2363,7 +2353,7 @@ See `allout-init' for setup instructions."
Called as part of `allout-post-command-business'."
- (let ((isearching (and (boundp 'isearch-mode) isearch-mode)))
+ (let ((isearching isearch-mode))
(cond ((and isearching (not allout-pre-was-isearching))
(allout-isearch-expose 'start))
((and isearching allout-pre-was-isearching)
@@ -2371,15 +2361,14 @@ Called as part of `allout-post-command-business'."
((and (not isearching) allout-pre-was-isearching)
(allout-isearch-expose 'final))
;; Not and wasn't isearching:
- (t (setq allout-isearch-prior-pos nil)
- (setq allout-isearch-did-quit nil)))))
+ (t (setq allout-isearch-prior-pos nil)))))
;;;_ = allout-isearch-was-font-lock
(defvar allout-isearch-was-font-lock
(and (boundp 'font-lock-mode) font-lock-mode))
;;;_ > allout-flag-region (from to flag)
(defmacro allout-flag-region (from to flag)
- "Hide or show lines from FROM to TO, via Emacs selective-display FLAG char.
+ "Hide or show lines from FROM to TO, via Emacs `selective-display' FLAG char.
Ie, text following flag C-m \(carriage-return) is hidden until the
next C-j (newline) char.
@@ -2414,51 +2403,16 @@ Returns the endpoint of the region."
(setq allout-isearch-prior-pos nil)
(if (not (eq mode 'final))
(setq allout-isearch-prior-pos (cons (point) (allout-show-entry)))
- (if allout-isearch-did-quit
+ (if isearch-mode-end-hook-quit
nil
(setq allout-isearch-prior-pos nil)
- (allout-show-children))))
- (setq allout-isearch-did-quit nil))
+ (allout-show-children)))))
;;;_ > allout-enwrap-isearch ()
(defun allout-enwrap-isearch ()
- "Impose `allout-mode' isearch-abort wrapper for dynamic exposure in isearch.
+ "Impose `isearch-abort' wrapper for dynamic exposure in isearch.
The function checks to ensure that the rebinding is done only once."
-
- (add-hook 'isearch-mode-end-hook 'allout-isearch-rectification)
- (if (fboundp 'allout-real-isearch-abort)
- ;;
- nil
- ; Ensure load of isearch-mode:
- (if (or (and (fboundp 'isearch-mode)
- (fboundp 'isearch-abort))
- (condition-case error
- (load-library "isearch-mode")
- ('file-error (message
- "Skipping isearch-mode provisions - %s '%s'"
- (car (cdr error))
- (car (cdr (cdr error))))
- (sit-for 1)
- ;; Inhibit subsequent tries and return nil:
- (setq allout-isearch-dynamic-expose nil))))
- ;; Isearch-mode loaded, encapsulate specific entry points for
- ;; outline dynamic-exposure business:
- (progn
- ;; stash crucial isearch-mode funcs under known, private
- ;; names, then register wrapper functions under the old
- ;; names, in their stead:
- (fset 'allout-real-isearch-abort (symbol-function 'isearch-abort))
- (fset 'isearch-abort 'allout-isearch-abort)))))
-;;;_ > allout-isearch-abort ()
-(defun allout-isearch-abort ()
- "Wrapper for `allout-real-isearch-abort' \(which see), to register
-actual quits."
- (interactive)
- (setq allout-isearch-did-quit nil)
- (condition-case what
- (allout-real-isearch-abort)
- ('quit (setq allout-isearch-did-quit t)
- (signal 'quit nil))))
+ (add-hook 'isearch-mode-end-hook 'allout-isearch-rectification))
;;; Prevent unnecessary font-lock while isearching!
(defvar isearch-was-font-locking nil)
@@ -2469,7 +2423,7 @@ actual quits."
font-lock-mode nil)))
(add-hook 'isearch-mode-hook 'isearch-inhibit-font-lock)
(defun isearch-reenable-font-lock ()
- "Reenable font-lock after isearching - for use on isearch-mode-end-hook."
+ "Reenable font-lock after isearching - for use on `isearch-mode-end-hook'."
(if (and (boundp 'font-lock-mode) font-lock-mode)
(if (and (allout-mode-p) isearch-was-font-locking)
(setq isearch-was-font-locking nil
@@ -2671,15 +2625,15 @@ index for each successive sibling)."
((allout-sibling-index))))))
)
)
-;;;_ > allout-open-topic (relative-depth &optional before use_sib_bullet)
-(defun allout-open-topic (relative-depth &optional before use_sib_bullet)
+;;;_ > allout-open-topic (relative-depth &optional before use-sib-bullet)
+(defun allout-open-topic (relative-depth &optional before use-sib-bullet)
"Open a new topic at depth RELATIVE-DEPTH.
New topic is situated after current one, unless optional flag BEFORE
is non-nil, or unless current line is complete empty (not even
whitespace), in which case open is done on current line.
-If USE_SIB_BULLET is true, use the bullet of the prior sibling.
+If USE-SIB-BULLET is true, use the bullet of the prior sibling.
Nuances:
@@ -2821,7 +2775,7 @@ Nuances:
;;(if doing-beginning (save-excursion (newline (if dbl-space 2 1))))
- (allout-rebullet-heading (and use_sib_bullet ref-bullet);;; solicit
+ (allout-rebullet-heading (and use-sib-bullet ref-bullet);;; solicit
depth ;;; depth
nil ;;; number-control
nil ;;; index
@@ -3439,8 +3393,8 @@ exactly like normal yanks.
Numbering of yanked topics, and the successive siblings at the depth
into which they're being yanked, is adjusted.
-`allout-yank-pop' works with `allout-yank' just like normal yank-pop
-works with normal yank in non-outline buffers."
+`allout-yank-pop' works with `allout-yank' just like normal `yank-pop'
+works with normal `yank' in non-outline buffers."
(interactive "*P")
(setq this-command 'yank)
@@ -3472,9 +3426,9 @@ by pops to non-distinctive yanks. Bug..."
(interactive)
(if (not allout-file-xref-bullet)
(error
- "outline cross references disabled - no `allout-file-xref-bullet'")
+ "Outline cross references disabled - no `allout-file-xref-bullet'")
(if (not (string= (allout-current-bullet) allout-file-xref-bullet))
- (error "current heading lacks cross-reference bullet `%s'"
+ (error "Current heading lacks cross-reference bullet `%s'"
allout-file-xref-bullet)
(let (file-name)
(save-excursion
@@ -4365,9 +4319,9 @@ used verbatim."
;;;_ - LaTeX formatting
;;;_ > allout-latex-verb-quote (string &optional flow)
(defun allout-latex-verb-quote (string &optional flow)
- "Return copy of STRING for literal reproduction across latex processing.
+ "Return copy of STRING for literal reproduction across LaTeX processing.
Expresses the original characters \(including carriage returns) of the
-string across latex processing."
+string across LaTeX processing."
(mapconcat (function
(lambda (char)
(cond ((memq char '(?\\ ?$ ?% ?# ?& ?{ ?} ?_ ?^ ?- ?*))
@@ -4378,10 +4332,10 @@ string across latex processing."
""))
;;;_ > allout-latex-verbatim-quote-curr-line ()
(defun allout-latex-verbatim-quote-curr-line ()
- "Express line for exact \(literal) representation across latex processing.
+ "Express line for exact \(literal) representation across LaTeX processing.
Adjust line contents so it is unaltered \(from the original line)
-across latex processing, within the context of a `verbatim'
+across LaTeX processing, within the context of a `verbatim'
environment. Leaves point at the end of the line."
(beginning-of-line)
(let ((beg (point))
@@ -4397,7 +4351,7 @@ environment. Leaves point at the end of the line."
(goto-char (1+ (match-end 0))))))
;;;_ > allout-insert-latex-header (buffer)
(defun allout-insert-latex-header (buffer)
- "Insert initial latex commands at point in BUFFER."
+ "Insert initial LaTeX commands at point in BUFFER."
;; Much of this is being derived from the stuff in appendix of E in
;; the TeXBook, pg 421.
(set-buffer buffer)
@@ -4471,7 +4425,7 @@ environment. Leaves point at the end of the line."
)))
;;;_ > allout-insert-latex-trailer (buffer)
(defun allout-insert-latex-trailer (buffer)
- "Insert concluding latex commands at point in BUFFER."
+ "Insert concluding LaTeX commands at point in BUFFER."
(set-buffer buffer)
(insert "\n\\end{document}\n"))
;;;_ > allout-latexify-one-item (depth prefix bullet text)
@@ -4526,7 +4480,7 @@ BULLET string, and a list of TEXT strings for the body."
)))
;;;_ > allout-latexify-exposed (arg &optional tobuf)
(defun allout-latexify-exposed (arg &optional tobuf)
- "Format current topics exposed portions to TOBUF for latex processing.
+ "Format current topics exposed portions to TOBUF for LaTeX processing.
TOBUF defaults to a buffer named the same as the current buffer, but
with \"*\" prepended and \" latex-formed*\" appended.
@@ -4640,7 +4594,8 @@ Optional arg DO-DEFAULTING indicates to accept empty input (CR)."
Representations of actual backslashes - '\\\\\\\\' - are left as a
single backslash.
-Optional arg SUCCESSIVE-BACKSLASHES is used internally for recursion."
+\(fn REGEXP)"
+;; Optional arg SUCCESSIVE-BACKSLASHES is used internally for recursion.
(if (string= regexp "")
""
@@ -4683,7 +4638,7 @@ function. If HOOK is void, it is first set to nil."
(cons function (symbol-value hook)))))))
;;;_ : my-mark-marker to accommodate divergent emacsen:
(defun my-mark-marker (&optional force buffer)
- "Accommodate the different signature for mark-marker across Emacsen.
+ "Accommodate the different signature for `mark-marker' across Emacsen.
XEmacs takes two optional args, while GNU Emacs does not,
so pass them along when appropriate."
diff --git a/lisp/ansi-color.el b/lisp/ansi-color.el
index 31aaef2fcd..ce84af445a 100644
--- a/lisp/ansi-color.el
+++ b/lisp/ansi-color.el
@@ -1,6 +1,7 @@
;;; ansi-color.el --- translate ANSI escape sequences into faces
-;; Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Alex Schroeder <alex@gnu.org>
;; Maintainer: Alex Schroeder <alex@gnu.org>
@@ -85,6 +86,8 @@
;;; Code:
+(defvar comint-last-output-start)
+
;; Customization
(defgroup ansi-colors nil
@@ -485,7 +488,7 @@ For XEmacs, we create a temporary face and return it."
OBJECT defaults to the current buffer. XEmacs uses `make-extent', Emacs
uses `make-overlay'. XEmacs can use a buffer or a string for OBJECT,
Emacs requires OBJECT to be a buffer."
- (if (functionp 'make-extent)
+ (if (fboundp 'make-extent)
(make-extent from to object)
;; In Emacs, the overlay might end at the process-mark in comint
;; buffers. In that case, new text will be inserted before the
@@ -510,7 +513,7 @@ property."
(defun ansi-color-set-extent-face (extent face)
"Set the `face' property of EXTENT to FACE.
XEmacs uses `set-extent-face', Emacs uses `overlay-put'."
- (if (functionp 'set-extent-face)
+ (if (fboundp 'set-extent-face)
(set-extent-face extent face)
(overlay-put extent 'face face)))
diff --git a/lisp/apropos.el b/lisp/apropos.el
index 37cb85494a..fcad5cac0d 100644
--- a/lisp/apropos.el
+++ b/lisp/apropos.el
@@ -1,6 +1,7 @@
;;; apropos.el --- apropos commands for users and programmers
-;; Copyright (C) 1989,94,1995,2001,02,03,04,2005 Free Software Foundation, Inc.
+;; Copyright (C) 1989, 1994, 1995, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Joe Wells <jbw@bigbird.bu.edu>
;; Rewritten: Daniel Pfeiffer <occitan@esperanto.org>
diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el
index b049f8ea73..a29ec10d40 100644
--- a/lisp/arc-mode.el
+++ b/lisp/arc-mode.el
@@ -1,6 +1,7 @@
;;; arc-mode.el --- simple editing of archives
-;; Copyright (C) 1995, 1997, 1998, 2003, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1997, 1998, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Morten Welinder <terra@gnu.org>
;; Keywords: archives msdog editing major-mode
@@ -131,7 +132,7 @@
(make-temp-name
(expand-file-name (if (eq system-type 'ms-dos) "ar" "archive.tmp")
temporary-file-directory))
- "Directory for temporary files made by arc-mode.el."
+ "Directory for temporary files made by `arc-mode.el'."
:type 'directory
:group 'archive)
@@ -465,9 +466,9 @@ Each descriptor is a vector of the form
(intern (concat "archive-" (symbol-name archive-subtype) "-" suffix)))
(defun archive-l-e (str &optional len)
- "Convert little endian string/vector to integer.
-Alternatively, first argument may be a buffer position in the current buffer
-in which case a second argument, length, should be supplied."
+ "Convert little endian string/vector STR to integer.
+Alternatively, STR may be a buffer position in the current buffer
+in which case a second argument, length LEN, should be supplied."
(if (stringp str)
(setq len (length str))
(setq str (buffer-substring str (+ str len))))
@@ -567,7 +568,7 @@ the mode is invalid. If ERROR is nil then nil will be returned."
(format "%02d:%02d:%02d" hour minute second)))
(defun archive-unixdate (low high)
- "Stringify unix (LOW HIGH) date."
+ "Stringify Unix (LOW HIGH) date."
(let ((str (current-time-string (cons high low))))
(format "%s-%s-%s"
(substring str 8 10)
@@ -575,7 +576,7 @@ the mode is invalid. If ERROR is nil then nil will be returned."
(substring str 20 24))))
(defun archive-unixtime (low high)
- "Stringify unix (LOW HIGH) time."
+ "Stringify Unix (LOW HIGH) time."
(let ((str (current-time-string (cons high low))))
(substring str 11 19)))
@@ -587,7 +588,7 @@ the mode is invalid. If ERROR is nil then nil will be returned."
(defun archive-get-descr (&optional noerror)
"Return the descriptor vector for file at point.
-Does not signal an error if optional second argument NOERROR is non-nil."
+Does not signal an error if optional argument NOERROR is non-nil."
(let ((no (archive-get-lineno)))
(if (and (>= (point) archive-file-list-start)
(< no (length archive-files)))
@@ -761,7 +762,7 @@ when parsing the archive."
(defun archive-alternate-display ()
"Toggle alternative display.
-To avoid very long lines some archive mode don't show all information.
+To avoid very long lines archive mode does not show all information.
This function changes the set of information shown for each files."
(interactive)
(setq archive-alternate-display (not archive-alternate-display))
@@ -1159,13 +1160,13 @@ With a prefix argument, mark that many files."
"In archive mode, un-mark this member if it is marked to be deleted.
With a prefix argument, un-mark that many files forward."
(interactive "p")
- (archive-flag-deleted p ? ))
+ (archive-flag-deleted p ?\s))
(defun archive-unflag-backwards (p)
"In archive mode, un-mark this member if it is marked to be deleted.
With a prefix argument, un-mark that many members backward."
(interactive "p")
- (archive-flag-deleted (- p) ? ))
+ (archive-flag-deleted (- p) ?\s))
(defun archive-unmark-all-files ()
"Remove all marks."
@@ -1175,8 +1176,8 @@ With a prefix argument, un-mark that many members backward."
(save-excursion
(goto-char archive-file-list-start)
(while (< (point) archive-file-list-end)
- (or (= (following-char) ? )
- (progn (delete-char 1) (insert ? )))
+ (or (= (following-char) ?\s)
+ (progn (delete-char 1) (insert ?\s)))
(forward-line 1)))
(restore-buffer-modified-p modified)))
@@ -1214,7 +1215,7 @@ Use \\[archive-unmark-all-files] to remove all marks."
(defun archive-chmod-entry (new-mode)
"Change the protection bits associated with all marked or this member.
The new protection bits can either be specified as an octal number or
-as a relative change like \"g+rw\" as for chmod(2)"
+as a relative change like \"g+rw\" as for chmod(2)."
(interactive "sNew mode (octal or relative): ")
(if archive-read-only (error "Archive is read-only"))
(let ((func (archive-name "chmod-entry")))
diff --git a/lisp/array.el b/lisp/array.el
index 836ba99ff6..4d8b718965 100644
--- a/lisp/array.el
+++ b/lisp/array.el
@@ -1,6 +1,7 @@
;;; array.el --- array editing commands for GNU Emacs
-;; Copyright (C) 1987, 2000 Free Software Foundation, Inc.
+;; Copyright (C) 1987, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author David M. Brown
;; Maintainer: FSF
@@ -638,7 +639,7 @@ If optional ARG is given, copy through ARG rows up."
"Reconfigure the state of `array-rows-numbered' and `array-columns-per-line'.
NEW-COLUMNS-PER-LINE is the desired value of `array-columns-per-line' and
NEW-ROWS-NUMBERED (a character, either ?y or ?n) is the desired value
-of array-rows-numbered."
+of `array-rows-numbered'."
(interactive "nColumns per line: \ncRows numbered? (y or n) ")
;; Check on new-columns-per-line
(let ((check t))
@@ -717,7 +718,7 @@ of array-rows-numbered."
(let ((inhibit-quit t))
(set-buffer main-buffer)
(erase-buffer)
- (insert-buffer temp-buffer)
+ (insert-buffer-substring temp-buffer)
;; Update local variables.
(setq array-columns-per-line new-columns-per-line)
(setq array-rows-numbered new-rows-numbered)
@@ -767,7 +768,7 @@ Return COLUMN."
(move-to-column column)))))
(defun untabify-backward ()
- "Untabify the preceding tab."
+ "Untabify the preceding TAB."
(save-excursion
(let ((start (point)))
(backward-char 1)
@@ -817,7 +818,7 @@ NOT recognized as integers or real numbers.
The array MUST reside at the top of the buffer.
TABs are not respected, and may be converted into spaces at any time.
-Setting the variable 'array-respect-tabs to non-nil will prevent TAB conversion,
+Setting the variable `array-respect-tabs' to non-nil will prevent TAB conversion,
but will cause many functions to give errors if they encounter one.
Upon entering array mode, you will be prompted for the values of
diff --git a/lisp/autoarg.el b/lisp/autoarg.el
index ae1d26ecd2..aca22ace5b 100644
--- a/lisp/autoarg.el
+++ b/lisp/autoarg.el
@@ -1,6 +1,7 @@
;;; autoarg.el --- make digit keys supply prefix args
-;; Copyright (C) 1998, 2000 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Dave Love <fx@gnu.org>
;; Created: 1998-09-04
diff --git a/lisp/autoinsert.el b/lisp/autoinsert.el
index 71fa14014a..465817d5b8 100644
--- a/lisp/autoinsert.el
+++ b/lisp/autoinsert.el
@@ -1,7 +1,7 @@
;;; autoinsert.el --- automatic mode-dependent insertion of text into new files
-;; Copyright (C) 1985, 1986, 1987, 1994, 1995, 1998, 2000, 2003, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1987, 1994, 1995, 1998, 2000, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Charlie Martin <crm@cs.duke.edu>
;; Adapted-By: Daniel Pfeiffer <occitan@esperanto.org>
diff --git a/lisp/autorevert.el b/lisp/autorevert.el
index 23156ceda4..9892dca2d4 100644
--- a/lisp/autorevert.el
+++ b/lisp/autorevert.el
@@ -1,6 +1,7 @@
;;; autorevert.el --- revert buffers when files on disk change
-;; Copyright (C) 1997, 1998, 1999, 2001, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Anders Lindgren <andersl@andersl.com>
;; Keywords: convenience
@@ -339,7 +340,7 @@ Use `auto-revert-mode' for changes other than appends!"
;; else we might reappend our own end when we save
(add-hook 'before-save-hook (lambda () (auto-revert-tail-mode 0)) nil t)
(or (local-variable-p 'auto-revert-tail-pos) ; don't lose prior position
- (set (make-variable-buffer-local 'auto-revert-tail-pos)
+ (set (make-local-variable 'auto-revert-tail-pos)
(save-restriction (widen) (1- (point-max)))))
;; let auto-revert-mode set up the mechanism for us if it isn't already
(or auto-revert-mode
diff --git a/lisp/avoid.el b/lisp/avoid.el
index 032c7260ce..e99d09d675 100644
--- a/lisp/avoid.el
+++ b/lisp/avoid.el
@@ -1,6 +1,7 @@
;;; avoid.el --- make mouse pointer stay out of the way of editing
-;; Copyright (C) 1993, 1994, 2000, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Boris Goldowsky <boris@gnu.org>
;; Keywords: mouse
diff --git a/lisp/battery.el b/lisp/battery.el
index 2ae6607f8e..649cbe4c2c 100644
--- a/lisp/battery.el
+++ b/lisp/battery.el
@@ -1,7 +1,7 @@
;;; battery.el --- display battery status information
-;; Copyright (C) 1997, 1998, 2000, 2001, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Ralph Schleicher <rs@nunatak.allgaeu.org>
;; Keywords: hardware
@@ -49,10 +49,11 @@
(file-directory-p "/proc/acpi/battery"))
'battery-linux-proc-acpi)
((and (eq system-type 'darwin)
- (ignore-errors
- (with-temp-buffer
- (and (eq (call-process "pmset" nil t nil "-g" "ps") 0)
- (> (buffer-size) 0)))))
+ (condition-case nil
+ (with-temp-buffer
+ (and (eq (call-process "pmset" nil t nil "-g" "ps") 0)
+ (> (buffer-size) 0)))
+ (error nil)))
'battery-pmset))
"*Function for getting battery status information.
The function has to return an alist of conversion definitions.
diff --git a/lisp/bindings.el b/lisp/bindings.el
index 7c932efd57..0d4b5ccaf5 100644
--- a/lisp/bindings.el
+++ b/lisp/bindings.el
@@ -1,7 +1,7 @@
;;; bindings.el --- define standard key bindings and some variables
-;; Copyright (C) 1985, 1986, 1987, 1992, 1993, 1994, 1995, 1996, 1999, 2000,
-;; 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1987, 1992, 1993, 1994, 1995, 1996, 1999,
+;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: internal
diff --git a/lisp/bookmark.el b/lisp/bookmark.el
index 51a5e0469e..23e1ce1127 100644
--- a/lisp/bookmark.el
+++ b/lisp/bookmark.el
@@ -1,6 +1,7 @@
;;; bookmark.el --- set bookmarks, maybe annotate them, jump to them later
-;; Copyright (C) 1993, 1994, 1995, 1996, 1997, 2001, 2003 Free Software Foundation
+;; Copyright (C) 1993, 1994, 1995, 1996, 1997, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Karl Fogel <kfogel@red-bean.com>
;; Maintainer: Karl Fogel <kfogel@red-bean.com>
@@ -169,7 +170,7 @@ recently set ones come first, oldest ones come last)."
(defcustom bookmark-automatically-show-annotations t
- "*nil means don't show annotations when jumping to a bookmark."
+ "*Non-nil means show annotations when jumping to a bookmark."
:type 'boolean
:group 'bookmark)
@@ -333,14 +334,14 @@ through a file easier.")
(defun bookmark-get-bookmark (bookmark)
- "Return the full entry for BOOKMARK in bookmark-alist.
+ "Return the full entry for BOOKMARK in `bookmark-alist'.
If BOOKMARK is not a string, return nil."
(when (stringp bookmark)
(assoc-string bookmark bookmark-alist bookmark-completion-ignore-case)))
(defun bookmark-get-bookmark-record (bookmark)
- "Return the guts of the entry for BOOKMARK in bookmark-alist.
+ "Return the guts of the entry for BOOKMARK in `bookmark-alist'.
That is, all information but the name."
(car (cdr (bookmark-get-bookmark bookmark))))
@@ -443,8 +444,7 @@ That is, all information but the name."
(list (cons 'info-node node)))))
(message "%S" (assq 'info-node (bookmark-get-bookmark-record bookmark)))
- (sit-for 4)
- )
+ (sit-for 4))
(defvar bookmark-history nil
@@ -619,7 +619,7 @@ You should never need to change this.")
(defun bookmark-alist-from-buffer ()
- "Return a bookmark-alist (in any format) from the current buffer.
+ "Return a `bookmark-alist' (in any format) from the current buffer.
The buffer must of course contain bookmark format information.
Does not care from where in the buffer it is called, and does not
affect point."
@@ -659,7 +659,7 @@ affect point."
(defun bookmark-upgrade-file-format-from-0 ()
"Upgrade a bookmark file of format 0 (the original format) to format 1.
-This expects to be called from point-min in a bookmark file."
+This expects to be called from `point-min' in a bookmark file."
(message "Upgrading bookmark format from 0 to %d..."
bookmark-file-format-version)
(let* ((old-list (bookmark-alist-from-buffer))
@@ -676,7 +676,7 @@ This expects to be called from point-min in a bookmark file."
(defun bookmark-grok-file-format-version ()
"Return an integer which is the file-format version of this bookmark file.
-This expects to be called from point-min in a bookmark file."
+This expects to be called from `point-min' in a bookmark file."
(if (looking-at "^;;;;")
(save-excursion
(save-match-data
@@ -691,7 +691,7 @@ This expects to be called from point-min in a bookmark file."
(defun bookmark-maybe-upgrade-file-format ()
"Check the file-format version of this bookmark file.
If the version is not up-to-date, upgrade it automatically.
-This expects to be called from point-min in a bookmark file."
+This expects to be called from `point-min' in a bookmark file."
(let ((version (bookmark-grok-file-format-version)))
(cond
((= version bookmark-file-format-version)
@@ -783,7 +783,7 @@ the list of bookmarks.\)"
(defun bookmark-kill-line (&optional newline-too)
"Kill from point to end of line.
If optional arg NEWLINE-TOO is non-nil, delete the newline too.
-Does not affect the kill-ring."
+Does not affect the kill ring."
(let ((eol (save-excursion (end-of-line) (point))))
(delete-region (point) eol)
(if (and newline-too (looking-at "\n"))
@@ -842,11 +842,11 @@ the bookmark (and file, and point) specified in buffer local variables."
(defvar bookmark-read-annotation-text-func 'bookmark-default-annotation-text
"Function to return default text to use for a bookmark annotation.
-It takes the name of the bookmark, as a string, as an arg.")
+It takes one argument, the name of the bookmark, as a string.")
(defun bookmark-read-annotation-mode (buf point parg bookmark)
"Mode for composing annotations for a bookmark.
-Wants BUF POINT PARG and BOOKMARK.
+Wants BUF, POINT, PARG, and BOOKMARK.
When you have finished composing, type \\[bookmark-send-annotation] to send
the annotation.
@@ -933,7 +933,7 @@ Lines beginning with `#' are ignored."
(defun bookmark-insert-current-bookmark ()
- "Insert this buffer's value of bookmark-current-bookmark.
+ "Insert this buffer's value of `bookmark-current-bookmark'.
Default to file name if it's nil."
(interactive)
(let ((str
@@ -993,6 +993,8 @@ In Info, return the current node."
(insert string)))
+(defvar Info-current-file)
+
(defun bookmark-buffer-file-name ()
"Return the current buffer's file in a way useful for bookmarks.
For example, if this is a Info buffer, return the Info file's name."
@@ -1035,6 +1037,10 @@ For example, if this is a Info buffer, return the Info file's name."
(lambda (x y) (string-lessp (car x) (car y))))))))
+(defvar bookmark-after-jump-hook nil
+ "Hook run after `bookmark-jump' jumps to a bookmark.
+Useful for example to unhide text in `outline-mode'.")
+
;;;###autoload
(defun bookmark-jump (bookmark)
"Jump to bookmark BOOKMARK (a point in some file).
@@ -1044,7 +1050,7 @@ bookmarks. See help on function `bookmark-load' for more about
this.
If the file pointed to by BOOKMARK no longer exists, you will be asked
-if you wish to give the bookmark a new location, and bookmark-jump
+if you wish to give the bookmark a new location, and `bookmark-jump'
will then jump to the new location, as well as recording it in place
of the old one in the permanent bookmark record."
(interactive
@@ -1057,6 +1063,7 @@ of the old one in the permanent bookmark record."
(and cell
(switch-to-buffer (car cell))
(goto-char (cdr cell))
+ (progn (run-hooks 'bookmark-after-jump-hook) t)
(if bookmark-automatically-show-annotations
;; if there is an annotation for this bookmark,
;; show it in a buffer.
@@ -1102,7 +1109,8 @@ be retrieved from a VC backend, else return nil."
;; Info nodes must be visited with care.
(progn
(require 'info)
- (Info-find-node file info-node))
+ (with-no-warnings
+ (Info-find-node file info-node)))
;; Else no Info. Can do an ordinary find-file:
(set-buffer (find-file-noselect file))
(goto-char place))
@@ -1304,8 +1312,8 @@ Saves by default in the file defined by the variable
`bookmark-default-file'. With a prefix arg, save it in file FILE
\(second argument\).
-If you are calling this from Lisp, the two arguments are PREFIX-ARG
-and FILE, and if you just want it to write to the default file, then
+If you are calling this from Lisp, the two arguments are PARG and
+FILE, and if you just want it to write to the default file, then
pass no arguments. Or pass in nil and FILE, and it will save in FILE
instead. If you pass in one argument, and it is non-nil, then the
user will be interactively queried for a file to save in.
@@ -1804,7 +1812,7 @@ You can mark bookmarks with the \\<bookmark-bmenu-mode-map>\\[bookmark-bmenu-mar
(setq tem (bookmark-bmenu-bookmark))
(let ((inhibit-read-only t))
(delete-char -1)
- (insert ?\ ))
+ (insert ?\s))
(or (string-equal tem bmrk)
(member tem others)
(setq others (cons tem others))))
@@ -2093,7 +2101,7 @@ strings returned are not."
(format "-*- %s (%d) -*-" name iter)
(nreverse lst))
pane-list)))
-
+
;; Popup the menu and return the string.
(x-popup-menu event (cons (concat "-*- " name " -*-")
(nreverse pane-list)))))
@@ -2141,12 +2149,14 @@ strings returned are not."
;;; Exit Hook, called from kill-emacs-hook
(defvar bookmark-exit-hook nil
- "Hook run when emacs exits.")
+ "Hook run when Emacs exits.")
+
+(define-obsolete-variable-alias 'bookmark-exit-hooks 'bookmark-exit-hook "22.1")
(defun bookmark-exit-hook-internal ()
"Save bookmark state, if necessary, at Emacs exit time.
-This also runs `bookmark-exit-hooks'."
- (run-hooks 'bookmark-exit-hooks)
+This also runs `bookmark-exit-hook'."
+ (run-hooks 'bookmark-exit-hook)
(and bookmark-alist
(bookmark-time-to-save-p t)
(bookmark-save)))
diff --git a/lisp/bs.el b/lisp/bs.el
index 67db564889..2e4fc881d9 100644
--- a/lisp/bs.el
+++ b/lisp/bs.el
@@ -1,6 +1,7 @@
;;; bs.el --- menu for selecting and displaying buffers
-;; Copyright (C) 1998, 1999, 2000, 2001, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Olaf Sylvester <Olaf.Sylvester@netsurf.de>
;; Maintainer: Olaf Sylvester <Olaf.Sylvester@netsurf.de>
;; Keywords: convenience
@@ -25,7 +26,7 @@
;;; Commentary:
;; Version: 1.17
-;; X-URL: http://home.netsurf.de/olaf.sylvester/emacs
+;; X-URL: http://www.geekware.de/software/emacs
;;
;; The bs-package contains a main function bs-show for poping up a
;; buffer in a way similar to `list-buffers' and `electric-buffer-list':
@@ -130,6 +131,8 @@
;;; Code:
+(defvar font-lock-verbose)
+
;; ----------------------------------------------------------------------
;; Globals for customization
;; ----------------------------------------------------------------------
@@ -138,7 +141,7 @@
"Buffer Selection: Maintaining buffers by buffer menu."
:version "21.1"
:link '(emacs-commentary-link "bs")
- :link '(url-link "http://home.netsurf.de/olaf.sylvester/emacs")
+ :link '(url-link "http://www.geekware.de/software/emacs")
:group 'convenience)
(defgroup bs-appearance nil
@@ -160,15 +163,17 @@
"*List specifying the layout of a Buffer Selection Menu buffer.
Each entry specifies a column and is a list of the form of:
\(HEADER MINIMUM-LENGTH MAXIMUM-LENGTH ALIGNMENT FUN-OR-STRING)
-HEADER : string for header for first line or a function
- which calculates column title.
-MINIMUM-LENGTH : minimum width of column (number or name of function).
- The function must return a positive integer.
-MAXIMUM-LENGTH : maximum width of column (number or name of function)
- (currently ignored)
-ALIGNMENT : alignment of column: (`left' `right' `middle')
-FUN-OR-STRING : Name of a function for calculating the value or
-a string for a constant value.
+
+HEADER : String for header for first line or a function
+ which calculates column title.
+MINIMUM-LENGTH : Minimum width of column (number or name of function).
+ The function must return a positive integer.
+MAXIMUM-LENGTH : Maximum width of column (number or name of function)
+ (currently ignored).
+ALIGNMENT : Alignment of column (`left', `right', `middle').
+FUN-OR-STRING : Name of a function for calculating the value or a
+ string for a constant value.
+
The function gets as parameter the buffer where we have started
buffer selection and the list of all buffers to show. The function must
return a string representing the column's value."
diff --git a/lisp/buff-menu.el b/lisp/buff-menu.el
index 7f10e7f3c1..9418eebe98 100644
--- a/lisp/buff-menu.el
+++ b/lisp/buff-menu.el
@@ -1,7 +1,7 @@
;;; buff-menu.el --- buffer menu main function and support functions -*- coding:utf-8 -*-
;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 2000, 2001, 2002, 2003,
-;; 2004, 2005 Free Software Foundation, Inc.
+;; 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: convenience
@@ -79,8 +79,6 @@
"Face used to highlight buffer name."
:group 'Buffer-menu
:group 'font-lock-highlighting-faces)
-;; backward-compatibility alias
-(put 'Buffer-menu-buffer-face 'face-alias 'Buffer-menu-buffer)
(defcustom Buffer-menu-buffer+size-width 26
"*How wide to jointly make the buffer name and size columns."
@@ -305,7 +303,7 @@ For more information, see the function `buffer-menu'."
(defun Buffer-menu-unmark (&optional backup)
"Cancel all requested operations on buffer on this line and move down.
-Optional ARG means move up."
+Optional prefix arg means move up."
(interactive "P")
(when (Buffer-menu-no-header)
(let* ((buf (Buffer-menu-buffer t))
@@ -369,10 +367,10 @@ and then move up one line. Prefix arg means move that many lines."
(save-excursion
(beginning-of-line)
(forward-char 2)
- (if (= (char-after) (if arg ? ?*))
+ (if (= (char-after) (if arg ?\s ?*))
(let ((buffer-read-only nil))
(delete-char 1)
- (insert (if arg ?* ? ))))))
+ (insert (if arg ?* ?\s))))))
(defun Buffer-menu-beginning ()
(goto-char (point-min))
@@ -392,7 +390,7 @@ and then move up one line. Prefix arg means move that many lines."
(setq modp (buffer-modified-p)))
(let ((buffer-read-only nil))
(delete-char -1)
- (insert (if modp ?* ? ))))))
+ (insert (if modp ?* ?\s))))))
(save-excursion
(Buffer-menu-beginning)
(let ((buff-menu-buffer (current-buffer))
@@ -405,7 +403,7 @@ and then move up one line. Prefix arg means move that many lines."
(save-excursion (kill-buffer buf)))
(if (and buf (buffer-name buf))
(progn (delete-char 1)
- (insert ? ))
+ (insert ?\s))
(delete-region (point) (progn (forward-line 1) (point)))
(unless (bobp)
(forward-char -1))))))))
@@ -425,7 +423,7 @@ in the selected frame."
(setq tem (Buffer-menu-buffer t))
(let ((buffer-read-only nil))
(delete-char -1)
- (insert ?\ ))
+ (insert ?\s))
(or (eq tem buff) (memq tem others) (setq others (cons tem others))))
(setq others (nreverse others)
tem (/ (1- (frame-height)) (1+ (length others))))
@@ -521,7 +519,7 @@ The current window remains selected."
(save-excursion
(set-buffer (Buffer-menu-buffer t))
(vc-toggle-read-only)
- (setq char (if buffer-read-only ?% ? )))
+ (setq char (if buffer-read-only ?% ?\s)))
(save-excursion
(beginning-of-line)
(forward-char 1)
@@ -594,7 +592,7 @@ For more information, see the function `buffer-menu'."
(make-string (- Buffer-menu-buffer+size-width
(length name)
(length size))
- ? )
+ ?\s)
size))
(defun Buffer-menu-sort (column)
@@ -677,7 +675,7 @@ it means list those buffers and no others.
For more information, see the function `buffer-menu'."
(let* ((old-buffer (current-buffer))
(standard-output standard-output)
- (mode-end (make-string (- Buffer-menu-mode-width 2) ? ))
+ (mode-end (make-string (- Buffer-menu-mode-width 2) ?\s))
(header (concat "CRM "
(Buffer-menu-buffer+size
(Buffer-menu-make-sort-button "Buffer" 2)
@@ -712,7 +710,7 @@ For more information, see the function `buffer-menu'."
(insert header
(apply 'string
(mapcar (lambda (c)
- (if (memq c '(?\n ?\ )) c underline))
+ (if (memq c '(?\n ?\s)) c underline))
header)))))
;; Collect info for every buffer we're interested in.
(dolist (buffer (or buffer-list (buffer-list)))
@@ -732,17 +730,17 @@ For more information, see the function `buffer-menu'."
(format-mode-line mode-line-process
nil nil buffer))))
(bits (string
- (if (eq buffer old-buffer) ?. ?\ )
+ (if (eq buffer old-buffer) ?. ?\s)
;; Handle readonly status. The output buffer
;; is special cased to appear readonly; it is
;; actually made so at a later date.
(if (or (eq buffer standard-output)
buffer-read-only)
- ?% ?\ )
+ ?% ?\s)
;; Identify modified buffers.
- (if (buffer-modified-p) ?* ?\ )
+ (if (buffer-modified-p) ?* ?\s)
;; Space separator.
- ?\ )))
+ ?\s)))
(unless file
;; No visited file. Check local value of
;; list-buffers-directory.
diff --git a/lisp/button.el b/lisp/button.el
index 1b0c009e92..d58e53c289 100644
--- a/lisp/button.el
+++ b/lisp/button.el
@@ -1,6 +1,6 @@
;;; button.el --- clickable buttons
;;
-;; Copyright (C) 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;;
;; Author: Miles Bader <miles@gnu.org>
;; Keywords: extensions
diff --git a/lisp/calc/README b/lisp/calc/README
index a307b711f1..97f2a29f6c 100644
--- a/lisp/calc/README
+++ b/lisp/calc/README
@@ -2,7 +2,8 @@
This directory contains Calc, an advanced desk calculator for GNU
Emacs.
-"Calc" Copyright 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+"Calc" Copyright 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Written by:
Dave Gillespie
diff --git a/lisp/calc/calc-aent.el b/lisp/calc/calc-aent.el
index 8af03c4d20..6919527751 100644
--- a/lisp/calc/calc-aent.el
+++ b/lisp/calc/calc-aent.el
@@ -1,6 +1,7 @@
;;; calc-aent.el --- algebraic entry functions for Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Dave Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-alg.el b/lisp/calc/calc-alg.el
index 45d6623183..ada1883098 100644
--- a/lisp/calc/calc-alg.el
+++ b/lisp/calc/calc-alg.el
@@ -1,6 +1,7 @@
;;; calc-alg.el --- algebraic functions for Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-arith.el b/lisp/calc/calc-arith.el
index bba7a8fe94..25ccfc4801 100644
--- a/lisp/calc/calc-arith.el
+++ b/lisp/calc/calc-arith.el
@@ -1,6 +1,7 @@
;;; calc-arith.el --- arithmetic functions for Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-bin.el b/lisp/calc/calc-bin.el
index 445f9d2853..376c049e93 100644
--- a/lisp/calc/calc-bin.el
+++ b/lisp/calc/calc-bin.el
@@ -1,6 +1,7 @@
;;; calc-bin.el --- binary functions for Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-comb.el b/lisp/calc/calc-comb.el
index b4b397c43f..5105148a60 100644
--- a/lisp/calc/calc-comb.el
+++ b/lisp/calc/calc-comb.el
@@ -1,6 +1,7 @@
;;; calc-comb.el --- combinatoric functions for Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-cplx.el b/lisp/calc/calc-cplx.el
index 32d8a07ffc..cf9054343d 100644
--- a/lisp/calc/calc-cplx.el
+++ b/lisp/calc/calc-cplx.el
@@ -1,6 +1,7 @@
;;; calc-cplx.el --- Complex number functions for Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-embed.el b/lisp/calc/calc-embed.el
index c6e0e33e55..4127c0b33d 100644
--- a/lisp/calc/calc-embed.el
+++ b/lisp/calc/calc-embed.el
@@ -1,6 +1,7 @@
;;; calc-embed.el --- embed Calc in a buffer
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
@@ -200,6 +201,11 @@
(defvar calc-embed-arg)
(defvar calc-embedded-quiet nil)
+
+(defvar calc-embedded-firsttime)
+(defvar calc-embedded-firsttime-buf)
+(defvar calc-embedded-firsttime-formula)
+
(defun calc-do-embedded (calc-embed-arg end obeg oend)
(if calc-embedded-info
@@ -251,6 +257,9 @@
(let ((modes (list mode-line-buffer-identification
(current-local-map)
truncate-lines))
+ (calc-embedded-firsttime (not calc-embedded-active))
+ (calc-embedded-firsttime-buf nil)
+ (calc-embedded-firsttime-formula nil)
calc-embed-top calc-embed-bot calc-embed-outer-top calc-embed-outer-bot
info chg ident)
(barf-if-buffer-read-only)
@@ -297,6 +306,12 @@
(unless (equal str mode-line-buffer-identification)
(setq mode-line-buffer-identification str)
(set-buffer-modified-p (buffer-modified-p))))
+ (if calc-embedded-firsttime
+ (run-hooks 'calc-embedded-mode-hook))
+ (if calc-embedded-firsttime-buf
+ (run-hooks 'calc-embedded-new-buffer-hook))
+ (if calc-embedded-firsttime-formula
+ (run-hooks 'calc-embedded-new-formula-hook))
(or (eq calc-embedded-quiet t)
(message "Embedded Calc mode enabled; %s to return to normal"
(if calc-embedded-quiet
@@ -792,14 +807,52 @@ The command \\[yank] can retrieve it from there."
(new-info nil)
info str)
(or found
- (setq found (list (current-buffer))
- calc-embedded-active (cons found calc-embedded-active)))
+ (and
+ (setq found (list (current-buffer))
+ calc-embedded-active (cons found calc-embedded-active)
+ calc-embedded-firsttime-buf t)
+ (let ((newann (assoc major-mode calc-embedded-announce-formula-alist))
+ (newform (assoc major-mode calc-embedded-open-close-formula-alist))
+ (newword (assoc major-mode calc-embedded-open-close-word-alist))
+ (newplain (assoc major-mode calc-embedded-open-close-plain-alist))
+ (newnewform
+ (assoc major-mode calc-embedded-open-close-new-formula-alist))
+ (newmode (assoc major-mode calc-embedded-open-close-mode-alist)))
+ (when newann
+ (make-local-variable 'calc-embedded-announce-formula)
+ (setq calc-embedded-announce-formula (cdr newann)))
+ (when newform
+ (make-local-variable 'calc-embedded-open-formula)
+ (make-local-variable 'calc-embedded-close-formula)
+ (setq calc-embedded-open-formula (nth 0 (cdr newform)))
+ (setq calc-embedded-close-formula (nth 1 (cdr newform))))
+ (when newword
+ (make-local-variable 'calc-embedded-open-word)
+ (make-local-variable 'calc-embedded-close-word)
+ (setq calc-embedded-open-word (nth 0 (cdr newword)))
+ (setq calc-embedded-close-word (nth 1 (cdr newword))))
+ (when newplain
+ (make-local-variable 'calc-embedded-open-plain)
+ (make-local-variable 'calc-embedded-close-plain)
+ (setq calc-embedded-open-plain (nth 0 (cdr newplain)))
+ (setq calc-embedded-close-plain (nth 1 (cdr newplain))))
+ (when newnewform
+ (make-local-variable 'calc-embedded-open-new-formula)
+ (make-local-variable 'calc-embedded-close-new-formula)
+ (setq calc-embedded-open-new-formula (nth 0 (cdr newnewform)))
+ (setq calc-embedded-close-new-formula (nth 1 (cdr newnewform))))
+ (when newmode
+ (make-local-variable 'calc-embedded-open-mode)
+ (make-local-variable 'calc-embedded-close-mode)
+ (setq calc-embedded-open-mode (nth 0 (cdr newmode)))
+ (setq calc-embedded-close-mode (nth 1 (cdr newmode)))))))
(while (and (cdr found)
(> point (aref (car (cdr found)) 3)))
(setq found (cdr found)))
(if (and (cdr found)
(>= point (aref (nth 1 found) 2)))
- (setq info (nth 1 found))
+ (setq info (nth 1 found))
+ (setq calc-embedded-firsttime-formula t)
(setq info (make-vector 16 nil)
new-info t
fresh t)
diff --git a/lisp/calc/calc-ext.el b/lisp/calc/calc-ext.el
index 0b177b06dc..db370f766d 100644
--- a/lisp/calc/calc-ext.el
+++ b/lisp/calc/calc-ext.el
@@ -1,6 +1,7 @@
;;; calc-ext.el --- various extension functions for Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-fin.el b/lisp/calc/calc-fin.el
index c65e834139..b15f7c254d 100644
--- a/lisp/calc/calc-fin.el
+++ b/lisp/calc/calc-fin.el
@@ -1,6 +1,7 @@
;;; calc-fin.el --- financial functions for Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-forms.el b/lisp/calc/calc-forms.el
index ad2ef9dbbf..3a192e3f0b 100644
--- a/lisp/calc/calc-forms.el
+++ b/lisp/calc/calc-forms.el
@@ -1,7 +1,7 @@
;;; calc-forms.el --- data format conversion functions for Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-frac.el b/lisp/calc/calc-frac.el
index 87ee59440c..bf3850b72b 100644
--- a/lisp/calc/calc-frac.el
+++ b/lisp/calc/calc-frac.el
@@ -1,6 +1,7 @@
;;; calc-frac.el --- fraction functions for Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-funcs.el b/lisp/calc/calc-funcs.el
index 7ae9f524c9..9d491a2c54 100644
--- a/lisp/calc/calc-funcs.el
+++ b/lisp/calc/calc-funcs.el
@@ -1,6 +1,7 @@
;;; calc-funcs.el --- well-known functions for Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-graph.el b/lisp/calc/calc-graph.el
index 113cdcd33b..31d45c50a7 100644
--- a/lisp/calc/calc-graph.el
+++ b/lisp/calc/calc-graph.el
@@ -1,6 +1,7 @@
;;; calc-graph.el --- graph output functions for Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-help.el b/lisp/calc/calc-help.el
index 84176b36ee..2d79fd36f6 100644
--- a/lisp/calc/calc-help.el
+++ b/lisp/calc/calc-help.el
@@ -1,7 +1,7 @@
;;; calc-help.el --- help display functions for Calc,
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-incom.el b/lisp/calc/calc-incom.el
index 3fdec5a4b0..50d6f16f7b 100644
--- a/lisp/calc/calc-incom.el
+++ b/lisp/calc/calc-incom.el
@@ -1,6 +1,7 @@
;;; calc-incom.el --- complex data type input functions for Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-keypd.el b/lisp/calc/calc-keypd.el
index ad1e466466..f3034bdd4b 100644
--- a/lisp/calc/calc-keypd.el
+++ b/lisp/calc/calc-keypd.el
@@ -1,6 +1,7 @@
;;; calc-keypd.el --- mouse-capable keypad input for Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-lang.el b/lisp/calc/calc-lang.el
index 67cc527094..e0099ee4e0 100644
--- a/lisp/calc/calc-lang.el
+++ b/lisp/calc/calc-lang.el
@@ -1,6 +1,7 @@
;;; calc-lang.el --- calc language functions
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-macs.el b/lisp/calc/calc-macs.el
index 1004a8f1f5..352ffafe38 100644
--- a/lisp/calc/calc-macs.el
+++ b/lisp/calc/calc-macs.el
@@ -1,6 +1,7 @@
;;; calc-macs.el --- important macros for Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-map.el b/lisp/calc/calc-map.el
index e636dd565f..da9b91243a 100644
--- a/lisp/calc/calc-map.el
+++ b/lisp/calc/calc-map.el
@@ -1,6 +1,7 @@
;;; calc-map.el --- higher-order functions for Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-math.el b/lisp/calc/calc-math.el
index bd939e1669..53d8035083 100644
--- a/lisp/calc/calc-math.el
+++ b/lisp/calc/calc-math.el
@@ -1,6 +1,7 @@
;;; calc-math.el --- mathematical functions for Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-misc.el b/lisp/calc/calc-misc.el
index 643465f847..e8c0ea4b65 100644
--- a/lisp/calc/calc-misc.el
+++ b/lisp/calc/calc-misc.el
@@ -1,6 +1,7 @@
;;; calc-misc.el --- miscellaneous functions for Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-mode.el b/lisp/calc/calc-mode.el
index e0e2ccbd71..5e62720304 100644
--- a/lisp/calc/calc-mode.el
+++ b/lisp/calc/calc-mode.el
@@ -1,6 +1,7 @@
;;; calc-mode.el --- calculator modes for Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-mtx.el b/lisp/calc/calc-mtx.el
index ea79c98252..0b18927a7f 100644
--- a/lisp/calc/calc-mtx.el
+++ b/lisp/calc/calc-mtx.el
@@ -1,6 +1,7 @@
;;; calc-mtx.el --- matrix functions for Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-poly.el b/lisp/calc/calc-poly.el
index 89d8273d6d..3dd19b6f67 100644
--- a/lisp/calc/calc-poly.el
+++ b/lisp/calc/calc-poly.el
@@ -1,6 +1,7 @@
;;; calc-poly.el --- polynomial functions for Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-prog.el b/lisp/calc/calc-prog.el
index 8d2fba7fef..b44d8d256a 100644
--- a/lisp/calc/calc-prog.el
+++ b/lisp/calc/calc-prog.el
@@ -1,6 +1,7 @@
;;; calc-prog.el --- user programmability functions for Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-rewr.el b/lisp/calc/calc-rewr.el
index 2afb16b753..5c08bd4baf 100644
--- a/lisp/calc/calc-rewr.el
+++ b/lisp/calc/calc-rewr.el
@@ -1,6 +1,7 @@
;;; calc-rewr.el --- rewriting functions for Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-rules.el b/lisp/calc/calc-rules.el
index 14fb59ce37..a3a07b0456 100644
--- a/lisp/calc/calc-rules.el
+++ b/lisp/calc/calc-rules.el
@@ -1,6 +1,7 @@
;;; calc-rules.el --- rules for simplifying algebraic expressions in Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-sel.el b/lisp/calc/calc-sel.el
index 04cb2bee2b..87767a1224 100644
--- a/lisp/calc/calc-sel.el
+++ b/lisp/calc/calc-sel.el
@@ -1,7 +1,7 @@
;;; calc-sel.el --- data selection functions for Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-stat.el b/lisp/calc/calc-stat.el
index c1b8ebc307..9db057d30d 100644
--- a/lisp/calc/calc-stat.el
+++ b/lisp/calc/calc-stat.el
@@ -1,6 +1,7 @@
;;; calc-stat.el --- statistical functions for Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-store.el b/lisp/calc/calc-store.el
index 35db6d7101..1410b7d665 100644
--- a/lisp/calc/calc-store.el
+++ b/lisp/calc/calc-store.el
@@ -1,6 +1,7 @@
;;; calc-store.el --- value storage functions for Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-stuff.el b/lisp/calc/calc-stuff.el
index 0564e39ed5..635dcf9503 100644
--- a/lisp/calc/calc-stuff.el
+++ b/lisp/calc/calc-stuff.el
@@ -1,6 +1,7 @@
;;; calc-stuff.el --- miscellaneous functions for Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-trail.el b/lisp/calc/calc-trail.el
index e86117585f..d5bba8dbb9 100644
--- a/lisp/calc/calc-trail.el
+++ b/lisp/calc/calc-trail.el
@@ -1,6 +1,7 @@
;;; calc-trail.el --- functions for manipulating the Calc "trail"
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-undo.el b/lisp/calc/calc-undo.el
index 1837fe071f..e52ab015f2 100644
--- a/lisp/calc/calc-undo.el
+++ b/lisp/calc/calc-undo.el
@@ -1,6 +1,7 @@
;;; calc-undo.el --- undo functions for Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-units.el b/lisp/calc/calc-units.el
index 0983b807fd..7d42fd9ca9 100644
--- a/lisp/calc/calc-units.el
+++ b/lisp/calc/calc-units.el
@@ -1,6 +1,7 @@
;;; calc-units.el --- unit conversion functions for Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
@@ -810,10 +811,10 @@ Entries are (SYMBOL EXPR DOC-STRING TEMP-TYPE BASE-UNITS).")
(mapcar 'math-to-standard-rec (cdr expr))))))
(defun math-apply-units (expr units ulist &optional pure)
+ (setq expr (math-simplify-units expr))
(if ulist
(let ((new 0)
value)
- (setq expr (math-simplify-units expr))
(or (math-numberp expr)
(error "Incompatible units"))
(while (cdr ulist)
@@ -826,9 +827,9 @@ Entries are (SYMBOL EXPR DOC-STRING TEMP-TYPE BASE-UNITS).")
ulist (cdr ulist)))
(math-add new (math-mul (math-div expr (nth 1 (car ulist)))
(car (car ulist)))))
- (math-simplify-units (if pure
- expr
- (list '* expr units)))))
+ (if pure
+ expr
+ (math-simplify-units (list '* expr units)))))
(defvar math-decompose-units-cache nil)
(defun math-decompose-units (units)
diff --git a/lisp/calc/calc-vec.el b/lisp/calc/calc-vec.el
index 1153eabed5..a830887a65 100644
--- a/lisp/calc/calc-vec.el
+++ b/lisp/calc/calc-vec.el
@@ -1,6 +1,7 @@
;;; calc-vec.el --- vector functions for Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc-yank.el b/lisp/calc/calc-yank.el
index 1544e8956c..628b1fef1c 100644
--- a/lisp/calc/calc-yank.el
+++ b/lisp/calc/calc-yank.el
@@ -1,6 +1,7 @@
;;; calc-yank.el --- kill-ring functionality for Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calc.el b/lisp/calc/calc.el
index 7317c2a7b9..c53e797195 100644
--- a/lisp/calc/calc.el
+++ b/lisp/calc/calc.el
@@ -1,12 +1,12 @@
;;; calc.el --- the GNU Emacs calculator
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
;; Keywords: convenience, extensions
-;; Version: 2.02g
+;; Version: 2.1
;; This file is part of GNU Emacs.
@@ -241,6 +241,23 @@
:group 'calc
:type '(regexp))
+(defcustom calc-embedded-announce-formula-alist
+ '((c++-mode . "//Embed\n\\(// .*\n\\)*")
+ (c-mode . "/\\*Embed\\*/\n\\(/\\* .*\\*/\n\\)*")
+ (f90-mode . "!Embed\n\\(! .*\n\\)*")
+ (fortran-mode . "C Embed\n\\(C .*\n\\)*")
+ (html-helper-mode . "<!-- Embed -->\n\\(<!-- .* -->\n\\)*")
+ (html-mode . "<!-- Embed -->\n\\(<!-- .* -->\n\\)*")
+ (nroff-mode . "\\\\\"Embed\n\\(\\\\\" .*\n\\)*")
+ (pascal-mode . "{Embed}\n\\({.*}\n\\)*")
+ (sgml-mode . "<!-- Embed -->\n\\(<!-- .* -->\n\\)*")
+ (xml-mode . "<!-- Embed -->\n\\(<!-- .* -->\n\\)*")
+ (texinfo-mode . "@c Embed\n\\(@c .*\n\\)*"))
+ "*Alist of major modes with appropriate values for `calc-embedded-announce-formula'."
+ :group 'calc
+ :type '(alist :key-type (symbol :tag "Major mode")
+ :value-type (regexp :tag "Regexp to announce formula")))
+
(defcustom calc-embedded-open-formula
"\\`\\|^\n\\|\\$\\$?\\|\\\\\\[\\|^\\\\begin[^{].*\n\\|^\\\\begin{.*[^x]}.*\n\\|^@.*\n\\|^\\.EQ.*\n\\|\\\\(\\|^%\n\\|^\\.\\\\\"\n"
"*A regular expression for the opening delimiter of a formula used by calc-embedded."
@@ -253,6 +270,14 @@
:group 'calc
:type '(regexp))
+(defcustom calc-embedded-open-close-formula-alist
+ nil
+ "*Alist of major modes with pairs of formula delimiters used by calc-embedded."
+ :group 'calc
+ :type '(alist :key-type (symbol :tag "Major mode")
+ :value-type (list (regexp :tag "Opening formula delimiter")
+ (regexp :tag "Closing formula delimiter"))))
+
(defcustom calc-embedded-open-word
"^\\|[^-+0-9.eE]"
"*A regular expression for the opening delimiter of a formula used by calc-embedded-word."
@@ -265,6 +290,14 @@
:group 'calc
:type '(regexp))
+(defcustom calc-embedded-open-close-word-alist
+ nil
+ "*Alist of major modes with pairs of word delimiters used by calc-embedded."
+ :group 'calc
+ :type '(alist :key-type (symbol :tag "Major mode")
+ :value-type (list (regexp :tag "Opening word delimiter")
+ (regexp :tag "Closing word delimiter"))))
+
(defcustom calc-embedded-open-plain
"%%% "
"*A string which is the opening delimiter for a \"plain\" formula.
@@ -280,6 +313,24 @@ See calc-embedded-open-plain."
:group 'calc
:type '(string))
+(defcustom calc-embedded-open-close-plain-alist
+ '((c++-mode "// %% " " %%\n")
+ (c-mode "/* %% " " %% */\n")
+ (f90-mode "! %% " " %%\n")
+ (fortran-mode "C %% " " %%\n")
+ (html-helper-mode "<!-- %% " " %% -->\n")
+ (html-mode "<!-- %% " " %% -->\n")
+ (nroff-mode "\\\" %% " " %%\n")
+ (pascal-mode "{%% " " %%}\n")
+ (sgml-mode "<!-- %% " " %% -->\n")
+ (xml-mode "<!-- %% " " %% -->\n")
+ (texinfo-mode "@c %% " " %%\n"))
+ "*Alist of major modes with pairs of delimiters for \"plain\" formulas."
+ :group 'calc
+ :type '(alist :key-type (symbol :tag "Major mode")
+ :value-type (list (string :tag "Opening \"plain\" delimiter")
+ (string :tag "Closing \"plain\" delimiter"))))
+
(defcustom calc-embedded-open-new-formula
"\n\n"
"*A string which is inserted at front of formula by calc-embedded-new-formula."
@@ -292,6 +343,14 @@ See calc-embedded-open-plain."
:group 'calc
:type '(string))
+(defcustom calc-embedded-open-close-new-formula-alist
+ nil
+ "*Alist of major modes with pairs of new formula delimiters used by calc-embedded."
+ :group 'calc
+ :type '(alist :key-type (symbol :tag "Major mode")
+ :value-type (list (string :tag "Opening new formula delimiter")
+ (string :tag "Closing new formula delimiter"))))
+
(defcustom calc-embedded-open-mode
"% "
"*A string which should precede calc-embedded mode annotations.
@@ -306,6 +365,24 @@ This is not required to be present for user-written mode annotations."
:group 'calc
:type '(string))
+(defcustom calc-embedded-open-close-mode-alist
+ '((c++-mode "// " "\n")
+ (c-mode "/* " " */\n")
+ (f90-mode "! " "\n")
+ (fortran-mode "C " "\n")
+ (html-helper-mode "<!-- " " -->\n")
+ (html-mode "<!-- " " -->\n")
+ (nroff-mode "\\\" " "\n")
+ (pascal-mode "{ " " }\n")
+ (sgml-mode "<!-- " " -->\n")
+ (xml-mode "<!-- " " -->\n")
+ (texinfo-mode "@c " "\n"))
+ "*Alist of major modes with pairs of strings to delimit annotations."
+ :group 'calc
+ :type '(alist :key-type (symbol :tag "Major mode")
+ :value-type (list (string :tag "Opening annotation delimiter")
+ (string :tag "Closing annotation delimiter"))))
+
(defcustom calc-gnuplot-name
"gnuplot"
"*Name of GNUPLOT program, for calc-graph features."
@@ -726,6 +803,15 @@ If nil, selections displayed but ignored.")
(defvar calc-trail-window-hook nil
"Hook called to create the Calc trail window.")
+(defvar calc-embedded-new-buffer-hook nil
+ "Hook run when starting embedded mode in a new buffer.")
+
+(defvar calc-embedded-new-formula-hook nil
+ "Hook run when starting embedded mode in a new formula.")
+
+(defvar calc-embedded-mode-hook nil
+ "Hook run when starting embedded mode.")
+
;; Verify that Calc is running on the right kind of system.
(defvar calc-emacs-type-lucid (not (not (string-match "Lucid" emacs-version))))
diff --git a/lisp/calc/calcalg2.el b/lisp/calc/calcalg2.el
index d139dcf28b..a534e4fd45 100644
--- a/lisp/calc/calcalg2.el
+++ b/lisp/calc/calcalg2.el
@@ -1,6 +1,7 @@
;;; calcalg2.el --- more algebraic functions for Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calcalg3.el b/lisp/calc/calcalg3.el
index 3fff729a01..0aef3ba55a 100644
--- a/lisp/calc/calcalg3.el
+++ b/lisp/calc/calcalg3.el
@@ -1,6 +1,7 @@
;;; calcalg3.el --- more algebraic functions for Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calccomp.el b/lisp/calc/calccomp.el
index 70ceb01da6..aab079ed73 100644
--- a/lisp/calc/calccomp.el
+++ b/lisp/calc/calccomp.el
@@ -1,6 +1,7 @@
;;; calccomp.el --- composition functions for Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calc/calcsel2.el b/lisp/calc/calcsel2.el
index 2a322b8b74..6734065a70 100644
--- a/lisp/calc/calcsel2.el
+++ b/lisp/calc/calcsel2.el
@@ -1,6 +1,7 @@
;;; calcsel2.el --- selection functions for Calc
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
;; Maintainer: Jay Belanger <belanger@truman.edu>
diff --git a/lisp/calculator.el b/lisp/calculator.el
index 923d402209..b9ba03f657 100644
--- a/lisp/calculator.el
+++ b/lisp/calculator.el
@@ -1,10 +1,11 @@
;;; calculator.el --- a [not so] simple calculator for Emacs
-;; Copyright (C) 1998, 2000, 2001 by Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Eli Barzilay <eli@barzilay.org>
;; Keywords: tools, convenience
-;; Time-stamp: <26 May 2005, 14:32:34, Lute Kamstra, pijl>
+;; Time-stamp: <2005-07-18 17:45:34 juri>
;; This file is part of GNU Emacs.
@@ -1277,12 +1278,6 @@ arguments."
(if Dbound (fset 'D Dsave) (fmakunbound 'D)))))
(error 0)))
-(eval-when-compile ; silence the compiler
- (or (fboundp 'event-key)
- (defun event-key (&rest _) nil))
- (or (fboundp 'key-press-event-p)
- (defun key-press-event-p (&rest _) nil)))
-
;;;---------------------------------------------------------------------
;;; Input interaction
@@ -1301,8 +1296,9 @@ Optional string argument KEYS will force using it as the keys entered."
(setq k (aref inp i))
;; if Emacs will someday have a event-key, then this would
;; probably be modified anyway
- (and (fboundp 'event-key) (key-press-event-p k)
- (event-key k) (setq k (event-key k)))
+ (and (if (fboundp 'key-press-event-p) (key-press-event-p k))
+ (if (fboundp 'event-key)
+ (and (event-key k) (setq k (event-key k)))))
;; assume all symbols are translatable with an ascii-character
(and (symbolp k)
(setq k (or (get k 'ascii-character) ? )))
@@ -1599,7 +1595,7 @@ Optional string argument KEYS will force using it as the keys entered."
(calculator-displayers
(if calculator-copy-displayer nil calculator-displayers)))
(calculator-enter)
- ;; remove trailing spaces and and an index
+ ;; remove trailing spaces and an index
(let ((s (cdr calculator-stack-display)))
(and s
(if (string-match "^\\([^ ]+\\) *\\(\\[[0-9/]+\\]\\)? *$" s)
diff --git a/lisp/calendar/cal-bahai.el b/lisp/calendar/cal-bahai.el
index 6bf84d1195..dd06ca6b9e 100644
--- a/lisp/calendar/cal-bahai.el
+++ b/lisp/calendar/cal-bahai.el
@@ -54,6 +54,12 @@
;;; Code:
+(defvar date)
+(defvar displayed-month)
+(defvar displayed-year)
+(defvar number)
+(defvar original-date)
+
(require 'cal-julian)
(defvar bahai-calendar-month-name-array
@@ -215,7 +221,7 @@ calendar. This function is provided for use with the
(mark (regexp-quote diary-nonmarking-symbol)))
(calendar-for-loop i from 1 to number do
(let* ((d diary-date-forms)
- (bdate (calendar-bahai-from-absolute
+ (bdate (calendar-bahai-from-absolute
(calendar-absolute-from-gregorian gdate)))
(month (extract-calendar-month bdate))
(day (extract-calendar-day bdate))
@@ -460,7 +466,7 @@ Prefix arg will make the entry nonmarking."
(make-diary-entry
(concat
bahai-diary-entry-symbol
- (calendar-date-string
+ (calendar-date-string
(calendar-bahai-from-absolute
(calendar-absolute-from-gregorian
(calendar-cursor-to-date t)))
@@ -478,7 +484,7 @@ Prefix arg will make the entry nonmarking."
(make-diary-entry
(concat
bahai-diary-entry-symbol
- (calendar-date-string
+ (calendar-date-string
(calendar-bahai-from-absolute
(calendar-absolute-from-gregorian
(calendar-cursor-to-date t)))))
@@ -497,7 +503,7 @@ Prefix arg will make the entry nonmarking."
(make-diary-entry
(concat
bahai-diary-entry-symbol
- (calendar-date-string
+ (calendar-date-string
(calendar-bahai-from-absolute
(calendar-absolute-from-gregorian
(calendar-cursor-to-date t)))))
diff --git a/lisp/calendar/cal-china.el b/lisp/calendar/cal-china.el
index 79beef836b..24d9c4f161 100644
--- a/lisp/calendar/cal-china.el
+++ b/lisp/calendar/cal-china.el
@@ -49,6 +49,7 @@
;;; Code:
+(defvar date)
(defvar displayed-month)
(defvar displayed-year)
diff --git a/lisp/calendar/cal-coptic.el b/lisp/calendar/cal-coptic.el
index 65a633b5d5..14b3c65796 100644
--- a/lisp/calendar/cal-coptic.el
+++ b/lisp/calendar/cal-coptic.el
@@ -40,6 +40,8 @@
;;; Code:
+(defvar date)
+
(require 'cal-julian)
(defvar coptic-calendar-month-name-array
diff --git a/lisp/calendar/cal-french.el b/lisp/calendar/cal-french.el
index bdb4d971bb..7bab001a0b 100644
--- a/lisp/calendar/cal-french.el
+++ b/lisp/calendar/cal-french.el
@@ -43,6 +43,8 @@
;;; Code:
+(defvar date)
+
(require 'calendar)
(defun french-calendar-accents ()
diff --git a/lisp/calendar/cal-hebrew.el b/lisp/calendar/cal-hebrew.el
index 168476b01c..9805a00cc7 100644
--- a/lisp/calendar/cal-hebrew.el
+++ b/lisp/calendar/cal-hebrew.el
@@ -41,8 +41,12 @@
;;; Code:
+(defvar date)
(defvar displayed-month)
(defvar displayed-year)
+(defvar entry)
+(defvar number)
+(defvar original-date)
(require 'calendar)
diff --git a/lisp/calendar/cal-islam.el b/lisp/calendar/cal-islam.el
index c52d26c0de..9cdcba6a37 100644
--- a/lisp/calendar/cal-islam.el
+++ b/lisp/calendar/cal-islam.el
@@ -40,8 +40,11 @@
;;; Code:
+(defvar date)
(defvar displayed-month)
(defvar displayed-year)
+(defvar number)
+(defvar original-date)
(require 'cal-julian)
diff --git a/lisp/calendar/cal-iso.el b/lisp/calendar/cal-iso.el
index 021ea6d60e..b32bd4eb2d 100644
--- a/lisp/calendar/cal-iso.el
+++ b/lisp/calendar/cal-iso.el
@@ -41,6 +41,8 @@
;;; Code:
+(defvar date)
+
(require 'calendar)
(defun calendar-absolute-from-iso (date)
diff --git a/lisp/calendar/cal-julian.el b/lisp/calendar/cal-julian.el
index bff0d0e066..48fe8725b0 100644
--- a/lisp/calendar/cal-julian.el
+++ b/lisp/calendar/cal-julian.el
@@ -40,6 +40,7 @@
;;; Code:
+(defvar date)
(defvar displayed-month)
(defvar displayed-year)
diff --git a/lisp/calendar/cal-mayan.el b/lisp/calendar/cal-mayan.el
index 0c491b4c29..da411c1498 100644
--- a/lisp/calendar/cal-mayan.el
+++ b/lisp/calendar/cal-mayan.el
@@ -53,6 +53,8 @@
;;; Code:
+(defvar date)
+
(require 'calendar)
(defconst calendar-mayan-days-before-absolute-zero 1137142
diff --git a/lisp/calendar/cal-menu.el b/lisp/calendar/cal-menu.el
index dabb933785..0291c41c1c 100644
--- a/lisp/calendar/cal-menu.el
+++ b/lisp/calendar/cal-menu.el
@@ -38,8 +38,10 @@
;;; Code:
+(defvar date)
(defvar displayed-month)
(defvar displayed-year)
+(defvar event)
(eval-when-compile (require 'calendar))
(require 'easymenu)
diff --git a/lisp/calendar/cal-persia.el b/lisp/calendar/cal-persia.el
index 85e79327dc..b92f8c29b8 100644
--- a/lisp/calendar/cal-persia.el
+++ b/lisp/calendar/cal-persia.el
@@ -40,6 +40,8 @@
;;; Code:
+(defvar date)
+
(require 'cal-julian)
(defvar persian-calendar-month-name-array
diff --git a/lisp/calendar/calendar.el b/lisp/calendar/calendar.el
index 8fe92fc081..3e075b9d6b 100644
--- a/lisp/calendar/calendar.el
+++ b/lisp/calendar/calendar.el
@@ -1818,7 +1818,7 @@ Driven by the variable `calendar-date-display-form'.")
t)
(autoload 'calendar-goto-hebrew-date "cal-hebrew"
- "Move cursor to Hebrew date date."
+ "Move cursor to Hebrew date."
t)
(autoload 'calendar-print-hebrew-date "cal-hebrew"
@@ -1830,7 +1830,7 @@ Driven by the variable `calendar-date-display-form'.")
t)
(autoload 'calendar-goto-coptic-date "cal-coptic"
- "Move cursor to Coptic date date."
+ "Move cursor to Coptic date."
t)
(autoload 'calendar-print-coptic-date "cal-coptic"
@@ -1842,7 +1842,7 @@ Driven by the variable `calendar-date-display-form'.")
t)
(autoload 'calendar-goto-ethiopic-date "cal-coptic"
- "Move cursor to Ethiopic date date."
+ "Move cursor to Ethiopic date."
t)
(autoload 'calendar-print-ethiopic-date "cal-coptic"
@@ -1854,7 +1854,7 @@ Driven by the variable `calendar-date-display-form'.")
t)
(autoload 'calendar-goto-persian-date "cal-persia"
- "Move cursor to Persian date date."
+ "Move cursor to Persian date."
t)
(autoload 'calendar-print-persian-date "cal-persia"
@@ -2205,9 +2205,11 @@ movement commands will not work correctly."
calendar-mode-map global-map)
(setq l (cdr l))))
(define-key calendar-mode-map "-" 'negative-argument)
+ (define-key calendar-mode-map ">" 'scroll-calendar-right)
(define-key calendar-mode-map "\C-x>" 'scroll-calendar-right)
(define-key calendar-mode-map [prior] 'scroll-calendar-right-three-months)
(define-key calendar-mode-map "\ev" 'scroll-calendar-right-three-months)
+ (define-key calendar-mode-map "<" 'scroll-calendar-left)
(define-key calendar-mode-map "\C-x<" 'scroll-calendar-left)
(define-key calendar-mode-map [next] 'scroll-calendar-left-three-months)
(define-key calendar-mode-map "\C-v" 'scroll-calendar-left-three-months)
diff --git a/lisp/calendar/diary-lib.el b/lisp/calendar/diary-lib.el
index 8b14061a95..1501131c2a 100644
--- a/lisp/calendar/diary-lib.el
+++ b/lisp/calendar/diary-lib.el
@@ -1650,6 +1650,12 @@ marked on the calendar."
(or (diary-remind sexp (car days) marking)
(diary-remind sexp (cdr days) marking))))))
+(defvar diary-modify-entry-list-string-function nil
+ "Function applied to entry string before putting it into the entries list.
+Can be used by programs integrating a diary list into other buffers (e.g.
+org.el and planner.el) to modify the string or add properties to it.
+The function takes a string argument and must return a string.")
+
(defun add-to-diary-list (date string specifier &optional marker globcolor)
"Add the entry (DATE STRING SPECIFIER MARKER GLOBCOLOR) to `diary-entries-list'.
Do nothing if DATE or STRING is nil."
@@ -1659,6 +1665,9 @@ Do nothing if DATE or STRING is nil."
(buffer-file-name))))
(or (string= prefix "")
(setq string (format "[%s] %s" prefix string)))))
+ (and diary-modify-entry-list-string-function
+ (setq string (funcall diary-modify-entry-list-string-function
+ string)))
(setq diary-entries-list
(append diary-entries-list
(list (list date string specifier marker globcolor))))))
diff --git a/lisp/calendar/icalendar.el b/lisp/calendar/icalendar.el
index aa33ac598e..7e9e44210e 100644
--- a/lisp/calendar/icalendar.el
+++ b/lisp/calendar/icalendar.el
@@ -189,7 +189,8 @@ buffer."
(save-current-buffer
(set-buffer unfolded-buffer)
(erase-buffer)
- (insert-buffer folded-ical-buffer)
+ (insert-buffer-substring folded-ical-buffer)
+ (goto-char (point-min))
(while (re-search-forward "\r?\n[ \t]" nil t)
(replace-match "" nil nil)))
unfolded-buffer))
diff --git a/lisp/calendar/lunar.el b/lisp/calendar/lunar.el
index c611cf2ac2..d4d5cf2315 100644
--- a/lisp/calendar/lunar.el
+++ b/lisp/calendar/lunar.el
@@ -49,6 +49,7 @@
;;; Code:
+(defvar date)
(defvar displayed-month)
(defvar displayed-year)
diff --git a/lisp/calendar/solar.el b/lisp/calendar/solar.el
index fde19650d8..ea027a50ca 100644
--- a/lisp/calendar/solar.el
+++ b/lisp/calendar/solar.el
@@ -60,6 +60,7 @@
;;; Code:
+(defvar date)
(defvar displayed-month)
(defvar displayed-year)
diff --git a/lisp/case-table.el b/lisp/case-table.el
index 31c2694928..4dfdd0538f 100644
--- a/lisp/case-table.el
+++ b/lisp/case-table.el
@@ -1,6 +1,7 @@
;;; case-table.el --- code to extend the character set and support case tables
-;; Copyright (C) 1988, 1994, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1988, 1994, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Howard Gayle
;; Maintainer: FSF
diff --git a/lisp/cdl.el b/lisp/cdl.el
index 68111eda53..abd339de9b 100644
--- a/lisp/cdl.el
+++ b/lisp/cdl.el
@@ -1,6 +1,6 @@
;;; cdl.el --- Common Data Language (CDL) utility functions for GNU Emacs
-;; Copyright (C) 1993 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: ATAE@spva.physics.imperial.ac.uk (Ata Etemadi)
;; Maintainer: FSF
diff --git a/lisp/chistory.el b/lisp/chistory.el
index 1704e7a4a1..c05fd849db 100644
--- a/lisp/chistory.el
+++ b/lisp/chistory.el
@@ -1,6 +1,6 @@
;;; chistory.el --- list command history
-;; Copyright (C) 1985 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: K. Shane Hartman
;; Maintainer: FSF
diff --git a/lisp/cmuscheme.el b/lisp/cmuscheme.el
index 102347f345..82d39fd2c0 100644
--- a/lisp/cmuscheme.el
+++ b/lisp/cmuscheme.el
@@ -1,6 +1,7 @@
;;; cmuscheme.el --- Scheme process in a buffer. Adapted from tea.el
-;; Copyright (C) 1988, 1994, 1997, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1988, 1994, 1997, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Olin Shivers <olin.shivers@cs.cmu.edu>
;; Maintainer: FSF
@@ -25,7 +26,7 @@
;;; Commentary:
-;; This is a customisation of comint-mode (see comint.el)
+;; This is a customization of comint-mode (see comint.el)
;;
;; Written by Olin Shivers (olin.shivers@cs.cmu.edu). With bits and pieces
;; lifted from scheme.el, shell.el, clisp.el, newclisp.el, cobol.el, et al..
@@ -105,7 +106,7 @@
;;;============================================================================
(defcustom inferior-scheme-mode-hook nil
- "*Hook for customising inferior-scheme mode."
+ "*Hook for customizing inferior-scheme mode."
:type 'hook
:group 'cmuscheme)
@@ -127,6 +128,8 @@
(define-key scheme-mode-map "\C-c\M-r" 'scheme-send-region-and-go)
(define-key scheme-mode-map "\C-c\M-c" 'scheme-compile-definition)
(define-key scheme-mode-map "\C-c\C-c" 'scheme-compile-definition-and-go)
+(define-key scheme-mode-map "\C-c\C-t" 'scheme-trace-procedure)
+(define-key scheme-mode-map "\C-c\C-x" 'scheme-expand-current-form)
(define-key scheme-mode-map "\C-c\C-z" 'switch-to-scheme)
(define-key scheme-mode-map "\C-c\C-l" 'scheme-load-file)
(define-key scheme-mode-map "\C-c\C-k" 'scheme-compile-file) ;k for "kompile"
@@ -143,6 +146,10 @@
'("Compile Definition & Go" . scheme-compile-definition-and-go))
(define-key map [com-def]
'("Compile Definition" . scheme-compile-definition))
+ (define-key map [exp-form]
+ '("Expand current form" . scheme-expand-current-form))
+ (define-key map [trace-proc]
+ '("Trace procedure" . scheme-trace-procedure))
(define-key map [send-def-go]
'("Evaluate Last Definition & Go" . scheme-send-definition-and-go))
(define-key map [send-def]
@@ -153,7 +160,7 @@
'("Evaluate Region" . scheme-send-region))
(define-key map [send-sexp]
'("Evaluate Last S-expression" . scheme-send-last-sexp))
-)
+ )
(defvar scheme-buffer)
@@ -165,7 +172,7 @@ The following commands are available:
A Scheme process can be fired up with M-x run-scheme.
-Customisation: Entry to this mode runs the hooks on comint-mode-hook and
+Customization: Entry to this mode runs the hooks on comint-mode-hook and
inferior-scheme-mode-hook (in that order).
You can send text to the inferior Scheme process from other buffers containing
@@ -194,7 +201,7 @@ C-M-q does Tab on each line starting within following expression.
Paragraphs are separated only by blank lines. Semicolons start comments.
If you accidentally suspend your process, use \\[comint-continue-subjob]
to continue it."
- ;; Customise in inferior-scheme-mode-hook
+ ;; Customize in inferior-scheme-mode-hook
(setq comint-prompt-regexp "^[^>\n]*>+ *") ; OK for cscheme, oaklisp, T,...
(scheme-mode-variables)
(setq mode-line-process '(":%s"))
@@ -233,11 +240,15 @@ Defaults to a regexp ignoring all inputs of 0, 1, or 2 letters."
;;;###autoload
(defun run-scheme (cmd)
- "Run an inferior Scheme process, input and output via buffer *scheme*.
+ "Run an inferior Scheme process, input and output via buffer `*scheme*'.
If there is a process already running in `*scheme*', switch to that buffer.
With argument, allows you to edit the command line (default is value
-of `scheme-program-name'). Runs the hooks `inferior-scheme-mode-hook'
-\(after the `comint-mode-hook' is run).
+of `scheme-program-name').
+If a file `~/.emacs_SCHEMENAME' exists, it is given as initial input.
+Note that this may lose due to a timing error if the Scheme processor
+discards input when it starts up.
+Runs the hook `inferior-scheme-mode-hook' \(after the `comint-mode-hook'
+is run).
\(Type \\[describe-mode] in the process buffer for a list of commands.)"
(interactive (list (if current-prefix-arg
@@ -246,13 +257,24 @@ of `scheme-program-name'). Runs the hooks `inferior-scheme-mode-hook'
(if (not (comint-check-proc "*scheme*"))
(let ((cmdlist (scheme-args-to-list cmd)))
(set-buffer (apply 'make-comint "scheme" (car cmdlist)
- nil (cdr cmdlist)))
+ (scheme-start-file (car cmdlist)) (cdr cmdlist)))
(inferior-scheme-mode)))
(setq scheme-program-name cmd)
(setq scheme-buffer "*scheme*")
(pop-to-buffer "*scheme*"))
;;;###autoload (add-hook 'same-window-buffer-names "*scheme*")
+(defun scheme-start-file (prog)
+ "Return the name of the start file corresponding to PROG.
+Search in the directories \"~\" and \"~/.emacs.d\", in this
+order. Return nil if no start file found."
+ (let* ((name (concat ".emacs_" (file-name-nondirectory prog)))
+ (start-file (concat "~/" name)))
+ (if (file-exists-p start-file)
+ start-file
+ (let ((start-file (concat "~/.emacs.d/" name)))
+ (and (file-exists-p start-file) start-file)))))
+
(defun scheme-send-region (start end)
"Send the current region to the inferior Scheme process."
(interactive "r")
@@ -296,16 +318,80 @@ of `scheme-program-name'). Runs the hooks `inferior-scheme-mode-hook'
(beginning-of-defun)
(scheme-compile-region (point) end))))
+(defcustom scheme-trace-command "(trace %s)"
+ "*Template for issuing commands to trace a Scheme procedure.
+Some Scheme implementations might require more elaborate commands here.
+For PLT-Scheme, e.g., one should use
+
+ (setq scheme-trace-command \"(begin (require (lib \\\"trace.ss\\\")) (trace %s))\")
+
+For Scheme 48 and Scsh use \",trace %s\"."
+ :type 'string
+ :group 'cmuscheme)
+
+(defcustom scheme-untrace-command "(untrace %s)"
+ "*Template for switching off tracing of a Scheme procedure.
+Scheme 48 and Scsh users should set this variable to \",untrace %s\"."
+
+ :type 'string
+ :group 'cmuscheme)
+
+(defun scheme-trace-procedure (proc &optional untrace)
+ "Trace procedure PROC in the inferior Scheme process.
+With a prefix argument switch off tracing of procedure PROC."
+ (interactive
+ (list (let ((current (symbol-at-point))
+ (action (if current-prefix-arg "Untrace" "Trace")))
+ (if current
+ (read-string (format "%s procedure [%s]: " action current) nil nil (symbol-name current))
+ (read-string (format "%s procedure: " action))))
+ current-prefix-arg))
+ (when (= (length proc) 0)
+ (error "Invalid procedure name"))
+ (comint-send-string (scheme-proc)
+ (format
+ (if untrace scheme-untrace-command scheme-trace-command)
+ proc))
+ (comint-send-string (scheme-proc) "\n"))
+
+(defcustom scheme-macro-expand-command "(expand %s)"
+ "*Template for macro-expanding a Scheme form.
+For Scheme 48 and Scsh use \",expand %s\"."
+ :type 'string
+ :group 'cmuscheme)
+
+(defun scheme-expand-current-form ()
+ "Macro-expand the form at point in the inferior Scheme process."
+ (interactive)
+ (let ((current-form (scheme-form-at-point)))
+ (if current-form
+ (progn
+ (comint-send-string (scheme-proc)
+ (format
+ scheme-macro-expand-command
+ current-form))
+ (comint-send-string (scheme-proc) "\n"))
+ (error "Not at a form"))))
+
+(defun scheme-form-at-point ()
+ (let ((next-sexp (thing-at-point 'sexp)))
+ (if (and next-sexp (string-equal (substring next-sexp 0 1) "("))
+ next-sexp
+ (save-excursion
+ (backward-up-list)
+ (scheme-form-at-point)))))
+
(defun switch-to-scheme (eob-p)
"Switch to the scheme process buffer.
With argument, position cursor at end of buffer."
(interactive "P")
- (if (get-buffer scheme-buffer)
+ (if (or (and scheme-buffer (get-buffer scheme-buffer))
+ (scheme-interactively-start-process))
(pop-to-buffer scheme-buffer)
- (error "No current process buffer. See variable `scheme-buffer'"))
- (cond (eob-p
- (push-mark)
- (goto-char (point-max)))))
+ (error "No current process buffer. See variable `scheme-buffer'"))
+ (when eob-p
+ (push-mark)
+ (goto-char (point-max))))
(defun scheme-send-region-and-go (start end)
"Send the current region to the inferior Scheme process.
@@ -346,8 +432,8 @@ Used by these commands to determine defaults."
(defvar scheme-prev-l/c-dir/file nil
"Caches the last (directory . file) pair.
Caches the last pair used in the last `scheme-load-file' or
-`scheme-compile-file' command. Used for determining the default in the
-next one.")
+`scheme-compile-file' command. Used for determining the default
+in the next one.")
(defun scheme-load-file (file-name)
"Load a Scheme file FILE-NAME into the inferior Scheme process."
@@ -417,15 +503,29 @@ for running inferior Lisp and Scheme processes. The approach taken here is
for a minimal, simple implementation. Feel free to extend it.")
(defun scheme-proc ()
- "Return the current scheme process. See variable `scheme-buffer'."
- (let ((proc (get-buffer-process (if (eq major-mode 'inferior-scheme-mode)
- (current-buffer)
- scheme-buffer))))
- (or proc
- (error "No current process. See variable `scheme-buffer'"))))
-
-
-;;; Do the user's customisation...
+ "Return the current Scheme process, starting one if necessary.
+See variable `scheme-buffer'."
+ (unless (and scheme-buffer
+ (get-buffer scheme-buffer)
+ (comint-check-proc scheme-buffer))
+ (scheme-interactively-start-process))
+ (or (scheme-get-process)
+ (error "No current process. See variable `scheme-buffer'")))
+
+(defun scheme-get-process ()
+ "Return the current Scheme process or nil if none is running."
+ (get-buffer-process (if (eq major-mode 'inferior-scheme-mode)
+ (current-buffer)
+ scheme-buffer)))
+
+(defun scheme-interactively-start-process (&optional cmd)
+ "Start an inferior Scheme process. Return the process started.
+Since this command is run implicitly, always ask the user for the
+command to run."
+ (save-window-excursion
+ (run-scheme (read-string "Run Scheme: " scheme-program-name))))
+
+;;; Do the user's customization...
(defcustom cmuscheme-load-hook nil
"This hook is run when cmuscheme is loaded in.
diff --git a/lisp/comint.el b/lisp/comint.el
index 188af8a3b0..0977663808 100644
--- a/lisp/comint.el
+++ b/lisp/comint.el
@@ -1,7 +1,7 @@
;;; comint.el --- general command interpreter in a window stuff
;; Copyright (C) 1988, 1990, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Olin Shivers <shivers@cs.cmu.edu>
;; Simon Marshall <simon@gnu.org>
@@ -411,17 +411,15 @@ See `comint-send-input'."
"*If non-nil, use `comint-prompt-regexp' to recognize prompts.
If nil, then program output and user-input are given different `field'
properties, which Emacs commands can use to distinguish them (in
-particular, common movement commands such as begining-of-line respect
-field boundaries in a natural way)."
+particular, common movement commands such as `beginning-of-line'
+respect field boundaries in a natural way)."
:type 'boolean
:group 'comint)
;; Autoload is necessary for Custom to recognize old alias.
;;;###autoload
-(defvaralias 'comint-use-prompt-regexp-instead-of-fields
- 'comint-use-prompt-regexp)
-(make-obsolete-variable 'comint-use-prompt-regexp-instead-of-fields
- 'comint-use-prompt-regexp "22.1")
+(define-obsolete-variable-alias 'comint-use-prompt-regexp-instead-of-fields
+ 'comint-use-prompt-regexp "22.1")
(defcustom comint-mode-hook nil
"Hook run upon entry to `comint-mode'.
@@ -1079,14 +1077,14 @@ Moves relative to START, or `comint-input-ring-index'."
(if (string-match regexp (ring-ref comint-input-ring n))
n)))
-(defun comint-previous-matching-input (regexp arg)
+(defun comint-previous-matching-input (regexp n)
"Search backwards through input history for match for REGEXP.
\(Previous history elements are earlier commands.)
With prefix argument N, search for Nth previous match.
If N is negative, find the next or Nth next match."
(interactive (comint-regexp-arg "Previous input matching (regexp): "))
- (setq arg (comint-search-arg arg))
- (let ((pos (comint-previous-matching-input-string-position regexp arg)))
+ (setq n (comint-search-arg n))
+ (let ((pos (comint-previous-matching-input-string-position regexp n)))
;; Has a match been found?
(if (null pos)
(error "Not found")
@@ -1099,15 +1097,15 @@ If N is negative, find the next or Nth next match."
(point))
(insert (ring-ref comint-input-ring pos)))))
-(defun comint-next-matching-input (regexp arg)
+(defun comint-next-matching-input (regexp n)
"Search forwards through input history for match for REGEXP.
\(Later history elements are more recent commands.)
With prefix argument N, search for Nth following match.
If N is negative, find the previous or Nth previous match."
(interactive (comint-regexp-arg "Next input matching (regexp): "))
- (comint-previous-matching-input regexp (- arg)))
+ (comint-previous-matching-input regexp (- n)))
-(defun comint-previous-matching-input-from-input (arg)
+(defun comint-previous-matching-input-from-input (n)
"Search backwards through input history for match for current input.
\(Previous history elements are earlier commands.)
With prefix argument N, search for Nth previous match.
@@ -1124,15 +1122,15 @@ If N is negative, search forwards for the -Nth following match."
comint-input-ring-index nil))
(comint-previous-matching-input
(concat "^" (regexp-quote comint-matching-input-from-input-string))
- arg))
+ n))
-(defun comint-next-matching-input-from-input (arg)
+(defun comint-next-matching-input-from-input (n)
"Search forwards through input history for match for current input.
\(Following history elements are more recent commands.)
With prefix argument N, search for Nth following match.
If N is negative, search backwards for the -Nth previous match."
(interactive "p")
- (comint-previous-matching-input-from-input (- arg)))
+ (comint-previous-matching-input-from-input (- n)))
(defun comint-replace-by-expanded-history (&optional silent start)
@@ -1434,14 +1432,14 @@ If the interpreter is the csh,
return the current line with any initial string matching the
regexp `comint-prompt-regexp' removed.
`comint-input-filter-functions' monitors input for \"cd\", \"pushd\", and
- \"popd\" commands. When it sees one, it cd's the buffer.
- comint-input-filter is the default: returns t if the input isn't all white
+ \"popd\" commands. When it sees one, it cd's the buffer.
+ `comint-input-filter' is the default: returns t if the input isn't all white
space.
If the Comint is Lucid Common Lisp,
- comint-get-old-input snarfs the sexp ending at point.
- comint-input-filter-functions does nothing.
- comint-input-filter returns nil if the input matches input-filter-regexp,
+ `comint-get-old-input' snarfs the sexp ending at point.
+ `comint-input-filter-functions' does nothing.
+ `comint-input-filter' returns nil if the input matches input-filter-regexp,
which matches (1) all whitespace (2) :a, :c, etc.
Similarly for Soar, Scheme, etc."
@@ -1818,7 +1816,7 @@ This function should be in the list `comint-output-filter-functions'."
(= (point) (point-max)))
(save-excursion
(goto-char (point-max))
- (recenter -1)))
+ (recenter (- -1 scroll-margin))))
(select-window selected)))))
nil t))
(set-buffer current))))
@@ -1852,7 +1850,7 @@ This function could be on `comint-output-filter-functions' or bound to a key."
"Put the end of the buffer at the bottom of the window."
(interactive)
(goto-char (point-max))
- (recenter -1))
+ (recenter (- -1 scroll-margin)))
(defun comint-get-old-input-default ()
"Default for `comint-get-old-input'.
@@ -1937,15 +1935,21 @@ The string is sent using `comint-input-sender'.
Security bug: your string can still be temporarily recovered with
\\[view-lossage]; `clear-this-command-keys' can fix that."
(interactive "P") ; Defeat snooping via C-x ESC ESC
- (let ((proc (get-buffer-process (current-buffer))))
+ (let ((proc (get-buffer-process (current-buffer)))
+ (prefix
+ (if (eq (window-buffer (selected-window)) (current-buffer))
+ ""
+ (format "(In buffer %s) "
+ (current-buffer)))))
(if proc
- (let ((str (read-passwd (or prompt "Non-echoed text: "))))
+ (let ((str (read-passwd (concat prefix
+ (or prompt "Non-echoed text: ")))))
(if (stringp str)
(progn
(comint-snapshot-last-prompt)
(funcall comint-input-sender proc str))
(message "Warning: text will be echoed")))
- (error "Current buffer has no process"))))
+ (error "Buffer %s has no process" (current-buffer)))))
(defun comint-watch-for-password-prompt (string)
"Prompt in the minibuffer for password and send without echoing.
@@ -2002,8 +2006,8 @@ Does not delete the prompt."
(delete-region pmark (point))))
;; Output message and put back prompt
(comint-output-filter proc replacement)))
-(defalias 'comint-kill-output 'comint-delete-output)
-(make-obsolete 'comint-kill-output 'comint-delete-output "21.1")
+(define-obsolete-function-alias 'comint-kill-output
+ 'comint-delete-output "21.1")
(defun comint-write-output (filename &optional append mustbenew)
"Write output from interpreter since last input to FILENAME.
@@ -2169,7 +2173,7 @@ If N is negative, find the next or Nth next match."
(goto-char pos))))
-(defun comint-forward-matching-input (regexp arg)
+(defun comint-forward-matching-input (regexp n)
"Search forward through buffer for input fields that match REGEXP.
If `comint-use-prompt-regexp' is non-nil, then input fields are identified
by lines that match `comint-prompt-regexp'.
@@ -2177,7 +2181,7 @@ by lines that match `comint-prompt-regexp'.
With prefix argument N, search for Nth following match.
If N is negative, find the previous or Nth previous match."
(interactive (comint-regexp-arg "Forward input matching (regexp): "))
- (comint-backward-matching-input regexp (- arg)))
+ (comint-backward-matching-input regexp (- n)))
(defun comint-next-prompt (n)
@@ -2388,7 +2392,7 @@ updated using `comint-update-fence', if necessary."
(defun comint-source-default (previous-dir/file source-modes)
"Compute the defaults for `load-file' and `compile-file' commands.
-PREVIOUS-DIR/FILE is a pair (directory . filename) from the last
+PREVIOUS-DIR/FILE is a pair (DIRECTORY . FILENAME) from the last
source-file processing command, or nil if there hasn't been one yet.
SOURCE-MODES is a list used to determine what buffers contain source
files: if the major mode of the buffer is in SOURCE-MODES, it's source.
@@ -2409,7 +2413,7 @@ processing command (i.e., PREVIOUS-DIR/FILE). If this is the first time
the command has been run (PREVIOUS-DIR/FILE is nil), the default directory
is the cwd, with no default file. (\"no default file\" = nil)
-SOURCE-REGEXP is typically going to be something like (tea-mode)
+SOURCE-MODES is typically going to be something like (tea-mode)
for T programs, (lisp-mode) for Lisp programs, (soar-mode lisp-mode)
for Soar programs, etc.
@@ -2440,7 +2444,7 @@ the load or compile."
(set-buffer old-buffer)))))
(defun comint-extract-string ()
- "Return string around POINT, or nil."
+ "Return string around point, or nil."
(let ((syntax (syntax-ppss)))
(when (nth 3 syntax)
(condition-case ()
@@ -2460,7 +2464,7 @@ See `comint-source-default' for more on determining defaults.
PROMPT is the prompt string. PREV-DIR/FILE is the (DIRECTORY . FILE) pair
from the last source processing command. SOURCE-MODES is a list of major
modes used to determine what file buffers contain source files. (These
-two arguments are used for determining defaults). If MUSTMATCH-P is true,
+two arguments are used for determining defaults.) If MUSTMATCH-P is true,
then the filename reader will only accept a file that exists.
A typical use:
@@ -2587,6 +2591,7 @@ Note that this applies to `comint-dynamic-complete-filename' only."
:type '(repeat (string :tag "Suffix"))
:group 'comint-completion)
+;;;###autoload
(defvar comint-file-name-prefix ""
"Prefix prepended to absolute file names taken from process input.
This is used by Comint's and shell's completion functions, and by shell's
@@ -2618,8 +2623,7 @@ This is a good thing to set in mode hooks.")
(defun comint-word (word-chars)
"Return the word of WORD-CHARS at point, or nil if none is found.
Word constituents are considered to be those in WORD-CHARS, which is like the
-inside of a \"[...]\" (see `skip-chars-forward'),
-plus all non-ASCII characters."
+inside of a \"[...]\" (see `skip-chars-forward'), plus all non-ASCII characters."
(save-excursion
(let ((here (point))
giveup)
diff --git a/lisp/compare-w.el b/lisp/compare-w.el
index e0a6d5cf73..3fda5f5de7 100644
--- a/lisp/compare-w.el
+++ b/lisp/compare-w.el
@@ -1,6 +1,7 @@
;;; compare-w.el --- compare text between windows for Emacs
-;; Copyright (C) 1986,1989,1993,1997,2003,2004,2005 Free Software Foundation, Inc.
+;; Copyright (C) 1986, 1989, 1993, 1997, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: convenience files
@@ -56,7 +57,8 @@ whitespace is considered to match, and is skipped."
(defcustom compare-ignore-whitespace nil
"*Non-nil means `compare-windows' ignores whitespace."
:type 'boolean
- :group 'compare-w)
+ :group 'compare-w
+ :version "22.1")
(defcustom compare-ignore-case nil
"*Non-nil means `compare-windows' ignores case differences."
@@ -88,7 +90,8 @@ be made buffer-local.
If the value of this variable is `nil', then function `ding' is
called to beep or flash the screen when points are mismatched."
:type '(choice regexp function)
- :group 'compare-w)
+ :group 'compare-w
+ :version "22.1")
(defcustom compare-windows-sync-string-size 32
"*Size of string from one window that is searched in second window.
@@ -99,7 +102,8 @@ difference regions more coarse-grained.
The default value 32 is good for the most cases."
:type 'integer
- :group 'compare-w)
+ :group 'compare-w
+ :version "22.1")
(defcustom compare-windows-recenter nil
"*List of two values, each of which is used as argument of
@@ -109,25 +113,20 @@ matching points side-by-side.
The value `(-1 0)' is useful if windows are split vertically,
and the value `((4) (4))' for horizontally split windows."
:type '(list sexp sexp)
- :group 'compare-w)
+ :group 'compare-w
+ :version "22.1")
(defcustom compare-windows-highlight t
"*Non-nil means compare-windows highlights the differences."
:type 'boolean
- :group 'compare-w)
+ :group 'compare-w
+ :version "22.1")
(defface compare-windows
- '((((class color) (min-colors 88) (background light))
- (:background "paleturquoise"))
- (((class color) (min-colors 88) (background dark))
- (:background "paleturquoise4"))
- (((class color))
- (:background "turquoise3"))
- (t (:underline t)))
+ '((t :inherit lazy-highlight))
"Face for highlighting of compare-windows difference regions."
- :group 'compare-w)
-;; backward-compatibility alias
-(put 'compare-windows-face 'face-alias 'compare-windows)
+ :group 'compare-w
+ :version "22.1")
(defvar compare-windows-overlay1 nil)
(defvar compare-windows-overlay2 nil)
diff --git a/lisp/complete.el b/lisp/complete.el
index dabab4ee6e..d3ff6c5398 100644
--- a/lisp/complete.el
+++ b/lisp/complete.el
@@ -1,7 +1,7 @@
;;; complete.el --- partial completion mechanism plus other goodies
-;; Copyright (C) 1990, 1991, 1992, 1993, 1999, 2000, 2003, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Dave Gillespie <daveg@synaptics.com>
;; Keywords: abbrev convenience
diff --git a/lisp/completion.el b/lisp/completion.el
index 5e7285ecdd..4b0f6cac9a 100644
--- a/lisp/completion.el
+++ b/lisp/completion.el
@@ -1,6 +1,7 @@
;;; completion.el --- dynamic word-completion code
-;; Copyright (C) 1990, 1993, 1995, 1997, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1993, 1995, 1997, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: abbrev convenience
@@ -2347,6 +2348,9 @@ TYPE is the type of the wrapper to be added. Can be :before or :under."
'use-completion-under-or-before-point)))
;; C mode diffs.
+
+(defvar c-mode-map)
+
(defun completion-c-mode-hook ()
(def-completion-wrapper electric-c-semi :separator)
(define-key c-mode-map "+" 'completion-separator-self-insert-command)
@@ -2358,6 +2362,9 @@ TYPE is the type of the wrapper to be added. Can be :before or :under."
(add-hook 'c-mode-hook 'completion-c-mode-hook))
;; FORTRAN mode diffs. (these are defined when fortran is called)
+
+(defvar fortran-mode-map)
+
(defun completion-setup-fortran-mode ()
(define-key fortran-mode-map "+" 'completion-separator-self-insert-command)
(define-key fortran-mode-map "-" 'completion-separator-self-insert-command)
diff --git a/lisp/composite.el b/lisp/composite.el
index 5fd6b6529e..452a9cebca 100644
--- a/lisp/composite.el
+++ b/lisp/composite.el
@@ -82,7 +82,7 @@ follows (the point `*' corresponds to both reference points):
(defun encode-composition-rule (rule)
"Encode composition rule RULE into an integer value.
RULE is a cons of global and new reference point symbols
-\(see reference-point-alist)."
+\(see `reference-point-alist')."
;; This must be compatible with C macro COMPOSITION_ENCODE_RULE
;; defined in composite.h.
@@ -219,7 +219,7 @@ The return value is STRING where `composition' property is put on all
the characters in it.
Optional 2nd and 3rd arguments START and END specify the range of
-STRING to be composed. They defaults to the beginning and the end of
+STRING to be composed. They default to the beginning and the end of
STRING respectively.
Optional 4th argument COMPONENTS, if non-nil, is a character or a
@@ -355,11 +355,11 @@ The argument is a parameterized event of the form
where N is the number of characters before point to compose,
COMPONENTS, if non-nil, is the same as the argument to `compose-region'
\(which see). If it is nil, `compose-chars-after' is called,
-and that function find a proper rule to compose the target characters.
+and that function finds a proper rule to compose the target characters.
This function is intended to be used from input methods.
The global keymap binds special event `compose-last-chars' to this
function. Input method may generate an event (compose-last-chars N COMPONENTS)
-after a sequence character events."
+after a sequence of character events."
(interactive "e")
(let ((chars (nth 1 args)))
(if (and (numberp chars)
diff --git a/lisp/cus-dep.el b/lisp/cus-dep.el
index 8818ed6ff7..61c597a200 100644
--- a/lisp/cus-dep.el
+++ b/lisp/cus-dep.el
@@ -1,6 +1,6 @@
;;; cus-dep.el --- find customization dependencies
;;
-;; Copyright (C) 1997 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;;
;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
;; Keywords: internal
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el
index 76e8e5bf7b..9827ab7d59 100644
--- a/lisp/cus-edit.el
+++ b/lisp/cus-edit.el
@@ -1,7 +1,7 @@
;;; cus-edit.el --- tools for customizing Emacs and Lisp packages
;;
-;; Copyright (C) 1996, 1997, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;;
;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
;; Maintainer: FSF
@@ -141,7 +141,8 @@
(require 'cus-face)
(require 'wid-edit)
(eval-when-compile
- (defvar custom-versions-load-alist)) ; from cus-load
+ (defvar custom-versions-load-alist) ; from cus-load
+ (defvar recentf-exclude)) ; from recentf.el
(condition-case nil
(require 'cus-load)
@@ -669,7 +670,7 @@ If `last', order groups after non-groups."
:type 'boolean
:group 'custom-browse)
-(defcustom custom-buffer-sort-alphabetically nil
+(defcustom custom-buffer-sort-alphabetically t
"If non-nil, sort members of each customization group alphabetically."
:type 'boolean
:group 'custom-buffer)
@@ -1021,9 +1022,12 @@ then prompt for the MODE to customize."
(defun customize-option (symbol)
"Customize SYMBOL, which must be a user option variable."
(interactive (custom-variable-prompt))
- (custom-buffer-create (list (list symbol 'custom-variable))
- (format "*Customize Option: %s*"
- (custom-unlispify-tag-name symbol))))
+ (let ((basevar (indirect-variable symbol)))
+ (custom-buffer-create (list (list basevar 'custom-variable))
+ (format "*Customize Option: %s*"
+ (custom-unlispify-tag-name basevar)))
+ (unless (eq symbol basevar)
+ (message "`%s' is an alias for `%s'" symbol basevar))))
;;;###autoload
(defalias 'customize-variable-other-window 'customize-option-other-window)
@@ -1033,9 +1037,12 @@ then prompt for the MODE to customize."
"Customize SYMBOL, which must be a user option variable.
Show the buffer in another window, but don't select it."
(interactive (custom-variable-prompt))
- (custom-buffer-create-other-window
- (list (list symbol 'custom-variable))
- (format "*Customize Option: %s*" (custom-unlispify-tag-name symbol))))
+ (let ((basevar (indirect-variable symbol)))
+ (custom-buffer-create-other-window
+ (list (list basevar 'custom-variable))
+ (format "*Customize Option: %s*" (custom-unlispify-tag-name basevar)))
+ (unless (eq symbol basevar)
+ (message "`%s' is an alias for `%s'" symbol basevar))))
(defvar customize-changed-options-previous-release "20.2"
"Version for `customize-changed-options' to refer back to by default.")
@@ -3829,8 +3836,9 @@ Optional EVENT is the location for the menu."
(setq magics (cdr magics)))))
(widget-put widget :custom-state found)))
(custom-magic-reset widget))
+
+;;; Reading and writing the custom file.
-;;; The `custom-save-all' Function.
;;;###autoload
(defcustom custom-file nil
"File used for storing customization information.
@@ -3891,12 +3899,33 @@ if only the first line of the docstring is shown."))
(setq user-init-file default-init-file))
user-init-file))))
+;;;###autoload
+(defun custom-save-all ()
+ "Save all customizations in `custom-file'."
+ (let* ((filename (custom-file))
+ (recentf-exclude (if recentf-mode
+ (cons (concat "\\`"
+ (regexp-quote (custom-file))
+ "\\'")
+ recentf-exclude)))
+ (old-buffer (find-buffer-visiting filename)))
+ (with-current-buffer (or old-buffer (find-file-noselect filename))
+ (let ((inhibit-read-only t))
+ (custom-save-variables)
+ (custom-save-faces))
+ (let ((file-precious-flag t))
+ (save-buffer))
+ (unless old-buffer
+ (kill-buffer (current-buffer))))))
+
+;; Editing the custom file contents in a buffer.
+
(defun custom-save-delete (symbol)
- "Visit `custom-file' and delete all calls to SYMBOL from it.
+ "Delete all calls to SYMBOL from the contents of the current buffer.
Leave point at the old location of the first such call,
-or (if there were none) at the end of the buffer."
- (let ((default-major-mode 'emacs-lisp-mode))
- (set-buffer (find-file-noselect (custom-file))))
+or (if there were none) at the end of the buffer.
+
+This function does not save the buffer."
(goto-char (point-min))
;; Skip all whitespace and comments.
(while (forward-comment 1))
@@ -4116,19 +4145,7 @@ or (if there were none) at the end of the buffer."
(put symbol 'customized-face-comment nil)))))
;; We really should update all custom buffers here.
(custom-save-all))
-
-;;;###autoload
-(defun custom-save-all ()
- "Save all customizations in `custom-file'."
- (let ((inhibit-read-only t))
- (custom-save-variables)
- (custom-save-faces)
- (save-excursion
- (let ((default-major-mode nil))
- (set-buffer (find-file-noselect (custom-file))))
- (let ((file-precious-flag t))
- (save-buffer)))))
-
+
;;; The Customize Menu.
;;; Menu support
@@ -4222,6 +4239,7 @@ The format is suitable for use with `easy-menu-define'."
(suppress-keymap map)
(define-key map " " 'scroll-up)
(define-key map "\177" 'scroll-down)
+ (define-key map "\C-c\C-c" 'Custom-set)
(define-key map "\C-x\C-s" 'Custom-save)
(define-key map "q" 'Custom-buffer-done)
(define-key map "u" 'Custom-goto-parent)
@@ -4251,7 +4269,7 @@ The format is suitable for use with `easy-menu-define'."
["Reset to Current" Custom-reset-current t]
["Reset to Saved" Custom-reset-saved t]
["Reset to Standard Settings" Custom-reset-standard t]
- ["Info" (Info-goto-node "(emacs)Easy Customization") t]))
+ ["Info" (info "(emacs)Easy Customization") t]))
(defun Custom-goto-parent ()
"Go to the parent group listed at the top of this buffer.
diff --git a/lisp/cus-face.el b/lisp/cus-face.el
index 74162c68eb..5dba9f7de5 100644
--- a/lisp/cus-face.el
+++ b/lisp/cus-face.el
@@ -1,6 +1,7 @@
;;; cus-face.el --- customization support for faces
;;
-;; Copyright (C) 1996, 1997, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;;
;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
;; Keywords: help, faces
@@ -348,53 +349,27 @@ FACE's list property `theme-face' \(using `custom-push-theme')."
(setq args (cdr (cdr args))))))))
;;;###autoload
-(defun custom-theme-face-value (face theme)
- "Return spec of FACE in THEME if THEME modifies FACE.
-Value is nil otherwise. The association between theme and spec for FACE
-is stored in FACE's property `theme-face'. The appropriate face
-is retrieved using `custom-theme-value'."
- ;; Returns car because the value is stored inside a one element list
- (car-safe (custom-theme-value theme (get face 'theme-face))))
-
-(defun custom-theme-reset-internal-face (face to-theme)
- "Reset FACE to the value defined by TO-THEME.
-If FACE is not defined in TO-THEME, reset FACE to the standard
-value. See `custom-theme-face-value'. The standard value is
-stored in SYMBOL's property `face-defface-spec' by `defface'."
- (let ((spec (custom-theme-face-value face to-theme))
- was-in-theme)
- (setq was-in-theme spec)
- (setq spec (or spec (get face 'face-defface-spec)))
- (when spec
- (put face 'save-face was-in-theme)
- (when (or (get face 'force-face) (facep face))
- (unless (facep face)
- (make-empty-face face))
- (face-spec-set face spec)))
- spec))
-
-;;;###autoload
(defun custom-theme-reset-faces (theme &rest args)
- "Reset the value of the face to values previously defined.
-Associate this setting with THEME.
-
-ARGS is a list of lists of the form
+ "Reset the specs in THEME of some faces to their specs in other themes.
+Each of the arguments ARGS has this form:
- (FACE TO-THEME)
+ (FACE FROM-THEME)
-This means reset FACE to its value in TO-THEME."
+This means reset FACE to its value in FROM-THEME."
(custom-check-theme theme)
- (mapcar '(lambda (arg)
- (apply 'custom-theme-reset-internal-face arg)
- (custom-push-theme 'theme-face (car arg) theme 'reset (cadr arg)))
- args))
+ (dolist (arg args)
+ (custom-push-theme 'theme-face (car arg) theme 'reset (cadr arg))))
;;;###autoload
(defun custom-reset-faces (&rest args)
- "Reset the value of the face to values previously saved.
-This is the setting assosiated the `user' theme.
+ "Reset the specs of some faces to their specs in specified themes.
+This creates settings in the `user' theme.
+
+Each of the arguments ARGS has this form:
+
+ (FACE FROM-THEME)
-ARGS is defined as for `custom-theme-reset-faces'"
+This means reset FACE to its value in FROM-THEME."
(apply 'custom-theme-reset-faces 'user args))
;;; The End.
diff --git a/lisp/cus-start.el b/lisp/cus-start.el
index 7c10b57a1b..2f3cd5d0e0 100644
--- a/lisp/cus-start.el
+++ b/lisp/cus-start.el
@@ -1,6 +1,7 @@
;;; cus-start.el --- define customization properties of builtins
;;
-;; Copyright (C) 1997, 1999, 2000, 2001, 2002, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;;
;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
;; Keywords: internal
@@ -40,20 +41,6 @@
;; alloc.c
(gc-cons-threshold alloc integer)
(garbage-collection-messages alloc boolean)
- ;; undo.c
- (undo-limit undo integer)
- (undo-strong-limit undo integer)
- (undo-outer-limit undo
- (choice integer
- (const :tag "No limit"
- :format "%t\n%d"
- :doc
- "With this choice, \
-the undo info for the current command never gets discarded.
-This should only be chosen under exceptional circumstances,
-since it could result in memory overflow and make Emacs crash."
- nil))
- "22.1")
;; buffer.c
(mode-line-format modeline sexp) ;Hard to do right.
(default-major-mode internal function)
@@ -65,7 +52,47 @@ since it could result in memory overflow and make Emacs crash."
(ctl-arrow display boolean)
(truncate-lines display boolean)
(selective-display-ellipses display boolean)
- (indicate-empty-lines display boolean "21.1")
+ (indicate-empty-lines fringe boolean "21.1")
+ (indicate-buffer-boundaries
+ fringe
+ (choice
+ (const :tag "No indicators" nil)
+ (const :tag "On left, with arrows" left)
+ (const :tag "On right, with arrows" right)
+ (set :tag "Pick your own design"
+ :value ((t . nil))
+ :format "%{%t%}:\n%v\n%d"
+ :doc "You can specify a default and then override it \
+for individual indicators.
+Leaving \"Default\" unchecked is equivalent with specifying a default of
+\"Do not show\"."
+ (choice :tag "Default"
+ :value (t . nil)
+ (const :tag "Do not show" (t . nil))
+ (const :tag "On the left" (t . left))
+ (const :tag "On the right" (t . right)))
+ (choice :tag "Top"
+ :value (top . left)
+ (const :tag "Do not show" (top . nil))
+ (const :tag "On the left" (top . left))
+ (const :tag "On the right" (top . right)))
+ (choice :tag "Bottom"
+ :value (bottom . left)
+ (const :tag "Do not show" (bottom . nil))
+ (const :tag "On the left" (bottom . left))
+ (const :tag "On the right" (bottom . right)))
+ (choice :tag "Up arrow"
+ :value (up . left)
+ (const :tag "Do not show" (up . nil))
+ (const :tag "On the left" (up . left))
+ (const :tag "On the right" (up . right)))
+ (choice :tag "Down arrow"
+ :value (down . left)
+ (const :tag "Do not show" (down . nil))
+ (const :tag "On the left" (down . left))
+ (const :tag "On the right" (down . right))))
+ (other :tag "On left, no arrows" t))
+ "22.1")
(scroll-up-aggressively windows
(choice (const :tag "off" nil) number)
"21.1")
@@ -77,8 +104,8 @@ since it could result in memory overflow and make Emacs crash."
;; callproc.c
(shell-file-name execute file)
(exec-path execute
- (repeat (choice (const :tag "default" nil)
- (file :format "%v"))))
+ (repeat (choice (const :tag "default directory" nil)
+ (directory :format "%v"))))
;; coding.c
(inhibit-eol-conversion mule boolean)
(eol-mnemonic-undecided mule string)
@@ -145,6 +172,8 @@ since it could result in memory overflow and make Emacs crash."
(mouse-highlight mouse (choice (const :tag "disabled" nil)
(const :tag "always shown" t)
(other :tag "hidden by keypress" 1)))
+ ;; fringe.c
+ (overflow-newline-into-fringe fringe boolean "22.1")
;; indent.c
(indent-tabs-mode fill boolean)
;; keyboard.c
@@ -190,7 +219,7 @@ since it could result in memory overflow and make Emacs crash."
:format "%t%n%h"
:inline t
(read-only t))
- (const :tag "Inviolable"
+ (const :tag "Don't Enter"
:doc "Prevent point from ever entering prompt"
:format "%t%n%h"
:inline t
@@ -217,6 +246,20 @@ since it could result in memory overflow and make Emacs crash."
(words-include-escapes editing-basics boolean)
(open-paren-in-column-0-is-defun-start editing-basics boolean
"21.1")
+ ;; undo.c
+ (undo-limit undo integer)
+ (undo-strong-limit undo integer)
+ (undo-outer-limit undo
+ (choice integer
+ (const :tag "No limit"
+ :format "%t\n%d"
+ :doc
+ "With this choice, \
+the undo info for the current command never gets discarded.
+This should only be chosen under exceptional circumstances,
+since it could result in memory overflow and make Emacs crash."
+ nil))
+ "22.1")
;; window.c
(temp-buffer-show-function windows (choice (const nil) function))
(display-buffer-function windows (choice (const nil) function))
diff --git a/lisp/cus-theme.el b/lisp/cus-theme.el
index 32e0196382..95a0a4b289 100644
--- a/lisp/cus-theme.el
+++ b/lisp/cus-theme.el
@@ -1,6 +1,6 @@
;;; cus-theme.el -- custom theme creation user interface
;;
-;; Copyright (C) 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;;
;; Author: Alex Schroeder <alex@gnu.org>
;; Maintainer: FSF
diff --git a/lisp/custom.el b/lisp/custom.el
index a8c9b86453..0831535f18 100644
--- a/lisp/custom.el
+++ b/lisp/custom.el
@@ -1,7 +1,7 @@
;;; custom.el --- tools for declaring and initializing options
;;
-;; Copyright (C) 1996, 1997, 1999, 2001, 2002, 2004, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1999, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;;
;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
;; Maintainer: FSF
@@ -76,6 +76,28 @@ if any, or VALUE."
(eval (car (get symbol 'saved-value)))
(eval value)))))
+(defun custom-initialize-safe-set (symbol value)
+ "Like `custom-initialize-set', but catches errors.
+If an error occurs during initialization, SYMBOL is set to nil
+and no error is thrown. This is meant for use in pre-loaded files
+where some variables or functions used to compute VALUE may not yet
+be defined. You can then re-evaluate VALUE in startup.el, for instance
+using `custom-reevaluate-setting'."
+ (condition-case nil
+ (custom-initialize-set symbol value)
+ (error (set-default symbol nil))))
+
+(defun custom-initialize-safe-default (symbol value)
+ "Like `custom-initialize-default', but catches errors.
+If an error occurs during initialization, SYMBOL is set to nil
+and no error is thrown. This is meant for use in pre-loaded files
+where some variables or functions used to compute VALUE may not yet
+be defined. You can then re-evaluate VALUE in startup.el, for instance
+using `custom-reevaluate-setting'."
+ (condition-case nil
+ (custom-initialize-default symbol value)
+ (error (set-default symbol nil))))
+
(defun custom-initialize-reset (symbol value)
"Initialize SYMBOL based on VALUE.
Set the symbol, using its `:set' function (or `set-default' if it has none).
@@ -115,14 +137,9 @@ For the standard setting, use `set-default'."
DEFAULT should be an expression to evaluate to compute the default value,
not the default value itself.
-DEFAULT is stored as SYMBOL's value in the standard theme. See
-`custom-known-themes' for a list of known themes. For backwards
-compatibility, DEFAULT is also stored in SYMBOL's property
+DEFAULT is stored as SYMBOL's standard value, in SYMBOL's property
`standard-value'. At the same time, SYMBOL's property `force-value' is
set to nil, as the value is no longer rogue."
- ;; Remember the standard setting. The value should be in the standard
- ;; theme, not in this property. However, this would require changing
- ;; the C source of defvar and others as well...
(put symbol 'standard-value (list default))
;; Maybe this option was rogue in an earlier version. It no longer is.
(when (get symbol 'force-value)
@@ -518,7 +535,9 @@ LOAD should be either a library file name, or a feature name."
;; This test is also in the C code of `user-variable-p'.
(defun custom-variable-p (variable)
- "Return non-nil if VARIABLE is a custom variable."
+ "Return non-nil if VARIABLE is a custom variable.
+This recursively follows aliases."
+ (setq variable (indirect-variable variable))
(or (get variable 'standard-value)
(get variable 'custom-autoload)))
@@ -560,104 +579,15 @@ LOAD should be either a library file name, or a feature name."
;; and it is not in load-history yet.
((equal load "cus-edit"))
(t (condition-case nil (load load) (error nil))))))))
-
+
(defvar custom-known-themes '(user standard)
"Themes that have been defined with `deftheme'.
The default value is the list (user standard). The theme `standard'
contains the Emacs standard settings from the original Lisp files. The
-theme `user' contains all the the settings the user customized and saved.
+theme `user' contains all the settings the user customized and saved.
Additional themes declared with the `deftheme' macro will be added to
the front of this list.")
-(defun custom-declare-theme (theme feature &optional doc &rest args)
- "Like `deftheme', but THEME is evaluated as a normal argument.
-FEATURE is the feature this theme provides. This symbol is created
-from THEME by `custom-make-theme-feature'."
- (add-to-list 'custom-known-themes theme)
- (put theme 'theme-feature feature)
- (when doc
- (put theme 'theme-documentation doc))
- (while args
- (let ((arg (car args)))
- (setq args (cdr args))
- (unless (symbolp arg)
- (error "Junk in args %S" args))
- (let ((keyword arg)
- (value (car args)))
- (unless args
- (error "Keyword %s is missing an argument" keyword))
- (setq args (cdr args))
- (cond ((eq keyword :short-description)
- (put theme 'theme-short-description value))
- ((eq keyword :immediate)
- (put theme 'theme-immediate value))
- ((eq keyword :variable-set-string)
- (put theme 'theme-variable-set-string value))
- ((eq keyword :variable-reset-string)
- (put theme 'theme-variable-reset-string value))
- ((eq keyword :face-set-string)
- (put theme 'theme-face-set-string value))
- ((eq keyword :face-reset-string)
- (put theme 'theme-face-reset-string value)))))))
-
-(defmacro deftheme (theme &optional doc &rest args)
- "Declare custom theme THEME.
-The optional argument DOC is a doc string describing the theme.
-The remaining arguments should have the form
-
- [KEYWORD VALUE]...
-
-The following KEYWORD's are defined:
-
-:short-description
- VALUE is a short (one line) description of the theme. If not
- given, DOC is used.
-:immediate
- If VALUE is non-nil, variables specified in this theme are set
- immediately when loading the theme.
-:variable-set-string
- VALUE is a string used to indicate that a variable takes its
- setting from this theme. It is passed to FORMAT with the name
- of the theme as an additional argument. If not given, a
- generic description is used.
-:variable-reset-string
- VALUE is a string used in the case a variable has been forced
- to its value in this theme. It is passed to FORMAT with the
- name of the theme as an additional argument. If not given, a
- generic description is used.
-:face-set-string
- VALUE is a string used to indicate that a face takes its
- setting from this theme. It is passed to FORMAT with the name
- of the theme as an additional argument. If not given, a
- generic description is used.
-:face-reset-string
- VALUE is a string used in the case a face has been forced to
- its value in this theme. It is passed to FORMAT with the name
- of the theme as an additional argument. If not given, a
- generic description is used.
-
-Any theme `foo' should be defined in a file called `foo-theme.el';
-see `custom-make-theme-feature' for more information."
- (let ((feature (custom-make-theme-feature theme)))
- ;; It is better not to use backquote in this file,
- ;; because that makes a bootstrapping problem
- ;; if you need to recompile all the Lisp files using interpreted code.
- (nconc (list 'custom-declare-theme
- (list 'quote theme)
- (list 'quote feature)
- doc) args)))
-
-(defun custom-make-theme-feature (theme)
- "Given a symbol THEME, create a new symbol by appending \"-theme\".
-Store this symbol in the `theme-feature' property of THEME.
-Calling `provide-theme' to provide THEME actually puts `THEME-theme'
-into `features'.
-
-This allows for a file-name convention for autoloading themes:
-Every theme X has a property `provide-theme' whose value is \"X-theme\".
-\(require-theme X) then attempts to load the file `X-theme.el'."
- (intern (concat (symbol-name theme) "-theme")))
-
(defsubst custom-theme-p (theme)
"Non-nil when THEME has been defined."
(memq theme custom-known-themes))
@@ -670,13 +600,15 @@ Every theme X has a property `provide-theme' whose value is \"X-theme\".
;;; Initializing.
(defun custom-push-theme (prop symbol theme mode value)
- "Add (THEME MODE VALUE) to the list in property PROP of SYMBOL.
-If the first element in that list is already (THEME ...),
-discard it first.
+ "Record a value for face or variable SYMBOL in custom theme THEME.
+PROP is`theme-face' for a face, `theme-value' for a variable.
+The value is specified by (THEME MODE VALUE), which is interpreted
+by `custom-theme-value'.
MODE can be either the symbol `set' or the symbol `reset'. If it is the
symbol `set', then VALUE is the value to use. If it is the symbol
-`reset', then VALUE is the mode to query instead.
+`reset', then VALUE is another theme, whose value for this face or
+variable should be used.
In the following example for the variable `goto-address-url-face', the
theme `subtle-hacker' uses the same value for the variable as the theme
@@ -709,11 +641,20 @@ This records values for the `standard' and the `gnome2' themes.
The user has not customized the face; had he done that,
the list would contain an entry for the `user' theme, too.
See `custom-known-themes' for a list of known themes."
- (let ((old (get symbol prop)))
- (if (eq (car-safe (car-safe old)) theme)
- (setq old (cdr old)))
- (put symbol prop (cons (list theme mode value) old))))
-
+ (let* ((old (get symbol prop))
+ (setting (assq theme old)))
+ ;; Alter an existing theme-setting for the symbol,
+ ;; or add a new one.
+ (if setting
+ (progn
+ (setcar (cdr setting) mode)
+ (setcar (cddr setting) value))
+ (put symbol prop (cons (list theme mode value) old)))
+ ;; Record, for each theme, all its settings.
+ (put theme 'theme-settings
+ (cons (list prop symbol theme mode value)
+ (get theme 'theme-settings)))))
+
(defvar custom-local-buffer nil
"Non-nil, in a Customization buffer, means customize a specific buffer.
If this variable is non-nil, it should be a buffer,
@@ -739,10 +680,10 @@ COMMENT is a comment string about SYMBOL."
(apply 'custom-theme-set-variables 'user args))
(defun custom-reevaluate-setting (symbol)
- "Reset the value of SYMBOL by re-evaluating its saved or default value.
-This is useful for variables that are defined before their default value
-can really be computed. E.g. dumped variables whose default depends on
-run-time information."
+ "Reset the value of SYMBOL by re-evaluating its saved or standard value.
+Use the :set function to do so. This is useful for customizable options
+that are defined before their standard value can really be computed.
+E.g. dumped variables whose default depends on run-time information."
(funcall (or (get symbol 'custom-set) 'set-default)
symbol
(eval (car (or (get symbol 'saved-value) (get symbol 'standard-value))))))
@@ -785,15 +726,13 @@ in SYMBOL's list property `theme-value' \(using `custom-push-theme')."
(error "Circular custom dependency between `%s' and `%s'"
sym1 sym2))
(2-then-1 nil)
- ;; Put symbols with :require last. The macro
- ;; define-minor-mode generates a defcustom
- ;; with a :require and a :set, where the
- ;; setter function calls the mode function.
- ;; Putting symbols with :require last ensures
- ;; that the mode function will see other
- ;; customized values rather than default
- ;; values.
- (t (nth 3 a2)))))))
+ ;; Put minor modes and symbols with :require last.
+ ;; Putting minor modes last ensures that the mode
+ ;; function will see other customized values rather
+ ;; than default values.
+ (t (or (nth 3 a2)
+ (eq (get sym2 'custom-set)
+ 'custom-set-minor-mode))))))))
(while args
(let ((entry (car args)))
(if (listp entry)
@@ -922,11 +861,134 @@ Return non-nil iff the `customized-value' property actually changed."
(put symbol 'customized-value nil))
;; Changed?
(not (equal customized (get symbol 'customized-value)))))
+
+;;; Defining themes.
+
+;; deftheme is used at the beginning of the file that records a theme.
+
+(defmacro deftheme (theme &optional doc &rest args)
+ "Declare custom theme THEME.
+The optional argument DOC is a doc string describing the theme.
+The remaining arguments should have the form
-;;; Theme Manipulation
+ [KEYWORD VALUE]...
+
+The following KEYWORD's are defined:
+
+:short-description
+ VALUE is a short (one line) description of the theme. If not
+ given, DOC is used.
+:immediate
+ If VALUE is non-nil, variables specified in this theme are set
+ immediately when loading the theme.
+:variable-set-string
+ VALUE is a string used to indicate that a variable takes its
+ setting from this theme. It is passed to FORMAT with the name
+ of the theme as an additional argument. If not given, a
+ generic description is used.
+:variable-reset-string
+ VALUE is a string used in the case a variable has been forced
+ to its value in this theme. It is passed to FORMAT with the
+ name of the theme as an additional argument. If not given, a
+ generic description is used.
+:face-set-string
+ VALUE is a string used to indicate that a face takes its
+ setting from this theme. It is passed to FORMAT with the name
+ of the theme as an additional argument. If not given, a
+ generic description is used.
+:face-reset-string
+ VALUE is a string used in the case a face has been forced to
+ its value in this theme. It is passed to FORMAT with the name
+ of the theme as an additional argument. If not given, a
+ generic description is used.
+
+Any theme `foo' should be defined in a file called `foo-theme.el';
+see `custom-make-theme-feature' for more information."
+ (let ((feature (custom-make-theme-feature theme)))
+ ;; It is better not to use backquote in this file,
+ ;; because that makes a bootstrapping problem
+ ;; if you need to recompile all the Lisp files using interpreted code.
+ (nconc (list 'custom-declare-theme
+ (list 'quote theme)
+ (list 'quote feature)
+ doc)
+ args)))
+
+(defun custom-declare-theme (theme feature &optional doc &rest args)
+ "Like `deftheme', but THEME is evaluated as a normal argument.
+FEATURE is the feature this theme provides. This symbol is created
+from THEME by `custom-make-theme-feature'."
+ (add-to-list 'custom-known-themes theme)
+ (put theme 'theme-feature feature)
+ (when doc
+ (put theme 'theme-documentation doc))
+ (while args
+ (let ((arg (car args)))
+ (setq args (cdr args))
+ (unless (symbolp arg)
+ (error "Junk in args %S" args))
+ (let ((keyword arg)
+ (value (car args)))
+ (unless args
+ (error "Keyword %s is missing an argument" keyword))
+ (setq args (cdr args))
+ (cond ((eq keyword :short-description)
+ (put theme 'theme-short-description value))
+ ((eq keyword :immediate)
+ (put theme 'theme-immediate value))
+ ((eq keyword :variable-set-string)
+ (put theme 'theme-variable-set-string value))
+ ((eq keyword :variable-reset-string)
+ (put theme 'theme-variable-reset-string value))
+ ((eq keyword :face-set-string)
+ (put theme 'theme-face-set-string value))
+ ((eq keyword :face-reset-string)
+ (put theme 'theme-face-reset-string value)))))))
+
+(defun custom-make-theme-feature (theme)
+ "Given a symbol THEME, create a new symbol by appending \"-theme\".
+Store this symbol in the `theme-feature' property of THEME.
+Calling `provide-theme' to provide THEME actually puts `THEME-theme'
+into `features'.
+
+This allows for a file-name convention for autoloading themes:
+Every theme X has a property `provide-theme' whose value is \"X-theme\".
+\(require-theme X) then attempts to load the file `X-theme.el'."
+ (intern (concat (symbol-name theme) "-theme")))
+
+;;; Loading themes.
+
+;; The variable and face settings of a theme are recorded in
+;; the `theme-settings' property of the theme name.
+;; This property's value is a list of elements, each of the form
+;; (PROP SYMBOL THEME MODE VALUE), where PROP is `theme-value' or `theme-face'
+;; and SYMBOL is the face or variable name.
+;; THEME is the theme name itself; that's redundant, but simplifies things.
+;; MODE is `set' or `reset'.
+;; If MODE is `set', then VALUE is an expression that specifies the
+;; theme's setting for SYMBOL.
+;; If MODE is `reset', then VALUE is another theme,
+;; and it means to use the value from that theme.
+
+;; Each variable has a `theme-value' property that describes all the
+;; settings of enabled themes that apply to it.
+;; Each face name has a `theme-face' property that describes all the
+;; settings of enabled themes that apply to it.
+;; The property value is a list of settings, each with the form
+;; (THEME MODE VALUE). THEME, MODE and VALUE are as above.
+;; Each of these lists is ordered by decreasing theme precedence.
+;; Thus, the first element is always the one that is in effect.
+
+;; Disabling a theme removes its settings from the `theme-value' and
+;; `theme-face' properties, but the theme's own `theme-settings'
+;; property remains unchanged.
+
+;; Loading a theme implicitly enables it. Enabling a theme adds its
+;; settings to the symbols' `theme-value' and `theme-face' properties,
+;; or moves them to the front of those lists if they're already present.
(defvar custom-loaded-themes nil
- "Themes in the order they are loaded.")
+ "Custom themes that have been loaded.")
(defcustom custom-theme-directory
(if (eq system-type 'ms-dos)
@@ -942,26 +1004,43 @@ into this directory."
:version "22.1")
(defun custom-theme-loaded-p (theme)
- "Return non-nil when THEME has been loaded."
+ "Return non-nil if THEME has been loaded."
(memq theme custom-loaded-themes))
+(defvar custom-enabled-themes '(user)
+ "Custom themes currently enabled, highest precedence first.
+The first one is always `user'.")
+
+(defun custom-theme-enabled-p (theme)
+ "Return non-nil if THEME is enabled."
+ (memq theme custom-enabled-themes))
+
(defun provide-theme (theme)
"Indicate that this file provides THEME.
-Add THEME to `custom-loaded-themes' and `provide' whatever
-is stored in THEME's property `theme-feature'.
+Add THEME to `custom-loaded-themes', and `provide' whatever
+feature name is stored in THEME's property `theme-feature'.
-Usually the theme-feature property contains a symbol created
+Usually the `theme-feature' property contains a symbol created
by `custom-make-theme-feature'."
(custom-check-theme theme)
(provide (get theme 'theme-feature))
- (setq custom-loaded-themes (nconc (list theme) custom-loaded-themes)))
+ (push theme custom-loaded-themes)
+ ;; Loading a theme also installs its settings,
+ ;; so mark it as "enabled".
+ (push theme custom-enabled-themes)
+ ;; `user' must always be the highest-precedence enabled theme.
+ ;; Make that remain true. (This has the effect of making user settings
+ ;; override the ones just loaded, too.)
+ (custom-enable-theme 'user))
(defun require-theme (theme)
- "Try to load a theme by requiring its feature.
-THEME's feature is stored in THEME's `theme-feature' property.
+ "Try to load a theme's settings from its file.
+This also enables the theme; use `custom-disable-theme' to disable it."
+
+ ;; THEME's feature is stored in THEME's `theme-feature' property.
+ ;; Usually the `theme-feature' property contains a symbol created
+ ;; by `custom-make-theme-feature'.
-Usually the `theme-feature' property contains a symbol created
-by `custom-make-theme-feature'."
;; Note we do no check for validity of the theme here.
;; This allows to pull in themes by a file-name convention
(let ((load-path (if (file-directory-p custom-theme-directory)
@@ -969,70 +1048,35 @@ by `custom-make-theme-feature'."
load-path)))
(require (or (get theme 'theme-feature)
(custom-make-theme-feature theme)))))
-
-(defun custom-remove-theme (spec-alist theme)
- "Delete all elements from SPEC-ALIST whose car is THEME."
- (let ((elt (assoc theme spec-alist)))
- (while elt
- (setq spec-alist (delete elt spec-alist)
- elt (assoc theme spec-alist))))
- spec-alist)
-
-(defun custom-do-theme-reset (theme)
- "Undo all settings defined by THEME.
-
-A variable remains unchanged if its property `theme-value' does not
-contain a value for THEME. A face remains unchanged if its property
-`theme-face' does not contain a value for THEME. In either case, all
-settings for THEME are removed from the property and the variable or
-face is set to the `user' theme.
-
-See `custom-known-themes' for a list of known themes."
- (let (spec-list)
- (mapatoms (lambda (symbol)
- ;; This works even if symbol is both a variable and a
- ;; face.
- (setq spec-list (get symbol 'theme-value))
- (when spec-list
- (put symbol 'theme-value (custom-remove-theme spec-list theme))
- (custom-theme-reset-internal symbol 'user))
- (setq spec-list (get symbol 'theme-face))
- (when spec-list
- (put symbol 'theme-face (custom-remove-theme spec-list theme))
- (custom-theme-reset-internal-face symbol 'user))))))
+
+;;; How to load and enable various themes as part of `user'.
(defun custom-theme-load-themes (by-theme &rest body)
"Load the themes specified by BODY.
-Record them as required by theme BY-THEME. BODY is a sequence of either
+Record them as required by theme BY-THEME.
+
+BODY is a sequence of either
THEME
- BY-THEME requires THEME
+ Load THEME and enable it.
\(reset THEME)
Undo all the settings made by THEME
\(hidden THEME)
- Require THEME but hide it from the user
+ Load THEME but do not enable it.
All the themes loaded for BY-THEME are recorded in BY-THEME's property
-`theme-loads-themes'. Any theme loaded with the hidden predicate will
-be given the property `theme-hidden' unless it has been loaded before.
-Whether a theme has been loaded before is determined by the function
-`custom-theme-loaded-p'."
+`theme-loads-themes'."
(custom-check-theme by-theme)
- (let ((theme)
- (themes-loaded (get by-theme 'theme-loads-themes)))
- (while theme
- (setq theme (car body)
- body (cdr body))
+ (let ((themes-loaded (get by-theme 'theme-loads-themes)))
+ (dolist (theme body)
(cond ((and (consp theme) (eq (car theme) 'reset))
- (custom-do-theme-reset (cadr theme)))
+ (custom-disable-theme (cadr theme)))
((and (consp theme) (eq (car theme) 'hidden))
(require-theme (cadr theme))
- (unless (custom-theme-loaded-p (cadr theme))
- (put (cadr theme) 'theme-hidden t)))
+ (custom-disable-theme (cadr theme)))
(t
- (require-theme theme)
- (put theme 'theme-hidden nil)))
- (setq themes-loaded (nconc (list theme) themes-loaded)))
+ (require-theme theme)))
+ (push theme themes-loaded))
(put by-theme 'theme-loads-themes themes-loaded)))
(defun custom-load-themes (&rest body)
@@ -1040,82 +1084,127 @@ Whether a theme has been loaded before is determined by the function
See `custom-theme-load-themes' for more information on BODY."
(apply 'custom-theme-load-themes 'user body))
-
-; (defsubst copy-upto-last (elt list)
-; "Copy all the elements of the list upto the last occurence of elt"
-; ;; Is it faster to do more work in C than to do less in elisp?
-; (nreverse (cdr (member elt (reverse list)))))
-
-(defun custom-theme-value (theme theme-spec-list)
- "Determine the value for THEME defined by THEME-SPEC-LIST.
-Returns a list with the original value if found; nil otherwise.
-
-THEME-SPEC-LIST is an alist with themes as its key. As new themes are
-installed, these are added to the front of THEME-SPEC-LIST.
-Each element has the form
+
+;;; Enabling and disabling loaded themes.
+
+(defun custom-enable-theme (theme)
+ "Reenable all variable and face settings defined by THEME.
+The newly enabled theme gets the highest precedence (after `user').
+If it is already enabled, just give it highest precedence (after `user')."
+ (let ((settings (get theme 'theme-settings)))
+ (dolist (s settings)
+ (let* ((prop (car s))
+ (symbol (cadr s))
+ (spec-list (get symbol prop)))
+ (put symbol prop (cons (cddr s) (assq-delete-all theme spec-list)))
+ (if (eq prop 'theme-value)
+ (custom-theme-recalc-variable symbol)
+ (custom-theme-recalc-face symbol)))))
+ (setq custom-enabled-themes
+ (cons theme (delq theme custom-enabled-themes)))
+ ;; `user' must always be the highest-precedence enabled theme.
+ (unless (eq theme 'user)
+ (custom-enable-theme 'user)))
+
+(defun custom-disable-theme (theme)
+ "Disable all variable and face settings defined by THEME.
+See `custom-known-themes' for a list of known themes."
+ (let ((settings (get theme 'theme-settings)))
+ (dolist (s settings)
+ (let* ((prop (car s))
+ (symbol (cadr s))
+ (spec-list (get symbol prop)))
+ (put symbol 'theme-value (assq-delete-all theme spec-list))
+ (if (eq prop 'theme-value)
+ (custom-theme-recalc-variable symbol)
+ (custom-theme-recalc-face symbol)))))
+ (setq custom-enabled-themes
+ (delq theme custom-enabled-themes)))
+
+(defun custom-theme-value (theme setting-list)
+ "Determine the value specified for THEME according to SETTING-LIST.
+Returns a list whose car is the specified value, if we
+find one; nil otherwise.
+
+SETTING-LIST is an alist with themes as its key.
+Each element has the form:
\(THEME MODE VALUE)
MODE is either the symbol `set' or the symbol `reset'. See
`custom-push-theme' for more information on the format of
-THEME-SPEC-LIST."
+SETTING-LIST."
;; Note we do _NOT_ signal an error if the theme is unknown
;; it might have gone away without the user knowing.
- (let ((value (cdr (assoc theme theme-spec-list))))
- (if value
- (if (eq (car value) 'set)
- (cdr value)
- (custom-theme-value (cadr value) theme-spec-list)))))
-
-(defun custom-theme-variable-value (variable theme)
- "Return (list value) indicating value of VARIABLE in THEME.
-If THEME does not define a value for VARIABLE, return nil. The value
-definitions per theme are stored in VARIABLE's property `theme-value'.
-The actual work is done by function `custom-theme-value', which see.
-See `custom-push-theme' for more information on how these definitions
-are stored."
- (custom-theme-value theme (get variable 'theme-value)))
-
-(defun custom-theme-reset-internal (symbol to-theme)
- "Reset SYMBOL to the value defined by TO-THEME.
-If SYMBOL is not defined in TO-THEME, reset SYMBOL to the standard
-value. See `custom-theme-variable-value'. The standard value is
-stored in SYMBOL's property `standard-value'."
- (let ((value (custom-theme-variable-value symbol to-theme))
- was-in-theme)
- (setq was-in-theme value)
- (setq value (or value (get symbol 'standard-value)))
- (when value
- (put symbol 'saved-value was-in-theme)
- (if (or (get 'force-value symbol) (default-boundp symbol))
- (funcall (or (get symbol 'custom-set) 'set-default) symbol
- (eval (car value)))))
- value))
-
+ (let ((elt (cdr (assoc theme setting-list))))
+ (if elt
+ (if (eq (car elt) 'set)
+ (cdr elt)
+ ;; `reset' means refer to another theme's value in the same alist.
+ (custom-theme-value (cadr elt) setting-list)))))
+
+(defun custom-variable-theme-value (variable)
+ "Return (list VALUE) indicating the custom theme value of VARIABLE.
+That is to say, it specifies what the value should be according to
+currently enabled custom themes.
+
+This function returns nil if no custom theme specifies a value for VARIABLE."
+ (let* ((theme-value (get variable 'theme-value)))
+ (if theme-value
+ (custom-theme-value (car (car theme-value)) theme-value))))
+
+(defun custom-face-theme-value (face)
+ "Return the face spec of FACE according to currently enabled custom themes.
+This function returns nil if no custom theme specifies anything for FACE."
+ (let* ((theme-value (get face 'theme-face)))
+ (if theme-value
+ (custom-theme-value (car (car theme-value)) theme-value))))
+
+(defun custom-theme-recalc-variable (variable)
+ "Set VARIABLE according to currently enabled custom themes."
+ (let ((valspec (custom-variable-theme-value variable)))
+ (when valspec
+ (put variable 'saved-value valspec))
+ (unless valspec
+ (setq valspec (get variable 'standard-value)))
+ (when valspec
+ (if (or (get 'force-value variable) (default-boundp variable))
+ (funcall (or (get variable 'custom-set) 'set-default) variable
+ (eval (car valspec)))))))
+
+(defun custom-theme-recalc-face (face)
+ "Set FACE according to currently enabled custom themes."
+ (let ((spec (custom-face-theme-value face)))
+ (when spec
+ (put face 'save-face spec))
+ (unless spec
+ (setq spec (get face 'face-defface-spec)))
+ (when spec
+ (when (or (get face 'force-face) (facep face))
+ (unless (facep face)
+ (make-empty-face face))
+ (face-spec-set face spec)))))
+
(defun custom-theme-reset-variables (theme &rest args)
- "Reset the value of the variables to values previously defined.
-Associate this setting with THEME.
-
-ARGS is a list of lists of the form
+ "Reset the specs in THEME of some variables to their values in other themes.
+Each of the arguments ARGS has this form:
- (VARIABLE TO-THEME)
+ (VARIABLE FROM-THEME)
-This means reset VARIABLE to its value in TO-THEME."
+This means reset VARIABLE to its value in FROM-THEME."
(custom-check-theme theme)
- (mapcar '(lambda (arg)
- (apply 'custom-theme-reset-internal arg)
- (custom-push-theme 'theme-value (car arg) theme 'reset (cadr arg)))
- args))
+ (dolist (arg args)
+ (custom-push-theme 'theme-value (car arg) theme 'reset (cadr arg))))
(defun custom-reset-variables (&rest args)
- "Reset the value of the variables to values previously saved.
-This is the setting associated the `user' theme.
+ "Reset the specs of some variables to their values in certain themes.
+This creates settings in the `user' theme.
-ARGS is a list of lists of the form
+Each of the arguments ARGS has this form:
- (VARIABLE TO-THEME)
+ (VARIABLE FROM-THEME)
-This means reset VARIABLE to its value in TO-THEME."
+This means reset VARIABLE to its value in FROM-THEME."
(apply 'custom-theme-reset-variables 'user args))
;;; The End.
diff --git a/lisp/cvs-status.el b/lisp/cvs-status.el
index a70e368ff8..792dcb2ef2 100644
--- a/lisp/cvs-status.el
+++ b/lisp/cvs-status.el
@@ -1,6 +1,7 @@
;;; cvs-status.el --- major mode for browsing `cvs status' output -*- coding: utf-8 -*-
-;; Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Stefan Monnier <monnier@cs.yale.edu>
;; Keywords: pcl-cvs cvs status tree tools
diff --git a/lisp/dabbrev.el b/lisp/dabbrev.el
index 01591e2fdf..2139e7c576 100644
--- a/lisp/dabbrev.el
+++ b/lisp/dabbrev.el
@@ -1,7 +1,7 @@
;;; dabbrev.el --- dynamic abbreviation package
-;; Copyright (C) 1985, 86, 92, 94, 96, 1997, 2000, 01, 03, 2004
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1992, 1994, 1996, 1997, 2000, 2001, 2002,
+;; 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Don Morrison
;; Maintainer: Lars Lindberg <Lars.Lindberg@sypro.cap.se>
diff --git a/lisp/delim-col.el b/lisp/delim-col.el
index 1c0c8b7750..50d09a6414 100644
--- a/lisp/delim-col.el
+++ b/lisp/delim-col.el
@@ -1,6 +1,7 @@
;;; delim-col.el --- prettify all columns in a region or rectangle
-;; Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br>
diff --git a/lisp/delsel.el b/lisp/delsel.el
index 483c2e2c59..d7a3d90e96 100644
--- a/lisp/delsel.el
+++ b/lisp/delsel.el
@@ -1,6 +1,7 @@
;;; delsel.el --- delete selection if you insert
-;; Copyright (C) 1992, 1997, 1998, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1997, 1998, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Matthieu Devin <devin@lucid.com>
;; Maintainer: FSF
@@ -100,7 +101,11 @@ any selection."
(unless empty-region
(setq this-command 'ignore))))
(type
- (delete-active-region)))
+ (delete-active-region)
+ (if (and overwrite-mode (eq this-command 'self-insert-command))
+ (let ((overwrite-mode nil))
+ (self-insert-command (prefix-numeric-value current-prefix-arg))
+ (setq this-command 'ignore)))))
(file-supersession
;; If ask-user-about-supersession-threat signals an error,
;; stop safe_run_hooks from clearing out pre-command-hook.
diff --git a/lisp/descr-text.el b/lisp/descr-text.el
index 3c54845871..e25d740b89 100644
--- a/lisp/descr-text.el
+++ b/lisp/descr-text.el
@@ -1,7 +1,7 @@
;;; descr-text.el --- describe text mode
-;; Copyright (c) 1994, 1995, 1996, 2001, 2002, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 1996, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Boris Goldowsky <boris@gnu.org>
;; Keywords: faces, i18n, Unicode, multilingual
@@ -479,13 +479,27 @@ as well as widgets, buttons, overlays, and text properties."
(format ", U+%04X" unicode)
"")))
("charset"
- ,(symbol-name charset)
+ ,`(widget-create 'link
+ :notify (lambda (&rest ignore)
+ (describe-character-set ',charset))
+ ,(symbol-name charset))
,(format "(%s)" (charset-description charset)))
("code point"
,(let ((split (split-char char)))
- (if (= (charset-dimension charset) 1)
- (format "%d" (nth 1 split))
- (format "%d %d" (nth 1 split) (nth 2 split)))))
+ `(widget-create
+ 'link
+ :notify (lambda (&rest ignore)
+ (list-charset-chars ',charset)
+ (with-selected-window
+ (get-buffer-window "*Character List*" 0)
+ (goto-char (point-min))
+ (forward-line 2) ;Skip the header.
+ (let ((case-fold-search nil))
+ (search-forward ,(char-to-string char)
+ nil t))))
+ ,(if (= (charset-dimension charset) 1)
+ (format "%d" (nth 1 split))
+ (format "%d %d" (nth 1 split) (nth 2 split))))))
("syntax"
,(let ((syntax (syntax-after pos)))
(with-temp-buffer
@@ -512,7 +526,14 @@ as well as widgets, buttons, overlays, and text properties."
(if (consp key-list)
(list "type"
(mapconcat #'(lambda (x) (concat "\"" x "\""))
- key-list " or ")))))
+ key-list " or ")
+ "with"
+ `(widget-create
+ 'link
+ :notify (lambda (&rest ignore)
+ (describe-input-method
+ ',current-input-method))
+ ,(format "%s" current-input-method))))))
("buffer code"
,(encoded-string-description
(string-as-unibyte (char-to-string char)) nil))
@@ -536,11 +557,7 @@ as well as widgets, buttons, overlays, and text properties."
(format "by display table entry [%s] (see below)"
(mapconcat
#'(lambda (x)
- (if (> (car x) #x7ffff)
- (format "?%c<face-id=%s>"
- (logand (car x) #x7ffff)
- (lsh (car x) -19))
- (format "?%c" (car x))))
+ (format "?%c" (logand (car x) #x7ffff)))
disp-vector " ")))
(composition
(let ((from (car composition))
@@ -571,11 +588,31 @@ as well as widgets, buttons, overlays, and text properties."
(if display
(format "terminal code %s" display)
"not encodable for terminal"))))))
+ ,@(let ((face
+ (if (not (or disp-vector composition))
+ (cond
+ ((and show-trailing-whitespace
+ (save-excursion (goto-char pos)
+ (looking-at "[ \t]+$")))
+ 'trailing-whitespace)
+ ((and nobreak-char-display unicode (eq unicode '#xa0))
+ 'nobreak-space)
+ ((and nobreak-char-display unicode (eq unicode '#xad))
+ 'escape-glyph)
+ ((and (< char 32) (not (memq char '(9 10))))
+ 'escape-glyph)))))
+ (if face (list (list "hardcoded face"
+ `(widget-create
+ 'link
+ :notify (lambda (&rest ignore)
+ (describe-face ',face))
+ ,(format "%s" face))))))
,@(let ((unicodedata (and unicode
(describe-char-unicode-data unicode))))
(if unicodedata
(cons (list "Unicode data" " ") unicodedata)))))
- (setq max-width (apply #'max (mapcar #'(lambda (x) (length (car x)))
+ (setq max-width (apply #'max (mapcar #'(lambda (x)
+ (if (cadr x) (length (car x)) 0))
item-list)))
(with-output-to-temp-buffer "*Help*"
(with-current-buffer standard-output
@@ -585,13 +622,16 @@ as well as widgets, buttons, overlays, and text properties."
(when (cadr elt)
(insert (format formatter (car elt)))
(dolist (clm (cdr elt))
- (when (>= (+ (current-column)
- (or (string-match "\n" clm)
- (string-width clm)) 1)
- (window-width))
- (insert "\n")
- (indent-to (1+ max-width)))
- (insert " " clm))
+ (if (eq (car-safe clm) 'widget-create)
+ (progn (insert " ") (eval clm))
+ (when (>= (+ (current-column)
+ (or (string-match "\n" clm)
+ (string-width clm))
+ 1)
+ (window-width))
+ (insert "\n")
+ (indent-to (1+ max-width)))
+ (insert " " clm)))
(insert "\n"))))
(save-excursion
@@ -619,7 +659,21 @@ as well as widgets, buttons, overlays, and text properties."
(format "%s (0x%02X)" (cadr (aref disp-vector i))
(cddr (aref disp-vector i)))
"-- no font --")
- "\n ")))
+ "\n")
+ (when (> (car (aref disp-vector i)) #x7ffff)
+ (let* ((face-id (lsh (car (aref disp-vector i)) -19))
+ (face (car (delq nil (mapcar (lambda (face)
+ (and (eq (face-id face)
+ face-id) face))
+ (face-list))))))
+ (when face
+ (insert (propertize " " 'display '(space :align-to 5))
+ "face: ")
+ (widget-create 'link
+ :notify `(lambda (&rest ignore)
+ (describe-face ',face))
+ (format "%S" face))
+ (insert "\n"))))))
(insert "these terminal codes:\n")
(dotimes (i (length disp-vector))
(insert (car (aref disp-vector i))
@@ -667,7 +721,7 @@ as well as widgets, buttons, overlays, and text properties."
(describe-text-mode)))))
(defalias 'describe-char-after 'describe-char)
-(make-obsolete 'describe-char-after 'describe-char "21.5")
+(make-obsolete 'describe-char-after 'describe-char "22.1")
(provide 'descr-text)
diff --git a/lisp/desktop.el b/lisp/desktop.el
index 02616d23f5..3dbd581aef 100644
--- a/lisp/desktop.el
+++ b/lisp/desktop.el
@@ -1,10 +1,10 @@
;;; desktop.el --- save partial status of Emacs when killed
-;; Copyright (C) 1993, 1994, 1995, 1997, 2000, 2001, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 1995, 1997, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Morten Welinder <terra@diku.dk>
-;; Maintainter: Lars Hansen <larsh@math.ku.dk>
+;; Maintainter: Lars Hansen <larsh@soem.dk>
;; Keywords: convenience
;; Favourite-brand-of-beer: None, I hate beer.
@@ -51,13 +51,66 @@
;; function is added to the `after-init-hook'. This function is
;; responsible for loading the desktop when Emacs is started.
-;; Some words on minor modes: Most minor modes are controlled by
-;; buffer-local variables, which have a standard save / restore
-;; mechanism. To handle all minor modes, we take the following
-;; approach: (1) check whether the variable name from
-;; `minor-mode-alist' is also a function; and (2) use translation
-;; table `desktop-minor-mode-table' in the case where the two names
-;; are not the same.
+;; Special handling.
+;; -----------------
+;; Variables `desktop-buffer-mode-handlers' and `desktop-minor-mode-handlers'
+;; are supplied to handle special major and minor modes respectively.
+;; `desktop-buffer-mode-handlers' is an alist of major mode specific functions
+;; to restore a desktop buffer. Elements must have the form
+;;
+;; (MAJOR-MODE . RESTORE-BUFFER-FUNCTION).
+;;
+;; Functions listed are called by `desktop-create-buffer' when `desktop-read'
+;; evaluates the desktop file. Buffers with a major mode not specified here,
+;; are restored by the default handler `desktop-restore-file-buffer'.
+;; `desktop-minor-mode-handlers' is an alist of functions to restore
+;; non-standard minor modes. Elements must have the form
+;;
+;; (MINOR-MODE . RESTORE-FUNCTION).
+;;
+;; Functions are called by `desktop-create-buffer' to restore minor modes.
+;; Minor modes not specified here, are restored by the standard minor mode
+;; function. If you write a module that defines a major or minor mode that
+;; needs a special handler, then place code like
+
+;; (defun foo-restore-desktop-buffer
+;; ...
+;; (add-to-list 'desktop-buffer-mode-handlers
+;; '(foo-mode . foo-restore-desktop-buffer))
+
+;; or
+
+;; (defun bar-desktop-restore
+;; ...
+;; (add-to-list 'desktop-minor-mode-handlers
+;; '(bar-mode . bar-desktop-restore))
+
+;; in the module itself, and make shure that the mode function is
+;; autoloaded. See the docstrings of `desktop-buffer-mode-handlers' and
+;; `desktop-minor-mode-handlers' for more info.
+
+;; Minor modes.
+;; ------------
+;; Conventional minor modes (see node "Minor Mode Conventions" in the elisp
+;; manual) are handled in the following way:
+;; When `desktop-save' saves the state of a buffer to the desktop file, it
+;; saves as `desktop-minor-modes' the list of names of those variables in
+;; `minor-mode-alist' that have a non-nil value.
+;; When `desktop-create' restores the buffer, each of the symbols in
+;; `desktop-minor-modes' is called as function with parameter 1.
+;; The variables `desktop-minor-mode-table' and `desktop-minor-mode-handlers'
+;; are used to handle non-conventional minor modes. `desktop-save' uses
+;; `desktop-minor-mode-table' to map minor mode variables to minor mode
+;; functions before writing `desktop-minor-modes'. If a minor mode has a
+;; variable name that is different form its function name, an entry
+
+;; (NAME RESTORE-FUNCTION)
+
+;; should be added to `desktop-minor-mode-table'. If a minor mode should not
+;; be restored, RESTORE-FUNCTION should be set to nil. `desktop-create' uses
+;; `desktop-minor-mode-handlers' to lookup minor modes that needs a restore
+;; function different from the usual minor mode function.
+;; ---------------------------------------------------------------------------
;; By the way: don't use desktop.el to customize Emacs -- the file .emacs
;; in your home directory is used for that. Saving global default values
@@ -106,8 +159,8 @@ desktop is saved."
:group 'desktop)
;; Maintained for backward compatibility
-(defvaralias 'desktop-enable 'desktop-save-mode)
-(make-obsolete-variable 'desktop-enable 'desktop-save-mode)
+(define-obsolete-variable-alias 'desktop-enable
+ 'desktop-save-mode "22.1")
(defcustom desktop-save 'ask-if-new
"*Specifies whether the desktop should be saved when it is killed.
@@ -120,7 +173,7 @@ Possible values are:
if-exists -- save if desktop file exists, otherwise don't save.
nil -- never save.
The desktop is never saved when `desktop-save-mode' is nil.
-The variables `desktop-directory' and `desktop-base-file-name'
+The variables `desktop-dirname' and `desktop-base-file-name'
determine where the desktop is saved."
:type '(choice
(const :tag "Always save" t)
@@ -137,7 +190,8 @@ determine where the desktop is saved."
"Name of file for Emacs desktop, excluding the directory part."
:type 'file
:group 'desktop)
-(defvaralias 'desktop-basefilename 'desktop-base-file-name)
+(define-obsolete-variable-alias 'desktop-basefilename
+ 'desktop-base-file-name "22.1")
(defcustom desktop-path '("." "~")
"List of directories to search for the desktop file.
@@ -200,26 +254,21 @@ Feature: Saving `kill-ring' implies saving `kill-ring-yank-pointer'."
regexp-search-ring-yank-pointer)
"List of global variables that `desktop-clear' will clear.
An element may be variable name (a symbol) or a cons cell of the form
-\(VAR . FORM). Symbols are set to nil and for cons cells VAR is set
-to the value obtained by evaluateing FORM."
+\(VAR . FORM). Symbols are set to nil and for cons cells VAR is set
+to the value obtained by evaluating FORM."
:type '(repeat (restricted-sexp :match-alternatives (symbolp consp)))
:group 'desktop
:version "22.1")
-(defcustom desktop-clear-preserve-buffers-regexp
- "^\\(\\*scratch\\*\\|\\*Messages\\*\\|\\*tramp/.+\\*\\)$"
- "Regexp identifying buffers that `desktop-clear' should not delete.
-See also `desktop-clear-preserve-buffers'."
- :type 'regexp
- :group 'desktop
- :version "22.1")
-
-(defcustom desktop-clear-preserve-buffers nil
- "*List of buffer names that `desktop-clear' should not delete.
-See also `desktop-clear-preserve-buffers-regexp'."
+(defcustom desktop-clear-preserve-buffers
+ '("\\*scratch\\*" "\\*Messages\\*" "\\*server\\*" "\\*tramp/.+\\*")
+ "*List of buffers that `desktop-clear' should not delete.
+Each element is a regular expression. Buffers with a name matched by any of
+these won't be deleted."
:type '(repeat string)
:group 'desktop)
+;;;###autoload
(defcustom desktop-locals-to-save
'(desktop-locals-to-save ; Itself! Think it over.
truncate-lines
@@ -229,12 +278,18 @@ See also `desktop-clear-preserve-buffers-regexp'."
overwrite-mode
change-log-default-name
line-number-mode
- buffer-file-coding-system)
+ column-number-mode
+ size-indication-mode
+ buffer-file-coding-system
+ indent-tabs-mode
+ indicate-buffer-boundaries
+ indicate-empty-lines
+ show-trailing-whitespace)
"List of local variables to save for each buffer.
-The variables are saved only when they really are local."
+The variables are saved only when they really are local. Conventional minor
+modes are restored automatically; they should not be listed here."
:type '(repeat symbol)
:group 'desktop)
-(make-variable-buffer-local 'desktop-locals-to-save)
;; We skip .log files because they are normally temporary.
;; (ftp) files because they require passwords and whatnot.
@@ -293,30 +348,30 @@ See `desktop-restore-eager'."
"When non-nil, save buffer status in desktop file.
This variable becomes buffer local when set.
-If the value is a function, it called by `desktop-save' with argument
-DESKTOP-DIRNAME to obtain auxiliary information to saved in the desktop
+If the value is a function, it is called by `desktop-save' with argument
+DESKTOP-DIRNAME to obtain auxiliary information to save in the desktop
file along with the state of the buffer for which it was called.
When file names are returned, they should be formatted using the call
\"(desktop-file-name FILE-NAME DESKTOP-DIRNAME)\".
-Later, when `desktop-read' calls a function in `desktop-buffer-mode-handlers'
-to restore the buffer, the auxiliary information is passed as the argument
-DESKTOP-BUFFER-MISC.")
+Later, when `desktop-read' evaluates the desktop file, auxiliary information
+is passed as the argument DESKTOP-BUFFER-MISC to functions in
+`desktop-buffer-mode-handlers'.")
(make-variable-buffer-local 'desktop-save-buffer)
(make-obsolete-variable 'desktop-buffer-modes-to-save
- 'desktop-save-buffer)
+ 'desktop-save-buffer "22.1")
(make-obsolete-variable 'desktop-buffer-misc-functions
- 'desktop-save-buffer)
+ 'desktop-save-buffer "22.1")
-(defcustom desktop-buffer-mode-handlers
- '((dired-mode . dired-restore-desktop-buffer)
- (rmail-mode . rmail-restore-desktop-buffer)
- (mh-folder-mode . mh-restore-desktop-buffer)
- (Info-mode . Info-restore-desktop-buffer))
+;;;###autoload
+(defvar desktop-buffer-mode-handlers
+ nil
"Alist of major mode specific functions to restore a desktop buffer.
-Functions are called by `desktop-read'. List elements must have the form
-\(MAJOR-MODE . RESTORE-BUFFER-FUNCTION).
+Functions listed are called by `desktop-create-buffer' when `desktop-read'
+evaluates the desktop file. List elements must have the form
+
+ (MAJOR-MODE . RESTORE-BUFFER-FUNCTION).
Buffers with a major mode not specified here, are restored by the default
handler `desktop-restore-file-buffer'.
@@ -336,13 +391,22 @@ Furthermore, they may use the following variables:
desktop-buffer-locals
If a handler returns a buffer, then the saved mode settings
-and variable values for that buffer are copied into it."
- :type 'alist
- :group 'desktop)
+and variable values for that buffer are copied into it.
+
+Modules that define a major mode that needs a special handler should contain
+code like
+
+ (defun foo-restore-desktop-buffer
+ ...
+ (add-to-list 'desktop-buffer-mode-handlers
+ '(foo-mode . foo-restore-desktop-buffer))
+Furthermore the major mode function must be autoloaded.")
+
+;;;###autoload
(put 'desktop-buffer-mode-handlers 'risky-local-variable t)
(make-obsolete-variable 'desktop-buffer-handlers
- 'desktop-buffer-mode-handlers)
+ 'desktop-buffer-mode-handlers "22.1")
(defcustom desktop-minor-mode-table
'((auto-fill-function auto-fill-mode)
@@ -354,10 +418,57 @@ mode is active. RESTORE-FUNCTION is the function to activate the minor mode.
called. RESTORE-FUNCTION nil means don't try to restore the minor mode.
Only minor modes for which the name of the buffer-local variable
and the name of the minor mode function are different have to be added to
-this table."
+this table. See also `desktop-minor-mode-handlers'."
:type 'sexp
:group 'desktop)
+;;;###autoload
+(defvar desktop-minor-mode-handlers
+ nil
+ "Alist of functions to restore non-standard minor modes.
+Functions are called by `desktop-create-buffer' to restore minor modes.
+List elements must have the form
+
+ (MINOR-MODE . RESTORE-FUNCTION).
+
+Minor modes not specified here, are restored by the standard minor mode
+function.
+
+Handlers are called with argument list
+
+ (DESKTOP-BUFFER-LOCALS)
+
+Furthermore, they may use the following variables:
+
+ desktop-file-version
+ desktop-buffer-file-name
+ desktop-buffer-name
+ desktop-buffer-major-mode
+ desktop-buffer-minor-modes
+ desktop-buffer-point
+ desktop-buffer-mark
+ desktop-buffer-read-only
+ desktop-buffer-misc
+
+When a handler is called, the buffer has been created and the major mode has
+been set, but local variables listed in desktop-buffer-locals has not yet been
+created and set.
+
+Modules that define a minor mode that needs a special handler should contain
+code like
+
+ (defun foo-desktop-restore
+ ...
+ (add-to-list 'desktop-minor-mode-handlers
+ '(foo-mode . foo-desktop-restore))
+
+Furthermore the minor mode function must be autoloaded.
+
+See also `desktop-minor-mode-table'.")
+
+;;;###autoload
+(put 'desktop-minor-mode-handlers 'risky-local-variable t)
+
;; ----------------------------------------------------------------------------
(defvar desktop-dirname nil
"The directory in which the desktop file should be saved.")
@@ -381,25 +492,29 @@ this table."
;; ----------------------------------------------------------------------------
(defun desktop-clear ()
"Empty the Desktop.
-This kills all buffers except for internal ones and those matching
-`desktop-clear-preserve-buffers-regexp' or listed in
-`desktop-clear-preserve-buffers'. Furthermore, it clears the
-variables listed in `desktop-globals-to-clear'."
+This kills all buffers except for internal ones and those with names matched by
+a regular expression in the list `desktop-clear-preserve-buffers'.
+Furthermore, it clears the variables listed in `desktop-globals-to-clear'."
(interactive)
(desktop-lazy-abort)
(dolist (var desktop-globals-to-clear)
(if (symbolp var)
(eval `(setq-default ,var nil))
(eval `(setq-default ,(car var) ,(cdr var)))))
- (let ((buffers (buffer-list)))
+ (let ((buffers (buffer-list))
+ (preserve-regexp (concat "^\\("
+ (mapconcat (lambda (regexp)
+ (concat "\\(" regexp "\\)"))
+ desktop-clear-preserve-buffers
+ "\\|")
+ "\\)$")))
(while buffers
(let ((bufname (buffer-name (car buffers))))
(or
(null bufname)
- (string-match desktop-clear-preserve-buffers-regexp bufname)
- (member bufname desktop-clear-preserve-buffers)
+ (string-match preserve-regexp bufname)
;; Don't kill buffers made for internal purposes.
- (and (not (equal bufname "")) (eq (aref bufname 0) ?\ ))
+ (and (not (equal bufname "")) (eq (aref bufname 0) ?\s))
(kill-buffer (car buffers))))
(setq buffers (cdr buffers))))
(delete-other-windows))
@@ -432,7 +547,7 @@ is nil, ask the user where to save the desktop."
(condition-case err
(desktop-save desktop-dirname)
(file-error
- (unless (yes-or-no-p "Error while saving the desktop. Ignore? ")
+ (unless (yes-or-no-p "Error while saving the desktop. Ignore? ")
(signal (car err) (cdr err)))))))
;; ----------------------------------------------------------------------------
@@ -454,7 +569,7 @@ TXT is a string that when read and evaluated yields value.
QUOTE may be `may' (value may be quoted),
`must' (values must be quoted), or nil (value may not be quoted)."
(cond
- ((or (numberp value) (null value) (eq t value))
+ ((or (numberp value) (null value) (eq t value) (keywordp value))
(cons 'may (prin1-to-string value)))
((stringp value)
(let ((copy (copy-sequence value)))
@@ -621,12 +736,10 @@ See also `desktop-base-file-name'."
(and
(boundp minor-mode)
(symbol-value minor-mode)
- (let ((special (assq minor-mode desktop-minor-mode-table)))
- (when (or special (functionp minor-mode))
- (setq ret
- (cons
- (if special (cadr special) minor-mode)
- ret))))))
+ (let* ((special (assq minor-mode desktop-minor-mode-table))
+ (value (cond (special (cadr special))
+ ((functionp minor-mode) minor-mode))))
+ (when value (add-to-list 'ret value)))))
(mapcar #'car minor-mode-alist))
ret)
(point)
@@ -684,7 +797,6 @@ See also `desktop-base-file-name'."
(insert ")\n\n")))
info)
(setq default-directory dirname)
- (when (file-exists-p filename) (delete-file filename))
(let ((coding-system-for-write 'emacs-mule))
(write-region (point-min) (point-max) filename nil 'nomessage))))
(setq desktop-dirname dirname))
@@ -711,7 +823,7 @@ This function also sets `desktop-dirname' to nil."
"Read and process the desktop file in directory DIRNAME.
Look for a desktop file in DIRNAME, or if DIRNAME is omitted, look in
directories listed in `desktop-path'. If a desktop file is found, it
-is processed and `desktop-after-read-hook' is run. If no desktop file
+is processed and `desktop-after-read-hook' is run. If no desktop file
is found, clear the desktop and run `desktop-no-desktop-file-hook'.
This function is a no-op when Emacs is running in batch mode.
It returns t if a desktop file was loaded, nil otherwise."
@@ -777,11 +889,11 @@ It returns t if a desktop file was loaded, nil otherwise."
(defun desktop-load-default ()
"Load the `default' start-up library manually.
Also inhibit further loading of it."
- (if (not inhibit-default-init) ; safety check
- (progn
- (load "default" t t)
- (setq inhibit-default-init t))))
-(make-obsolete 'desktop-load-default 'desktop-save-mode)
+ (unless inhibit-default-init ; safety check
+ (load "default" t t)
+ (setq inhibit-default-init t)))
+(make-obsolete 'desktop-load-default
+ 'desktop-save-mode "22.1")
;; ----------------------------------------------------------------------------
;;;###autoload
@@ -802,7 +914,7 @@ directory DIRNAME."
"Save the desktop in directory `desktop-dirname'."
(interactive)
(if desktop-dirname
- (desktop-save desktop-dirname)
+ (desktop-save desktop-dirname)
(call-interactively 'desktop-save))
(message "Desktop saved in %s" desktop-dirname))
@@ -849,13 +961,20 @@ directory DIRNAME."
buf)
nil)))
+(defun desktop-load-file (function)
+ "Load the file where auto loaded FUNCTION is defined."
+ (let ((fcell (symbol-function function)))
+ (when (and (listp fcell)
+ (eq 'autoload (car fcell)))
+ (load (cadr fcell)))))
+
;; ----------------------------------------------------------------------------
;; Create a buffer, load its file, set its mode, ...;
;; called from Desktop file only.
-(eval-when-compile ; Just to silence the byte compiler
- (defvar desktop-first-buffer) ;; Dynamically bound in `desktop-read'
-)
+;; Just to silence the byte compiler.
+(eval-when-compile
+ (defvar desktop-first-buffer)) ; Dynamically bound in `desktop-read'
(defun desktop-create-buffer
(desktop-file-version
@@ -876,6 +995,8 @@ directory DIRNAME."
;; To make desktop files with relative file names possible, we cannot
;; allow `default-directory' to change. Therefore we save current buffer.
(save-current-buffer
+ ;; Give major mode module a chance to add a handler.
+ (desktop-load-file desktop-buffer-major-mode)
(let ((buffer-list (buffer-list))
(result
(condition-case err
@@ -913,9 +1034,15 @@ directory DIRNAME."
(auto-fill-mode 0))
(t
(mapc #'(lambda (minor-mode)
- (when (functionp minor-mode) (funcall minor-mode 1)))
+ ;; Give minor mode module a chance to add a handler.
+ (desktop-load-file minor-mode)
+ (let ((handler (cdr (assq minor-mode desktop-minor-mode-handlers))))
+ (if handler
+ (funcall handler desktop-buffer-locals)
+ (when (functionp minor-mode)
+ (funcall minor-mode 1)))))
desktop-buffer-minor-modes)))
- ;; Even though point and mark are non-nil when written by `desktop-save'
+ ;; Even though point and mark are non-nil when written by `desktop-save',
;; they may be modified by handlers wanting to set point or mark themselves.
(when desktop-buffer-point
(goto-char
@@ -958,7 +1085,7 @@ directory DIRNAME."
(cons 'overwrite-mode (car mim)))))
(defun desktop-append-buffer-args (&rest args)
- "Append ARGS at end of `desktop-buffer-args-list'
+ "Append ARGS at end of `desktop-buffer-args-list'.
ARGS must be an argument list for `desktop-create-buffer'."
(setq desktop-buffer-args-list (nconc desktop-buffer-args-list (list args)))
(unless desktop-lazy-timer
diff --git a/lisp/diff-mode.el b/lisp/diff-mode.el
index b6444aad2a..09c3b6a893 100644
--- a/lisp/diff-mode.el
+++ b/lisp/diff-mode.el
@@ -1,7 +1,7 @@
;;; diff-mode.el --- a mode for viewing/editing context diffs
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Stefan Monnier <monnier@cs.yale.edu>
;; Keywords: convenience patch diff
@@ -55,6 +55,8 @@
(eval-when-compile (require 'cl))
+(defvar add-log-buffer-file-name-function)
+
(defgroup diff-mode ()
"Major mode for viewing/editing diffs."
@@ -197,7 +199,7 @@ when editing big diffs)."
(((class color) (min-colors 88) (background dark))
:background "grey60" :weight bold)
(((class color) (background light))
- :foreground "yellow" :weight bold)
+ :foreground "green" :weight bold)
(((class color) (background dark))
:foreground "cyan" :weight bold)
(t :weight bold)) ; :height 1.3
@@ -250,6 +252,27 @@ when editing big diffs)."
(put 'diff-changed-face 'face-alias 'diff-changed)
(defvar diff-changed-face 'diff-changed)
+(defface diff-indicator-removed
+ '((t :inherit diff-removed))
+ "`diff-mode' face used to highlight indicator of removed lines (-, <)."
+ :group 'diff-mode
+ :version "22.1")
+(defvar diff-indicator-removed-face 'diff-indicator-removed)
+
+(defface diff-indicator-added
+ '((t :inherit diff-added))
+ "`diff-mode' face used to highlight indicator of added lines (+, >)."
+ :group 'diff-mode
+ :version "22.1")
+(defvar diff-indicator-added-face 'diff-indicator-added)
+
+(defface diff-indicator-changed
+ '((t :inherit diff-changed))
+ "`diff-mode' face used to highlight indicator of changed lines."
+ :group 'diff-mode
+ :version "22.1")
+(defvar diff-indicator-changed-face 'diff-indicator-changed)
+
(defface diff-function
'((t :inherit diff-context))
"`diff-mode' face used to highlight function names produced by \"diff -p\"."
@@ -259,7 +282,7 @@ when editing big diffs)."
(defvar diff-function-face 'diff-function)
(defface diff-context
- '((t :inherit shadow))
+ '((((class color grayscale) (min-colors 88)) :inherit shadow))
"`diff-mode' face used to highlight context and other side-information."
:group 'diff-mode)
;; backward-compatibility alias
@@ -298,24 +321,29 @@ when editing big diffs)."
(defvar diff-font-lock-keywords
- `(("^\\(@@ -[0-9,]+ \\+[0-9,]+ @@\\)\\(.*\\)$" ;unified
- (1 diff-hunk-header-face)
- (2 diff-function-face))
- ("^--- .+ ----$" . diff-hunk-header-face) ;context
- ("^\\(\\*\\{15\\}\\)\\(.*\\)$" ;context
- (1 diff-hunk-header-face)
- (2 diff-function-face))
+ `(("^\\(@@ -[0-9,]+ \\+[0-9,]+ @@\\)\\(.*\\)$" ;unified
+ (1 diff-hunk-header-face) (2 diff-function-face))
+ ("^\\(\\*\\{15\\}\\)\\(.*\\)$" ;context
+ (1 diff-hunk-header-face) (2 diff-function-face))
("^\\*\\*\\* .+ \\*\\*\\*\\*". diff-hunk-header-face) ;context
+ ("^--- .+ ----$" . diff-hunk-header-face) ;context
+ ("^[0-9,]+[acd][0-9,]+$" . diff-hunk-header-face) ;normal
+ ("^---$" . diff-hunk-header-face) ;normal
("^\\(---\\|\\+\\+\\+\\|\\*\\*\\*\\) \\(\\S-+\\)\\(.*[^*-]\\)?\n"
(0 diff-header-face) (2 diff-file-header-face prepend))
- ("^[0-9,]+[acd][0-9,]+$" . diff-hunk-header-face)
- ("^!.*\n" (0 diff-changed-face))
- ("^[+>].*\n" (0 diff-added-face))
- ("^[-<].*\n" (0 diff-removed-face))
- ("^Index: \\(.+\\).*\n" (0 diff-header-face) (1 diff-index-face prepend))
+ ("^\\([-<]\\)\\(.*\n\\)"
+ (1 diff-indicator-removed-face) (2 diff-removed-face))
+ ("^\\([+>]\\)\\(.*\n\\)"
+ (1 diff-indicator-added-face) (2 diff-added-face))
+ ("^\\(!\\)\\(.*\n\\)"
+ (1 diff-indicator-changed-face) (2 diff-changed-face))
+ ("^Index: \\(.+\\).*\n"
+ (0 diff-header-face) (1 diff-index-face prepend))
("^Only in .*\n" . diff-nonexistent-face)
- ("^#.*" . font-lock-string-face)
- ("^[^-=+*!<>].*\n" (0 diff-context-face))))
+ ("^\\(#\\)\\(.*\\)"
+ (1 font-lock-comment-delimiter-face)
+ (2 font-lock-comment-face))
+ ("^[^-=+*!<>#].*\n" (0 diff-context-face))))
(defconst diff-font-lock-defaults
'(diff-font-lock-keywords t nil nil nil (font-lock-multiline . nil)))
diff --git a/lisp/diff.el b/lisp/diff.el
index bee7277af7..7602ecb0e3 100644
--- a/lisp/diff.el
+++ b/lisp/diff.el
@@ -1,6 +1,7 @@
;;; diff.el --- run `diff' in compilation-mode
-;; Copyright (C) 1992, 1994, 1996, 2001, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1994, 1996, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: unix, tools
diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
index c9d5c22ded..0d3f6fe125 100644
--- a/lisp/dired-aux.el
+++ b/lisp/dired-aux.el
@@ -1,7 +1,7 @@
;;; dired-aux.el --- less commonly used parts of dired -*-byte-compile-dynamic: t;-*-
-;; Copyright (C) 1985, 1986, 1992, 1994, 1998, 2000, 2001, 2004
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1992, 1994, 1998, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Sebastian Kremer <sk@thp.uni-koeln.de>.
;; Maintainer: FSF
@@ -126,16 +126,21 @@ Examples of PREDICATE:
(let* ((dir1 (dired-current-directory))
(file-alist1 (dired-files-attributes dir1))
(file-alist2 (dired-files-attributes dir2))
- (file-list1 (mapcar
+ file-list1 file-list2)
+ (setq file-alist1 (delq (assoc "." file-alist1) file-alist1))
+ (setq file-alist1 (delq (assoc ".." file-alist1) file-alist1))
+ (setq file-alist2 (delq (assoc "." file-alist2) file-alist2))
+ (setq file-alist2 (delq (assoc ".." file-alist2) file-alist2))
+ (setq file-list1 (mapcar
'cadr
(dired-file-set-difference
file-alist1 file-alist2
- predicate)))
- (file-list2 (mapcar
+ predicate))
+ file-list2 (mapcar
'cadr
(dired-file-set-difference
file-alist2 file-alist1
- predicate))))
+ predicate)))
(dired-fun-in-all-buffers
dir1 nil
(lambda ()
@@ -2203,7 +2208,10 @@ Third arg DELIMITED (prefix arg) means replace only word-delimited matches.
If you exit (\\[keyboard-quit], RET or q), you can resume the query replace
with the command \\[tags-loop-continue]."
(interactive
- "sQuery replace in marked files (regexp): \nsQuery replace %s by: \nP")
+ (let ((common
+ (query-replace-read-args
+ "Query replace regexp in marked files" t t)))
+ (list (nth 0 common) (nth 1 common) (nth 2 common))))
(dolist (file (dired-get-marked-files nil nil 'dired-nondirectory-p))
(let ((buffer (get-file-buffer file)))
(if (and buffer (with-current-buffer buffer
diff --git a/lisp/dired-x.el b/lisp/dired-x.el
index 42df15b47d..8ce5e5d48d 100644
--- a/lisp/dired-x.el
+++ b/lisp/dired-x.el
@@ -7,7 +7,8 @@
;; Date: 1994/08/18 19:27:42
;; Keywords: dired extensions files
-;; Copyright (C) 1993, 1994, 1997, 2001, 2003, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 1997, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
@@ -110,6 +111,8 @@
(require 'dired-aux)
+(defvar vm-folder-directory)
+
;;; User-defined variables.
(defgroup dired-x nil
@@ -157,7 +160,7 @@ Read-only folders only work in VM 5, not in VM 4."
(define-minor-mode dired-omit-mode
"Toggle Dired-Omit mode.
With numeric ARG, enable Dired-Omit mode if ARG is positive, disable
-otherwise. Enabling and disabling is buffer-local.
+otherwise. Enabling and disabling is buffer-local.
If enabled, \"uninteresting\" files are not listed.
Uninteresting files are those whose filenames match regexp `dired-omit-files',
plus those ending with extensions in `dired-omit-extensions'."
@@ -185,7 +188,7 @@ files and lock files."
If nil, Dired finds the directory as a subdirectory in some other buffer
if it is present as one.
-If there are several Dired buffers for a directory, the most recently
+If there are several dired buffers for a directory, the most recently
used is chosen.
Dired avoids switching to the current buffer, so that if you have
@@ -201,7 +204,7 @@ If nil, there is no maximum size."
:group 'dired-x)
(defcustom dired-enable-local-variables t
- "*Control use of local-variables lists in dired.
+ "*Control use of local-variables lists in Dired.
The value can be t, nil or something else.
A value of t means local-variables lists are obeyed;
nil means they are ignored; anything else means query.
@@ -232,7 +235,7 @@ to nil: a pipe using `zcat' or `gunzip -c' will be used."
:group 'dired-x)
(defcustom dired-clean-up-buffers-too t
- "*Non-nil means offer to kill buffers visiting files and dirs deleted in dired."
+ "*Non-nil means offer to kill buffers visiting files and dirs deleted in Dired."
:type 'boolean
:group 'dired-x)
@@ -271,7 +274,7 @@ to nil: a pipe using `zcat' or `gunzip -c' will be used."
(add-hook 'dired-after-readin-hook 'dired-omit-expunge)
(defun dired-extra-startup ()
- "Automatically put on `dired-mode-hook' to get extra dired features:
+ "Automatically put on `dired-mode-hook' to get extra Dired features:
\\<dired-mode-map>
\\[dired-do-run-mail]\t-- run mail on folder (see `dired-bind-vm')
\\[dired-info]\t-- run info on file
@@ -279,8 +282,8 @@ to nil: a pipe using `zcat' or `gunzip -c' will be used."
\\[dired-do-find-marked-files]\t-- visit all marked files simultaneously
\\[dired-omit-mode]\t-- toggle omitting of files
\\[dired-mark-sexp]\t-- mark by Lisp expression
- \\[dired-copy-filename-as-kill]\t-- copy the file or subdir names into the kill ring.
- \t You can feed it to other commands using \\[yank].
+ \\[dired-copy-filename-as-kill]\t-- copy the file or subdir names into the kill ring;
+ \t you can feed it to other commands using \\[yank]
For more features, see variables
@@ -357,7 +360,7 @@ Remove expanded subdir of deleted dir, if any."
;;; Mark files with some extension.
(defun dired-mark-extension (extension &optional marker-char)
"Mark all files with a certain EXTENSION for use in later commands.
-A `.' is not automatically prepended to the string entered."
+A `.' is *not* automatically prepended to the string entered."
;; EXTENSION may also be a list of extensions instead of a single one.
;; Optional MARKER-CHAR is marker to use.
(interactive "sMarking extension: \nP")
@@ -434,7 +437,7 @@ See variables `dired-texinfo-unclean-extensions',
(defun dired-jump (&optional other-window)
"Jump to dired buffer corresponding to current buffer.
If in a file, dired the current directory and move to file's line.
-If in dired already, pop up a level and goto old directory's line.
+If in Dired already, pop up a level and goto old directory's line.
In case the proper dired file line cannot be found, refresh the dired
buffer and try again."
(interactive "P")
@@ -465,7 +468,7 @@ buffer and try again."
(dired-goto-file file))))))))
(defun dired-jump-other-window ()
- "Like \\[dired-jump] (dired-jump) but in other window."
+ "Like \\[dired-jump] (`dired-jump') but in other window."
(interactive)
(dired-jump t))
@@ -478,13 +481,13 @@ buffer and try again."
;; sk 28-Aug-1991 09:37
(defvar dired-omit-localp 'no-dir
"The LOCALP argument `dired-omit-expunge' passes to `dired-get-filename'.
-If it is 'no-dir, omitting is much faster, but you can only match
+If it is `no-dir', omitting is much faster, but you can only match
against the non-directory part of the file name. Set it to nil if you
need to match the entire file name.")
;; \017=^O for Omit - other packages can chose other control characters.
(defvar dired-omit-marker-char ?\017
- "Temporary marker used by by dired-omit.
+ "Temporary marker used by dired-omit.
Should never be used as marker by the user or other packages.")
(defun dired-omit-startup ()
@@ -569,9 +572,9 @@ This functions works by temporarily binding `dired-marker-char' to
REGEXP is matched against the entire file name.
Does not re-mark files which already have a mark.
With prefix argument, unflag all those files.
-Second optional argument LOCALP is as in `dired-get-filename'."
+Optional fourth argument LOCALP is as in `dired-get-filename'."
(interactive "P")
- (let ((dired-marker-char (if unflag-p ?\ dired-marker-char)))
+ (let ((dired-marker-char (if unflag-p ?\s dired-marker-char)))
(dired-mark-if
(and
;; not already marked
@@ -621,7 +624,7 @@ Second optional argument LOCALP is as in `dired-get-filename'."
;;; For browsing `ls -lR' listings in a dired-like fashion.
-(fset 'virtual-dired 'dired-virtual)
+(defalias 'virtual-dired 'dired-virtual)
(defun dired-virtual (dirname &optional switches)
"Put this buffer into Virtual Dired mode.
@@ -638,10 +641,10 @@ buffer.
If you have save a Dired buffer in a file you can use \\[dired-virtual] to
resume it in a later session.
-Type \\<dired-mode-map>\\[revert-buffer] in the
-Virtual Dired buffer and answer `y' to convert the virtual to a real
-dired buffer again. You don't have to do this, though: you can relist
-single subdirs using \\[dired-do-redisplay]."
+Type \\<dired-mode-map>\\[revert-buffer] \
+in the Virtual Dired buffer and answer `y' to convert
+the virtual to a real dired buffer again. You don't have to do this, though:
+you can relist single subdirs using \\[dired-do-redisplay]."
;; DIRNAME is the top level directory of the buffer. It will become
;; its `default-directory'. If nil, the old value of
@@ -725,12 +728,12 @@ nil."
;; `buffer-contents-mode-alist'.
;; Or you use infer-mode.el and infer-mode-alist, same syntax.
(defun dired-virtual-mode ()
- "Put current buffer into virtual dired mode (see `dired-virtual').
+ "Put current buffer into Virtual Dired mode (see `dired-virtual').
Useful on `buffer-contents-mode-alist' (which see) with the regexp
\"^ \\(/[^ /]+\\)/?+:$\"
-to put saved dired buffers automatically into virtual dired mode.
+to put saved dired buffers automatically into Virtual Dired mode.
Also useful for `auto-mode-alist' (which see) like this:
@@ -768,7 +771,7 @@ Knows about the special cases in variable `default-directory-alist'."
default-directory))
(defun dired-smart-shell-command (cmd &optional insert)
- "Like function `shell-command', but in the current Tree Dired directory."
+ "Like function `shell-command', but in the current Virtual Dired directory."
(interactive (list (read-from-minibuffer "Shell command: "
nil nil nil 'shell-command-history)
current-prefix-arg))
@@ -800,8 +803,9 @@ Knows about the special cases in variable `default-directory-alist'."
(defvar dired-local-variables-file (convert-standard-filename ".dired")
"Filename, as string, containing local dired buffer variables to be hacked.
If this file found in current directory, then it will be inserted into dired
-buffer and `hack-local-variables' will be run. See Emacs Info pages for more
-information on local variables. See also `dired-enable-local-variables'.")
+buffer and `hack-local-variables' will be run. See Info node
+`(emacs)File Variables' for more information on local variables.
+See also `dired-enable-local-variables'.")
(defun dired-hack-local-variables ()
"Evaluate local variables in `dired-local-variables-file' for dired buffer."
@@ -828,7 +832,7 @@ information on local variables. See also `dired-enable-local-variables'.")
(defun dired-omit-here-always ()
"Create `dired-local-variables-file' for omitting and reverts directory.
-Sets dired-omit-file-p to t in a local variables file that is readable by
+Sets `dired-omit-mode' to t in a local variables file that is readable by
dired."
(interactive)
(if (file-exists-p dired-local-variables-file)
@@ -1024,7 +1028,7 @@ Each element of this list looks like
\(REGEXP COMMAND...\)
-where each COMMAND can either be a string or a lisp expression that evaluates
+where each COMMAND can either be a string or a Lisp expression that evaluates
to a string. If several COMMANDs are given, the first one will be the default
and the rest will be added temporarily to the history and can be retrieved
with \\[previous-history-element] (M-p) .
@@ -1223,14 +1227,14 @@ not absolute ones like
(dired-do-create-files 'relsymlink (function dired-make-relative-symlink)
"RelSymLink" arg dired-keep-marker-relsymlink))
-(defun dired-do-relsymlink-regexp (regexp newname &optional whole-name)
+(defun dired-do-relsymlink-regexp (regexp newname &optional arg whole-name)
"RelSymlink all marked files containing REGEXP to NEWNAME.
See functions `dired-do-rename-regexp' and `dired-do-relsymlink'
for more info."
(interactive (dired-mark-read-regexp "RelSymLink"))
(dired-do-create-files-regexp
(function dired-make-relative-symlink)
- "RelSymLink" nil regexp newname whole-name dired-keep-marker-relsymlink))
+ "RelSymLink" arg regexp newname whole-name dired-keep-marker-relsymlink))
;;; VISIT ALL MARKED FILES SIMULTANEOUSLY.
@@ -1321,7 +1325,7 @@ NOSELECT the files are merely found but not selected."
(defun dired-man ()
"Run man on this file. Display old buffer if buffer name matches filename.
-Uses ../lisp/man.el of \\[manual-entry] fame."
+Uses `man.el' of \\[manual-entry] fame."
(interactive)
(require 'man)
(let* ((file (dired-get-filename))
@@ -1441,7 +1445,7 @@ See also variable `dired-vm-read-only-folders'."
(defun dired-initial-position (dirname)
"Where point should go in a new listing of DIRNAME.
Point assumed at beginning of new subdir line.
-You may redefine this function as you wish, e.g. like in dired-x.el."
+You may redefine this function as you wish, e.g. like in `dired-x.el'."
(end-of-line)
(if dired-find-subdir (dired-goto-subdir dirname)) ; new
(if dired-trivial-filenames (dired-goto-next-nontrivial-file)))
@@ -1550,7 +1554,7 @@ to mark all zero length files."
(defvar dired-x-hands-off-my-keys t
"*Non-nil means don't bind `dired-x-find-file' over `find-file' on keyboard.
Similarly for `dired-x-find-file-other-window' over `find-file-other-window'.
-If you change this variable after dired-x.el is loaded then do
+If you change this variable after `dired-x.el' is loaded then do
\\[dired-x-bind-find-file].")
;;; Bind `dired-x-find-file{-other-window}' over wherever
@@ -1559,7 +1563,7 @@ If you change this variable after dired-x.el is loaded then do
"Bind `dired-x-find-file' in place of `find-file' \(or reverse\).
Similarly for `dired-x-find-file-other-window' and `find-file-other-window'.
Binding direction based on `dired-x-hands-off-my-keys'.
-This function part of `after-init-hook'."
+This function is part of `after-init-hook'."
(interactive)
(if (interactive-p)
(setq dired-x-hands-off-my-keys
@@ -1592,9 +1596,9 @@ May create a new window, or reuse an existing one.
See the function `display-buffer'.
Identical to `find-file' except when called interactively, with a prefix arg
-\(e.g., \\[universal-argument]\), in which case it guesses filename near
-point. Useful for editing file mentioned in buffer you are viewing, or to
-test if that file exists. Use minibuffer after snatching filename."
+\(e.g., \\[universal-argument]\), in which case it guesses filename near point.
+Useful for editing file mentioned in buffer you are viewing,
+or to test if that file exists. Use minibuffer after snatching filename."
(interactive (list (read-filename-at-point "Find file: ")))
(find-file (expand-file-name filename)))
@@ -1604,9 +1608,9 @@ May create a new window, or reuse an existing one.
See the function `display-buffer'.
Identical to `find-file-other-window' except when called interactively, with a
-prefix arg \(e.g., \\[universal-argument]\), in which case it guesses filename
-near point. Useful for editing file mentioned in buffer you are viewing, or
-to test if that file exists. Use minibuffer after snatching filename."
+prefix arg \(e.g., \\[universal-argument]\), in which case it guesses filename near point.
+Useful for editing file mentioned in buffer you are viewing,
+or to test if that file exists. Use minibuffer after snatching filename."
(interactive (list (read-filename-at-point "Find file: ")))
(find-file-other-window (expand-file-name filename)))
@@ -1695,7 +1699,7 @@ If `current-prefix-arg' is non-nil, uses name at point as guess."
"List of variables to be appended to reports sent by `dired-x-submit-report'.")
(defun dired-x-submit-report ()
- "Submit via reporter.el a bug report on program.
+ "Submit via `reporter.el' a bug report on program.
Send report on `dired-x-file' version `dired-x-version,' to
`dired-x-maintainer' at address `dired-x-help-address' listing
variables `dired-x-variable-list' in the message."
diff --git a/lisp/dired.el b/lisp/dired.el
index a2d1cf957a..e06e808e1a 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -1,7 +1,7 @@
;;; dired.el --- directory-browsing commands
;; Copyright (C) 1985, 1986, 1992, 1993, 1994, 1995, 1996, 1997, 2000,
-;; 2001, 2003, 2004 Free Software Foundation, Inc.
+;; 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Sebastian Kremer <sk@thp.uni-koeln.de>
;; Maintainer: FSF
@@ -50,13 +50,13 @@
;;;###autoload
(defcustom dired-listing-switches "-al"
- "*Switches passed to `ls' for dired. MUST contain the `l' option.
+ "*Switches passed to `ls' for Dired. MUST contain the `l' option.
May contain all other options that don't contradict `-l';
may contain even `F', `b', `i' and `s'. See also the variable
`dired-ls-F-marks-symlinks' concerning the `F' switch.
On systems such as MS-DOS and MS-Windows, which use `ls' emulation in Lisp,
some of the `ls' switches are not supported; see the doc string of
-`insert-directory' on ls-lisp.el for more details."
+`insert-directory' on `ls-lisp.el' for more details."
:type 'string
:group 'dired)
@@ -88,7 +88,7 @@ If nil, `dired-listing-switches' is used.")
;;;###autoload
(defcustom dired-ls-F-marks-symlinks nil
- "*Informs dired about how `ls -lF' marks symbolic links.
+ "*Informs Dired about how `ls -lF' marks symbolic links.
Set this to t if `ls' (or whatever program is specified by
`insert-directory-program') with `-lF' marks the symbolic link
itself with a trailing @ (usually the case under Ultrix).
@@ -153,7 +153,7 @@ If a character, new links are unconditionally marked with that character."
;;;###autoload
(defcustom dired-dwim-target nil
- "*If non-nil, dired tries to guess a default target directory.
+ "*If non-nil, Dired tries to guess a default target directory.
This means: if there is a dired buffer displayed in the next window,
use its current subdir, instead of the current subdir of this dired buffer.
@@ -176,13 +176,13 @@ The target is used in the prompt for file copy, rename etc."
;;; Hook variables
(defcustom dired-load-hook nil
- "Run after loading dired.
+ "Run after loading Dired.
You can customize key bindings or load extensions with this."
:group 'dired
:type 'hook)
(defcustom dired-mode-hook nil
- "Run at the very end of dired-mode."
+ "Run at the very end of `dired-mode'."
:group 'dired
:type 'hook)
@@ -224,13 +224,12 @@ as in other buffers."
;; concentric sets or an order for the marked files.
;; The code depends on dynamic scoping on the marker char.
"In Dired, the current mark character.
-This is what the `do' commands look for and what the `mark' commands store.")
+This is what the do-commands look for, and what the mark-commands store.")
(defvar dired-del-marker ?D
"Character used to flag files for deletion.")
-(defvar dired-shrink-to-fit
- t
+(defvar dired-shrink-to-fit t
;; I see no reason ever to make this nil -- rms.
;; (> baud-rate search-slow-speed)
"Non-nil means Dired shrinks the display buffer to fit the marked files.")
@@ -241,7 +240,7 @@ This is what the `do' commands look for and what the `mark' commands store.")
;;;###autoload
(defvar dired-directory nil
- "The directory name or wildcard spec that this Dired directory lists.
+ "The directory name or wildcard spec that this dired directory lists.
Local to each dired buffer. May be a list, in which case the car is the
directory name and the cdr is the list of files to mention.
The directory name must be absolute, but need not be fully expanded.")
@@ -295,7 +294,7 @@ of the line (\\n or \\r).
Subexpression 2 must end right before the \\n or \\r.")
(defgroup dired-faces nil
- "Faces used by dired."
+ "Faces used by Dired."
:group 'dired
:group 'faces)
@@ -598,7 +597,7 @@ list of files to make directory entries for.
You can move around in it with the usual commands.
You can flag files for deletion with \\[dired-flag-file-deletion] and then
delete them by typing \\[dired-do-flagged-delete].
-Type \\[describe-mode] after entering dired for more info.
+Type \\[describe-mode] after entering Dired for more info.
If DIRNAME is already in a dired buffer, that buffer is used without refresh."
;; Cannot use (interactive "D") because of wildcards.
@@ -911,7 +910,7 @@ BEG..END is the line where the file info is located."
(move-to-column curcol)
(when (looking-at
(concat
- (if (eq (char-before) ?\ ) " *" "[^ ]* *")
+ (if (eq (char-before) ?\s) " *" "[^ ]* *")
(if num-align "[0-9][^ ]*")))
(- (match-end 0) (match-beginning 0)))))
;; Now, the number of spaces to insert is align-pt-offset
@@ -1020,7 +1019,7 @@ If HDR is non-nil, insert a header line with the directory name."
(defun dired-revert (&optional arg noconfirm)
"Reread the dired buffer.
-Must also be called after dired-actual-switches have changed.
+Must also be called after `dired-actual-switches' have changed.
Should not fail even on completely garbaged buffers.
Preserves old cursor, marks/flags, hidden-p."
(widen) ; just in case user narrowed
@@ -1470,6 +1469,8 @@ Do so according to the former subdir alist OLD-SUBDIR-ALIST."
;; Dired mode is suitable only for specially formatted data.
(put 'dired-mode 'mode-class 'special)
+;; Autoload cookie needed by desktop.el
+;;;###autoload
(defun dired-mode (&optional dirname switches)
"\
Mode for \"editing\" directory listings.
@@ -1500,12 +1501,12 @@ Type \\[dired-find-file-other-window] to find file or dired directory in Other w
Type \\[dired-maybe-insert-subdir] to Insert a subdirectory in this buffer.
Type \\[dired-do-rename] to Rename a file or move the marked files to another directory.
Type \\[dired-do-copy] to Copy files.
-Type \\[dired-sort-toggle-or-edit] to toggle sorting by name/date or change the `ls' switches.
-Type \\[revert-buffer] to read all currently expanded directories again.
+Type \\[dired-sort-toggle-or-edit] to toggle Sorting by name/date or change the `ls' switches.
+Type \\[revert-buffer] to read all currently expanded directories aGain.
This retains all marks and hides subdirs again that were hidden before.
SPC and DEL can be used to move down and up by lines.
-If dired ever gets confused, you can either type \\[revert-buffer] \
+If Dired ever gets confused, you can either type \\[revert-buffer] \
to read the
directories again, type \\[dired-do-redisplay] \
to relist a single or the marked files or a
@@ -1575,7 +1576,7 @@ Keybindings:
;; Idiosyncratic dired commands that don't deal with marks.
(defun dired-summary ()
- "Summarize basic Dired commands and show recent Dired errors."
+ "Summarize basic Dired commands and show recent dired errors."
(interactive)
(dired-why)
;>> this should check the key-bindings and use substitute-command-keys if non-standard
@@ -1590,7 +1591,7 @@ You can use it to recover marks, killed lines or subdirs."
(let (buffer-read-only)
(undo))
(dired-build-subdir-alist)
- (message "Change in Dired buffer undone.
+ (message "Change in dired buffer undone.
Actual changes in files cannot be undone by Emacs."))
(defun dired-next-line (arg)
@@ -1654,7 +1655,7 @@ Creates a buffer if necessary."
file-name
(if (file-symlink-p file-name)
(error "File is a symlink to a nonexistent target")
- (error "File no longer exists; type `g' to update Dired buffer")))))
+ (error "File no longer exists; type `g' to update dired buffer")))))
;; Force `f' rather than `e' in the mode doc:
(defalias 'dired-advertised-find-file 'dired-find-file)
@@ -1696,7 +1697,7 @@ Creates a buffer if necessary."
(find-file-other-window (file-name-sans-versions file t)))))
(defun dired-view-file ()
- "In Dired, examine a file in view mode, returning to dired when done.
+ "In Dired, examine a file in view mode, returning to Dired when done.
When file is a directory, show it in this buffer if it is inserted.
Otherwise, display it in another buffer."
(interactive)
@@ -1859,19 +1860,22 @@ DIR must be a directory name, not a file name."
(western-comma (concat month s "+" dd "," s "+" yyyy))
;; Japanese MS-Windows ls-lisp has one-digit months, and
;; omits the Kanji characters after month and day-of-month.
+ ;; On Mac OS X 10.3, the date format in East Asian locales is
+ ;; day-of-month digits followed by month digits.
(mm "[ 0-1]?[0-9]")
- (japanese
- (concat mm l "?" s dd l "?" s "+"
+ (east-asian
+ (concat "\\(" mm l "?" s dd l "?" s "+"
+ "\\|" dd s mm s "+" "\\)"
"\\(" HH:MM "\\|" yyyy l "?" "\\)")))
;; The "[0-9]" below requires the previous column to end in a digit.
;; This avoids recognizing `1 may 1997' as a date in the line:
;; -r--r--r-- 1 may 1997 1168 Oct 19 16:49 README
- ;; The "[kKMGTPEZY]?" below supports "ls -alh" output.
+ ;; The "[BkKMGTPEZY]?" below supports "ls -alh" output.
;; The ".*" below finds the last match if there are multiple matches.
;; This avoids recognizing `jservice 10 1024' as a date in the line:
;; drwxr-xr-x 3 jservice 10 1024 Jul 2 1997 esg-host
- (concat ".*[0-9][kKMGTPEZY]?" s
- "\\(" western "\\|" western-comma "\\|" japanese "\\|" iso "\\)"
+ (concat ".*[0-9][BkKMGTPEZY]?" s
+ "\\(" western "\\|" western-comma "\\|" east-asian "\\|" iso "\\)"
s "+"))
"Regular expression to match up to the file name in a directory listing.
The default value is designed to recognize dates and times
@@ -1952,11 +1956,11 @@ Return the position of the beginning of the filename, or nil if none found."
(eq (preceding-char) ?@) ;; did ls really mark the link?
(forward-char -1))))
(goto-char eol) ;; else not a symbolic link
- ;; ls -lF marks dirs, sockets and executables with exactly one
- ;; trailing character. (Executable bits on symlinks ain't mean
+ ;; ls -lF marks dirs, sockets, fifos and executables with exactly
+ ;; one trailing character. (Executable bits on symlinks ain't mean
;; a thing, even to ls, but we know it's not a symlink.)
(and used-F
- (or (memq file-type '(?d ?s))
+ (or (memq file-type '(?d ?s ?p))
executable)
(forward-char -1))))
(or no-error
@@ -1976,7 +1980,7 @@ Return the position of the beginning of the filename, or nil if none found."
"Copy names of marked (or next ARG) files into the kill ring.
The names are separated by a space.
With a zero prefix arg, use the absolute file name of each marked file.
-With \\[universal-argument], use the file name relative to the Dired buffer's
+With \\[universal-argument], use the file name relative to the dired buffer's
`default-directory'. (This still may contain slashes if in a subdirectory.)
If on a subdir headerline, use absolute subdirname instead;
@@ -2361,7 +2365,7 @@ Anything else means ask for each directory."
(defun dired-delete-file (file &optional recursive) "\
Delete FILE or directory (possibly recursively if optional RECURSIVE is true.)
RECURSIVE determines what to do with a non-empty directory. If RECURSIVE is:
-Nil, do not delete.
+nil, do not delete.
`always', delete recursively without asking.
`top', ask for each directory at top level.
Anything else, ask for each sub-directory."
@@ -2554,7 +2558,7 @@ if there are no flagged files."
)))
(defvar dired-no-confirm nil
- "A list of symbols for commands dired should not confirm.
+ "A list of symbols for commands Dired should not confirm.
Command symbols are `byte-compile', `chgrp', `chmod', `chown', `compress',
`copy', `delete', `hardlink', `load', `move', `print', `shell', `symlink',
`touch' and `uncompress'.")
@@ -2891,7 +2895,7 @@ A prefix argument says to unflag those files instead."
"Flag all backup files (names ending with `~') for deletion.
With prefix argument, unflag these files."
(interactive "P")
- (let ((dired-marker-char (if unflag-p ?\ dired-del-marker)))
+ (let ((dired-marker-char (if unflag-p ?\s dired-del-marker)))
(dired-mark-if
;; Don't call backup-file-name-p unless the last character looks like
;; it might be the end of a backup file name. This isn't very general,
@@ -2925,7 +2929,7 @@ OLD and NEW are both characters used to mark files."
(save-excursion
(goto-char (point-min))
(while (search-forward string nil t)
- (if (if (= old ?\ )
+ (if (if (= old ?\s)
(save-match-data
(dired-get-filename 'no-dir t))
t)
@@ -2933,7 +2937,7 @@ OLD and NEW are both characters used to mark files."
(match-end 0) old new)))))))
(defun dired-unmark-all-marks ()
- "Remove all marks from all files in the Dired buffer."
+ "Remove all marks from all files in the dired buffer."
(interactive)
(dired-unmark-all-files ?\r))
@@ -2961,7 +2965,7 @@ Type SPC or `y' to unmark one file, DEL or `n' to skip to next,
(dired-query 'query "Unmark file `%s'? "
file))))
(progn (subst-char-in-region (1- (point)) (point)
- (preceding-char) ?\ )
+ (preceding-char) ?\s)
(setq count (1+ count)))))
(message (if (= count 1) "1 mark removed"
"%d marks removed")
@@ -3004,7 +3008,7 @@ Thus, use \\[backward-page] to find the beginning of a group of errors."
(apply (function format) log args)
log)))
((bufferp log)
- (insert-buffer log))
+ (insert-buffer-substring log))
((eq t log)
(backward-page 1)
(unless (bolp)
@@ -3048,15 +3052,15 @@ format, use `\\[universal-argument] \\[dired]'.")
(defvar dired-sort-by-date-regexp
(concat "^-[^" dired-ls-sorting-switches
"]*t[^" dired-ls-sorting-switches "]*$")
- "Regexp recognized by dired to set `by date' mode.")
+ "Regexp recognized by Dired to set `by date' mode.")
(defvar dired-sort-by-name-regexp
(concat "^-[^t" dired-ls-sorting-switches "]+$")
- "Regexp recognized by dired to set `by name' mode.")
+ "Regexp recognized by Dired to set `by name' mode.")
(defvar dired-sort-inhibit nil
"Non-nil means the Dired sort command is disabled.
-The idea is to set this buffer-locally in special Dired buffers.")
+The idea is to set this buffer-locally in special dired buffers.")
(defun dired-sort-set-modeline ()
;; Set modeline display according to dired-actual-switches.
@@ -3078,7 +3082,7 @@ The idea is to set this buffer-locally in special Dired buffers.")
With a prefix argument you can edit the current listing switches instead."
(interactive "P")
(when dired-sort-inhibit
- (error "Cannot sort this Dired buffer"))
+ (error "Cannot sort this dired buffer"))
(if arg
(dired-sort-other
(read-string "ls switches (must contain -l): " dired-actual-switches))
@@ -3121,7 +3125,7 @@ With a prefix argument you can edit the current listing switches instead."
(concat result (substring string start))))
(defun dired-sort-other (switches &optional no-revert)
- "Specify new ls SWITCHES for current dired buffer.
+ "Specify new `ls' SWITCHES for current dired buffer.
Values matching `dired-sort-by-date-regexp' or `dired-sort-by-name-regexp'
set the minor mode accordingly, others appear literally in the mode line.
With optional second arg NO-REVERT, don't refresh the listing afterwards."
@@ -3262,7 +3266,7 @@ Ask means pop up a menu for the user to select one of copy, move or link."
;; Directory name followed by list of files.
(cons (desktop-file-name (car dired-directory) desktop-dirname)
(cdr dired-directory))
- ;; Directory name, optionally with with shell wildcard.
+ ;; Directory name, optionally with shell wildcard.
(desktop-file-name dired-directory desktop-dirname))
;; Subdirectories in `dired-subdir-alist'.
(cdr
@@ -3271,13 +3275,12 @@ Ask means pop up a menu for the user to select one of copy, move or link."
(function (lambda (f) (desktop-file-name (car f) desktop-dirname)))
dired-subdir-alist)))))
-;;;###autoload
(defun dired-restore-desktop-buffer (desktop-buffer-file-name
desktop-buffer-name
desktop-buffer-misc)
"Restore a dired buffer specified in a desktop file."
;; First element of `desktop-buffer-misc' is the value of `dired-directory'.
- ;; This value is a directory name, optionally with with shell wildcard or
+ ;; This value is a directory name, optionally with shell wildcard or
;; a directory name followed by list of files.
(let* ((dired-dir (car desktop-buffer-misc))
(dir (if (consp dired-dir) (car dired-dir) dired-dir)))
@@ -3292,6 +3295,9 @@ Ask means pop up a menu for the user to select one of copy, move or link."
(when desktop-missing-file-warning (sit-for 1))
nil)))
+(add-to-list 'desktop-buffer-mode-handlers
+ '(dired-mode . dired-restore-desktop-buffer))
+
(if (eq system-type 'vax-vms)
(load "dired-vms"))
diff --git a/lisp/dirtrack.el b/lisp/dirtrack.el
index 5ae76f9131..573803bfb9 100644
--- a/lisp/dirtrack.el
+++ b/lisp/dirtrack.el
@@ -1,6 +1,6 @@
;;; dirtrack.el --- Directory Tracking by watching the prompt
-;; Copyright (C) 1996 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Peter Breton <pbreton@cs.umb.edu>
;; Created: Sun Nov 17 1996
@@ -133,8 +133,8 @@
(defcustom dirtrack-list (list "^emacs \\([a-zA-Z]:.*\\)>" 1)
"*List for directory tracking.
First item is a regexp that describes where to find the path in a prompt.
-Second is a number, the regexp group to match. Optional third item is
-whether the prompt is multi-line. If nil or omitted, prompt is assumed to
+Second is a number, the regexp group to match. Optional third item is
+whether the prompt is multi-line. If nil or omitted, prompt is assumed to
be on a single line."
:group 'dirtrack
:type '(sexp (regexp :tag "Prompt Expression")
diff --git a/lisp/disp-table.el b/lisp/disp-table.el
index 0d0f4e4e09..8e5fa12bad 100644
--- a/lisp/disp-table.el
+++ b/lisp/disp-table.el
@@ -1,6 +1,7 @@
;;; disp-table.el --- functions for dealing with char tables
-;; Copyright (C) 1987, 94, 95, 1999, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1987, 1994, 1995, 1999, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Erik Naggum <erik@naggum.no>
;; Based on a previous version by Howard Gayle
diff --git a/lisp/dnd.el b/lisp/dnd.el
index 9a92555041..1092f4d087 100644
--- a/lisp/dnd.el
+++ b/lisp/dnd.el
@@ -1,7 +1,6 @@
;;; dnd.el --- drag and drop support.
-;; Copyright (C) 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 2005 Free Software Foundation, Inc.
;; Author: Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
;; Maintainer: FSF
diff --git a/lisp/dos-fns.el b/lisp/dos-fns.el
index 920625526e..bf25ce1f58 100644
--- a/lisp/dos-fns.el
+++ b/lisp/dos-fns.el
@@ -1,6 +1,7 @@
;;; dos-fns.el --- MS-Dos specific functions
-;; Copyright (C) 1991, 1993, 1995, 1996 Free Software Foundation, Inc.
+;; Copyright (C) 1991, 1993, 1995, 1996, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: Morten Welinder <terra@diku.dk>
;; Keywords: internal
diff --git a/lisp/dos-vars.el b/lisp/dos-vars.el
index 8fdff647be..1909e941c1 100644
--- a/lisp/dos-vars.el
+++ b/lisp/dos-vars.el
@@ -1,6 +1,6 @@
;;; dos-vars.el --- MS-Dos specific user options
-;; Copyright (C) 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: internal
diff --git a/lisp/dos-w32.el b/lisp/dos-w32.el
index 644b457393..697f6eb4d5 100644
--- a/lisp/dos-w32.el
+++ b/lisp/dos-w32.el
@@ -1,6 +1,6 @@
;; dos-w32.el --- Functions shared among MS-DOS and W32 (NT/95) platforms
-;; Copyright (C) 1996 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: Geoff Voelker <voelker@cs.washington.edu>
;; Keywords: internal
diff --git a/lisp/double.el b/lisp/double.el
index 01b004ed15..d112fbed3c 100644
--- a/lisp/double.el
+++ b/lisp/double.el
@@ -1,6 +1,7 @@
;;; double.el --- support for keyboard remapping with double clicking
-;; Copyright (C) 1994, 1997, 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1997, 1998, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
;; Keywords: i18n
diff --git a/lisp/ebuff-menu.el b/lisp/ebuff-menu.el
index 2a89d4ef65..2ee90192ea 100644
--- a/lisp/ebuff-menu.el
+++ b/lisp/ebuff-menu.el
@@ -1,6 +1,7 @@
;;; ebuff-menu.el --- electric-buffer-list mode
-;; Copyright (C) 1985, 1986, 1994 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1994, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Richard Mlynarik <mly@ai.mit.edu>
;; Maintainer: FSF
@@ -125,6 +126,8 @@ Run hooks in `electric-buffer-menu-mode-hook' on entry.
(recenter -1))))
(electric-buffer-update-highlight))
+(defvar Helper-return-blurb)
+
(put 'Electric-buffer-menu-mode 'mode-class 'special)
(defun Electric-buffer-menu-mode ()
"Major mode for editing a list of buffers.
diff --git a/lisp/echistory.el b/lisp/echistory.el
index e134b16ce6..3b4b8419bd 100644
--- a/lisp/echistory.el
+++ b/lisp/echistory.el
@@ -1,6 +1,6 @@
;;; echistory.el --- Electric Command History Mode
-;; Copyright (C) 1985 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: K. Shane Hartman
;; Maintainer: FSF
diff --git a/lisp/ediff-diff.el b/lisp/ediff-diff.el
index 659c4ffedb..0a3f6920e2 100644
--- a/lisp/ediff-diff.el
+++ b/lisp/ediff-diff.el
@@ -1,6 +1,7 @@
;;; ediff-diff.el --- diff-related utilities
-;; Copyright (C) 1994, 95, 96, 97, 98, 99, 2000, 01, 02 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+;; 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
@@ -30,6 +31,7 @@
;; compiler pacifier
(defvar ediff-default-variant)
(defvar null-device)
+(defvar longlines-mode)
(eval-when-compile
(let ((load-path (cons (expand-file-name ".") load-path)))
@@ -459,24 +461,46 @@ one optional arguments, diff-number to refine.")
c-prev c-end)
;; else convert lines to points
(ediff-with-current-buffer A-buffer
- (forward-line (- a-begin a-prev))
- (setq a-begin-pt (point))
- (forward-line (- a-end a-begin))
- (setq a-end-pt (point)
- a-prev a-end))
+ (let ((longlines-mode-val
+ (if (and (boundp 'longlines-mode) longlines-mode) 1 0)))
+ ;; we must disable and then restore longlines-mode
+ (if (eq longlines-mode-val 1)
+ (longlines-mode 0))
+ (forward-line (- a-begin a-prev))
+ (setq a-begin-pt (point))
+ (forward-line (- a-end a-begin))
+ (setq a-end-pt (point)
+ a-prev a-end)
+ (if (eq longlines-mode-val 1)
+ (longlines-mode longlines-mode-val))
+ ))
(ediff-with-current-buffer B-buffer
- (forward-line (- b-begin b-prev))
- (setq b-begin-pt (point))
- (forward-line (- b-end b-begin))
- (setq b-end-pt (point)
- b-prev b-end))
+ (let ((longlines-mode-val
+ (if (and (boundp 'longlines-mode) longlines-mode) 1 0)))
+ (if (eq longlines-mode-val 1)
+ (longlines-mode 0))
+ (forward-line (- b-begin b-prev))
+ (setq b-begin-pt (point))
+ (forward-line (- b-end b-begin))
+ (setq b-end-pt (point)
+ b-prev b-end)
+ (if (eq longlines-mode-val 1)
+ (longlines-mode longlines-mode-val))
+ ))
(if (ediff-buffer-live-p C-buffer)
(ediff-with-current-buffer C-buffer
- (forward-line (- c-begin c-prev))
- (setq c-begin-pt (point))
- (forward-line (- c-end c-begin))
- (setq c-end-pt (point)
- c-prev c-end)))
+ (let ((longlines-mode-val
+ (if (and (boundp 'longlines-mode) longlines-mode) 1 0)))
+ (if (eq longlines-mode-val 1)
+ (longlines-mode 0))
+ (forward-line (- c-begin c-prev))
+ (setq c-begin-pt (point))
+ (forward-line (- c-end c-begin))
+ (setq c-end-pt (point)
+ c-prev c-end)
+ (if (eq longlines-mode-val 1)
+ (longlines-mode longlines-mode-val))
+ )))
(setq diff-list
(nconc
diff-list
@@ -1060,30 +1084,59 @@ delimiter regions"))
c-prev c-end)
;; else convert lines to points
(ediff-with-current-buffer A-buffer
- (forward-line (- a-begin a-prev))
- (setq a-begin-pt (point))
- (forward-line (- a-end a-begin))
- (setq a-end-pt (point)
- a-prev a-end))
+ (let ((longlines-mode-val
+ (if (and (boundp 'longlines-mode) longlines-mode) 1 0)))
+ ;; we must disable and then restore longlines-mode
+ (if (eq longlines-mode-val 1)
+ (longlines-mode 0))
+ (forward-line (- a-begin a-prev))
+ (setq a-begin-pt (point))
+ (forward-line (- a-end a-begin))
+ (setq a-end-pt (point)
+ a-prev a-end)
+ (if (eq longlines-mode-val 1)
+ (longlines-mode longlines-mode-val))
+ ))
(ediff-with-current-buffer B-buffer
- (forward-line (- b-begin b-prev))
- (setq b-begin-pt (point))
- (forward-line (- b-end b-begin))
- (setq b-end-pt (point)
- b-prev b-end))
+ (let ((longlines-mode-val
+ (if (and (boundp 'longlines-mode) longlines-mode) 1 0)))
+ (if (eq longlines-mode-val 1)
+ (longlines-mode 0))
+ (forward-line (- b-begin b-prev))
+ (setq b-begin-pt (point))
+ (forward-line (- b-end b-begin))
+ (setq b-end-pt (point)
+ b-prev b-end)
+ (if (eq longlines-mode-val 1)
+ (longlines-mode longlines-mode-val))
+ ))
(ediff-with-current-buffer C-buffer
- (forward-line (- c-begin c-prev))
- (setq c-begin-pt (point))
- (forward-line (- c-end c-begin))
- (setq c-end-pt (point)
- c-prev c-end))
+ (let ((longlines-mode-val
+ (if (and (boundp 'longlines-mode) longlines-mode) 1 0)))
+ (if (eq longlines-mode-val 1)
+ (longlines-mode 0))
+ (forward-line (- c-begin c-prev))
+ (setq c-begin-pt (point))
+ (forward-line (- c-end c-begin))
+ (setq c-end-pt (point)
+ c-prev c-end)
+ (if (eq longlines-mode-val 1)
+ (longlines-mode longlines-mode-val))
+ ))
(if (ediff-buffer-live-p anc-buffer)
(ediff-with-current-buffer anc-buffer
- (forward-line (- c-or-anc-begin anc-prev))
- (setq anc-begin-pt (point))
- (forward-line (- c-or-anc-end c-or-anc-begin))
- (setq anc-end-pt (point)
- anc-prev c-or-anc-end)))
+ (let ((longlines-mode-val
+ (if (and (boundp 'longlines-mode) longlines-mode) 1 0)))
+ (if (eq longlines-mode-val 1)
+ (longlines-mode 0))
+ (forward-line (- c-or-anc-begin anc-prev))
+ (setq anc-begin-pt (point))
+ (forward-line (- c-or-anc-end c-or-anc-begin))
+ (setq anc-end-pt (point)
+ anc-prev c-or-anc-end)
+ (if (eq longlines-mode-val 1)
+ (longlines-mode longlines-mode-val))
+ )))
(setq diff-list
(nconc
diff-list
@@ -1425,6 +1478,5 @@ affects only files whose names match the expression."
;;; eval: (put 'ediff-with-current-buffer 'edebug-form-spec '(form body))
;;; End:
-
;;; arch-tag: a86d448e-58d7-4572-a1d9-fdedfa22f648
;;; ediff-diff.el ends here
diff --git a/lisp/ediff-help.el b/lisp/ediff-help.el
index 87056e3723..21fe85c415 100644
--- a/lisp/ediff-help.el
+++ b/lisp/ediff-help.el
@@ -1,6 +1,7 @@
;;; ediff-help.el --- Code related to the contents of Ediff help buffers
-;; Copyright (C) 1996, 97, 98, 99, 2000, 01, 02 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
diff --git a/lisp/ediff-hook.el b/lisp/ediff-hook.el
index 8d038a4d93..c0add7f8f8 100644
--- a/lisp/ediff-hook.el
+++ b/lisp/ediff-hook.el
@@ -1,6 +1,7 @@
;;; ediff-hook.el --- setup for Ediff's menus and autoloads
-;; Copyright (C) 1995, 96, 97, 98, 99, 2000, 01, 02 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
diff --git a/lisp/ediff-init.el b/lisp/ediff-init.el
index 18e1a7128f..5bffea1ec4 100644
--- a/lisp/ediff-init.el
+++ b/lisp/ediff-init.el
@@ -1,7 +1,7 @@
;;; ediff-init.el --- Macros, variables, and defsubsts used by Ediff
;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-;; 2004, 2005 Free Software Foundation, Inc.
+;; 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
@@ -559,24 +559,24 @@ See the documentation string of `ediff-focus-on-regexp-matches' for details.")
;; Highlighting
-(defcustom ediff-before-flag-bol (if ediff-xemacs-p (make-glyph "->>") "->>")
+(defcustom ediff-before-flag-bol (if (featurep 'xemacs) (make-glyph "->>") "->>")
"*Flag placed before a highlighted block of differences, if block starts at beginning of a line."
:type 'string
:tag "Region before-flag at beginning of line"
:group 'ediff)
-(defcustom ediff-after-flag-eol (if ediff-xemacs-p (make-glyph "<<-") "<<-")
+(defcustom ediff-after-flag-eol (if (featurep 'xemacs) (make-glyph "<<-") "<<-")
"*Flag placed after a highlighted block of differences, if block ends at end of a line."
:type 'string
:tag "Region after-flag at end of line"
:group 'ediff)
-(defcustom ediff-before-flag-mol (if ediff-xemacs-p (make-glyph "->>") "->>")
+(defcustom ediff-before-flag-mol (if (featurep 'xemacs) (make-glyph "->>") "->>")
"*Flag placed before a highlighted block of differences, if block starts in mid-line."
:type 'string
:tag "Region before-flag in the middle of line"
:group 'ediff)
-(defcustom ediff-after-flag-mol (if ediff-xemacs-p (make-glyph "<<-") "<<-")
+(defcustom ediff-after-flag-mol (if (featurep 'xemacs) (make-glyph "<<-") "<<-")
"*Flag placed after a highlighted block of differences, if block ends in mid-line."
:type 'string
:tag "Region after-flag in the middle of line"
@@ -854,10 +854,10 @@ to temp files when Ediff needs to find fine differences."
;; A-list of current-diff-face-* symbols associated with buf types
(defconst ediff-current-diff-face-alist
- '((A . ediff-current-diff-face-A)
- (B . ediff-current-diff-face-B)
- (C . ediff-current-diff-face-C)
- (Ancestor . ediff-current-diff-face-Ancestor)))
+ '((A . ediff-current-diff-A)
+ (B . ediff-current-diff-B)
+ (C . ediff-current-diff-C)
+ (Ancestor . ediff-current-diff-Ancestor)))
(defun ediff-set-overlay-face (extent face)
@@ -915,8 +915,6 @@ to temp files when Ediff needs to find fine differences."
(t (:inverse-video t))))
"Face for highlighting the selected difference in buffer A."
:group 'ediff-highlighting)
-;; backward-compatibility alias
-(put 'ediff-current-diff-face-A 'face-alias 'ediff-current-diff-A)
;; An internal variable. Ediff takes the face from here. When unhighlighting,
;; this variable is set to nil, then again to the appropriate face.
(defvar ediff-current-diff-face-A 'ediff-current-diff-A
@@ -924,13 +922,13 @@ to temp files when Ediff needs to find fine differences."
DO NOT CHANGE this variable. Instead, use the customization
widget to customize the actual face object `ediff-current-diff-A'
this variable represents.")
-(ediff-hide-face 'ediff-current-diff-A)
+(ediff-hide-face ediff-current-diff-face-A)
;; Until custom.el for XEmacs starts supporting :inverse-video we do this.
;; This means that some user customization may be trashed.
(if (and ediff-xemacs-p
(ediff-has-face-support-p)
(not (ediff-color-display-p)))
- (copy-face 'modeline 'ediff-current-diff-A))
+ (copy-face 'modeline ediff-current-diff-face-A))
@@ -948,8 +946,6 @@ this variable represents.")
(t (:inverse-video t))))
"Face for highlighting the selected difference in buffer B."
:group 'ediff-highlighting)
-;; backward-compatibility alias
-(put 'ediff-current-diff-face-B 'face-alias 'ediff-current-diff-B)
;; An internal variable. Ediff takes the face from here. When unhighlighting,
;; this variable is set to nil, then again to the appropriate face.
(defvar ediff-current-diff-face-B 'ediff-current-diff-B
@@ -957,13 +953,13 @@ this variable represents.")
this variable. Instead, use the customization
widget to customize the actual face `ediff-current-diff-B'
this variable represents.")
-(ediff-hide-face 'ediff-current-diff-B)
+(ediff-hide-face ediff-current-diff-face-B)
;; Until custom.el for XEmacs starts supporting :inverse-video we do this.
;; This means that some user customization may be trashed.
(if (and ediff-xemacs-p
(ediff-has-face-support-p)
(not (ediff-color-display-p)))
- (copy-face 'modeline 'ediff-current-diff-B))
+ (copy-face 'modeline ediff-current-diff-face-B))
(defface ediff-current-diff-C
@@ -978,8 +974,6 @@ this variable represents.")
(t (:inverse-video t))))
"Face for highlighting the selected difference in buffer C."
:group 'ediff-highlighting)
-;; backward-compatibility alias
-(put 'ediff-current-diff-face-C 'face-alias 'ediff-current-diff-C)
;; An internal variable. Ediff takes the face from here. When unhighlighting,
;; this variable is set to nil, then again to the appropriate face.
(defvar ediff-current-diff-face-C 'ediff-current-diff-C
@@ -987,13 +981,13 @@ this variable represents.")
DO NOT CHANGE this variable. Instead, use the customization
widget to customize the actual face object `ediff-current-diff-C'
this variable represents.")
-(ediff-hide-face 'ediff-current-diff-C)
+(ediff-hide-face ediff-current-diff-face-C)
;; Until custom.el for XEmacs starts supporting :inverse-video we do this.
;; This means that some user customization may be trashed.
(if (and ediff-xemacs-p
(ediff-has-face-support-p)
(not (ediff-color-display-p)))
- (copy-face 'modeline 'ediff-current-diff-C))
+ (copy-face 'modeline ediff-current-diff-face-C))
(defface ediff-current-diff-Ancestor
@@ -1008,8 +1002,6 @@ this variable represents.")
(t (:inverse-video t))))
"Face for highlighting the selected difference in buffer Ancestor."
:group 'ediff-highlighting)
-;; backward-compatibility alias
-(put 'ediff-current-diff-face-Ancestor 'face-alias 'ediff-current-diff-Ancestor)
;; An internal variable. Ediff takes the face from here. When unhighlighting,
;; this variable is set to nil, then again to the appropriate face.
(defvar ediff-current-diff-face-Ancestor 'ediff-current-diff-Ancestor
@@ -1017,13 +1009,13 @@ this variable represents.")
DO NOT CHANGE this variable. Instead, use the customization
widget to customize the actual face object `ediff-current-diff-Ancestor'
this variable represents.")
-(ediff-hide-face 'ediff-current-diff-Ancestor)
+(ediff-hide-face ediff-current-diff-face-Ancestor)
;; Until custom.el for XEmacs starts supporting :inverse-video we do this.
;; This means that some user customization may be trashed.
(if (and ediff-xemacs-p
(ediff-has-face-support-p)
(not (ediff-color-display-p)))
- (copy-face 'modeline 'ediff-current-diff-Ancestor))
+ (copy-face 'modeline ediff-current-diff-face-Ancestor))
(defface ediff-fine-diff-A
@@ -1038,8 +1030,6 @@ this variable represents.")
(t (:underline t :stipple "gray3"))))
"Face for highlighting the refinement of the selected diff in buffer A."
:group 'ediff-highlighting)
-;; backward-compatibility alias
-(put 'ediff-fine-diff-face-A 'face-alias 'ediff-fine-diff-A)
;; An internal variable. Ediff takes the face from here. When unhighlighting,
;; this variable is set to nil, then again to the appropriate face.
(defvar ediff-fine-diff-face-A 'ediff-fine-diff-A
@@ -1047,7 +1037,7 @@ this variable represents.")
DO NOT CHANGE this variable. Instead, use the customization
widget to customize the actual face object `ediff-fine-diff-A'
this variable represents.")
-(ediff-hide-face 'ediff-fine-diff-A)
+(ediff-hide-face ediff-fine-diff-face-A)
(defface ediff-fine-diff-B
(if ediff-emacs-p
@@ -1061,8 +1051,6 @@ this variable represents.")
(t (:underline t :stipple "gray3"))))
"Face for highlighting the refinement of the selected diff in buffer B."
:group 'ediff-highlighting)
-;; backward-compatibility alias
-(put 'ediff-fine-diff-face-B 'face-alias 'ediff-fine-diff-B)
;; An internal variable. Ediff takes the face from here. When unhighlighting,
;; this variable is set to nil, then again to the appropriate face.
(defvar ediff-fine-diff-face-B 'ediff-fine-diff-B
@@ -1070,7 +1058,7 @@ this variable represents.")
DO NOT CHANGE this variable. Instead, use the customization
widget to customize the actual face object `ediff-fine-diff-B'
this variable represents.")
-(ediff-hide-face 'ediff-fine-diff-B)
+(ediff-hide-face ediff-fine-diff-face-B)
(defface ediff-fine-diff-C
(if ediff-emacs-p
@@ -1089,8 +1077,6 @@ this variable represents.")
(t (:underline t :stipple "gray3"))))
"Face for highlighting the refinement of the selected diff in buffer C."
:group 'ediff-highlighting)
-;; backward-compatibility alias
-(put 'ediff-fine-diff-face-C 'face-alias 'ediff-fine-diff-C)
;; An internal variable. Ediff takes the face from here. When unhighlighting,
;; this variable is set to nil, then again to the appropriate face.
(defvar ediff-fine-diff-face-C 'ediff-fine-diff-C
@@ -1098,7 +1084,7 @@ this variable represents.")
DO NOT CHANGE this variable. Instead, use the customization
widget to customize the actual face object `ediff-fine-diff-C'
this variable represents.")
-(ediff-hide-face 'ediff-fine-diff-C)
+(ediff-hide-face ediff-fine-diff-face-C)
(defface ediff-fine-diff-Ancestor
(if ediff-emacs-p
@@ -1114,8 +1100,6 @@ this variable represents.")
At present, this face is not used and no fine differences are computed for the
ancestor buffer."
:group 'ediff-highlighting)
-;; backward-compatibility alias
-(put 'ediff-fine-diff-face-Ancestor 'face-alias 'ediff-fine-diff-Ancestor)
;; An internal variable. Ediff takes the face from here. When unhighlighting,
;; this variable is set to nil, then again to the appropriate face.
(defvar ediff-fine-diff-face-Ancestor 'ediff-fine-diff-Ancestor
@@ -1123,7 +1107,7 @@ ancestor buffer."
DO NOT CHANGE this variable. Instead, use the customization
widget to customize the actual face object `ediff-fine-diff-Ancestor'
this variable represents.")
-(ediff-hide-face 'ediff-fine-diff-Ancestor)
+(ediff-hide-face ediff-fine-diff-face-Ancestor)
;; Some installs don't have stipple or Stipple. So, try them in turn.
(defvar stipple-pixmap
@@ -1151,8 +1135,6 @@ this variable represents.")
(t (:italic t :stipple ,stipple-pixmap))))
"Face for highlighting even-numbered non-current differences in buffer A."
:group 'ediff-highlighting)
-;; backward-compatibility alias
-(put 'ediff-even-diff-face-A 'face-alias 'ediff-even-diff-A)
;; An internal variable. Ediff takes the face from here. When unhighlighting,
;; this variable is set to nil, then again to the appropriate face.
(defvar ediff-even-diff-face-A 'ediff-even-diff-A
@@ -1160,7 +1142,7 @@ this variable represents.")
DO NOT CHANGE this variable. Instead, use the customization
widget to customize the actual face object `ediff-even-diff-A'
this variable represents.")
-(ediff-hide-face 'ediff-even-diff-A)
+(ediff-hide-face ediff-even-diff-face-A)
(defface ediff-even-diff-B
(if ediff-emacs-p
@@ -1174,8 +1156,6 @@ this variable represents.")
(t (:italic t :stipple ,stipple-pixmap))))
"Face for highlighting even-numbered non-current differences in buffer B."
:group 'ediff-highlighting)
-;; backward-compatibility alias
-(put 'ediff-even-diff-face-B 'face-alias 'ediff-even-diff-B)
;; An internal variable. Ediff takes the face from here. When unhighlighting,
;; this variable is set to nil, then again to the appropriate face.
(defvar ediff-even-diff-face-B 'ediff-even-diff-B
@@ -1183,7 +1163,7 @@ this variable represents.")
DO NOT CHANGE this variable. Instead, use the customization
widget to customize the actual face object `ediff-even-diff-B'
this variable represents.")
-(ediff-hide-face 'ediff-even-diff-B)
+(ediff-hide-face ediff-even-diff-face-B)
(defface ediff-even-diff-C
(if ediff-emacs-p
@@ -1202,8 +1182,6 @@ this variable represents.")
(t (:italic t :stipple ,stipple-pixmap))))
"Face for highlighting even-numbered non-current differences in buffer C."
:group 'ediff-highlighting)
-;; backward-compatibility alias
-(put 'ediff-even-diff-face-C 'face-alias 'ediff-even-diff-C)
;; An internal variable. Ediff takes the face from here. When unhighlighting,
;; this variable is set to nil, then again to the appropriate face.
(defvar ediff-even-diff-face-C 'ediff-even-diff-C
@@ -1211,7 +1189,7 @@ this variable represents.")
DO NOT CHANGE this variable. Instead, use the customization
widget to customize the actual face object `ediff-even-diff-C'
this variable represents.")
-(ediff-hide-face 'ediff-even-diff-C)
+(ediff-hide-face ediff-even-diff-face-C)
(defface ediff-even-diff-Ancestor
(if ediff-emacs-p
@@ -1230,8 +1208,6 @@ this variable represents.")
(t (:italic t :stipple ,stipple-pixmap))))
"Face for highlighting even-numbered non-current differences in the ancestor buffer."
:group 'ediff-highlighting)
-;; backward-compatibility alias
-(put 'ediff-even-diff-face-Ancestor 'face-alias 'ediff-even-diff-Ancestor)
;; An internal variable. Ediff takes the face from here. When unhighlighting,
;; this variable is set to nil, then again to the appropriate face.
(defvar ediff-even-diff-face-Ancestor 'ediff-even-diff-Ancestor
@@ -1239,7 +1215,7 @@ this variable represents.")
DO NOT CHANGE this variable. Instead, use the customization
widget to customize the actual face object `ediff-even-diff-Ancestor'
this variable represents.")
-(ediff-hide-face 'ediff-even-diff-Ancestor)
+(ediff-hide-face ediff-even-diff-face-Ancestor)
;; Association between buffer types and even-diff-face symbols
(defconst ediff-even-diff-face-alist
@@ -1263,8 +1239,6 @@ this variable represents.")
(t (:italic t :stipple "gray1"))))
"Face for highlighting odd-numbered non-current differences in buffer A."
:group 'ediff-highlighting)
-;; backward-compatibility alias
-(put 'ediff-odd-diff-face-A 'face-alias 'ediff-odd-diff-A)
;; An internal variable. Ediff takes the face from here. When unhighlighting,
;; this variable is set to nil, then again to the appropriate face.
(defvar ediff-odd-diff-face-A 'ediff-odd-diff-A
@@ -1272,7 +1246,7 @@ this variable represents.")
DO NOT CHANGE this variable. Instead, use the customization
widget to customize the actual face object `ediff-odd-diff-A'
this variable represents.")
-(ediff-hide-face 'ediff-odd-diff-A)
+(ediff-hide-face ediff-odd-diff-face-A)
(defface ediff-odd-diff-B
@@ -1290,8 +1264,6 @@ this variable represents.")
(t (:italic t :stipple "gray1"))))
"Face for highlighting odd-numbered non-current differences in buffer B."
:group 'ediff-highlighting)
-;; backward-compatibility alias
-(put 'ediff-odd-diff-face-B 'face-alias 'ediff-odd-diff-B)
;; An internal variable. Ediff takes the face from here. When unhighlighting,
;; this variable is set to nil, then again to the appropriate face.
(defvar ediff-odd-diff-face-B 'ediff-odd-diff-B
@@ -1299,7 +1271,7 @@ this variable represents.")
DO NOT CHANGE this variable. Instead, use the customization
widget to customize the actual face object `ediff-odd-diff-B'
this variable represents.")
-(ediff-hide-face 'ediff-odd-diff-B)
+(ediff-hide-face ediff-odd-diff-face-B)
(defface ediff-odd-diff-C
(if ediff-emacs-p
@@ -1316,8 +1288,6 @@ this variable represents.")
(t (:italic t :stipple "gray1"))))
"Face for highlighting odd-numbered non-current differences in buffer C."
:group 'ediff-highlighting)
-;; backward-compatibility alias
-(put 'ediff-odd-diff-face-C 'face-alias 'ediff-odd-diff-C)
;; An internal variable. Ediff takes the face from here. When unhighlighting,
;; this variable is set to nil, then again to the appropriate face.
(defvar ediff-odd-diff-face-C 'ediff-odd-diff-C
@@ -1325,7 +1295,7 @@ this variable represents.")
DO NOT CHANGE this variable. Instead, use the customization
widget to customize the actual face object `ediff-odd-diff-C'
this variable represents.")
-(ediff-hide-face 'ediff-odd-diff-C)
+(ediff-hide-face ediff-odd-diff-face-C)
(defface ediff-odd-diff-Ancestor
(if ediff-emacs-p
@@ -1339,8 +1309,6 @@ this variable represents.")
(t (:italic t :stipple "gray1"))))
"Face for highlighting odd-numbered non-current differences in the ancestor buffer."
:group 'ediff-highlighting)
-;; backward-compatibility alias
-(put 'ediff-odd-diff-face-Ancestor 'face-alias 'ediff-odd-diff-Ancestor)
;; An internal variable. Ediff takes the face from here. When unhighlighting,
;; this variable is set to nil, then again to the appropriate face.
(defvar ediff-odd-diff-face-Ancestor 'ediff-odd-diff-Ancestor
@@ -1348,30 +1316,30 @@ this variable represents.")
DO NOT CHANGE this variable. Instead, use the customization
widget to customize the actual face object `ediff-odd-diff-Ancestor'
this variable represents.")
-(ediff-hide-face 'ediff-odd-diff-Ancestor)
+(ediff-hide-face ediff-odd-diff-face-Ancestor)
;; Association between buffer types and odd-diff-face symbols
(defconst ediff-odd-diff-face-alist
- '((A . ediff-odd-diff-face-A)
- (B . ediff-odd-diff-face-B)
- (C . ediff-odd-diff-face-C)
- (Ancestor . ediff-odd-diff-face-Ancestor)))
+ '((A . ediff-odd-diff-A)
+ (B . ediff-odd-diff-B)
+ (C . ediff-odd-diff-C)
+ (Ancestor . ediff-odd-diff-Ancestor)))
;; A-list of fine-diff face symbols associated with buffer types
(defconst ediff-fine-diff-face-alist
- '((A . ediff-fine-diff-face-A)
- (B . ediff-fine-diff-face-B)
- (C . ediff-fine-diff-face-C)
- (Ancestor . ediff-fine-diff-face-Ancestor)))
+ '((A . ediff-fine-diff-A)
+ (B . ediff-fine-diff-B)
+ (C . ediff-fine-diff-C)
+ (Ancestor . ediff-fine-diff-Ancestor)))
;; Help echo
-(put 'ediff-fine-diff-A 'ediff-help-echo
+(put ediff-fine-diff-face-A 'ediff-help-echo
"A `refinement' of the current difference region")
-(put 'ediff-fine-diff-B 'ediff-help-echo
+(put ediff-fine-diff-face-B 'ediff-help-echo
"A `refinement' of the current difference region")
-(put 'ediff-fine-diff-C 'ediff-help-echo
+(put ediff-fine-diff-face-C 'ediff-help-echo
"A `refinement' of the current difference region")
-(put 'ediff-fine-diff-Ancestor 'ediff-help-echo
+(put ediff-fine-diff-face-Ancestor 'ediff-help-echo
"A `refinement' of the current difference region")
(add-hook 'ediff-quit-hook 'ediff-cleanup-mess)
@@ -1496,7 +1464,7 @@ This default should work without changes."
:group 'ediff)
;; needed to simulate frame-char-width in XEmacs.
-(defvar ediff-H-glyph (if ediff-xemacs-p (make-glyph "H")))
+(defvar ediff-H-glyph (if (featurep 'xemacs) (make-glyph "H")))
;; Temporary file used for refining difference regions in buffer A.
@@ -1899,6 +1867,8 @@ Unless optional argument INPLACE is non-nil, return a new string."
(set-buffer ,old-buffer)
(set-syntax-table ,old-table)))))))
+(provide 'ediff-init)
+
;;; Local Variables:
@@ -1907,7 +1877,5 @@ Unless optional argument INPLACE is non-nil, return a new string."
;;; eval: (put 'ediff-with-current-buffer 'edebug-form-spec '(form body))
;;; End:
-(provide 'ediff-init)
-
;;; arch-tag: fa31d384-1e70-4d4b-82a7-3e96307c46f5
;;; ediff-init.el ends here
diff --git a/lisp/ediff-merg.el b/lisp/ediff-merg.el
index 13414747b1..cb93dea383 100644
--- a/lisp/ediff-merg.el
+++ b/lisp/ediff-merg.el
@@ -1,6 +1,7 @@
;;; ediff-merg.el --- merging utilities
-;; Copyright (C) 1994, 95, 96, 97, 98, 99, 2000, 01, 02 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+;; 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
diff --git a/lisp/ediff-mult.el b/lisp/ediff-mult.el
index c7ad411b4a..2c192c133e 100644
--- a/lisp/ediff-mult.el
+++ b/lisp/ediff-mult.el
@@ -1,6 +1,7 @@
;;; ediff-mult.el --- support for multi-file/multi-buffer processing in Ediff
-;; Copyright (C) 1995, 96, 97, 98, 99, 2000, 01, 02, 05 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+;; 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
@@ -205,6 +206,12 @@ Should be a sexp. For instance (car ediff-filtering-regexp-history) or nil."
This can be toggled with `ediff-toggle-filename-truncation'."
:type 'boolean
:group 'ediff-mult)
+
+(defcustom ediff-meta-mode-hook nil
+ "*Hooks run just after setting up meta mode."
+ :type 'hook
+ :group 'ediff-mult)
+
(defcustom ediff-registry-setup-hook nil
"*Hooks run just after the registry control panel is set up."
:type 'hook
@@ -411,7 +418,8 @@ Commands:
(kill-all-local-variables)
(setq major-mode 'ediff-meta-mode)
(setq mode-name "MetaEdiff")
- (run-mode-hooks 'ediff-meta-mode-hook))
+ ;; don't use run-mode-hooks here!
+ (run-hooks 'ediff-meta-mode-hook))
;; the keymap for the buffer showing directory differences
diff --git a/lisp/ediff-ptch.el b/lisp/ediff-ptch.el
index 45b214c0cb..df781e92b5 100644
--- a/lisp/ediff-ptch.el
+++ b/lisp/ediff-ptch.el
@@ -1,6 +1,7 @@
;;; ediff-ptch.el --- Ediff's patch support
-;; Copyright (C) 1996, 97, 98, 99, 2000, 01, 02 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+;; 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
@@ -163,7 +164,7 @@ program."
;; returns /dev/null, if can't strip prefix
(defsubst ediff-file-name-sans-prefix (filename prefix)
(save-match-data
- (if (string-match (concat "^" prefix) filename)
+ (if (string-match (concat "^" (regexp-quote prefix)) filename)
(substring filename (match-end 0))
(concat "/null/" filename))))
diff --git a/lisp/ediff-util.el b/lisp/ediff-util.el
index 9434601326..2e24548dbb 100644
--- a/lisp/ediff-util.el
+++ b/lisp/ediff-util.el
@@ -1,7 +1,7 @@
;;; ediff-util.el --- the core commands and utilities of ediff
;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-;; 2004 Free Software Foundation, Inc.
+;; 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
@@ -117,7 +117,13 @@ Commands:
(kill-all-local-variables)
(setq major-mode 'ediff-mode)
(setq mode-name "Ediff")
- (run-mode-hooks 'ediff-mode-hook))
+ ;; We use run-hooks instead of run-mode-hooks for two reasons.
+ ;; The ediff control buffer is read-only and it is not supposed to be
+ ;; modified by minor modes and such. So, run-mode-hooks doesn't do anything
+ ;; useful here on top of what run-hooks does.
+ ;; Second, changing run-hooks to run-mode-hooks would require an
+ ;; if-statement, since XEmacs doesn't have this.
+ (run-hooks 'ediff-mode-hook))
@@ -3788,9 +3794,8 @@ Ediff Control Panel to restore highlighting."
type ediff-current-diff-overlay-alist))
(buffer (ediff-get-buffer type))
(face (face-name
- (symbol-value
- (ediff-get-symbol-from-alist
- type ediff-current-diff-face-alist)))))
+ (ediff-get-symbol-from-alist
+ type ediff-current-diff-face-alist))))
(set overlay
(ediff-make-bullet-proof-overlay (point-max) (point-max) buffer))
(ediff-set-overlay-face (symbol-value overlay) face)
diff --git a/lisp/ediff-vers.el b/lisp/ediff-vers.el
index 653f4017ca..9ae720e9bc 100644
--- a/lisp/ediff-vers.el
+++ b/lisp/ediff-vers.el
@@ -1,6 +1,7 @@
;;; ediff-vers.el --- version control interface to Ediff
-;;; Copyright (C) 1995, 96, 97, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 1997, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
@@ -304,13 +305,14 @@
(if (stringp tmp-file) (delete-file tmp-file))
(if (stringp ancestor-file) (delete-file ancestor-file))))
+
+(provide 'ediff-vers)
+
;;; Local Variables:
;;; eval: (put 'ediff-defvar-local 'lisp-indent-hook 'defun)
;;; eval: (put 'ediff-with-current-buffer 'lisp-indent-hook 1)
;;; eval: (put 'ediff-with-current-buffer 'edebug-form-spec '(form body))
;;; End:
-(provide 'ediff-vers)
-
;;; arch-tag: bbb34f0c-2a90-426a-a77a-c75f479ebbbf
;;; ediff-vers.el ends here
diff --git a/lisp/ediff-wind.el b/lisp/ediff-wind.el
index 3ac4ee089c..26ff106088 100644
--- a/lisp/ediff-wind.el
+++ b/lisp/ediff-wind.el
@@ -1,6 +1,7 @@
;;; ediff-wind.el --- window manipulation utilities
-;; Copyright (C) 1994, 95, 96, 97, 2000, 01, 02 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 1996, 1997, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
diff --git a/lisp/ediff.el b/lisp/ediff.el
index 46b060e29a..35b28a3e55 100644
--- a/lisp/ediff.el
+++ b/lisp/ediff.el
@@ -1,13 +1,14 @@
;;; ediff.el --- a comprehensive visual interface to diff & patch
-;; Copyright (C) 1994, 95, 96, 97, 98, 99, 2000, 01, 02, 03, 05 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+;; 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
;; Created: February 2, 1994
;; Keywords: comparing, merging, patching, tools, unix
(defconst ediff-version "2.80" "The current version of Ediff")
-(defconst ediff-date "June 3, 2005" "Date of last update")
+(defconst ediff-date "July 8, 2005" "Date of last update")
;; This file is part of GNU Emacs.
@@ -1357,11 +1358,13 @@ buffer. If odd -- assume it is in a file."
;;;###autoload
(defun ediff-patch-buffer (&optional arg patch-buf)
- "Run Ediff by patching BUFFER-NAME.
-Without prefix argument: asks if the patch is in some buffer and prompts for
-the buffer or a file, depending on the answer.
-With prefix arg=1: assumes the patch is in a file and prompts for the file.
-With prefix arg=2: assumes the patch is in a buffer and prompts for the buffer."
+ "Run Ediff by patching the buffer specified at prompt.
+Without the optional prefix ARG, asks if the patch is in some buffer and
+prompts for the buffer or a file, depending on the answer.
+With ARG=1, assumes the patch is in a file and prompts for the file.
+With ARG=2, assumes the patch is in a buffer and prompts for the buffer.
+PATCH-BUF is an optional argument, which specifies the buffer that contains the
+patch. If not given, the user is prompted according to the prefix argument."
(interactive "P")
(require 'ediff-ptch)
(setq patch-buf
@@ -1526,15 +1529,15 @@ With optional NODE, goes to that node."
(add-to-list 'debug-ignored-errors mess))
+(require 'ediff-util)
+
+(run-hooks 'ediff-load-hook)
+
;;; Local Variables:
;;; eval: (put 'ediff-defvar-local 'lisp-indent-hook 'defun)
;;; eval: (put 'ediff-with-current-buffer 'lisp-indent-hook 1)
;;; eval: (put 'ediff-with-current-buffer 'edebug-form-spec '(form body))
;;; End:
-(require 'ediff-util)
-
-(run-hooks 'ediff-load-hook)
-
;;; arch-tag: 97c71396-db02-4f41-8b48-6a51c3348fcc
;;; ediff.el ends here
diff --git a/lisp/edmacro.el b/lisp/edmacro.el
index 4384a0288e..ff5e2f7e0b 100644
--- a/lisp/edmacro.el
+++ b/lisp/edmacro.el
@@ -1,6 +1,7 @@
;;; edmacro.el --- keyboard macro editor
-;; Copyright (C) 1993, 1994, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Dave Gillespie <daveg@synaptics.com>
;; Maintainer: Dave Gillespie <daveg@synaptics.com>
diff --git a/lisp/ehelp.el b/lisp/ehelp.el
index 36bbd0329b..d0dfd8d6be 100644
--- a/lisp/ehelp.el
+++ b/lisp/ehelp.el
@@ -1,6 +1,7 @@
;;; ehelp.el --- bindings for electric-help mode
-;; Copyright (C) 1986, 1995, 2000, 2001, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1986, 1995, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: help, extensions
diff --git a/lisp/electric.el b/lisp/electric.el
index 32fb843e2c..4c4f70b093 100644
--- a/lisp/electric.el
+++ b/lisp/electric.el
@@ -1,6 +1,7 @@
;;; electric.el --- window maker and Command loop for `electric' modes
-;; Copyright (C) 1985, 1986, 1995, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1995, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: K. Shane Hartman
;; Maintainer: FSF
diff --git a/lisp/elide-head.el b/lisp/elide-head.el
index 86e3365c5d..8be40ce17c 100644
--- a/lisp/elide-head.el
+++ b/lisp/elide-head.el
@@ -1,6 +1,6 @@
;;; elide-head.el --- hide headers in files
-;; Copyright (C) 1999 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Dave Love <fx@gnu.org>
;; Keywords: outlines tools
diff --git a/lisp/emacs-lisp/advice.el b/lisp/emacs-lisp/advice.el
index 9f6a0b782a..480c838b87 100644
--- a/lisp/emacs-lisp/advice.el
+++ b/lisp/emacs-lisp/advice.el
@@ -1,6 +1,7 @@
;;; advice.el --- an overloading mechanism for Emacs Lisp functions
-;; Copyright (C) 1993,1994,2000,01,2004,2005 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 2000, 2001, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Hans Chalupsky <hans@cs.buffalo.edu>
;; Maintainer: FSF
diff --git a/lisp/emacs-lisp/assoc.el b/lisp/emacs-lisp/assoc.el
index 35cfba617c..d12b1dcbcb 100644
--- a/lisp/emacs-lisp/assoc.el
+++ b/lisp/emacs-lisp/assoc.el
@@ -1,6 +1,6 @@
;;; assoc.el --- insert/delete/sort functions on association lists
-;; Copyright (C) 1996 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Barry A. Warsaw <bwarsaw@cen.com>
;; Keywords: extensions
diff --git a/lisp/emacs-lisp/authors.el b/lisp/emacs-lisp/authors.el
index ca28fc0678..ec5446eef3 100644
--- a/lisp/emacs-lisp/authors.el
+++ b/lisp/emacs-lisp/authors.el
@@ -1,6 +1,6 @@
;;; authors.el --- utility for maintaining Emacs' AUTHORS file -*-coding: iso-2022-7bit;-*-
-;; Copyright (C) 2000, 2003, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Gerd Moellmann <gerd@gnu.org>
;; Maintainer: Kim F. Storm <storm@cua.dk>
diff --git a/lisp/emacs-lisp/autoload.el b/lisp/emacs-lisp/autoload.el
index 852c33cb41..3cd6fe53ba 100644
--- a/lisp/emacs-lisp/autoload.el
+++ b/lisp/emacs-lisp/autoload.el
@@ -1,7 +1,7 @@
;; autoload.el --- maintain autoloads in loaddefs.el
;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 2001, 2002, 2003,
-;; 2004, 2005 Free Software Foundation, Inc.
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Roland McGrath <roland@gnu.org>
;; Keywords: maint
diff --git a/lisp/emacs-lisp/backquote.el b/lisp/emacs-lisp/backquote.el
index 7c7023fc85..627c2cfdbc 100644
--- a/lisp/emacs-lisp/backquote.el
+++ b/lisp/emacs-lisp/backquote.el
@@ -1,6 +1,7 @@
;;; backquote.el --- implement the ` Lisp construct
-;; Copyright (C) 1990, 92, 1994, 2001, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1992, 1994, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Rick Sladkey <jrs@world.std.com>
;; Maintainer: FSF
diff --git a/lisp/emacs-lisp/benchmark.el b/lisp/emacs-lisp/benchmark.el
index 6de2eef53a..c2be5a5c3b 100644
--- a/lisp/emacs-lisp/benchmark.el
+++ b/lisp/emacs-lisp/benchmark.el
@@ -1,6 +1,6 @@
;;; benchmark.el --- support for benchmarking code
-;; Copyright (C) 2003 Free Software Foundation, Inc.
+;; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Dave Love <fx@gnu.org>
;; Keywords: lisp, extensions
diff --git a/lisp/emacs-lisp/bindat.el b/lisp/emacs-lisp/bindat.el
index 5fa9835bea..f2b1d19a69 100644
--- a/lisp/emacs-lisp/bindat.el
+++ b/lisp/emacs-lisp/bindat.el
@@ -1,6 +1,6 @@
;;; bindat.el --- binary data structure packing and unpacking.
-;; Copyright (C) 2002 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Kim F. Storm <storm@cua.dk>
;; Assignment name: struct.el
diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el
index 7ac9077ca7..7d47d80967 100644
--- a/lisp/emacs-lisp/byte-opt.el
+++ b/lisp/emacs-lisp/byte-opt.el
@@ -1,7 +1,7 @@
;;; byte-opt.el --- the optimization passes of the emacs-lisp byte compiler
-;; Copyright (c) 1991, 1994, 2000, 2001, 2002, 2004
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1991, 1994, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Jamie Zawinski <jwz@lucid.com>
;; Hallvard Furuseth <hbf@ulrik.uio.no>
diff --git a/lisp/emacs-lisp/byte-run.el b/lisp/emacs-lisp/byte-run.el
index b4af4b4400..c31036f02e 100644
--- a/lisp/emacs-lisp/byte-run.el
+++ b/lisp/emacs-lisp/byte-run.el
@@ -1,6 +1,6 @@
;;; byte-run.el --- byte-compiler support for inlining
-;; Copyright (C) 1992, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Jamie Zawinski <jwz@lucid.com>
;; Hallvard Furuseth <hbf@ulrik.uio.no>
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index bbb98364a0..559d2bd86c 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -1,7 +1,7 @@
;;; bytecomp.el --- compilation of Lisp code into byte code
;; Copyright (C) 1985, 1986, 1987, 1992, 1994, 1998, 2000, 2001, 2002,
-;; 2003, 2004, 2005 Free Software Foundation, Inc.
+;; 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Jamie Zawinski <jwz@lucid.com>
;; Hallvard Furuseth <hbf@ulrik.uio.no>
@@ -358,7 +358,7 @@ Elements of the list may be be:
(defvar byte-compile-interactive-only-functions
'(beginning-of-buffer end-of-buffer replace-string replace-regexp
- insert-file)
+ insert-file insert-buffer insert-file-literally)
"List of commands that are not meant to be called from Lisp.")
(defvar byte-compile-not-obsolete-var nil
@@ -3351,11 +3351,14 @@ That command is designed for interactive use only" fn))
(defmacro byte-compile-maybe-guarded (condition &rest body)
"Execute forms in BODY, potentially guarded by CONDITION.
-CONDITION is the test in an `if' form or in a `cond' clause.
-BODY is to compile the first arm of the if or the body of the
-cond clause. If CONDITION is of the form `(foundp 'foo)'
-or `(boundp 'foo)', the relevant warnings from BODY about foo
-being undefined will be suppressed."
+CONDITION is a variable whose value is a test in an `if' or `cond'.
+BODY is the code to compile first arm of the if or the body of the
+cond clause. If CONDITION's value is of the form (fboundp 'foo)
+or (boundp 'foo), the relevant warnings from BODY about foo's
+being undefined will be suppressed.
+
+If CONDITION's value is (not (featurep 'emacs)) or (featurep 'xemacs),
+that suppresses all warnings during execution of BODY."
(declare (indent 1) (debug t))
`(let* ((fbound
(if (eq 'fboundp (car-safe ,condition))
@@ -3373,13 +3376,19 @@ being undefined will be suppressed."
(byte-compile-bound-variables
(if bound
(cons bound byte-compile-bound-variables)
- byte-compile-bound-variables)))
- (progn ,@body)
- ;; Maybe remove the function symbol from the unresolved list.
- (if fbound
- (setq byte-compile-unresolved-functions
- (delq (assq fbound byte-compile-unresolved-functions)
- byte-compile-unresolved-functions)))))
+ byte-compile-bound-variables))
+ ;; Suppress all warnings, for code not used in Emacs.
+ (byte-compile-warnings
+ (if (member ,condition '((featurep 'xemacs)
+ (not (featurep 'emacs))))
+ nil byte-compile-warnings)))
+ (unwind-protect
+ (progn ,@body)
+ ;; Maybe remove the function symbol from the unresolved list.
+ (if fbound
+ (setq byte-compile-unresolved-functions
+ (delq (assq fbound byte-compile-unresolved-functions)
+ byte-compile-unresolved-functions))))))
(defun byte-compile-if (form)
(byte-compile-form (car (cdr form)))
@@ -3400,7 +3409,8 @@ being undefined will be suppressed."
(byte-compile-form (nth 2 form) for-effect))
(byte-compile-goto 'byte-goto donetag)
(byte-compile-out-tag elsetag)
- (byte-compile-body (cdr (cdr (cdr form))) for-effect)
+ (byte-compile-maybe-guarded (list 'not clause)
+ (byte-compile-body (cdr (cdr (cdr form))) for-effect))
(byte-compile-out-tag donetag))))
(setq for-effect nil))
@@ -3420,12 +3430,12 @@ being undefined will be suppressed."
(if (null (cdr clause))
;; First clause is a singleton.
(byte-compile-goto-if t for-effect donetag)
- (setq nexttag (byte-compile-make-tag))
- (byte-compile-goto 'byte-goto-if-nil nexttag)
- (byte-compile-maybe-guarded (car clause)
- (byte-compile-body (cdr clause) for-effect))
- (byte-compile-goto 'byte-goto donetag)
- (byte-compile-out-tag nexttag)))))
+ (setq nexttag (byte-compile-make-tag))
+ (byte-compile-goto 'byte-goto-if-nil nexttag)
+ (byte-compile-maybe-guarded (car clause)
+ (byte-compile-body (cdr clause) for-effect))
+ (byte-compile-goto 'byte-goto donetag)
+ (byte-compile-out-tag nexttag)))))
;; Last clause
(let ((guard (car clause)))
(and (cdr clause) (not (eq guard t))
@@ -3441,24 +3451,38 @@ being undefined will be suppressed."
(args (cdr form)))
(if (null args)
(byte-compile-form-do-effect t)
- (while (cdr args)
- (byte-compile-form (car args))
+ (byte-compile-and-recursion args failtag))))
+
+;; Handle compilation of a nontrivial `and' call.
+;; We use tail recursion so we can use byte-compile-maybe-guarded.
+(defun byte-compile-and-recursion (rest failtag)
+ (if (cdr rest)
+ (progn
+ (byte-compile-form (car rest))
(byte-compile-goto-if nil for-effect failtag)
- (setq args (cdr args)))
- (byte-compile-form-do-effect (car args))
- (byte-compile-out-tag failtag))))
+ (byte-compile-maybe-guarded (car rest)
+ (byte-compile-and-recursion (cdr rest) failtag)))
+ (byte-compile-form-do-effect (car rest))
+ (byte-compile-out-tag failtag)))
(defun byte-compile-or (form)
(let ((wintag (byte-compile-make-tag))
(args (cdr form)))
(if (null args)
(byte-compile-form-do-effect nil)
- (while (cdr args)
- (byte-compile-form (car args))
+ (byte-compile-or-recursion args wintag))))
+
+;; Handle compilation of a nontrivial `or' call.
+;; We use tail recursion so we can use byte-compile-maybe-guarded.
+(defun byte-compile-or-recursion (rest wintag)
+ (if (cdr rest)
+ (progn
+ (byte-compile-form (car rest))
(byte-compile-goto-if t for-effect wintag)
- (setq args (cdr args)))
- (byte-compile-form-do-effect (car args))
- (byte-compile-out-tag wintag))))
+ (byte-compile-maybe-guarded (list 'not (car rest))
+ (byte-compile-or-recursion (cdr rest) wintag)))
+ (byte-compile-form-do-effect (car rest))
+ (byte-compile-out-tag wintag)))
(defun byte-compile-while (form)
(let ((endtag (byte-compile-make-tag))
@@ -3766,6 +3790,19 @@ being undefined will be suppressed."
(defun byte-compile-no-warnings (form)
(let (byte-compile-warnings)
(byte-compile-form (cons 'progn (cdr form)))))
+
+;; Warn about misuses of make-variable-buffer-local.
+(byte-defop-compiler-1 make-variable-buffer-local byte-compile-make-variable-buffer-local)
+(defun byte-compile-make-variable-buffer-local (form)
+ (if (eq (car-safe (car-safe (cdr-safe form))) 'quote)
+ (byte-compile-warn
+ "`make-variable-buffer-local' should be called at toplevel"))
+ (byte-compile-normal-call form))
+(put 'make-variable-buffer-local
+ 'byte-hunk-handler 'byte-compile-form-make-variable-buffer-local)
+(defun byte-compile-form-make-variable-buffer-local (form)
+ (byte-compile-keep-pending form 'byte-compile-normal-call))
+
;;; tags
diff --git a/lisp/emacs-lisp/checkdoc.el b/lisp/emacs-lisp/checkdoc.el
index 6562f04ca1..913ffcf194 100644
--- a/lisp/emacs-lisp/checkdoc.el
+++ b/lisp/emacs-lisp/checkdoc.el
@@ -1,6 +1,7 @@
;;; checkdoc.el --- check documentation strings for style requirements
-;;; Copyright (C) 1997, 1998, 2001, 2004 Free Software Foundation
+;; Copyright (C) 1997, 1998, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Eric M. Ludlam <zappo@gnu.org>
;; Version: 0.6.2
@@ -189,6 +190,9 @@
(defmacro defcustom (var value doc &rest args)
`(defvar ,var ,value ,doc))))
+(defvar compilation-error-regexp-alist)
+(defvar compilation-mode-font-lock-keywords)
+
(defcustom checkdoc-autofix-flag 'semiautomatic
"*Non-nil means attempt auto-fixing of doc strings.
If this value is the symbol `query', then the user is queried before
@@ -317,12 +321,12 @@ This should be set in an Emacs Lisp file's local variables."
"List of words (not capitalized) which should be capitalized.")
(defvar checkdoc-proper-noun-regexp
- (let ((expr "\\<\\(")
+ (let ((expr "\\_<\\(")
(l checkdoc-proper-noun-list))
(while l
(setq expr (concat expr (car l) (if (cdr l) "\\|" ""))
l (cdr l)))
- (concat expr "\\)\\>"))
+ (concat expr "\\)\\_>"))
"Regular expression derived from `checkdoc-proper-noun-regexp'.")
(defvar checkdoc-common-verbs-regexp nil
@@ -430,32 +434,20 @@ be re-created.")
;;; Compatibility
;;
-(if (string-match "X[Ee]macs" emacs-version)
- (progn
- (defalias 'checkdoc-make-overlay 'make-extent)
- (defalias 'checkdoc-overlay-put 'set-extent-property)
- (defalias 'checkdoc-delete-overlay 'delete-extent)
- (defalias 'checkdoc-overlay-start 'extent-start)
- (defalias 'checkdoc-overlay-end 'extent-end)
- (defalias 'checkdoc-mode-line-update 'redraw-modeline)
- (defalias 'checkdoc-call-eval-buffer 'eval-buffer)
- )
- (defalias 'checkdoc-make-overlay 'make-overlay)
- (defalias 'checkdoc-overlay-put 'overlay-put)
- (defalias 'checkdoc-delete-overlay 'delete-overlay)
- (defalias 'checkdoc-overlay-start 'overlay-start)
- (defalias 'checkdoc-overlay-end 'overlay-end)
- (defalias 'checkdoc-mode-line-update 'force-mode-line-update)
- (defalias 'checkdoc-call-eval-buffer 'eval-current-buffer)
- )
-
-;; Emacs 20s have MULE characters which don't equate to numbers.
-(if (fboundp 'char=)
- (defalias 'checkdoc-char= 'char=)
- (defalias 'checkdoc-char= '=))
-
-;; Read events, not characters
-(defalias 'checkdoc-read-event 'read-event)
+(defalias 'checkdoc-make-overlay
+ (if (featurep 'xemacs) 'make-extent 'make-overlay))
+(defalias 'checkdoc-overlay-put
+ (if (featurep 'xemacs) 'set-extent-property 'overlay-put))
+(defalias 'checkdoc-delete-overlay
+ (if (featurep 'xemacs) 'delete-extent 'delete-overlay))
+(defalias 'checkdoc-overlay-start
+ (if (featurep 'xemacs) 'extent-start 'overlay-start))
+(defalias 'checkdoc-overlay-end
+ (if (featurep 'xemacs) 'extent-end 'overlay-end))
+(defalias 'checkdoc-mode-line-update
+ (if (featurep 'xemacs) 'redraw-modeline 'force-mode-line-update))
+(defalias 'checkdoc-char=
+ (if (featurep 'xemacs) 'char= '=))
;;; User level commands
;;
@@ -628,7 +620,7 @@ style."
(goto-char (checkdoc-error-start (car (car err-list))))
(if (not (pos-visible-in-window-p))
(recenter (- (window-height) 2)))
- (setq c (checkdoc-read-event)))
+ (setq c (read-event)))
(if (not (integerp c)) (setq c ??))
(cond
;; Exit condition
@@ -664,7 +656,7 @@ style."
"No Additional style errors. Continuing...")
(sit-for 2))))))
;; Move to the next error (if available)
- ((or (checkdoc-char= c ?n) (checkdoc-char= c ?\ ))
+ ((or (checkdoc-char= c ?n) (checkdoc-char= c ?\s))
(let ((ne (funcall findfunc nil)))
(if (not ne)
(if showstatus
@@ -844,7 +836,7 @@ Evaluation is done first because good documentation for something that
doesn't work is just not useful. Comments, doc strings, and rogue
spacing are all verified."
(interactive)
- (checkdoc-call-eval-buffer nil)
+ (eval-buffer nil)
(checkdoc-current-buffer t))
;;;###autoload
@@ -2326,10 +2318,10 @@ Code:, and others referenced in the style guide."
(save-excursion
(goto-char (point-max))
(if (not (re-search-backward
- (concat "^;;;[ \t]+" fn "\\(" (regexp-quote fe)
+ (concat "^;;;[ \t]+" (regexp-quote fn) "\\(" (regexp-quote fe)
"\\)?[ \t]+ends here[ \t]*$"
"\\|^;;;[ \t]+ End of file[ \t]+"
- fn "\\(" (regexp-quote fe) "\\)?")
+ (regexp-quote fn) "\\(" (regexp-quote fe) "\\)?")
nil t))
(if (checkdoc-y-or-n-p "No identifiable footer! Add one? ")
(progn
diff --git a/lisp/emacs-lisp/cl-compat.el b/lisp/emacs-lisp/cl-compat.el
index 9ced787911..66425576b5 100644
--- a/lisp/emacs-lisp/cl-compat.el
+++ b/lisp/emacs-lisp/cl-compat.el
@@ -1,6 +1,6 @@
;;; cl-compat.el --- Common Lisp extensions for GNU Emacs Lisp (compatibility)
-;; Copyright (C) 1993, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Dave Gillespie <daveg@synaptics.com>
;; Version: 2.02
diff --git a/lisp/emacs-lisp/cl-extra.el b/lisp/emacs-lisp/cl-extra.el
index 107f8b1b22..4ac1a72b0d 100644
--- a/lisp/emacs-lisp/cl-extra.el
+++ b/lisp/emacs-lisp/cl-extra.el
@@ -1,6 +1,7 @@
;;; cl-extra.el --- Common Lisp features, part 2 -*-byte-compile-dynamic: t;-*-
-;; Copyright (C) 1993,2000,2003 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Dave Gillespie <daveg@synaptics.com>
;; Keywords: extensions
@@ -38,9 +39,7 @@
;;; Code:
-(or (memq 'cl-19 features)
- (error "Tried to load `cl-extra' before `cl'!"))
-
+(require 'cl)
;;; Type coercion.
@@ -763,5 +762,5 @@ This also does some trivial optimizations to make the form prettier."
(run-hooks 'cl-extra-load-hook)
-;;; arch-tag: bcd03437-0871-43fb-a8f1-ad0e0b5427ed
+;; arch-tag: bcd03437-0871-43fb-a8f1-ad0e0b5427ed
;;; cl-extra.el ends here
diff --git a/lisp/emacs-lisp/cl-indent.el b/lisp/emacs-lisp/cl-indent.el
index 1bcd2c72ed..2497e02dc6 100644
--- a/lisp/emacs-lisp/cl-indent.el
+++ b/lisp/emacs-lisp/cl-indent.el
@@ -1,6 +1,7 @@
;;; cl-indent.el --- enhanced lisp-indent mode
-;; Copyright (C) 1987, 2000, 2001, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 1987, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Richard Mlynarik <mly@eddie.mit.edu>
;; Created: July 1987
diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el
index 952ca6ebea..74c7712805 100644
--- a/lisp/emacs-lisp/cl-macs.el
+++ b/lisp/emacs-lisp/cl-macs.el
@@ -2384,6 +2384,7 @@ The type name can then be used in `typecase', `check-type', etc."
(cl-make-type-test val (funcall (get type 'cl-deftype-handler))))
((memq type '(nil t)) type)
((eq type 'null) `(null ,val))
+ ((eq type 'atom) `(atom ,val))
((eq type 'float) `(floatp-safe ,val))
((eq type 'real) `(numberp ,val))
((eq type 'fixnum) `(integerp ,val))
@@ -2398,7 +2399,7 @@ The type name can then be used in `typecase', `check-type', etc."
(cl-make-type-test val (apply (get (car type) 'cl-deftype-handler)
(cdr type))))
((memq (car type) '(integer float real number))
- (delq t (and (cl-make-type-test val (car type))
+ (delq t (list 'and (cl-make-type-test val (car type))
(if (memq (cadr type) '(* nil)) t
(if (consp (cadr type)) (list '> val (caadr type))
(list '>= val (cadr type))))
diff --git a/lisp/emacs-lisp/cl-seq.el b/lisp/emacs-lisp/cl-seq.el
index 98c9a2207e..ba7845aaa9 100644
--- a/lisp/emacs-lisp/cl-seq.el
+++ b/lisp/emacs-lisp/cl-seq.el
@@ -1,6 +1,6 @@
;;; cl-seq.el --- Common Lisp features, part 3 -*-byte-compile-dynamic: t;-*-
-;; Copyright (C) 1993 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Dave Gillespie <daveg@synaptics.com>
;; Version: 2.02
diff --git a/lisp/emacs-lisp/cl-specs.el b/lisp/emacs-lisp/cl-specs.el
index ac3089f2ef..650a341f95 100644
--- a/lisp/emacs-lisp/cl-specs.el
+++ b/lisp/emacs-lisp/cl-specs.el
@@ -1,6 +1,6 @@
;;; cl-specs.el --- Edebug specs for cl.el -*- no-byte-compile: t -*-
-;; Copyright (C) 1993, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Daniel LaLiberte <liberte@holonexus.org>
;; Keywords: lisp, tools, maint
diff --git a/lisp/emacs-lisp/cl.el b/lisp/emacs-lisp/cl.el
index d29c18dd0f..8875366cc9 100644
--- a/lisp/emacs-lisp/cl.el
+++ b/lisp/emacs-lisp/cl.el
@@ -1,6 +1,6 @@
;;; cl.el --- Common Lisp extensions for Emacs -*-byte-compile-dynamic: t;-*-
-;; Copyright (C) 1993 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Dave Gillespie <daveg@synaptics.com>
;; Version: 2.02
diff --git a/lisp/emacs-lisp/copyright.el b/lisp/emacs-lisp/copyright.el
index fbebfeabe9..ff44b3cb59 100644
--- a/lisp/emacs-lisp/copyright.el
+++ b/lisp/emacs-lisp/copyright.el
@@ -1,7 +1,7 @@
;;; copyright.el --- update the copyright notice in current buffer
-;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1998, 2001, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1998, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Daniel Pfeiffer <occitan@esperanto.org>
;; Keywords: maint, tools
diff --git a/lisp/emacs-lisp/crm.el b/lisp/emacs-lisp/crm.el
index 8e52a42921..46ae6186e4 100644
--- a/lisp/emacs-lisp/crm.el
+++ b/lisp/emacs-lisp/crm.el
@@ -1,7 +1,7 @@
;;; crm.el --- read multiple strings with completion
-;; Copyright (C) 1985, 1986, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+;; 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Sen Nagata <sen@eccosys.com>
;; Keywords: completion, minibuffer, multiple elements
diff --git a/lisp/emacs-lisp/cust-print.el b/lisp/emacs-lisp/cust-print.el
index 96fbe737c2..102efdae9b 100644
--- a/lisp/emacs-lisp/cust-print.el
+++ b/lisp/emacs-lisp/cust-print.el
@@ -1,6 +1,6 @@
;;; cust-print.el --- handles print-level and print-circle
-;; Copyright (C) 1992 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Daniel LaLiberte <liberte@holonexus.org>
;; Adapted-By: ESR
diff --git a/lisp/emacs-lisp/debug.el b/lisp/emacs-lisp/debug.el
index 94cca83a61..58b12376b0 100644
--- a/lisp/emacs-lisp/debug.el
+++ b/lisp/emacs-lisp/debug.el
@@ -1,7 +1,7 @@
;;; debug.el --- debuggers and related commands for Emacs
-;; Copyright (C) 1985, 1986, 1994, 2001, 2003, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1994, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: lisp, tools, maint
@@ -150,7 +150,8 @@ first will be printed into the backtrace buffer."
(debugger-outer-standard-input standard-input)
(debugger-outer-standard-output standard-output)
(debugger-outer-inhibit-redisplay inhibit-redisplay)
- (debugger-outer-cursor-in-echo-area cursor-in-echo-area))
+ (debugger-outer-cursor-in-echo-area cursor-in-echo-area)
+ (debugger-with-timeout-suspend (with-timeout-suspend)))
;; Set this instead of binding it, so that `q'
;; will not restore it.
(setq overriding-terminal-local-map nil)
@@ -235,6 +236,7 @@ first will be printed into the backtrace buffer."
;; Drew Adams. --Stef
(quit-window))))
(kill-buffer debugger-buffer))
+ (with-timeout-unsuspend debugger-with-timeout-suspend)
(set-match-data debugger-outer-match-data)))
;; Put into effect the modified values of these variables
;; in case the user set them with the `e' command.
@@ -312,11 +314,17 @@ That buffer should be current already."
;; After any frame that uses eval-buffer,
;; insert a line that states the buffer position it's reading at.
(save-excursion
- (while (re-search-forward "^ eval-buffer(" nil t)
- (end-of-line)
- (insert (format "\n ;;; Reading at buffer position %d"
- (with-current-buffer (nth 2 (backtrace-frame (debugger-frame-number)))
- (point))))))
+ (let ((tem eval-buffer-list))
+ (while (and tem
+ (re-search-forward "^ eval-\\(buffer\\|region\\)(" nil t))
+ (end-of-line)
+ (insert (format " ; Reading at buffer position %d"
+ ;; This will get the wrong result
+ ;; if there are two nested eval-region calls
+ ;; for the same buffer. That's not a very useful case.
+ (with-current-buffer (car tem)
+ (point))))
+ (pop tem))))
(debugger-make-xrefs))
(defun debugger-make-xrefs (&optional buffer)
@@ -591,10 +599,35 @@ Applies to the frame whose line point is on in the backtrace."
(define-key map "e" 'debugger-eval-expression)
(define-key map " " 'next-line)
(define-key map "R" 'debugger-record-expression)
- (define-key map "\C-m" 'help-follow)
+ (define-key map "\C-m" 'debug-help-follow)
(define-key map [mouse-2] 'push-button)
map))
+(put 'debugger-mode 'mode-class 'special)
+
+(defun debugger-mode ()
+ "Mode for backtrace buffers, selected in debugger.
+\\<debugger-mode-map>
+A line starts with `*' if exiting that frame will call the debugger.
+Type \\[debugger-frame] or \\[debugger-frame-clear] to set or remove the `*'.
+
+When in debugger due to frame being exited,
+use the \\[debugger-return-value] command to override the value
+being returned from that frame.
+
+Use \\[debug-on-entry] and \\[cancel-debug-on-entry] to control
+which functions will enter the debugger when called.
+
+Complete list of commands:
+\\{debugger-mode-map}"
+ (kill-all-local-variables)
+ (setq major-mode 'debugger-mode)
+ (setq mode-name "Debugger")
+ (setq truncate-lines t)
+ (set-syntax-table emacs-lisp-mode-syntax-table)
+ (use-local-map debugger-mode-map)
+ (run-mode-hooks 'debugger-mode-hook))
+
(defcustom debugger-record-buffer "*Debugger-record*"
"*Buffer name for expression values, for \\[debugger-record-expression]."
:type 'string
@@ -620,30 +653,26 @@ Applies to the frame whose line point is on in the backtrace."
(buffer-substring (line-beginning-position 0)
(line-end-position 0)))))
-(put 'debugger-mode 'mode-class 'special)
-
-(defun debugger-mode ()
- "Mode for backtrace buffers, selected in debugger.
-\\<debugger-mode-map>
-A line starts with `*' if exiting that frame will call the debugger.
-Type \\[debugger-frame] or \\[debugger-frame-clear] to set or remove the `*'.
+(defun debug-help-follow (&optional pos)
+ "Follow cross-reference at POS, defaulting to point.
-When in debugger due to frame being exited,
-use the \\[debugger-return-value] command to override the value
-being returned from that frame.
-
-Use \\[debug-on-entry] and \\[cancel-debug-on-entry] to control
-which functions will enter the debugger when called.
-
-Complete list of commands:
-\\{debugger-mode-map}"
- (kill-all-local-variables)
- (setq major-mode 'debugger-mode)
- (setq mode-name "Debugger")
- (setq truncate-lines t)
- (set-syntax-table emacs-lisp-mode-syntax-table)
- (use-local-map debugger-mode-map)
- (run-mode-hooks 'debugger-mode-hook))
+For the cross-reference format, see `help-make-xrefs'."
+ (interactive "d")
+ (require 'help-mode)
+ (unless pos
+ (setq pos (point)))
+ (unless (push-button pos)
+ ;; check if the symbol under point is a function or variable
+ (let ((sym
+ (intern
+ (save-excursion
+ (goto-char pos) (skip-syntax-backward "w_")
+ (buffer-substring (point)
+ (progn (skip-syntax-forward "w_")
+ (point)))))))
+ (when (or (boundp sym) (fboundp sym) (facep sym))
+ (switch-to-buffer-other-window (generate-new-buffer "*Help*"))
+ (help-do-xref pos #'help-xref-interned (list sym))))))
;; When you change this, you may also need to change the number of
;; frames that the debugger skips.
@@ -680,7 +709,7 @@ Redefining FUNCTION also cancels it."
(let ((fn (function-called-at-point)) val)
(when (debugger-special-form-p fn)
(setq fn nil))
- (setq val (completing-read
+ (setq val (completing-read
(if fn
(format "Debug on entry to function (default %s): " fn)
"Debug on entry to function: ")
diff --git a/lisp/emacs-lisp/derived.el b/lisp/emacs-lisp/derived.el
index ef8e3288bb..8e1f79f95e 100644
--- a/lisp/emacs-lisp/derived.el
+++ b/lisp/emacs-lisp/derived.el
@@ -1,7 +1,8 @@
;;; derived.el --- allow inheritance of major modes
;; (formerly mode-clone.el)
-;; Copyright (C) 1993, 1994, 1999, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 1999, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Megginson (dmeggins@aix1.uottawa.ca)
;; Maintainer: FSF
@@ -96,7 +97,7 @@
;;; PRIVATE: defsubst must be defined before they are first used
(defsubst derived-mode-hook-name (mode)
- "Construct the mode hook name based on mode name MODE."
+ "Construct a mode-hook name based on a MODE name."
(intern (concat (symbol-name mode) "-hook")))
(defsubst derived-mode-map-name (mode)
@@ -382,18 +383,11 @@ Always merge its parent into it, since the merge is non-destructive."
(derived-mode-merge-abbrev-tables old-table new-table)
(setq local-abbrev-table new-table)))
-;;;(defun derived-mode-run-setup-function (mode)
-;;; "Run the setup function if it exists."
-
-;;; (let ((fname (derived-mode-setup-function-name mode)))
-;;; (if (fboundp fname)
-;;; (funcall fname))))
-
(defun derived-mode-run-hooks (mode)
- "Run the mode hook for MODE."
- (let ((hooks-name (derived-mode-hook-name mode)))
- (if (boundp hooks-name)
- (run-hooks hooks-name))))
+ "Run the mode hook for MODE."
+ (let ((hooks-name (derived-mode-hook-name mode)))
+ (if (boundp hooks-name)
+ (run-hooks hooks-name))))
;; Functions to merge maps and tables.
diff --git a/lisp/emacs-lisp/disass.el b/lisp/emacs-lisp/disass.el
index fa368902f6..fa0898f609 100644
--- a/lisp/emacs-lisp/disass.el
+++ b/lisp/emacs-lisp/disass.el
@@ -1,6 +1,7 @@
;;; disass.el --- disassembler for compiled Emacs Lisp code
-;; Copyright (C) 1986, 1991, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 1986, 1991, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Doug Cutting <doug@csli.stanford.edu>
;; Jamie Zawinski <jwz@lucid.com>
diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el
index 4c232b2882..da0ca735ef 100644
--- a/lisp/emacs-lisp/easy-mmode.el
+++ b/lisp/emacs-lisp/easy-mmode.el
@@ -142,7 +142,10 @@ For example, you could write
(let* ((mode-name (symbol-name mode))
(pretty-name (easy-mmode-pretty-mode-name mode lighter))
(globalp nil)
+ (set nil)
+ (initialize nil)
(group nil)
+ (type nil)
(extra-args nil)
(extra-keywords nil)
(require t)
@@ -159,7 +162,10 @@ For example, you could write
(:lighter (setq lighter (pop body)))
(:global (setq globalp (pop body)))
(:extra-args (setq extra-args (pop body)))
+ (:set (setq set (list :set (pop body))))
+ (:initialize (setq initialize (list :initialize (pop body))))
(:group (setq group (nconc group (list :group (pop body)))))
+ (:type (setq type (list :type (pop body))))
(:require (setq require (pop body)))
(:keymap (setq keymap (pop body)))
(t (push keyw extra-keywords) (push (pop body) extra-keywords))))
@@ -167,12 +173,19 @@ For example, you could write
(setq keymap-sym (if (and keymap (symbolp keymap)) keymap
(intern (concat mode-name "-map"))))
+ (unless set (setq set '(:set 'custom-set-minor-mode)))
+
+ (unless initialize
+ (setq initialize '(:initialize 'custom-initialize-default)))
+
(unless group
;; We might as well provide a best-guess default group.
(setq group
`(:group ',(intern (replace-regexp-in-string
"-mode\\'" "" mode-name)))))
+ (unless type (setq type '(:type 'boolean)))
+
`(progn
;; Define the variable to enable or disable the mode.
,(if (not globalp)
@@ -181,28 +194,20 @@ For example, you could write
Use the command `%s' to change this variable." pretty-name mode))
(make-variable-buffer-local ',mode))
- (let ((curfile (or (and (boundp 'byte-compile-current-file)
- byte-compile-current-file)
- load-file-name))
- base-doc-string)
- (setq base-doc-string "Non-nil if %s is enabled.
-See the command `%s' for a description of this minor-mode.
+ (let ((base-doc-string
+ (concat "Non-nil if %s is enabled.
+See the command `%s' for a description of this minor-mode."
+ (if body "
Setting this variable directly does not take effect;
-use either \\[customize] or the function `%s'.")
- (if (null body)
- (setq base-doc-string "Non-nil if %s is enabled.
-See the command `%s' for a description of this minor-mode."))
-
+use either \\[customize] or the function `%s'."))))
`(defcustom ,mode ,init-value
,(format base-doc-string pretty-name mode mode)
- :set 'custom-set-minor-mode
- :initialize 'custom-initialize-default
+ ,@set
+ ,@initialize
,@group
- :type 'boolean
- ,@(cond
- ((not (and curfile require)) nil)
- ((not (eq require t)) `(:require ,require)))
- ,@(nreverse extra-keywords))))
+ ,@type
+ ,@(unless (eq require t) `(:require ,require))
+ ,@(nreverse extra-keywords))))
;; The actual function.
(defun ,mode (&optional arg ,@extra-args)
@@ -254,12 +259,7 @@ With zero or negative ARG turn mode off.
(add-minor-mode ',mode ',lighter
,(if keymap keymap-sym
`(if (boundp ',keymap-sym)
- (symbol-value ',keymap-sym))))
-
- ;; If the mode is global, call the function according to the default.
- ,(if globalp
- `(if (and load-file-name (not (equal ,init-value ,mode)))
- (eval-after-load load-file-name '(,mode (if ,mode 1 -1))))))))
+ (symbol-value ',keymap-sym)))))))
;;;
;;; make global minor mode
diff --git a/lisp/emacs-lisp/easymenu.el b/lisp/emacs-lisp/easymenu.el
index a1a1f470c5..634c239741 100644
--- a/lisp/emacs-lisp/easymenu.el
+++ b/lisp/emacs-lisp/easymenu.el
@@ -1,7 +1,7 @@
;;; easymenu.el --- support the easymenu interface for defining a menu
-;; Copyright (C) 1994, 1996, 1998, 1999, 2000, 2004, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1996, 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Keywords: emulations
;; Author: Richard Stallman <rms@gnu.org>
diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el
index fe0453519d..765548083b 100644
--- a/lisp/emacs-lisp/edebug.el
+++ b/lisp/emacs-lisp/edebug.el
@@ -1,7 +1,7 @@
;;; edebug.el --- a source-level debugger for Emacs Lisp
-;; Copyright (C) 1988,89,90,91,92,93,94,95,97,1999,2000,01,03,2004
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1997, 1999,
+;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Daniel LaLiberte <liberte@holonexus.org>
;; Maintainer: FSF
@@ -243,9 +243,9 @@ Both SYMBOL and SPEC are unevaluated. The SPEC can be 0, t, a symbol
`(put (quote ,symbol) 'edebug-form-spec (quote ,spec)))
(defmacro def-edebug-form-spec (symbol spec-form)
- "For compatibility with old version. Use `def-edebug-spec' instead."
- (message "Obsolete: use def-edebug-spec instead.")
+ "For compatibility with old version."
(def-edebug-spec symbol (eval spec-form)))
+(make-obsolete 'def-edebug-form-spec 'def-edebug-spec "22.1")
(defun get-edebug-spec (symbol)
;; Get the spec of symbol resolving all indirection.
@@ -2374,18 +2374,19 @@ MSG is printed after `::::} '."
(defun edebug-slow-before (edebug-before-index)
- ;; Debug current function given BEFORE position.
- ;; Called from functions compiled with edebug-eval-top-level-form.
- ;; Return the before index.
- (setcar edebug-offset-indices edebug-before-index)
-
- ;; Increment frequency count
- (aset edebug-freq-count edebug-before-index
- (1+ (aref edebug-freq-count edebug-before-index)))
-
- (if (or (not (memq edebug-execution-mode '(Go-nonstop next)))
- (edebug-input-pending-p))
- (edebug-debugger edebug-before-index 'before nil))
+ (unless edebug-active
+ ;; Debug current function given BEFORE position.
+ ;; Called from functions compiled with edebug-eval-top-level-form.
+ ;; Return the before index.
+ (setcar edebug-offset-indices edebug-before-index)
+
+ ;; Increment frequency count
+ (aset edebug-freq-count edebug-before-index
+ (1+ (aref edebug-freq-count edebug-before-index)))
+
+ (if (or (not (memq edebug-execution-mode '(Go-nonstop next)))
+ (edebug-input-pending-p))
+ (edebug-debugger edebug-before-index 'before nil)))
edebug-before-index)
(defun edebug-fast-before (edebug-before-index)
@@ -2393,22 +2394,24 @@ MSG is printed after `::::} '."
)
(defun edebug-slow-after (edebug-before-index edebug-after-index edebug-value)
- ;; Debug current function given AFTER position and VALUE.
- ;; Called from functions compiled with edebug-eval-top-level-form.
- ;; Return VALUE.
- (setcar edebug-offset-indices edebug-after-index)
-
- ;; Increment frequency count
- (aset edebug-freq-count edebug-after-index
- (1+ (aref edebug-freq-count edebug-after-index)))
- (if edebug-test-coverage (edebug-update-coverage))
-
- (if (and (eq edebug-execution-mode 'Go-nonstop)
- (not (edebug-input-pending-p)))
- ;; Just return result.
+ (if edebug-active
edebug-value
- (edebug-debugger edebug-after-index 'after edebug-value)
- ))
+ ;; Debug current function given AFTER position and VALUE.
+ ;; Called from functions compiled with edebug-eval-top-level-form.
+ ;; Return VALUE.
+ (setcar edebug-offset-indices edebug-after-index)
+
+ ;; Increment frequency count
+ (aset edebug-freq-count edebug-after-index
+ (1+ (aref edebug-freq-count edebug-after-index)))
+ (if edebug-test-coverage (edebug-update-coverage))
+
+ (if (and (eq edebug-execution-mode 'Go-nonstop)
+ (not (edebug-input-pending-p)))
+ ;; Just return result.
+ edebug-value
+ (edebug-debugger edebug-after-index 'after edebug-value)
+ )))
(defun edebug-fast-after (edebug-before-index edebug-after-index edebug-value)
;; Do nothing but return the value.
@@ -2533,6 +2536,7 @@ MSG is printed after `::::} '."
;; Uses local variables of edebug-enter, edebug-before, edebug-after
;; and edebug-debugger.
(let ((edebug-active t) ; for minor mode alist
+ (edebug-with-timeout-suspend (with-timeout-suspend))
edebug-stop ; should we enter recursive-edit
(edebug-point (+ edebug-def-mark
(aref (nth 2 edebug-data) edebug-offset-index)))
@@ -2759,6 +2763,7 @@ MSG is printed after `::::} '."
(set-buffer current-buffer))
;; ... nothing more.
)
+ (with-timeout-unsuspend edebug-with-timeout-suspend)
;; Reset global variables to outside values in case they were changed.
(setq
overlay-arrow-position edebug-outside-o-a-p
@@ -3646,9 +3651,12 @@ Return the result of the last expression."
;; Replace printing functions.
;; obsolete names
-(defalias 'edebug-install-custom-print-funcs 'edebug-install-custom-print)
-(defalias 'edebug-reset-print-funcs 'edebug-uninstall-custom-print)
-(defalias 'edebug-uninstall-custom-print-funcs 'edebug-uninstall-custom-print)
+(define-obsolete-function-alias 'edebug-install-custom-print-funcs
+ 'edebug-install-custom-print "22.1")
+(define-obsolete-function-alias 'edebug-reset-print-funcs
+ 'edebug-uninstall-custom-print "22.1")
+(define-obsolete-function-alias 'edebug-uninstall-custom-print-funcs
+ 'edebug-uninstall-custom-print "22.1")
(defun edebug-install-custom-print ()
"Replace print functions used by Edebug with custom versions."
diff --git a/lisp/emacs-lisp/eldoc.el b/lisp/emacs-lisp/eldoc.el
index 1492e29e3c..4ae8f53a98 100644
--- a/lisp/emacs-lisp/eldoc.el
+++ b/lisp/emacs-lisp/eldoc.el
@@ -1,7 +1,7 @@
;;; eldoc.el --- show function arglist or variable docstring in echo area
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2003, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Noah Friedman <friedman@splode.com>
;; Maintainer: friedman@splode.com
@@ -454,10 +454,11 @@ Emacs Lisp mode) that support Eldoc.")
;; Prime the command list.
(eldoc-add-command-completions
"backward-" "beginning-of-" "delete-other-windows" "delete-window"
- "end-of-" "forward-" "indent-for-tab-command" "goto-" "mouse-set-point"
- "next-" "other-window" "previous-" "recenter" "scroll-"
- "self-insert-command" "split-window-"
- "up-list" "down-list")
+ "end-of-" "exchange-point-and-mark" "forward-"
+ "indent-for-tab-command" "goto-" "mark-page" "mark-paragraph"
+ "mouse-set-point" "move-" "pop-global-mark" "next-" "other-window"
+ "previous-" "recenter" "scroll-" "self-insert-command"
+ "split-window-" "up-list" "down-list")
(provide 'eldoc)
diff --git a/lisp/emacs-lisp/elint.el b/lisp/emacs-lisp/elint.el
index 51e2ed9871..e72613695e 100644
--- a/lisp/emacs-lisp/elint.el
+++ b/lisp/emacs-lisp/elint.el
@@ -1,6 +1,6 @@
;;; elint.el --- Lint Emacs Lisp
-;; Copyright (C) 1997 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Peter Liljenberg <petli@lysator.liu.se>
;; Created: May 1997
diff --git a/lisp/emacs-lisp/elp.el b/lisp/emacs-lisp/elp.el
index dbda66a261..426c79e51c 100644
--- a/lisp/emacs-lisp/elp.el
+++ b/lisp/emacs-lisp/elp.el
@@ -1,6 +1,7 @@
;;; elp.el --- Emacs Lisp Profiler
-;; Copyright (C) 1994,1995,1997,1998, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 1997, 1998, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Barry A. Warsaw
;; Maintainer: FSF
diff --git a/lisp/emacs-lisp/ewoc.el b/lisp/emacs-lisp/ewoc.el
index 1984423d9d..da9aa09119 100644
--- a/lisp/emacs-lisp/ewoc.el
+++ b/lisp/emacs-lisp/ewoc.el
@@ -1,7 +1,7 @@
;;; ewoc.el --- utility to maintain a view of a list of objects in a buffer
-;; Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 04
-;; Free Software Foundation
+;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+;; 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Per Cederqvist <ceder@lysator.liu.se>
;; Inge Wallin <inge@lysator.liu.se>
diff --git a/lisp/emacs-lisp/find-func.el b/lisp/emacs-lisp/find-func.el
index 4c25acf49c..d860bfcd59 100644
--- a/lisp/emacs-lisp/find-func.el
+++ b/lisp/emacs-lisp/find-func.el
@@ -1,6 +1,7 @@
;;; find-func.el --- find the definition of the Emacs Lisp function near point
-;; Copyright (C) 1997, 1999, 2001, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1999, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Jens Petersen <petersen@kurims.kyoto-u.ac.jp>
;; Maintainer: petersen@kurims.kyoto-u.ac.jp
@@ -62,7 +63,7 @@
;; (define-derived-mode foo ...), (define-minor-mode foo)
(concat
"^\\s-*(\\(def\\(ine-skeleton\\|ine-generic-mode\\|ine-derived-mode\\|\
-ine-minor-mode\\|un-cvs-mode\\|foo\\|[^cfgv]\\w+\\*?\\)\
+ine-minor-mode\\|ine-compilation-mode\\|un-cvs-mode\\|foo\\|[^cfgv]\\w+\\*?\\)\
\\|easy-mmode-define-global-mode\\|menu-bar-make-toggle\\)"
find-function-space-re
"\\('\\|\(quote \\)?%s\\(\\s-\\|$\\|\(\\|\)\\)")
diff --git a/lisp/emacs-lisp/find-gc.el b/lisp/emacs-lisp/find-gc.el
index 1606395c67..29e9dffbbd 100644
--- a/lisp/emacs-lisp/find-gc.el
+++ b/lisp/emacs-lisp/find-gc.el
@@ -1,6 +1,6 @@
;;; find-gc.el --- detect functions that call the garbage collector
-;; Copyright (C) 1992 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
@@ -23,56 +23,86 @@
;;; Commentary:
-;; Produce in unsafe-list the set of all functions that may invoke GC.
-;; This expects the Emacs sources to live in emacs-source-directory.
+;; Produce in find-gc-unsafe-list the set of all functions that may invoke GC.
+;; This expects the Emacs sources to live in find-gc-source-directory.
;; It creates a temporary working directory /tmp/esrc.
;;; Code:
+(defvar find-gc-unsafe-list nil
+ "The list of unsafe functions is placed here by `find-gc-unsafe'.")
+
+(defvar find-gc-source-directory)
+
+(defvar find-gc-subrs-callers nil
+ "Alist of users of subrs, from GC testing.
+Each entry has the form (FUNCTION . FUNCTIONS-THAT-CALL-IT).")
+
+(defvar find-gc-subrs-called nil
+ "Alist of subrs called, in GC testing.
+Each entry has the form (FUNCTION . FUNCTIONS-IT-CALLS).")
+
+
+;;; Functions on this list are safe, even if they appear to be able
+;;; to call the target.
+
+(defvar find-gc-noreturn-list '(Fsignal Fthrow wrong_type_argument))
+
+;;; This was originally generated directory-files, but there were
+;;; too many files there that were not actually compiled. The
+;;; list below was created for a HP-UX 7.0 system.
+
+(defvar find-gc-source-files
+ '("dispnew.c" "scroll.c" "xdisp.c" "window.c"
+ "term.c" "cm.c" "emacs.c" "keyboard.c" "macros.c"
+ "keymap.c" "sysdep.c" "buffer.c" "filelock.c"
+ "insdel.c" "marker.c" "minibuf.c" "fileio.c"
+ "dired.c" "filemode.c" "cmds.c" "casefiddle.c"
+ "indent.c" "search.c" "regex.c" "undo.c"
+ "alloc.c" "data.c" "doc.c" "editfns.c"
+ "callint.c" "eval.c" "fns.c" "print.c" "lread.c"
+ "abbrev.c" "syntax.c" "unexec.c"
+ "bytecode.c" "process.c" "callproc.c" "doprnt.c"
+ "x11term.c" "x11fns.c"))
+
+
(defun find-gc-unsafe ()
+ "Return a list of unsafe functions--that is, which can call GC.
+Also store it in `find-gc-unsafe'."
(trace-call-tree nil)
(trace-use-tree)
(find-unsafe-funcs 'Fgarbage_collect)
- (setq unsafe-list (sort unsafe-list
- (function (lambda (x y)
- (string-lessp (car x) (car y))))))
+ (setq find-gc-unsafe-list
+ (sort find-gc-unsafe-list
+ (function (lambda (x y)
+ (string-lessp (car x) (car y))))))
)
-(setq emacs-source-directory "/usr/gnu/src/dist/src")
-
-
;;; This does a depth-first search to find all functions that can
;;; ultimately call the function "target". The result is an a-list
-;;; in unsafe-list; the cars are the unsafe functions, and the cdrs
+;;; in find-gc-unsafe-list; the cars are the unsafe functions, and the cdrs
;;; are (one of) the unsafe functions that these functions directly
;;; call.
(defun find-unsafe-funcs (target)
- (setq unsafe-list (list (list target)))
+ (setq find-gc-unsafe-list (list (list target)))
(trace-unsafe target)
)
(defun trace-unsafe (func)
- (let ((used (assq func subrs-used)))
+ (let ((used (assq func find-gc-subrs-callers)))
(or used
- (error "No subrs-used for %s" (car unsafe-list)))
+ (error "No find-gc-subrs-callers for %s" (car find-gc-unsafe-list)))
(while (setq used (cdr used))
- (or (assq (car used) unsafe-list)
- (memq (car used) noreturn-list)
+ (or (assq (car used) find-gc-unsafe-list)
+ (memq (car used) find-gc-noreturn-list)
(progn
- (setq unsafe-list (cons (cons (car used) func) unsafe-list))
+ (push (cons (car used) func) find-gc-unsafe-list)
(trace-unsafe (car used))))))
)
-;;; Functions on this list are safe, even if they appear to be able
-;;; to call the target.
-
-(setq noreturn-list '( Fsignal Fthrow wrong_type_argument ))
-
-;;; This produces an a-list of functions in subrs-called. The cdr of
-;;; each entry is a list of functions which the function in car calls.
(defun trace-call-tree (&optional already-setup)
(message "Setting up directories...")
@@ -83,12 +113,12 @@
(call-process "csh" nil nil nil "-c" "mkdir /tmp/esrc")
(call-process "csh" nil nil nil "-c"
(format "ln -s %s/*.[ch] /tmp/esrc"
- emacs-source-directory))))
+ find-gc-source-directory))))
(save-excursion
(set-buffer (get-buffer-create "*Trace Call Tree*"))
- (setq subrs-called nil)
+ (setq find-gc-subrs-called nil)
(let ((case-fold-search nil)
- (files source-files)
+ (files find-gc-source-files)
name entry)
(while files
(message "Compiling %s..." (car files))
@@ -105,7 +135,7 @@
(match-end 0))))
(message "%s : %s" (car files) name)
(setq entry (list name)
- subrs-called (cons entry subrs-called)))
+ find-gc-subrs-called (cons entry find-gc-subrs-called)))
(if (looking-at ".*\n?.*\"\\([A-Za-z0-9_]+\\)\"")
(progn
(setq name (intern (buffer-substring (match-beginning 1)
@@ -117,34 +147,14 @@
)
-;;; This was originally generated directory-files, but there were
-;;; too many files there that were not actually compiled. The
-;;; list below was created for a HP-UX 7.0 system.
-
-(setq source-files '("dispnew.c" "scroll.c" "xdisp.c" "window.c"
- "term.c" "cm.c" "emacs.c" "keyboard.c" "macros.c"
- "keymap.c" "sysdep.c" "buffer.c" "filelock.c"
- "insdel.c" "marker.c" "minibuf.c" "fileio.c"
- "dired.c" "filemode.c" "cmds.c" "casefiddle.c"
- "indent.c" "search.c" "regex.c" "undo.c"
- "alloc.c" "data.c" "doc.c" "editfns.c"
- "callint.c" "eval.c" "fns.c" "print.c" "lread.c"
- "abbrev.c" "syntax.c" "unexec.c"
- "bytecode.c" "process.c" "callproc.c" "doprnt.c"
- "x11term.c" "x11fns.c"))
-
-
-;;; This produces an inverted a-list in subrs-used. The cdr of each
-;;; entry is a list of functions that call the function in car.
-
(defun trace-use-tree ()
- (setq subrs-used (mapcar 'list (mapcar 'car subrs-called)))
- (let ((ptr subrs-called)
+ (setq find-gc-subrs-callers (mapcar 'list (mapcar 'car find-gc-subrs-called)))
+ (let ((ptr find-gc-subrs-called)
p2 found)
(while ptr
(setq p2 (car ptr))
(while (setq p2 (cdr p2))
- (if (setq found (assq (car p2) subrs-used))
+ (if (setq found (assq (car p2) find-gc-subrs-callers))
(setcdr found (cons (car (car ptr)) (cdr found)))))
(setq ptr (cdr ptr))))
)
diff --git a/lisp/emacs-lisp/float-sup.el b/lisp/emacs-lisp/float-sup.el
index b07b6f837f..1d30d60ea9 100644
--- a/lisp/emacs-lisp/float-sup.el
+++ b/lisp/emacs-lisp/float-sup.el
@@ -1,6 +1,7 @@
;;; float-sup.el --- define some constants useful for floating point numbers.
-;; Copyright (C) 1985, 1986, 1987 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1987, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: internal
diff --git a/lisp/emacs-lisp/generic.el b/lisp/emacs-lisp/generic.el
index 785368e290..3b423f20d8 100644
--- a/lisp/emacs-lisp/generic.el
+++ b/lisp/emacs-lisp/generic.el
@@ -1,6 +1,7 @@
;;; generic.el --- defining simple major modes with comment and font-lock
;;
-;; Copyright (C) 1997, 1999, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1999, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;;
;; Author: Peter Breton <pbreton@cs.umb.edu>
;; Created: Fri Sep 27 1996
@@ -101,8 +102,7 @@
(defvar generic-font-lock-keywords nil
"Keywords for `font-lock-defaults' in a generic mode.")
(make-variable-buffer-local 'generic-font-lock-keywords)
-(defvaralias 'generic-font-lock-defaults 'generic-font-lock-keywords)
-(make-obsolete-variable 'generic-font-lock-defaults 'generic-font-lock-keywords "22.1")
+(define-obsolete-variable-alias 'generic-font-lock-defaults 'generic-font-lock-keywords "22.1")
;;;###autoload
(defvar generic-mode-list nil
diff --git a/lisp/emacs-lisp/gulp.el b/lisp/emacs-lisp/gulp.el
index 43311b6ff5..6e0c4ded4d 100644
--- a/lisp/emacs-lisp/gulp.el
+++ b/lisp/emacs-lisp/gulp.el
@@ -1,6 +1,6 @@
;;; gulp.el --- ask for updates for Lisp packages
-;; Copyright (C) 1996 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Sam Shteingold <shteingd@math.ucla.edu>
;; Maintainer: FSF
diff --git a/lisp/emacs-lisp/helper.el b/lisp/emacs-lisp/helper.el
index eac18a5dca..e97491aa6b 100644
--- a/lisp/emacs-lisp/helper.el
+++ b/lisp/emacs-lisp/helper.el
@@ -1,6 +1,6 @@
;;; helper.el --- utility help package supporting help in electric modes
-;; Copyright (C) 1985 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: K. Shane Hartman
;; Maintainer: FSF
diff --git a/lisp/emacs-lisp/levents.el b/lisp/emacs-lisp/levents.el
index 87a6725f17..7096191281 100644
--- a/lisp/emacs-lisp/levents.el
+++ b/lisp/emacs-lisp/levents.el
@@ -1,6 +1,7 @@
;;; levents.el --- emulate the Lucid event data type and associated functions
-;; Copyright (C) 1993, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: emulations
diff --git a/lisp/emacs-lisp/lisp-mnt.el b/lisp/emacs-lisp/lisp-mnt.el
index d6c7c8c345..b102b4da58 100644
--- a/lisp/emacs-lisp/lisp-mnt.el
+++ b/lisp/emacs-lisp/lisp-mnt.el
@@ -1,6 +1,7 @@
;;; lisp-mnt.el --- utility functions for Emacs Lisp maintainers
-;; Copyright (C) 1992, 1994, 1997, 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1994, 1997, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Eric S. Raymond <esr@snark.thyrsus.com>
;; Maintainer: FSF
@@ -306,7 +307,7 @@ If FILE is nil, execute BODY in the current buffer."
(insert-file-contents ,filesym)
(lisp-mode)
,@body)
- (save-excursion
+ (save-excursion
;; Switching major modes is too drastic, so just switch
;; temporarily to the Lisp mode syntax table.
(with-syntax-table lisp-mode-syntax-table
diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el
index 8469aec136..e50d5bd125 100644
--- a/lisp/emacs-lisp/lisp-mode.el
+++ b/lisp/emacs-lisp/lisp-mode.el
@@ -1,7 +1,7 @@
;;; lisp-mode.el --- Lisp mode, and its idiosyncratic commands
-;; Copyright (C) 1985, 1986, 1999, 2000, 2001, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: lisp, languages
@@ -30,6 +30,11 @@
;;; Code:
+(defvar font-lock-comment-face)
+(defvar font-lock-doc-face)
+(defvar font-lock-keywords-case-fold-search)
+(defvar font-lock-string-face)
+
(defvar lisp-mode-abbrev-table nil)
(defvar emacs-lisp-mode-syntax-table
@@ -50,12 +55,13 @@
(while (< i 128)
(modify-syntax-entry i "_ " table)
(setq i (1+ i)))
- (modify-syntax-entry ? " " table)
+ (modify-syntax-entry ?\s " " table)
(modify-syntax-entry ?\t " " table)
(modify-syntax-entry ?\f " " table)
(modify-syntax-entry ?\n "> " table)
- ;; Give CR the same syntax as newline, for selective-display.
- (modify-syntax-entry ?\^m "> " table)
+;;; This is probably obsolete since nowadays such features use overlays.
+;;; ;; Give CR the same syntax as newline, for selective-display.
+;;; (modify-syntax-entry ?\^m "> " table)
(modify-syntax-entry ?\; "< " table)
(modify-syntax-entry ?` "' " table)
(modify-syntax-entry ?' "' " table)
diff --git a/lisp/emacs-lisp/lisp.el b/lisp/emacs-lisp/lisp.el
index a20b79335c..d248882d88 100644
--- a/lisp/emacs-lisp/lisp.el
+++ b/lisp/emacs-lisp/lisp.el
@@ -1,7 +1,7 @@
;;; lisp.el --- Lisp editing commands for Emacs
-;; Copyright (C) 1985, 1986, 1994, 2000, 2004, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1994, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: lisp, languages
diff --git a/lisp/emacs-lisp/lmenu.el b/lisp/emacs-lisp/lmenu.el
index c047e0b91e..68d3a3de9a 100644
--- a/lisp/emacs-lisp/lmenu.el
+++ b/lisp/emacs-lisp/lmenu.el
@@ -1,6 +1,7 @@
;;; lmenu.el --- emulate Lucid's menubar support
-;; Copyright (C) 1992, 1993, 1994, 1997 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1993, 1994, 1997, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Keywords: emulations obsolete
@@ -31,8 +32,10 @@
;; Arrange to use current-menubar to set up part of the menu bar.
(defvar current-menubar)
+(defvar lucid-menubar-map)
+(defvar lucid-failing-menubar)
-(setq recompute-lucid-menubar 'recompute-lucid-menubar)
+(defvar recompute-lucid-menubar 'recompute-lucid-menubar)
(defun recompute-lucid-menubar ()
(define-key lucid-menubar-map [menu-bar]
(condition-case nil
diff --git a/lisp/emacs-lisp/lselect.el b/lisp/emacs-lisp/lselect.el
index f1d0244f0e..d0b333edfe 100644
--- a/lisp/emacs-lisp/lselect.el
+++ b/lisp/emacs-lisp/lselect.el
@@ -1,6 +1,7 @@
;;; lselect.el --- Lucid interface to X Selections
-;; Copyright (C) 1990, 1993, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1993, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: emulations
@@ -33,6 +34,11 @@
;; all upper-case; this may seem tasteless, but it makes there be a 1:1
;; correspondence between these symbols and X Atoms (which are upcased.)
+;; This is Lucid/XEmacs stuff
+(defvar mouse-highlight-priority)
+(defvar x-lost-selection-functions)
+(defvar zmacs-regions)
+
(defalias 'x-get-cutbuffer 'x-get-cut-buffer)
(defalias 'x-store-cutbuffer 'x-set-cut-buffer)
@@ -101,9 +107,9 @@
(defun x-own-selection (selection &optional type)
- "Make a primary X Selection of the given argument.
-The argument may be a string, a cons of two markers, or an extent.
-In the latter cases the selection is considered to be the text
+ "Make a primary X Selection of the given argument.
+The argument may be a string, a cons of two markers, or an extent.
+In the latter cases the selection is considered to be the text
between the markers, or the between extents endpoints."
(interactive (if (not current-prefix-arg)
(list (read-string "Store text for pasting: "))
@@ -124,7 +130,7 @@ between the markers, or the between extents endpoints."
(defun x-own-secondary-selection (selection &optional type)
- "Make a secondary X Selection of the given argument. The argument may be a
+ "Make a secondary X Selection of the given argument. The argument may be a
string or a cons of two markers (in which case the selection is considered to
be the text between those markers.)"
(interactive (if (not current-prefix-arg)
@@ -182,7 +188,7 @@ secondary selection instead of the primary selection."
;; Random utility functions
(defun x-kill-primary-selection ()
- "If there is a selection, delete the text it covers, and copy it to
+ "If there is a selection, delete the text it covers, and copy it to
both the kill ring and the Clipboard."
(interactive)
(or (x-selection-owner-p) (error "emacs does not own the primary selection"))
diff --git a/lisp/emacs-lisp/lucid.el b/lisp/emacs-lisp/lucid.el
index 3374a4d7d7..f3c9519edf 100644
--- a/lisp/emacs-lisp/lucid.el
+++ b/lisp/emacs-lisp/lucid.el
@@ -1,6 +1,7 @@
;;; lucid.el --- emulate some Lucid Emacs functions
-;; Copyright (C) 1993, 1995, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1995, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: emulations
diff --git a/lisp/emacs-lisp/macroexp.el b/lisp/emacs-lisp/macroexp.el
index 02ad05639a..98e4f67f63 100644
--- a/lisp/emacs-lisp/macroexp.el
+++ b/lisp/emacs-lisp/macroexp.el
@@ -1,6 +1,6 @@
;;; macroexp.el --- Additional macro-expansion support
;;
-;; Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 2004, 2005 Free Software Foundation, Inc.
;;
;; Author: Miles Bader <miles@gnu.org>
;; Keywords: lisp, compiler, macros
@@ -91,7 +91,7 @@ FORMS."
CLAUSES is a list of lists of forms; any clause that's not a list is ignored.
If SKIP is non-nil, then don't expand that many elements at the start of
each clause."
- (macroexp-accumulate (clause clauses)
+ (macroexp-accumulate (clause clauses)
(if (listp clause)
(macroexpand-all-forms clause skip)
clause)))
diff --git a/lisp/emacs-lisp/map-ynp.el b/lisp/emacs-lisp/map-ynp.el
index 6447f7e438..84c7ae58ce 100644
--- a/lisp/emacs-lisp/map-ynp.el
+++ b/lisp/emacs-lisp/map-ynp.el
@@ -1,6 +1,7 @@
;;; map-ynp.el --- general-purpose boolean question-asker
-;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 2000 Free Software Foundation, Inc.
+;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 2000, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Roland McGrath <roland@gnu.org>
;; Maintainer: FSF
@@ -102,15 +103,18 @@ Returns the number of actions taken."
(let ((object (if help (capitalize (nth 0 help))))
(objects (if help (capitalize (nth 1 help))))
(action (if help (capitalize (nth 2 help)))))
- (setq map `(("Yes" . act) ("No" . skip) ("Quit" . exit)
- (,(if help (concat action " " object " And Quit")
- "Do it and Quit") . act-and-exit)
- (,(if help (concat action " All " objects)
- "Do All") . automatic)
+ (setq map `(("Yes" . act) ("No" . skip)
,@(mapcar (lambda (elt)
- (cons (capitalize (nth 2 elt))
+ (cons (with-syntax-table
+ text-mode-syntax-table
+ (capitalize (nth 2 elt)))
(vector (nth 1 elt))))
- action-alist))
+ action-alist)
+ (,(if help (concat action " This But No More")
+ "Do This But No More") . act-and-exit)
+ (,(if help (concat action " All " objects)
+ "Do All") . automatic)
+ ("No For All" . exit))
use-menus t
mouse-event last-nonmenu-event))
(setq user-keys (if action-alist
diff --git a/lisp/emacs-lisp/pp.el b/lisp/emacs-lisp/pp.el
index 7bbd56d8af..1635aa4bfe 100644
--- a/lisp/emacs-lisp/pp.el
+++ b/lisp/emacs-lisp/pp.el
@@ -1,6 +1,7 @@
;;; pp.el --- pretty printer for Emacs Lisp
-;; Copyright (C) 1989, 1993, 2001, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1989, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Randal Schwartz <merlyn@stonehenge.com>
;; Keywords: lisp
@@ -26,6 +27,8 @@
;;; Code:
+(defvar font-lock-verbose)
+
(defgroup pp nil
"Pretty printer for Emacs Lisp."
:prefix "pp-"
diff --git a/lisp/emacs-lisp/re-builder.el b/lisp/emacs-lisp/re-builder.el
index 67a682358f..1d1e002cf5 100644
--- a/lisp/emacs-lisp/re-builder.el
+++ b/lisp/emacs-lisp/re-builder.el
@@ -1,6 +1,7 @@
;;; re-builder.el --- building Regexps with visual feedback
-;; Copyright (C) 1999, 2000, 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Detlev Zundel <dzu@gnu.org>
;; Keywords: matching, lisp, tools
@@ -299,27 +300,14 @@ Except for Lisp syntax this is the same as `reb-regexp'.")
(add-hook 'kill-buffer-hook 'reb-kill-buffer)
(reb-auto-update nil nil nil))
-
-;; Handy macro for doing things in other windows
-(defmacro reb-with-current-window (window &rest body)
- "With WINDOW selected evaluate BODY forms and reselect previous window."
-
- (let ((oldwindow (make-symbol "*oldwindow*")))
- `(let ((,oldwindow (selected-window)))
- (select-window ,window)
- (unwind-protect
- (progn
- ,@body)
- (select-window ,oldwindow)))))
-(put 'reb-with-current-window 'lisp-indent-function 0)
-
(defun reb-color-display-p ()
"Return t if display is capable of displaying colors."
(eq 'color
;; emacs/xemacs compatibility
(if (fboundp 'frame-parameter)
(frame-parameter (selected-frame) 'display-type)
- (frame-property (selected-frame) 'display-type))))
+ (if (fboundp 'frame-property)
+ (frame-property (selected-frame) 'display-type)))))
(defsubst reb-lisp-syntax-p ()
"Return non-nil if RE Builder uses a Lisp syntax."
@@ -329,12 +317,18 @@ Except for Lisp syntax this is the same as `reb-regexp'.")
"Return binding for SYMBOL in the RE Builder target buffer."
`(with-current-buffer reb-target-buffer ,symbol))
+(defun reb-initialize-buffer ()
+ "Initialize the current buffer as a RE Builder buffer."
+ (erase-buffer)
+ (reb-insert-regexp)
+ (goto-char (+ 2 (point-min)))
+ (cond ((reb-lisp-syntax-p)
+ (reb-lisp-mode))
+ (t (reb-mode))))
+
;;; This is to help people find this in Apropos.
;;;###autoload
-(defun regexp-builder ()
- "Alias for `re-builder': Construct a regexp interactively."
- (interactive)
- (re-builder))
+(defalias 'regexp-builder 're-builder)
;;;###autoload
(defun re-builder ()
@@ -351,13 +345,7 @@ Except for Lisp syntax this is the same as `reb-regexp'.")
reb-window-config (current-window-configuration))
(select-window (split-window (selected-window) (- (window-height) 4)))
(switch-to-buffer (get-buffer-create reb-buffer))
- (erase-buffer)
- (reb-insert-regexp)
- (goto-char (+ 2 (point-min)))
- (cond
- ((reb-lisp-syntax-p)
- (reb-lisp-mode))
- (t (reb-mode)))))
+ (reb-initialize-buffer)))
(defun reb-change-target-buffer (buf)
"Change the target buffer and display it in the target window."
@@ -395,8 +383,7 @@ Except for Lisp syntax this is the same as `reb-regexp'.")
(interactive)
(reb-assert-buffer-in-window)
- (reb-with-current-window
- reb-target-window
+ (with-selected-window reb-target-window
(if (not (re-search-forward reb-regexp (point-max) t))
(message "No more matches.")
(reb-show-subexp
@@ -408,13 +395,15 @@ Except for Lisp syntax this is the same as `reb-regexp'.")
(interactive)
(reb-assert-buffer-in-window)
- (reb-with-current-window reb-target-window
- (goto-char (1- (point)))
- (if (not (re-search-backward reb-regexp (point-min) t))
- (message "No more matches.")
- (reb-show-subexp
- (or (and reb-subexp-mode reb-subexp-displayed) 0)
- t))))
+ (with-selected-window reb-target-window
+ (let ((p (point)))
+ (goto-char (1- p))
+ (if (re-search-backward reb-regexp (point-min) t)
+ (reb-show-subexp
+ (or (and reb-subexp-mode reb-subexp-displayed) 0)
+ t)
+ (goto-char p)
+ (message "No more matches.")))))
(defun reb-toggle-case ()
"Toggle case sensitivity of searches for RE Builder target buffer."
@@ -451,7 +440,7 @@ On color displays this just puts point to the end of the expression as
the match should already be marked by an overlay.
On other displays jump to the beginning and the end of it.
If the optional PAUSE is non-nil then pause at the end in any case."
- (reb-with-current-window reb-target-window
+ (with-selected-window reb-target-window
(if (not (reb-color-display-p))
(progn (goto-char (match-beginning subexp))
(sit-for reb-blink-delay)))
@@ -481,14 +470,9 @@ Optional argument SYNTAX must be specified if called non-interactively."
(if (memq syntax '(read string lisp-re sregex rx))
(let ((buffer (get-buffer reb-buffer)))
(setq reb-re-syntax syntax)
- (if buffer
- (with-current-buffer buffer
- (erase-buffer)
- (reb-insert-regexp)
- (goto-char (+ 2 (point-min)))
- (cond ((reb-lisp-syntax-p)
- (reb-lisp-mode))
- (t (reb-mode))))))
+ (when buffer
+ (with-current-buffer buffer
+ (reb-initialize-buffer))))
(error "Invalid syntax: %s" syntax)))
@@ -610,7 +594,8 @@ optional fourth argument FORCE is non-nil."
(defun reb-cook-regexp (re)
"Return RE after processing it according to `reb-re-syntax'."
(cond ((eq reb-re-syntax 'lisp-re)
- (lre-compile-string (eval (car (read-from-string re)))))
+ (if (fboundp 'lre-compile-string)
+ (lre-compile-string (eval (car (read-from-string re))))))
((eq reb-re-syntax 'sregex)
(apply 'sregex (eval (car (read-from-string re)))))
((eq reb-re-syntax 'rx)
diff --git a/lisp/emacs-lisp/regexp-opt.el b/lisp/emacs-lisp/regexp-opt.el
index 8c44f11bab..da2fdf85f8 100644
--- a/lisp/emacs-lisp/regexp-opt.el
+++ b/lisp/emacs-lisp/regexp-opt.el
@@ -1,7 +1,7 @@
;;; regexp-opt.el --- generate efficient regexps to match strings
-;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2004
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002,
+;; 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Simon Marshall <simon@gnu.org>
;; Maintainer: FSF
diff --git a/lisp/emacs-lisp/regi.el b/lisp/emacs-lisp/regi.el
index 7f9d313542..4326ba3778 100644
--- a/lisp/emacs-lisp/regi.el
+++ b/lisp/emacs-lisp/regi.el
@@ -1,6 +1,6 @@
;;; regi.el --- REGular expression Interpreting engine
-;; Copyright (C) 1993 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: 1993 Barry A. Warsaw, Century Computing, Inc. <bwarsaw@cen.com>
;; Maintainer: bwarsaw@cen.com
diff --git a/lisp/emacs-lisp/ring.el b/lisp/emacs-lisp/ring.el
index 24b90650f0..f04d98f399 100644
--- a/lisp/emacs-lisp/ring.el
+++ b/lisp/emacs-lisp/ring.el
@@ -1,6 +1,6 @@
;;; ring.el --- handle rings of items
-;; Copyright (C) 1992 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: extensions
diff --git a/lisp/emacs-lisp/rx.el b/lisp/emacs-lisp/rx.el
index c3147815fc..f526ffae94 100644
--- a/lisp/emacs-lisp/rx.el
+++ b/lisp/emacs-lisp/rx.el
@@ -1,6 +1,6 @@
;;; rx.el --- sexp notation for regular expressions
-;; Copyright (C) 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Gerd Moellmann <gerd@gnu.org>
;; Maintainer: FSF
diff --git a/lisp/emacs-lisp/shadow.el b/lisp/emacs-lisp/shadow.el
index b36ce4a332..9cea82d778 100644
--- a/lisp/emacs-lisp/shadow.el
+++ b/lisp/emacs-lisp/shadow.el
@@ -1,6 +1,6 @@
;;; shadow.el --- locate Emacs Lisp file shadowings
-;; Copyright (C) 1995 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Terry Jones <terry@santafe.edu>
;; Keywords: lisp
diff --git a/lisp/emacs-lisp/sregex.el b/lisp/emacs-lisp/sregex.el
index 84cb9785f6..7bfa940283 100644
--- a/lisp/emacs-lisp/sregex.el
+++ b/lisp/emacs-lisp/sregex.el
@@ -1,6 +1,7 @@
;;; sregex.el --- symbolic regular expressions
-;; Copyright (C) 1997, 1998, 2000 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Bob Glickstein <bobg+sregex@zanshin.com>
;; Maintainer: Bob Glickstein <bobg+sregex@zanshin.com>
diff --git a/lisp/emacs-lisp/syntax.el b/lisp/emacs-lisp/syntax.el
index bb5e782b00..126c8d50dd 100644
--- a/lisp/emacs-lisp/syntax.el
+++ b/lisp/emacs-lisp/syntax.el
@@ -1,6 +1,7 @@
;;; syntax.el --- helper functions to find syntactic context
-;; Copyright (C) 2000, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: internal
@@ -46,6 +47,8 @@
(eval-when-compile (require 'cl))
+(defvar font-lock-beginning-of-syntax-function)
+
(defsubst syntax-ppss-depth (ppss)
(nth 0 ppss))
diff --git a/lisp/emacs-lisp/tcover-ses.el b/lisp/emacs-lisp/tcover-ses.el
index 4c2ee1ee33..e79c42180f 100644
--- a/lisp/emacs-lisp/tcover-ses.el
+++ b/lisp/emacs-lisp/tcover-ses.el
@@ -1,6 +1,6 @@
;;;; testcover-ses.el -- Example use of `testcover' to test "SES"
-;; Copyright (C) 2002 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Jonathan Yavner <jyavner@engineer.com>
;; Maintainer: Jonathan Yavner <jyavner@engineer.com>
@@ -23,6 +23,9 @@
(require 'testcover)
+(defvar ses-initial-global-parameters)
+(defvar ses-mode-map)
+
;;;Here are some macros that exercise SES. Set `pause' to t if you want the
;;;macros to pause after each step.
(let* ((pause nil)
diff --git a/lisp/emacs-lisp/tcover-unsafep.el b/lisp/emacs-lisp/tcover-unsafep.el
index 9544bc396b..7f7a8fa57d 100644
--- a/lisp/emacs-lisp/tcover-unsafep.el
+++ b/lisp/emacs-lisp/tcover-unsafep.el
@@ -1,6 +1,6 @@
;;;; testcover-unsafep.el -- Use testcover to test unsafep's code coverage
-;; Copyright (C) 2002 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Jonathan Yavner <jyavner@engineer.com>
;; Maintainer: Jonathan Yavner <jyavner@engineer.com>
@@ -25,6 +25,8 @@
(require 'testcover)
+(defvar safe-functions)
+
;;;These forms are all considered safe
(defconst testcover-unsafep-safe
'(((lambda (x) (* x 2)) 14)
diff --git a/lisp/emacs-lisp/testcover.el b/lisp/emacs-lisp/testcover.el
index a5e761d9cb..c0afffdf39 100644
--- a/lisp/emacs-lisp/testcover.el
+++ b/lisp/emacs-lisp/testcover.el
@@ -1,6 +1,6 @@
;;;; testcover.el -- Visual code-coverage tool
-;; Copyright (C) 2002, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Jonathan Yavner <jyavner@member.fsf.org>
;; Maintainer: Jonathan Yavner <jyavner@member.fsf.org>
@@ -154,15 +154,11 @@ call to one of the `testcover-1value-functions'."
'((t (:background "DeepPink2")))
"Face for forms that had no hits during coverage test"
:group 'testcover)
-;; backward-compatibility alias
-(put 'testcover-nohits-face 'face-alias 'testcover-nohits)
(defface testcover-1value
'((t (:background "Wheat2")))
"Face for forms that always produced the same value during coverage test"
:group 'testcover)
-;; backward-compatibility alias
-(put 'testcover-1value-face 'face-alias 'testcover-1value)
;;;=========================================================================
diff --git a/lisp/emacs-lisp/timer.el b/lisp/emacs-lisp/timer.el
index e207766701..83b01642c5 100644
--- a/lisp/emacs-lisp/timer.el
+++ b/lisp/emacs-lisp/timer.el
@@ -1,6 +1,6 @@
;;; timer.el --- run a function with args at some time in future
-;; Copyright (C) 1996 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
@@ -404,6 +404,9 @@ This function returns a timer object which you can use in `cancel-timer'."
;;;###autoload (put 'with-timeout 'lisp-indent-function 1)
+(defvar with-timeout-timers nil
+ "List of all timers used by currently pending `with-timeout' calls.")
+
;;;###autoload
(defmacro with-timeout (list &rest body)
"Run BODY, but if it doesn't finish in SECONDS seconds, give up.
@@ -416,19 +419,46 @@ be detected.
(let ((seconds (car list))
(timeout-forms (cdr list)))
`(let ((with-timeout-tag (cons nil nil))
- with-timeout-value with-timeout-timer)
+ with-timeout-value with-timeout-timer
+ (with-timeout-timers with-timeout-timers))
(if (catch with-timeout-tag
(progn
(setq with-timeout-timer
(run-with-timer ,seconds nil
'with-timeout-handler
with-timeout-tag))
+ (push with-timeout-timer with-timeout-timers)
(setq with-timeout-value (progn . ,body))
nil))
(progn . ,timeout-forms)
(cancel-timer with-timeout-timer)
with-timeout-value))))
+(defun with-timeout-suspend ()
+ "Stop the clock for `with-timeout'. Used by debuggers.
+The idea is that the time you spend in the debugger should not
+count against these timeouts.
+
+The value is a list that the debugger can pass to `with-timeout-unsuspend'
+when it exits, to make these timers start counting again."
+ (mapcar (lambda (timer)
+ (cancel-timer timer)
+ (list timer
+ (time-subtract
+ ;; The time that this timer will go off.
+ (list (aref timer 1) (aref timer 2) (aref timer 3))
+ (current-time))))
+ with-timeout-timers))
+
+(defun with-timeout-unsuspend (timer-spec-list)
+ "Restart the clock for `with-timeout'.
+The argument should be a value previously returned by `with-timeout-suspend'."
+ (dolist (elt timer-spec-list)
+ (let ((timer (car elt))
+ (delay (cadr elt)))
+ (timer-set-time timer (time-add (current-time) delay))
+ (timer-activate timer))))
+
(defun y-or-n-p-with-timeout (prompt seconds default-value)
"Like (y-or-n-p PROMPT), with a timeout.
If the user does not answer after SECONDS seconds, return DEFAULT-VALUE."
diff --git a/lisp/emacs-lisp/tq.el b/lisp/emacs-lisp/tq.el
index d94b4925c4..8b1baad659 100644
--- a/lisp/emacs-lisp/tq.el
+++ b/lisp/emacs-lisp/tq.el
@@ -1,6 +1,7 @@
;;; tq.el --- utility to maintain a transaction queue
-;; Copyright (C) 1985, 1986, 1987, 1992, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1987, 1992, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Scott Draves <spot@cs.cmu.edu>
;; Maintainer: FSF
diff --git a/lisp/emacs-lisp/trace.el b/lisp/emacs-lisp/trace.el
index 8cd5d0fa31..cda23f39c0 100644
--- a/lisp/emacs-lisp/trace.el
+++ b/lisp/emacs-lisp/trace.el
@@ -1,6 +1,7 @@
;;; trace.el --- tracing facility for Emacs Lisp functions
-;; Copyright (C) 1993, 1998, 2000, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1998, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Hans Chalupsky <hans@cs.buffalo.edu>
;; Maintainer: FSF
diff --git a/lisp/emacs-lisp/unsafep.el b/lisp/emacs-lisp/unsafep.el
index c59b44cddb..4b1312d58d 100644
--- a/lisp/emacs-lisp/unsafep.el
+++ b/lisp/emacs-lisp/unsafep.el
@@ -1,6 +1,6 @@
;;;; unsafep.el -- Determine whether a Lisp form is safe to evaluate
-;; Copyright (C)2002 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Jonathan Yavner <jyavner@member.fsf.org>
;; Maintainer: Jonathan Yavner <jyavner@member.fsf.org>
diff --git a/lisp/emacs-lisp/warnings.el b/lisp/emacs-lisp/warnings.el
index 1f57367349..61f6b98005 100644
--- a/lisp/emacs-lisp/warnings.el
+++ b/lisp/emacs-lisp/warnings.el
@@ -1,6 +1,6 @@
;;; warnings.el --- log and display warnings
-;; Copyright (C) 2002 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: internal
diff --git a/lisp/emacs-lock.el b/lisp/emacs-lock.el
index 479cc4f2ed..e94be04213 100644
--- a/lisp/emacs-lock.el
+++ b/lisp/emacs-lock.el
@@ -1,6 +1,7 @@
;;; emacs-lock.el --- prevents you from exiting emacs if a buffer is locked
-;; Copyright (C) 1994, 1997 Free Software Foundation, Inc
+;; Copyright (C) 1994, 1997, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc
;; Author: Tom Wurgler <twurgler@goodyear.com>
;; Created: 12/8/94
diff --git a/lisp/emerge.el b/lisp/emerge.el
index 1f105163f4..447e45f14f 100644
--- a/lisp/emerge.el
+++ b/lisp/emerge.el
@@ -44,6 +44,18 @@
;;;###autoload (define-key menu-bar-emerge-menu [emerge-buffers]
;;;###autoload '("Buffers..." . emerge-buffers))
+;; There aren't really global variables, just dynamic bindings
+(defvar A-begin)
+(defvar A-end)
+(defvar B-begin)
+(defvar B-end)
+(defvar diff)
+(defvar diff-vector)
+(defvar merge-begin)
+(defvar merge-end)
+(defvar template)
+(defvar valid-diff)
+
;;; Macros
(defmacro emerge-eval-in-buffer (buffer &rest forms)
diff --git a/lisp/emulation/crisp.el b/lisp/emulation/crisp.el
index 4091fd5f01..66ff29ecab 100644
--- a/lisp/emulation/crisp.el
+++ b/lisp/emulation/crisp.el
@@ -1,6 +1,7 @@
;;; crisp.el --- CRiSP/Brief Emacs emulator
-;; Copyright (C) 1997, 1998, 1999, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998, 1999, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Gary D. Foster <Gary.Foster@Corp.Sun.COM>
;; Keywords: emulations brief crisp
diff --git a/lisp/emulation/cua-base.el b/lisp/emulation/cua-base.el
index 551408cb34..1b937da501 100644
--- a/lisp/emulation/cua-base.el
+++ b/lisp/emulation/cua-base.el
@@ -1,7 +1,7 @@
;;; cua-base.el --- emulate CUA key bindings
-;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Kim F. Storm <storm@cua.dk>
;; Keywords: keyboard emulation convenience cua
@@ -62,7 +62,7 @@
;; If you really need to perform a command which starts with one of
;; the prefix keys even when the region is active, you have three options:
;; - press the prefix key twice very quickly (within 0.2 seconds),
-;; - press the prefix key and the following key within 0.2 seconds), or
+;; - press the prefix key and the following key within 0.2 seconds, or
;; - use the SHIFT key with the prefix key, i.e. C-X or C-C
;;
;; This behaviour can be customized via the
@@ -274,7 +274,7 @@
(defcustom cua-enable-cua-keys t
"*Enable using C-z, C-x, C-c, and C-v for undo, cut, copy, and paste.
If the value is t, these mappings are always enabled. If the value is
-'shift, these keys are only enabled if the last region was marked with
+`shift', these keys are only enabled if the last region was marked with
a shifted movement key. If the value is nil, these keys are never
enabled."
:type '(choice (const :tag "Disabled" nil)
@@ -314,9 +314,9 @@ If the value is nil, use a shifted prefix key to inhibit the override."
"*If non-nil, registers are supported via numeric prefix arg.
If the value is t, any numeric prefix arg in the range 0 to 9 will be
interpreted as a register number.
-If the value is not-ctrl-u, using C-u to enter a numeric prefix is not
+If the value is `not-ctrl-u', using C-u to enter a numeric prefix is not
interpreted as a register number.
-If the value is ctrl-u-only, only numeric prefix entered with C-u is
+If the value is `ctrl-u-only', only numeric prefix entered with C-u is
interpreted as a register number."
:type '(choice (const :tag "Disabled" nil)
(const :tag "Enabled, but C-u arg is not a register" not-ctrl-u)
@@ -331,7 +331,7 @@ interpreted as a register number."
(defcustom cua-use-hyper-key nil
"*If non-nil, bind rectangle commands to H-... instead of M-....
-If set to 'also, toggle region command is also on C-return.
+If set to `also', toggle region command is also on C-return.
Must be set prior to enabling CUA."
:type '(choice (const :tag "Meta key and C-return" nil)
(const :tag "Hyper key only" only)
@@ -362,7 +362,7 @@ managers, so try setting this to nil, if prefix override doesn't work."
"*If non-nil, rectangles have virtual straight edges.
Note that although rectangles are always DISPLAYED with straight edges, the
buffer is NOT modified, until you execute a command that actually modifies it.
-\[M-p] toggles this feature when a rectangle is active."
+M-p toggles this feature when a rectangle is active."
:type 'boolean
:group 'cua)
@@ -575,6 +575,7 @@ a cons (TYPE . COLOR), then both properties are affected."
;; Current region was started using cua-set-mark.
(defvar cua--explicit-region-start nil)
+(make-variable-buffer-local 'cua--explicit-region-start)
;; Latest region was started using shifted movement command.
(defvar cua--last-region-shifted nil)
@@ -585,6 +586,7 @@ a cons (TYPE . COLOR), then both properties are affected."
;; status string for mode line indications
(defvar cua--status-string nil)
+(make-variable-buffer-local 'cua--status-string)
(defvar cua--debug nil)
@@ -759,14 +761,19 @@ Save a copy in register 0 if `cua-delete-copy-to-register-0' is non-nil."
(cons (current-buffer)
(and (consp buffer-undo-list)
(car buffer-undo-list))))
- (cua--deactivate)))
+ (cua--deactivate)
+ (/= start end)))
(defun cua-replace-region ()
"Replace the active region with the character you type."
(interactive)
- (cua-delete-region)
- (unless (eq this-original-command this-command)
- (cua--fallback)))
+ (let ((not-empty (cua-delete-region)))
+ (unless (eq this-original-command this-command)
+ (let ((overwrite-mode
+ (and overwrite-mode
+ not-empty
+ (not (eq this-original-command 'self-insert-command)))))
+ (cua--fallback)))))
(defun cua-copy-region (arg)
"Copy the region to the kill ring.
@@ -1060,118 +1067,122 @@ If ARG is the atom `-', scroll upward by nearly full screen."
;;; Pre-command hook
+(defun cua--pre-command-handler-1 ()
+ (let ((movement (eq (get this-command 'CUA) 'move)))
+
+ ;; Cancel prefix key timeout if user enters another key.
+ (when cua--prefix-override-timer
+ (if (timerp cua--prefix-override-timer)
+ (cancel-timer cua--prefix-override-timer))
+ (setq cua--prefix-override-timer nil))
+
+ ;; Handle shifted cursor keys and other movement commands.
+ ;; If region is not active, region is activated if key is shifted.
+ ;; If region is active, region is cancelled if key is unshifted (and region not started with C-SPC).
+ ;; If rectangle is active, expand rectangle in specified direction and ignore the movement.
+ (if movement
+ (cond
+ ((if window-system
+ (memq 'shift (event-modifiers
+ (aref (this-single-command-raw-keys) 0)))
+ (or
+ (memq 'shift (event-modifiers
+ (aref (this-single-command-keys) 0)))
+ ;; See if raw escape sequence maps to a shifted event, e.g. S-up or C-S-home.
+ (and (boundp 'local-function-key-map)
+ (terminal-local-value 'function-key-map nil)
+ (let ((ev (lookup-key (terminal-local-value 'function-key-map nil)
+ (this-single-command-raw-keys))))
+ (and (vector ev)
+ (symbolp (setq ev (aref ev 0)))
+ (string-match "S-" (symbol-name ev)))))))
+ (unless mark-active
+ (push-mark-command nil t))
+ (setq cua--last-region-shifted t)
+ (setq cua--explicit-region-start nil))
+ ((or cua--explicit-region-start cua--rectangle)
+ (unless mark-active
+ (push-mark-command nil nil)))
+ (t
+ ;; If we set mark-active to nil here, the region highlight will not be
+ ;; removed by the direct_output_ commands.
+ (setq deactivate-mark t)))
+
+ ;; Handle delete-selection property on other commands
+ (if (and mark-active (not deactivate-mark))
+ (let* ((ds (or (get this-command 'delete-selection)
+ (get this-command 'pending-delete)))
+ (nc (cond
+ ((not ds) nil)
+ ((eq ds 'yank)
+ 'cua-paste)
+ ((eq ds 'kill)
+ (if cua--rectangle
+ 'cua-copy-rectangle
+ 'cua-copy-region))
+ ((eq ds 'supersede)
+ (if cua--rectangle
+ 'cua-delete-rectangle
+ 'cua-delete-region))
+ (t
+ (if cua--rectangle
+ 'cua-delete-rectangle ;; replace?
+ 'cua-replace-region)))))
+ (if nc
+ (setq this-original-command this-command
+ this-command nc)))))
+
+ ;; Detect extension of rectangles by mouse or other movement
+ (setq cua--buffer-and-point-before-command
+ (if cua--rectangle (cons (current-buffer) (point))))))
+
(defun cua--pre-command-handler ()
- (condition-case nil
- (let ((movement (eq (get this-command 'CUA) 'move)))
-
- ;; Cancel prefix key timeout if user enters another key.
- (when cua--prefix-override-timer
- (if (timerp cua--prefix-override-timer)
- (cancel-timer cua--prefix-override-timer))
- (setq cua--prefix-override-timer nil))
-
- ;; Handle shifted cursor keys and other movement commands.
- ;; If region is not active, region is activated if key is shifted.
- ;; If region is active, region is cancelled if key is unshifted (and region not started with C-SPC).
- ;; If rectangle is active, expand rectangle in specified direction and ignore the movement.
- (if movement
- (cond
- ((if window-system
- (memq 'shift (event-modifiers
- (aref (this-single-command-raw-keys) 0)))
- (or
- (memq 'shift (event-modifiers
- (aref (this-single-command-keys) 0)))
- ;; See if raw escape sequence maps to a shifted event, e.g. S-up or C-S-home.
- (and (boundp 'local-function-key-map)
- (terminal-local-value 'local-function-key-map nil)
- (let ((ev (lookup-key (terminal-local-value 'local-function-key-map nil)
- (this-single-command-raw-keys))))
- (and (vector ev)
- (symbolp (setq ev (aref ev 0)))
- (string-match "S-" (symbol-name ev)))))))
- (unless mark-active
- (push-mark-command nil t))
- (setq cua--last-region-shifted t)
- (setq cua--explicit-region-start nil))
- ((or cua--explicit-region-start cua--rectangle)
- (unless mark-active
- (push-mark-command nil nil)))
- (t
- ;; If we set mark-active to nil here, the region highlight will not be
- ;; removed by the direct_output_ commands.
- (setq deactivate-mark t)))
-
- ;; Handle delete-selection property on other commands
- (if (and mark-active (not deactivate-mark))
- (let* ((ds (or (get this-command 'delete-selection)
- (get this-command 'pending-delete)))
- (nc (cond
- ((not ds) nil)
- ((eq ds 'yank)
- 'cua-paste)
- ((eq ds 'kill)
- (if cua--rectangle
- 'cua-copy-rectangle
- 'cua-copy-region))
- ((eq ds 'supersede)
- (if cua--rectangle
- 'cua-delete-rectangle
- 'cua-delete-region))
- (t
- (if cua--rectangle
- 'cua-delete-rectangle ;; replace?
- 'cua-replace-region)))))
- (if nc
- (setq this-original-command this-command
- this-command nc)))))
-
- ;; Detect extension of rectangles by mouse or other movement
- (setq cua--buffer-and-point-before-command
- (if cua--rectangle (cons (current-buffer) (point))))
- )
- (error nil)))
+ (when cua-mode
+ (condition-case nil
+ (cua--pre-command-handler-1)
+ (error nil))))
;;; Post-command hook
-(defun cua--post-command-handler ()
- (condition-case nil
- (progn
- (when cua--global-mark-active
- (cua--global-mark-post-command))
- (when (fboundp 'cua--rectangle-post-command)
- (cua--rectangle-post-command))
- (setq cua--buffer-and-point-before-command nil)
- (if (or (not mark-active) deactivate-mark)
- (setq cua--explicit-region-start nil))
-
- ;; Debugging
- (if cua--debug
- (cond
- (cua--rectangle (cua--rectangle-assert))
- (mark-active (message "Mark=%d Point=%d Expl=%s"
- (mark t) (point) cua--explicit-region-start))))
-
- ;; Disable transient-mark-mode if rectangle active in current buffer.
- (if (not (window-minibuffer-p (selected-window)))
- (setq transient-mark-mode (and (not cua--rectangle)
- (if cua-highlight-region-shift-only
- (not cua--explicit-region-start)
- t))))
- (if cua-enable-cursor-indications
- (cua--update-indications))
+(defun cua--post-command-handler-1 ()
+ (when cua--global-mark-active
+ (cua--global-mark-post-command))
+ (when (fboundp 'cua--rectangle-post-command)
+ (cua--rectangle-post-command))
+ (setq cua--buffer-and-point-before-command nil)
+ (if (or (not mark-active) deactivate-mark)
+ (setq cua--explicit-region-start nil))
+
+ ;; Debugging
+ (if cua--debug
+ (cond
+ (cua--rectangle (cua--rectangle-assert))
+ (mark-active (message "Mark=%d Point=%d Expl=%s"
+ (mark t) (point) cua--explicit-region-start))))
+
+ ;; Disable transient-mark-mode if rectangle active in current buffer.
+ (if (not (window-minibuffer-p (selected-window)))
+ (setq transient-mark-mode (and (not cua--rectangle)
+ (if cua-highlight-region-shift-only
+ (not cua--explicit-region-start)
+ t))))
+ (if cua-enable-cursor-indications
+ (cua--update-indications))
- (cua--select-keymaps)
- )
+ (cua--select-keymaps))
- (error nil)))
+(defun cua--post-command-handler ()
+ (when cua-mode
+ (condition-case nil
+ (cua--post-command-handler-1)
+ (error nil))))
;;; Keymaps
(defun cua--M/H-key (map key fct)
;; bind H-KEY or M-KEY to FCT in MAP
- (if (eq key 'space) (setq key ? ))
+ (if (eq key 'space) (setq key ?\s))
(unless (listp key) (setq key (list key)))
(define-key map (vector (cons (if cua-use-hyper-key 'hyper 'meta) key)) fct))
@@ -1240,7 +1251,7 @@ If ARG is the atom `-', scroll upward by nearly full screen."
(cua--M/H-key cua-global-keymap 'space 'cua-set-rectangle-mark)
(define-key cua-global-keymap [(hyper mouse-1)] 'cua-mouse-set-rectangle-mark))
- (define-key cua-global-keymap [(shift control ? )] 'cua-toggle-global-mark)
+ (define-key cua-global-keymap [(shift control ?\s)] 'cua-toggle-global-mark)
;; replace region with rectangle or element on kill ring
(define-key cua-global-keymap [remap yank] 'cua-paste)
@@ -1328,10 +1339,26 @@ If ARG is the atom `-', scroll upward by nearly full screen."
;;;###autoload
(define-minor-mode cua-mode
"Toggle CUA key-binding mode.
-When enabled, using shifted movement keys will activate the region (and
-highlight the region using `transient-mark-mode'), and typed text replaces
-the active selection. C-z, C-x, C-c, and C-v will undo, cut, copy, and
-paste (in addition to the normal Emacs bindings)."
+When enabled, using shifted movement keys will activate the
+region (and highlight the region using `transient-mark-mode'),
+and typed text replaces the active selection.
+
+Also when enabled, you can use C-z, C-x, C-c, and C-v to undo,
+cut, copy, and paste in addition to the normal Emacs bindings.
+The C-x and C-c keys only do cut and copy when the region is
+active, so in most cases, they do not conflict with the normal
+function of these prefix keys.
+
+If you really need to perform a command which starts with one of
+the prefix keys even when the region is active, you have three
+options:
+- press the prefix key twice very quickly (within 0.2 seconds),
+- press the prefix key and the following key within 0.2 seconds, or
+- use the SHIFT key with the prefix key, i.e. C-S-x or C-S-c.
+
+You can customize `cua-enable-cua-keys' to completely disable the
+CUA bindings, or `cua-prefix-override-inhibit-delay' to change
+the prefix fallback behavior."
:global t
:group 'cua
:set-after '(cua-enable-modeline-indications cua-use-hyper-key)
@@ -1339,8 +1366,6 @@ paste (in addition to the normal Emacs bindings)."
:link '(emacs-commentary-link "cua-base.el")
(setq mark-even-if-inactive t)
(setq highlight-nonselected-windows nil)
- (make-variable-buffer-local 'cua--explicit-region-start)
- (make-variable-buffer-local 'cua--status-string)
(unless cua--keymaps-initalized
(cua--init-keymaps)
@@ -1393,6 +1418,15 @@ paste (in addition to the normal Emacs bindings)."
(if (or (nth 1 cua--saved-state) (nth 2 cua--saved-state)) " enabled" "")))
(setq cua--saved-state nil))))
+
+;;;###autoload
+(defun cua-selection-mode (arg)
+ "Enable CUA selection mode without the C-z/C-x/C-c/C-v bindings."
+ (interactive "P")
+ (setq-default cua-enable-cua-keys nil)
+ (cua-mode arg))
+
+
(defun cua-debug ()
"Toggle CUA debugging."
(interactive)
diff --git a/lisp/emulation/cua-gmrk.el b/lisp/emulation/cua-gmrk.el
index 6ebbb6fc00..c7c5dd3db6 100644
--- a/lisp/emulation/cua-gmrk.el
+++ b/lisp/emulation/cua-gmrk.el
@@ -1,6 +1,7 @@
;;; cua-gmrk.el --- CUA unified global mark support
-;; Copyright (C) 1997-2002 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Kim F. Storm <storm@cua.dk>
;; Keywords: keyboard emulations convenience cua mark
diff --git a/lisp/emulation/cua-rect.el b/lisp/emulation/cua-rect.el
index 011a0fb8a3..d83ebd543c 100644
--- a/lisp/emulation/cua-rect.el
+++ b/lisp/emulation/cua-rect.el
@@ -1,6 +1,7 @@
;;; cua-rect.el --- CUA unified rectangle support
-;; Copyright (C) 1997-2002, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Kim F. Storm <storm@cua.dk>
;; Keywords: keyboard emulations convenience CUA
@@ -832,6 +833,7 @@ If command is repeated at same position, delete the rectangle."
(overlay-put overlay 'after-string as)
(overlay-put overlay 'face rface)
(overlay-put overlay 'keymap cua--overlay-keymap)
+ (overlay-put overlay 'window (selected-window))
(setq new (cons overlay new))))))
;; Trim old trailing overlays.
(mapcar (function delete-overlay) old)
diff --git a/lisp/emulation/edt-lk201.el b/lisp/emulation/edt-lk201.el
index a56c4656c0..4db235c60f 100644
--- a/lisp/emulation/edt-lk201.el
+++ b/lisp/emulation/edt-lk201.el
@@ -1,6 +1,7 @@
;;; edt-lk201.el --- enhanced EDT keypad mode emulation for LK-201 keyboards
-;; Copyright (C) 1986, 1992, 1993, 1995 Free Software Foundation, Inc.
+;; Copyright (C) 1986, 1992, 1993, 1995, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Kevin Gallagher <kevingal@onramp.net>
;; Maintainer: Kevin Gallagher <kevingal@onramp.net>
diff --git a/lisp/emulation/edt-mapper.el b/lisp/emulation/edt-mapper.el
index eeb34b9c7b..9334c74392 100644
--- a/lisp/emulation/edt-mapper.el
+++ b/lisp/emulation/edt-mapper.el
@@ -1,6 +1,7 @@
;;; edt-mapper.el --- create an EDT LK-201 map file for X-Windows Emacs
-;; Copyright (C) 1994, 1995, 2000, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Kevin Gallagher <kevingal@onramp.net>
;; Maintainer: Kevin Gallagher <kevingal@onramp.net>
diff --git a/lisp/emulation/edt-pc.el b/lisp/emulation/edt-pc.el
index 41d0b77296..419f6549ba 100644
--- a/lisp/emulation/edt-pc.el
+++ b/lisp/emulation/edt-pc.el
@@ -1,6 +1,7 @@
;;; edt-pc.el --- enhanced EDT keypad mode emulation for PC 101 keyboards
-;; Copyright (C) 1986, 1994, 1995 Free Software Foundation, Inc.
+;; Copyright (C) 1986, 1994, 1995, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Kevin Gallagher <kevingal@onramp.net>
;; Maintainer: Kevin Gallagher <kevingal@onramp.net>
diff --git a/lisp/emulation/edt-vt100.el b/lisp/emulation/edt-vt100.el
index 7104c53a77..cd9a065acf 100644
--- a/lisp/emulation/edt-vt100.el
+++ b/lisp/emulation/edt-vt100.el
@@ -1,6 +1,7 @@
;;; edt-vt100.el --- enhanced EDT keypad mode emulation for VT series terminals
-;; Copyright (C) 1986, 1992, 1993, 1995 Free Software Foundation, Inc.
+;; Copyright (C) 1986, 1992, 1993, 1995, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Kevin Gallagher <kevingal@onramp.net>
;; Maintainer: Kevin Gallagher <kevingal@onramp.net>
diff --git a/lisp/emulation/edt.el b/lisp/emulation/edt.el
index 8eecf5fca5..8d5071be31 100644
--- a/lisp/emulation/edt.el
+++ b/lisp/emulation/edt.el
@@ -1,7 +1,7 @@
;;; edt.el --- enhanced EDT keypad mode emulation for GNU Emacs 19
-;; Copyright (C) 1986, 1992, 1993, 1994, 1995, 2000, 2001
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1986, 1992, 1993, 1994, 1995, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Kevin Gallagher <kevingal@onramp.net>
;; Maintainer: Kevin Gallagher <kevingal@onramp.net>
diff --git a/lisp/emulation/keypad.el b/lisp/emulation/keypad.el
index 3e492005f8..a42edaa78a 100644
--- a/lisp/emulation/keypad.el
+++ b/lisp/emulation/keypad.el
@@ -1,6 +1,6 @@
;;; keypad.el --- simplified keypad bindings
-;; Copyright (C) 2002 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Kim F. Storm <storm@cua.dk>
;; Keywords: keyboard convenience
diff --git a/lisp/emulation/pc-mode.el b/lisp/emulation/pc-mode.el
index 3bcb60ec0b..1ec66664b6 100644
--- a/lisp/emulation/pc-mode.el
+++ b/lisp/emulation/pc-mode.el
@@ -1,6 +1,6 @@
;;; pc-mode.el --- emulate certain key bindings used on PCs
-;; Copyright (C) 1995 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: emulations
diff --git a/lisp/emulation/pc-select.el b/lisp/emulation/pc-select.el
index 3a85a43015..9b9f4d51b4 100644
--- a/lisp/emulation/pc-select.el
+++ b/lisp/emulation/pc-select.el
@@ -2,7 +2,8 @@
;;; (or MAC GUI or MS-windoze (bah)) look-and-feel
;;; including key bindings.
-;; Copyright (C) 1995, 1996, 1997, 2000, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 1997, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Michael Staats <michael@thp.Uni-Duisburg.DE>
;; Keywords: convenience emulation
diff --git a/lisp/emulation/tpu-edt.el b/lisp/emulation/tpu-edt.el
index 3c18e2f608..eca6e5c74c 100644
--- a/lisp/emulation/tpu-edt.el
+++ b/lisp/emulation/tpu-edt.el
@@ -1,6 +1,7 @@
;;; tpu-edt.el --- Emacs emulating TPU emulating EDT
-;; Copyright (C) 1993, 1994, 1995, 2000, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 1995, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Rob Riepel <riepel@networking.stanford.edu>
;; Maintainer: Rob Riepel <riepel@networking.stanford.edu>
diff --git a/lisp/emulation/tpu-extras.el b/lisp/emulation/tpu-extras.el
index 51ed44346a..c48aa97476 100644
--- a/lisp/emulation/tpu-extras.el
+++ b/lisp/emulation/tpu-extras.el
@@ -1,6 +1,7 @@
;;; tpu-extras.el --- scroll margins and free cursor mode for TPU-edt
-;; Copyright (C) 1993, 1994, 1995, 2000 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 1995, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Rob Riepel <riepel@networking.stanford.edu>
;; Maintainer: Rob Riepel <riepel@networking.stanford.edu>
diff --git a/lisp/emulation/tpu-mapper.el b/lisp/emulation/tpu-mapper.el
index 66d6541ac0..e21a85db2a 100644
--- a/lisp/emulation/tpu-mapper.el
+++ b/lisp/emulation/tpu-mapper.el
@@ -1,6 +1,7 @@
;;; tpu-mapper.el --- create a TPU-edt X-windows keymap file
-;; Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 1995, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Rob Riepel <riepel@networking.stanford.edu>
;; Maintainer: Rob Riepel <riepel@networking.stanford.edu>
diff --git a/lisp/emulation/vip.el b/lisp/emulation/vip.el
index aa6e75357e..51fbdb6b8c 100644
--- a/lisp/emulation/vip.el
+++ b/lisp/emulation/vip.el
@@ -1,7 +1,7 @@
;;; vip.el --- a VI Package for GNU Emacs
-;; Copyright (C) 1986, 1987, 1988, 1992, 1993, 1998, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1986, 1987, 1988, 1992, 1993, 1998, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Masahiko Sato <ms@sail.stanford.edu>
;; Keywords: emulations
diff --git a/lisp/emulation/viper-cmd.el b/lisp/emulation/viper-cmd.el
index 4f247f2cd3..99a130e7f1 100644
--- a/lisp/emulation/viper-cmd.el
+++ b/lisp/emulation/viper-cmd.el
@@ -1,6 +1,7 @@
;;; viper-cmd.el --- Vi command support for Viper
-;; Copyright (C) 1997, 98, 99, 2000, 01, 02, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
@@ -36,6 +37,8 @@
(defvar viper-always)
(defvar viper-mode-string)
(defvar viper-custom-file-name)
+(defvar viper--key-maps)
+(defvar viper--intercept-key-maps)
(defvar iso-accents-mode)
(defvar quail-mode)
(defvar quail-current-str)
@@ -92,7 +95,7 @@
;; Variables for defining VI commands
;; Modifying commands that can be prefixes to movement commands
-(defconst viper-prefix-commands '(?c ?d ?y ?! ?= ?# ?< ?> ?\"))
+(defvar viper-prefix-commands '(?c ?d ?y ?! ?= ?# ?< ?> ?\"))
;; define viper-prefix-command-p
(viper-test-com-defun viper-prefix-command)
@@ -440,23 +443,24 @@
;; This ensures that Viper bindings are in effect, regardless of which minor
;; modes were turned on by the user or by other packages.
(defun viper-normalize-minor-mode-map-alist ()
- (setq minor-mode-map-alist
- (viper-append-filter-alist
- (list (cons 'viper-vi-intercept-minor-mode viper-vi-intercept-map)
- (cons 'viper-vi-minibuffer-minor-mode viper-minibuffer-map)
- (cons 'viper-vi-local-user-minor-mode viper-vi-local-user-map)
- (cons 'viper-vi-kbd-minor-mode viper-vi-kbd-map)
- (cons 'viper-vi-global-user-minor-mode viper-vi-global-user-map)
- (cons 'viper-vi-state-modifier-minor-mode
- (if (keymapp
- (cdr (assoc major-mode
- viper-vi-state-modifier-alist)))
- (cdr (assoc major-mode viper-vi-state-modifier-alist))
- viper-empty-keymap))
- (cons 'viper-vi-diehard-minor-mode viper-vi-diehard-map)
- (cons 'viper-vi-basic-minor-mode viper-vi-basic-map)
- (cons 'viper-insert-intercept-minor-mode
- viper-insert-intercept-map)
+ (setq viper--intercept-key-maps
+ (list
+ (cons 'viper-vi-intercept-minor-mode viper-vi-intercept-map)
+ (cons 'viper-insert-intercept-minor-mode viper-insert-intercept-map)
+ (cons 'viper-emacs-intercept-minor-mode viper-emacs-intercept-map)
+ ))
+ (setq viper--key-maps
+ (list (cons 'viper-vi-minibuffer-minor-mode viper-minibuffer-map)
+ (cons 'viper-vi-local-user-minor-mode viper-vi-local-user-map)
+ (cons 'viper-vi-kbd-minor-mode viper-vi-kbd-map)
+ (cons 'viper-vi-global-user-minor-mode viper-vi-global-user-map)
+ (cons 'viper-vi-state-modifier-minor-mode
+ (if (keymapp
+ (cdr (assoc major-mode viper-vi-state-modifier-alist)))
+ (cdr (assoc major-mode viper-vi-state-modifier-alist))
+ viper-empty-keymap))
+ (cons 'viper-vi-diehard-minor-mode viper-vi-diehard-map)
+ (cons 'viper-vi-basic-minor-mode viper-vi-basic-map)
(cons 'viper-replace-minor-mode viper-replace-map)
;; viper-insert-minibuffer-minor-mode must come after
;; viper-replace-minor-mode
@@ -476,8 +480,6 @@
viper-empty-keymap))
(cons 'viper-insert-diehard-minor-mode viper-insert-diehard-map)
(cons 'viper-insert-basic-minor-mode viper-insert-basic-map)
- (cons 'viper-emacs-intercept-minor-mode
- viper-emacs-intercept-map)
(cons 'viper-emacs-local-user-minor-mode
viper-emacs-local-user-map)
(cons 'viper-emacs-kbd-minor-mode viper-emacs-kbd-map)
@@ -490,8 +492,16 @@
(cdr
(assoc major-mode viper-emacs-state-modifier-alist))
viper-empty-keymap))
- )
- minor-mode-map-alist)))
+ ))
+
+ ;; in emacs with emulation-mode-map-alists, nothing needs to be done
+ (unless
+ (and (fboundp 'add-to-ordered-list) (boundp 'emulation-mode-map-alists))
+ (setq minor-mode-map-alist
+ (viper-append-filter-alist
+ (append viper--intercept-key-maps viper--key-maps)
+ minor-mode-map-alist)))
+ )
@@ -765,7 +775,8 @@ Vi's prefix argument will be used. Otherwise, the prefix argument passed to
)
(if (commandp com)
- (progn
+ ;; pretend that current state is the state we excaped to
+ (let ((viper-current-state state))
(setq prefix-arg (or prefix-arg arg))
(command-execute com)))
)
@@ -931,8 +942,10 @@ Suffixes such as .el or .elc should be stripped."
;; Change the default for minor-mode-map-alist each time a harnessed minor
;; mode adds its own keymap to the a-list.
- (eval-after-load
- load-file '(setq-default minor-mode-map-alist minor-mode-map-alist))
+ (unless
+ (and (fboundp 'add-to-ordered-list) (boundp 'emulation-mode-map-alists))
+ (eval-after-load
+ load-file '(setq-default minor-mode-map-alist minor-mode-map-alist)))
)
@@ -987,9 +1000,12 @@ as a Meta key and any number of multiple escapes is allowed."
(inhibit-quit t))
(if (viper-ESC-event-p event)
(progn
- (if (viper-fast-keysequence-p)
+ ;; Emacs 22.50.8 introduced a bug, which makes even a single ESC into
+ ;; a fast keyseq. To guard against this, we added a check if there
+ ;; are other events as well
+ (if (and (viper-fast-keysequence-p) unread-command-events)
(progn
- (let (minor-mode-map-alist)
+ (let (minor-mode-map-alist emulation-mode-map-alists)
(viper-set-unread-command-events event)
(setq keyseq (read-key-sequence nil 'continue-echo))
) ; let
@@ -1021,7 +1037,7 @@ as a Meta key and any number of multiple escapes is allowed."
(not viper-translate-all-ESC-keysequences))
;; put keys following ESC on the unread list
;; and return ESC as the key-sequence
- (viper-set-unread-command-events (subseq keyseq 1))
+ (viper-set-unread-command-events (viper-subseq keyseq 1))
(setq last-input-event event
keyseq (if viper-emacs-p
"\e"
@@ -1032,7 +1048,7 @@ as a Meta key and any number of multiple escapes is allowed."
(viper-set-unread-command-events
(vconcat (vector
(character-to-event (event-key first-key)))
- (subseq keyseq 1)))
+ (viper-subseq keyseq 1)))
(setq last-input-event event
keyseq (vector (character-to-event ?\e))))
((eventp first-key)
@@ -1407,7 +1423,8 @@ as a Meta key and any number of multiple escapes is allowed."
(if (eq last-command 'd-command) 'kill-region nil))
(setq chars-deleted (abs (- (point) viper-com-point)))
(if (> chars-deleted viper-change-notification-threshold)
- (message "Deleted %d characters" chars-deleted))
+ (unless (viper-is-in-minibuffer)
+ (message "Deleted %d characters" chars-deleted)))
(kill-region viper-com-point (point))
(setq this-command 'd-command)
(if viper-ex-style-motion
@@ -1433,7 +1450,8 @@ as a Meta key and any number of multiple escapes is allowed."
(if (eq last-command 'D-command) 'kill-region nil))
(setq lines-deleted (count-lines (point) viper-com-point))
(if (> lines-deleted viper-change-notification-threshold)
- (message "Deleted %d lines" lines-deleted))
+ (unless (viper-is-in-minibuffer)
+ (message "Deleted %d lines" lines-deleted)))
(kill-region (mark t) (point))
(if (eq m-com 'viper-line) (setq this-command 'D-command)))
(back-to-indentation)))
@@ -1458,7 +1476,8 @@ as a Meta key and any number of multiple escapes is allowed."
(copy-region-as-kill viper-com-point (point))
(setq chars-saved (abs (- (point) viper-com-point)))
(if (> chars-saved viper-change-notification-threshold)
- (message "Saved %d characters" chars-saved))
+ (unless (viper-is-in-minibuffer)
+ (message "Saved %d characters" chars-saved)))
(goto-char viper-com-point)))
;; save lines
@@ -1482,7 +1501,8 @@ as a Meta key and any number of multiple escapes is allowed."
(copy-region-as-kill (mark t) (point))
(setq lines-saved (count-lines (mark t) (point)))
(if (> lines-saved viper-change-notification-threshold)
- (message "Saved %d lines" lines-saved))))
+ (unless (viper-is-in-minibuffer)
+ (message "Saved %d lines" lines-saved)))))
(viper-deactivate-mark)
(goto-char viper-com-point))
@@ -3732,7 +3752,8 @@ Null string will repeat previous search."
(interactive "P")
(let ((val (viper-P-val arg))
(com (viper-getcom arg))
- (old-str viper-s-string))
+ (old-str viper-s-string)
+ debug-on-error)
(setq viper-s-forward t)
(viper-if-string "/")
;; this is not used at present, but may be used later
@@ -3744,7 +3765,8 @@ Null string will repeat previous search."
(if com
(progn
(viper-move-marker-locally 'viper-com-point (mark t))
- (viper-execute-com 'viper-search-next val com)))))
+ (viper-execute-com 'viper-search-next val com)))
+ ))
(defun viper-search-backward (arg)
"Search a string backward.
@@ -3753,7 +3775,8 @@ Null string will repeat previous search."
(interactive "P")
(let ((val (viper-P-val arg))
(com (viper-getcom arg))
- (old-str viper-s-string))
+ (old-str viper-s-string)
+ debug-on-error)
(setq viper-s-forward nil)
(viper-if-string "?")
;; this is not used at present, but may be used later
@@ -3858,7 +3881,8 @@ Null string will repeat previous search."
"Repeat previous search."
(interactive "P")
(let ((val (viper-p-val arg))
- (com (viper-getcom arg)))
+ (com (viper-getcom arg))
+ debug-on-error)
(if (null viper-s-string) (error viper-NoPrevSearch))
(viper-search viper-s-string viper-s-forward arg)
(if com
@@ -3870,7 +3894,8 @@ Null string will repeat previous search."
"Repeat previous search in the reverse direction."
(interactive "P")
(let ((val (viper-p-val arg))
- (com (viper-getcom arg)))
+ (com (viper-getcom arg))
+ debug-on-error)
(if (null viper-s-string) (error viper-NoPrevSearch))
(viper-search viper-s-string (not viper-s-forward) arg)
(if com
@@ -4001,8 +4026,9 @@ Null string will repeat previous search."
lines-inserted (abs (count-lines (point) sv-point)))
(if (or (> chars-inserted viper-change-notification-threshold)
(> lines-inserted viper-change-notification-threshold))
- (message "Inserted %d character(s), %d line(s)"
- chars-inserted lines-inserted)))
+ (unless (viper-is-in-minibuffer)
+ (message "Inserted %d character(s), %d line(s)"
+ chars-inserted lines-inserted))))
;; Vi puts cursor on the last char when the yanked text doesn't contain a
;; newline; it leaves the cursor at the beginning when the text contains
;; a newline
@@ -4043,8 +4069,9 @@ Null string will repeat previous search."
lines-inserted (abs (count-lines (point) sv-point)))
(if (or (> chars-inserted viper-change-notification-threshold)
(> lines-inserted viper-change-notification-threshold))
- (message "Inserted %d character(s), %d line(s)"
- chars-inserted lines-inserted)))
+ (unless (viper-is-in-minibuffer)
+ (message "Inserted %d character(s), %d line(s)"
+ chars-inserted lines-inserted))))
;; Vi puts cursor on the last char when the yanked text doesn't contain a
;; newline; it leaves the cursor at the beginning when the text contains
;; a newline
diff --git a/lisp/emulation/viper-ex.el b/lisp/emulation/viper-ex.el
index 008b430d16..87d2d7f5d5 100644
--- a/lisp/emulation/viper-ex.el
+++ b/lisp/emulation/viper-ex.el
@@ -1,6 +1,7 @@
;;; viper-ex.el --- functions implementing the Ex commands for Viper
-;; Copyright (C) 1994, 95, 96, 97, 98, 2000, 01, 02, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
diff --git a/lisp/emulation/viper-init.el b/lisp/emulation/viper-init.el
index 6e188f21a9..9c1df1b0ad 100644
--- a/lisp/emulation/viper-init.el
+++ b/lisp/emulation/viper-init.el
@@ -1,6 +1,7 @@
;;; viper-init.el --- some common definitions for Viper
-;; Copyright (C) 1997, 98, 99, 2000, 01, 02, 05 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
@@ -362,8 +363,8 @@ Use `M-x viper-set-expert-level' to change this.")
(defun viper-activate-input-method ()
(cond ((and viper-emacs-p (fboundp 'activate-input-method))
(activate-input-method default-input-method))
- ((and viper-xemacs-p (fboundp 'quail-mode))
- (quail-mode 1))))
+ ((featurep 'xemacs)
+ (if (fboundp 'quail-mode) (quail-mode 1)))))
;; Set quail-mode to ARG
(defun viper-set-input-method (arg)
@@ -423,13 +424,20 @@ delete the text being replaced, as in standard Vi."
"*Cursor color when Viper is in Replace state."
:type 'string
:group 'viper)
+(if (fboundp 'make-variable-frame-local)
+ (make-variable-frame-local 'viper-replace-overlay-cursor-color))
+
(defcustom viper-insert-state-cursor-color "Green"
"Cursor color when Viper is in insert state."
:type 'string
:group 'viper)
+(if (fboundp 'make-variable-frame-local)
+ (make-variable-frame-local 'viper-insert-state-cursor-color))
;; internal var, used to remember the default cursor color of emacs frames
(defvar viper-vi-state-cursor-color nil)
+(if (fboundp 'make-variable-frame-local)
+ (make-variable-frame-local 'viper-vi-state-cursor-color))
(viper-deflocalvar viper-replace-overlay nil "")
(put 'viper-replace-overlay 'permanent-local t)
@@ -855,15 +863,13 @@ Related buffers can be cycled through via :R and :P commands."
(t (:underline t :stipple "gray3")))
"*Face used to flash out the search pattern."
:group 'viper-highlighting)
-;; backward-compatibility alias
-(put 'viper-search-face 'face-alias 'viper-search)
;; An internal variable. Viper takes the face from here.
(defvar viper-search-face 'viper-search
"Face used to flash out the search pattern.
DO NOT CHANGE this variable. Instead, use the customization widget
-to customize the actual face object `viper-search-face'
+to customize the actual face object `viper-search'
this variable represents.")
-(viper-hide-face 'viper-search)
+(viper-hide-face viper-search-face)
(defface viper-replace-overlay
@@ -871,15 +877,13 @@ this variable represents.")
(t (:underline t :stipple "gray3")))
"*Face for highlighting replace regions on a window display."
:group 'viper-highlighting)
-;; backward-compatibility alias
-(put 'viper-replace-overlay-face 'face-alias 'viper-replace-overlay)
;; An internal variable. Viper takes the face from here.
(defvar viper-replace-overlay-face 'viper-replace-overlay
"Face for highlighting replace regions on a window display.
DO NOT CHANGE this variable. Instead, use the customization widget
-to customize the actual face object `viper-replace-overlay-face'
+to customize the actual face object `viper-replace-overlay'
this variable represents.")
-(viper-hide-face 'viper-replace-overlay)
+(viper-hide-face viper-replace-overlay-face)
(defface viper-minibuffer-emacs
@@ -887,15 +891,13 @@ this variable represents.")
(t (:weight bold)))
"Face used in the Minibuffer when it is in Emacs state."
:group 'viper-highlighting)
-;; backward-compatibility alias
-(put 'viper-minibuffer-emacs-face 'face-alias 'viper-minibuffer-emacs)
;; An internal variable. Viper takes the face from here.
(defvar viper-minibuffer-emacs-face 'viper-minibuffer-emacs
"Face used in the Minibuffer when it is in Emacs state.
DO NOT CHANGE this variable. Instead, use the customization widget
-to customize the actual face object `viper-minibuffer-emacs-face'
+to customize the actual face object `viper-minibuffer-emacs'
this variable represents.")
-(viper-hide-face 'viper-minibuffer-emacs)
+(viper-hide-face viper-minibuffer-emacs-face)
(defface viper-minibuffer-insert
@@ -903,15 +905,13 @@ this variable represents.")
(t (:slant italic)))
"Face used in the Minibuffer when it is in Insert state."
:group 'viper-highlighting)
-;; backward-compatibility alias
-(put 'viper-minibuffer-insert-face 'face-alias 'viper-minibuffer-insert)
;; An internal variable. Viper takes the face from here.
(defvar viper-minibuffer-insert-face 'viper-minibuffer-insert
"Face used in the Minibuffer when it is in Insert state.
DO NOT CHANGE this variable. Instead, use the customization widget
-to customize the actual face object `viper-minibuffer-insert-face'
+to customize the actual face object `viper-minibuffer-insert'
this variable represents.")
-(viper-hide-face 'viper-minibuffer-insert)
+(viper-hide-face viper-minibuffer-insert-face)
(defface viper-minibuffer-vi
@@ -919,15 +919,13 @@ this variable represents.")
(t (:inverse-video t)))
"Face used in the Minibuffer when it is in Vi state."
:group 'viper-highlighting)
-;; backward-compatibility alias
-(put 'viper-minibuffer-vi-face 'face-alias 'viper-minibuffer-vi)
;; An internal variable. Viper takes the face from here.
(defvar viper-minibuffer-vi-face 'viper-minibuffer-vi
"Face used in the Minibuffer when it is in Vi state.
DO NOT CHANGE this variable. Instead, use the customization widget
-to customize the actual face object `viper-minibuffer-vi-face'
+to customize the actual face object `viper-minibuffer-vi'
this variable represents.")
-(viper-hide-face 'viper-minibuffer-vi)
+(viper-hide-face viper-minibuffer-vi-face)
;; the current face to be used in the minibuffer
(viper-deflocalvar
diff --git a/lisp/emulation/viper-keym.el b/lisp/emulation/viper-keym.el
index e83cf14776..2af0a9bbfa 100644
--- a/lisp/emulation/viper-keym.el
+++ b/lisp/emulation/viper-keym.el
@@ -1,6 +1,7 @@
;;; viper-keym.el --- Viper keymaps
-;; Copyright (C) 1994, 95, 96, 97, 2000, 01, 02, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 1996, 1997, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
@@ -50,25 +51,6 @@
;;; Variables
-(defcustom viper-toggle-key "\C-z"
- "The key used to change states from emacs to Vi and back.
-In insert mode, this key also functions as Meta.
-Must be set in .viper file or prior to loading Viper.
-This setting cannot be changed interactively."
- :type 'string
- :group 'viper)
-
-(defcustom viper-quoted-insert-key "\C-v"
- "The key used to quote special characters when inserting them in Insert state."
- :type 'string
- :group 'viper)
-
-(defcustom viper-ESC-key "\e"
- "Key used to ESC.
-Must be set in .viper file or prior to loading Viper.
-This setting cannot be changed interactively."
- :type 'string
- :group 'viper)
;;; Emacs keys in other states.
@@ -176,6 +158,78 @@ viper-insert-basic-map. Not recommended, except for novice users.")
;; and, after .viper is loaded, we add this keymap to viper-vi-basic-map.
(defvar viper-mode-map (make-sparse-keymap))
+;; Some important keys used in viper
+(defcustom viper-toggle-key [(control ?z)] ; "\C-z"
+ "The key used to change states from emacs to Vi and back.
+In insert mode, this key also functions as Meta.
+
+Enter as a sexp. Examples: \"\\C-z\", [(control ?z)]."
+ :type 'sexp
+ :group 'viper
+ :set (lambda (symbol value)
+ (let ((old-value (if (boundp 'viper-toggle-key)
+ viper-toggle-key
+ [(control ?z)])))
+ (mapcar
+ (lambda (buf)
+ (save-excursion
+ (set-buffer buf)
+ (when (and (boundp 'viper-insert-basic-map)
+ (keymapp viper-insert-basic-map))
+ (when old-value
+ (define-key viper-insert-basic-map old-value nil))
+ (define-key viper-insert-basic-map value 'viper-escape-to-vi))
+ (when (and (boundp 'viper-vi-intercept-map)
+ (keymapp viper-vi-intercept-map))
+ (when old-value
+ (define-key viper-vi-intercept-map old-value nil))
+ (define-key
+ viper-vi-intercept-map value 'viper-toggle-key-action))
+ (when (and (boundp 'viper-emacs-intercept-map)
+ (keymapp viper-emacs-intercept-map))
+ (define-key viper-emacs-intercept-map old-value nil)
+ (define-key
+ viper-emacs-intercept-map value 'viper-change-state-to-vi))
+ ))
+ (buffer-list))
+ (set-default symbol value)
+ )))
+
+(defcustom viper-quoted-insert-key "\C-v"
+ "The key used to quote special characters when inserting them in Insert state."
+ :type 'string
+ :group 'viper)
+
+(defcustom viper-ESC-key [(escape)] ; "\e"
+ "Key used to ESC.
+Enter as a sexp. Examples: \"\\e\", [(escape)]."
+ :type 'sexp
+ :group 'viper
+ :set (lambda (symbol value)
+ (let ((old-value (if (boundp 'viper-ESC-key)
+ viper-ESC-key
+ [(escape)])))
+ (mapcar
+ (lambda (buf)
+ (save-excursion
+ (set-buffer buf)
+ (when (and (boundp 'viper-insert-intercept-map)
+ (keymapp viper-insert-intercept-map))
+ (when old-value
+ (define-key viper-insert-intercept-map old-value nil))
+ (define-key
+ viper-insert-intercept-map value 'viper-intercept-ESC-key))
+ (when (and (boundp 'viper-vi-intercept-map)
+ (keymapp viper-vi-intercept-map))
+ (when old-value
+ (define-key viper-vi-intercept-map old-value nil))
+ (define-key
+ viper-vi-intercept-map value 'viper-intercept-ESC-key))
+ ))
+ (buffer-list))
+ (set-default symbol value)
+ )))
+
;;; Variables used by minor modes
@@ -197,6 +251,10 @@ viper-insert-basic-map. Not recommended, except for novice users.")
;; to its Emacs state in various major modes.
(defvar viper-emacs-state-modifier-alist nil)
+;; The list of viper keymaps. Set by viper-normalize-minor-mode-map-alist
+(viper-deflocalvar viper--key-maps nil)
+(viper-deflocalvar viper--intercept-key-maps nil)
+
;; Tells viper-add-local-keys to create a new viper-vi-local-user-map for new
;; buffers. Not a user option.
(viper-deflocalvar viper-need-new-vi-local-map t "")
@@ -509,7 +567,7 @@ Usage:
(defun viper-zap-local-keys ()
"Unconditionally reset Viper viper-*-local-user-map's.
-Rarely useful, but if u made a mistake by switching to a mode that adds
+Rarely useful, but if you made a mistake by switching to a mode that adds
undesirable local keys, e.g., comint-mode, then this function can restore
sanity."
(interactive)
diff --git a/lisp/emulation/viper-macs.el b/lisp/emulation/viper-macs.el
index 8a3ce5db9e..edc5cba1bb 100644
--- a/lisp/emulation/viper-macs.el
+++ b/lisp/emulation/viper-macs.el
@@ -1,6 +1,7 @@
;;; viper-macs.el --- functions implementing keyboard macros for Viper
-;; Copyright (C) 1994, 95, 96, 97, 2000, 01, 02, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 1996, 1997, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
@@ -178,7 +179,7 @@ a key is a symbol, e.g., `a', `\\1', `f2', etc., or a list, e.g.,
(if (member
key
'(?\b ?\d '^? '^H (control h) (control \?) backspace delete))
- (setq key-seq (subseq key-seq 0 (- (length key-seq) 2))))
+ (setq key-seq (viper-subseq key-seq 0 (- (length key-seq) 2))))
(setq message
(format
":map%s %s"
@@ -242,9 +243,9 @@ a key is a symbol, e.g., `a', `\\1', `f2', etc., or a list, e.g.,
(cond ((member
key
'(?\b ?\d '^? '^H (control h) (control \?) backspace delete))
- (setq key-seq (subseq key-seq 0 (- (length key-seq) 2))))
+ (setq key-seq (viper-subseq key-seq 0 (- (length key-seq) 2))))
((member key '(tab (control i) ?\t))
- (setq key-seq (subseq key-seq 0 (1- (length key-seq))))
+ (setq key-seq (viper-subseq key-seq 0 (1- (length key-seq))))
(setq message
(format
":unmap%s %s"
@@ -618,7 +619,7 @@ name from there."
(if (null macro-alist-elt)
(setq macro-alist-elt (car next-best-match)
- unmatched-suffix (subseq event-seq (cdr next-best-match))))
+ unmatched-suffix (viper-subseq event-seq (cdr next-best-match))))
(cond ((null macro-alist-elt))
((setq macro-body (viper-kbd-buf-definition macro-alist-elt)))
@@ -701,7 +702,7 @@ name from there."
(let ((len1 (length seq1))
(len2 (length seq2)))
(if (<= len1 len2)
- (equal seq1 (subseq seq2 0 len1)))))
+ (equal seq1 (viper-subseq seq2 0 len1)))))
;; find the longest common prefix
(defun viper-common-seq-prefix (&rest seqs)
@@ -766,7 +767,7 @@ name from there."
(setq macro-def (car lis)
def-len (length (car macro-def)))
(if (and (>= str-len def-len)
- (equal (car macro-def) (subseq str 0 def-len)))
+ (equal (car macro-def) (viper-subseq str 0 def-len)))
(if (or (viper-kbd-buf-definition macro-def)
(viper-kbd-mode-definition macro-def)
(viper-kbd-global-definition macro-def))
diff --git a/lisp/emulation/viper-mous.el b/lisp/emulation/viper-mous.el
index 503cd14579..084d70050a 100644
--- a/lisp/emulation/viper-mous.el
+++ b/lisp/emulation/viper-mous.el
@@ -1,6 +1,7 @@
;;; viper-mous.el --- mouse support for Viper
-;; Copyright (C) 1994, 95, 96, 97, 2001, 02 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 1996, 1997, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
@@ -65,7 +66,7 @@
(defvar viper-frame-of-focus nil)
;; Frame that was selected before the switch-frame event.
-(defconst viper-current-frame-saved (selected-frame))
+(defvar viper-current-frame-saved (selected-frame))
(defcustom viper-surrounding-word-function 'viper-surrounding-word
"*Function that determines what constitutes a word for clicking events.
diff --git a/lisp/emulation/viper-util.el b/lisp/emulation/viper-util.el
index 2d713df6ef..cc9f42b980 100644
--- a/lisp/emulation/viper-util.el
+++ b/lisp/emulation/viper-util.el
@@ -1,6 +1,7 @@
;;; viper-util.el --- Utilities used by viper.el
-;; Copyright (C) 1994, 95, 96, 97, 99, 2000, 01, 02, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
@@ -41,7 +42,6 @@
(defvar viper-syntax-preference)
(defvar viper-saved-mark)
-(require 'cl)
(require 'ring)
(if noninteractive
@@ -360,7 +360,7 @@
(setq lis2 (delq elt lis2)))
(setq temp (cdr temp)))
- (nconc lis1 lis2)))
+ (append lis1 lis2)))
@@ -1068,7 +1068,7 @@
(t key)))
((listp key)
- (setq modifiers (subseq key 0 (1- (length key)))
+ (setq modifiers (viper-subseq key 0 (1- (length key)))
base-key (viper-seq-last-elt key)
base-key-name (symbol-name base-key)
char-p (= (length base-key-name) 1))
@@ -1503,6 +1503,33 @@ This option is appropriate if you like Emacs-style words."
))
+;; this is copied from cl-extra.el
+;; Return the subsequence of SEQ from START to END.
+;; If END is omitted, it defaults to the length of the sequence.
+;; If START or END is negative, it counts from the end.
+(defun viper-subseq (seq start &optional end)
+ (if (stringp seq) (substring seq start end)
+ (let (len)
+ (and end (< end 0) (setq end (+ end (setq len (length seq)))))
+ (if (< start 0) (setq start (+ start (or len (setq len (length seq))))))
+ (cond ((listp seq)
+ (if (> start 0) (setq seq (nthcdr start seq)))
+ (if end
+ (let ((res nil))
+ (while (>= (setq end (1- end)) start)
+ (push (pop seq) res))
+ (nreverse res))
+ (copy-sequence seq)))
+ (t
+ (or end (setq end (or len (length seq))))
+ (let ((res (make-vector (max (- end start) 0) nil))
+ (i 0))
+ (while (< start end)
+ (aset res i (aref seq start))
+ (setq i (1+ i) start (1+ start)))
+ res))))))
+
+
(provide 'viper-util)
diff --git a/lisp/emulation/viper.el b/lisp/emulation/viper.el
index fe65cb69cb..bfa730cc43 100644
--- a/lisp/emulation/viper.el
+++ b/lisp/emulation/viper.el
@@ -3,12 +3,13 @@
;; and a venomous VI PERil.
;; Viper Is also a Package for Emacs Rebels.
-;; Copyright (C) 1994, 95, 96, 97, 98, 99, 2000, 01, 02, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+;; 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
;; Keywords: emulations
-(defconst viper-version "3.11.4 of February 19, 2005"
+(defconst viper-version "3.11.5 of August 6, 2005"
"The current version of Viper")
;; This file is part of GNU Emacs.
@@ -320,6 +321,7 @@
;; end pacifier
(require 'viper-init)
+(require 'viper-keym)
;; better be defined before Viper custom group.
(defvar viper-custom-file-name (convert-standard-filename "~/.viper")
@@ -370,7 +372,6 @@ widget."
(defcustom viper-vi-state-mode-list
'(fundamental-mode
makefile-mode
- help-mode
awk-mode
m4-mode
@@ -396,7 +397,7 @@ widget."
tex-mode latex-mode bibtex-mode
ps-mode
- completion-list-mode
+ ;; completion-list-mode
diff-mode
idl-mode
@@ -424,6 +425,7 @@ widget."
browse-kill-ring-mode
recentf-mode
+ recentf-dialog-mode
occur-mode
mh-folder-mode
@@ -431,6 +433,9 @@ widget."
gnus-group-mode
gnus-summary-mode
+ completion-list-mode
+ help-mode
+
Info-mode
Buffer-menu-mode
compilation-mode
@@ -521,7 +526,7 @@ If Viper is enabled, turn it off. Otherwise, turn it on."
;;;###autoload
(defun viper-mode ()
- "Turn on Viper emulation of Vi."
+ "Turn on Viper emulation of Vi in Emacs. See Info node `(viper)Viper'."
(interactive)
(if (not noninteractive)
(progn
@@ -654,8 +659,7 @@ This function tries to do as good a job as possible. However, it may undo some
user customization, unrelated to Viper. For instance, if the user advised
`read-file-name', `describe-key', and some others, then this advice will be
undone.
-It also doesn't undo some Viper settings. For instance, `minor-mode-map-alist'
-remains buffer-local."
+It also can't undo some Viper settings."
(interactive)
;; restore non-viper vars
@@ -681,7 +685,9 @@ remains buffer-local."
'mark-even-if-inactive viper-saved-non-viper-variables)))
;; Ideally, we would like to be able to de-localize local variables
- (viper-delocalize-var 'minor-mode-map-alist)
+ (unless
+ (and (fboundp 'add-to-ordered-list) (boundp 'emulation-mode-map-alists))
+ (viper-delocalize-var 'minor-mode-map-alist))
(viper-delocalize-var 'require-final-newline)
(if viper-xemacs-p (viper-delocalize-var 'bar-cursor))
@@ -691,6 +697,12 @@ remains buffer-local."
(setq viper-mode nil)
+ (when (and (fboundp 'add-to-ordered-list) (boundp 'emulation-mode-map-alists))
+ (setq emulation-mode-map-alists
+ (delq 'viper--intercept-key-maps
+ (delq 'viper--key-maps emulation-mode-map-alists))
+ ))
+
(viper-delocalize-var 'viper-vi-minibuffer-minor-mode)
(viper-delocalize-var 'viper-insert-minibuffer-minor-mode)
(viper-delocalize-var 'viper-vi-intercept-minor-mode)
@@ -874,9 +886,35 @@ remains buffer-local."
"Switch to emacs state while reading password."
(viper-change-state-to-emacs)))
+ (defadvice self-insert-command (around viper-self-insert-ad activate)
+ "Ignore all self-inserting keys in the vi-state."
+ (if (and (eq viper-current-state 'vi-state) (interactive-p))
+ (beep 1)
+ ad-do-it
+ ))
+
+ (defadvice set-cursor-color (after viper-set-cursor-color-ad activate)
+ "Change cursor color in VI state."
+ ;;(setq viper-vi-state-cursor-color (ad-get-arg 0))
+ (modify-frame-parameters
+ (selected-frame)
+ (list (cons 'viper-vi-state-cursor-color (ad-get-arg 0))))
+ )
+
+ (when (and (fboundp 'add-to-ordered-list) (boundp 'emulation-mode-map-alists))
+ ;; needs to be as early as possible
+ (add-to-ordered-list
+ 'emulation-mode-map-alists 'viper--intercept-key-maps 100)
+ ;; needs to be after cua-mode
+ (add-to-ordered-list 'emulation-mode-map-alists 'viper--key-maps 500)
+ )
+
;; Emacs shell, ange-ftp, and comint-based modes
(add-hook 'comint-mode-hook 'viper-comint-mode-hook) ; comint
+ (add-hook 'eshell-mode-hook
+ (lambda () (setq viper-auto-indent nil)))
+
(viper-set-emacs-state-searchstyle-macros nil 'dired-mode) ; dired
(viper-set-emacs-state-searchstyle-macros nil 'tar-mode) ; tar
(viper-set-emacs-state-searchstyle-macros nil 'mh-folder-mode) ; mhe
@@ -967,7 +1005,10 @@ remains buffer-local."
;; viper-vi-local-user-map, viper-insert-local-user-map, and others can have
;; different keymaps for different buffers. Also, the keymaps associated
;; with viper-vi/insert-state-modifier-minor-mode can be different.
- (make-variable-buffer-local 'minor-mode-map-alist)
+ ;; ***This is needed only in case emulation-mode-map-alists is not defined
+ (unless
+ (and (fboundp 'add-to-ordered-list) (boundp 'emulation-mode-map-alists))
+ (make-variable-buffer-local 'minor-mode-map-alist))
;; Viper changes the default mode-line-buffer-identification
(setq-default mode-line-buffer-identification '(" %b"))
@@ -1058,6 +1099,16 @@ remains buffer-local."
(define-key viper-insert-intercept-map "\C-x)" nil)
(define-key viper-emacs-intercept-map "\C-x)" nil))
+ (defadvice add-minor-mode (after
+ viper-advice-add-minor-mode
+ (toggle name &optional keymap after toggle-fun)
+ activate)
+ "Run viper-normalize-minor-mode-map-alist after adding a minor mode."
+ (viper-normalize-minor-mode-map-alist)
+ (unless
+ (and (fboundp 'add-to-ordered-list) (boundp 'emulation-mode-map-alists))
+ (setq-default minor-mode-map-alist minor-mode-map-alist)))
+
;; catch frame switching event
(if (viper-window-display-p)
(if viper-xemacs-p
@@ -1230,11 +1281,10 @@ These two lines must come in the order given.
(define-key
viper-emacs-intercept-map viper-toggle-key 'viper-change-state-to-vi)
+;;; Removed to avoid bad interaction with cua-mode.
;;; Escape from Emacs and Insert modes to Vi for one command
-(define-key
- viper-emacs-intercept-map "\C-c\\" 'viper-escape-to-vi)
-(define-key
- viper-insert-intercept-map "\C-c\\" 'viper-escape-to-vi)
+;;(define-key viper-emacs-intercept-map "\C-c\\" 'viper-escape-to-vi)
+;;(define-key viper-insert-intercept-map "\C-c\\" 'viper-escape-to-vi)
(if viper-mode
(setq-default viper-emacs-intercept-minor-mode t
@@ -1262,7 +1312,10 @@ These two lines must come in the order given.
(if (and viper-mode (eq viper-current-state 'emacs-state))
(progn
(viper-change-state-to-emacs)
- (setq-default minor-mode-map-alist minor-mode-map-alist)
+ (unless
+ (and (fboundp 'add-to-ordered-list)
+ (boundp 'emulation-mode-map-alists))
+ (setq-default minor-mode-map-alist minor-mode-map-alist))
))
(if (and viper-mode (this-major-mode-requires-vi-state major-mode))
diff --git a/lisp/emulation/ws-mode.el b/lisp/emulation/ws-mode.el
index b177319748..41e8f5323a 100644
--- a/lisp/emulation/ws-mode.el
+++ b/lisp/emulation/ws-mode.el
@@ -1,6 +1,6 @@
;;; ws-mode.el --- WordStar emulation mode for GNU Emacs
-;; Copyright (C) 1991 Free Software Foundation, Inc.
+;; Copyright (C) 1991, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Juergen Nickelsen <nickel@cs.tu-berlin.de>
;; Version: 0.7
diff --git a/lisp/env.el b/lisp/env.el
index 606aa163c8..409765f5ff 100644
--- a/lisp/env.el
+++ b/lisp/env.el
@@ -1,6 +1,7 @@
;;; env.el --- functions to manipulate environment variables
-;; Copyright (C) 1991, 1994, 2000, 2001, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 1991, 1994, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: processes, unix
diff --git a/lisp/eshell/em-alias.el b/lisp/eshell/em-alias.el
index ba84384e1d..67e007a7f0 100644
--- a/lisp/eshell/em-alias.el
+++ b/lisp/eshell/em-alias.el
@@ -1,6 +1,7 @@
;;; em-alias.el --- creation and management of command aliases
-;; Copyright (C) 1999, 2000, 2004 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
diff --git a/lisp/eshell/em-banner.el b/lisp/eshell/em-banner.el
index 0611ea3e5e..017474ca6f 100644
--- a/lisp/eshell/em-banner.el
+++ b/lisp/eshell/em-banner.el
@@ -1,6 +1,7 @@
;;; em-banner.el --- sample module that displays a login banner
-;; Copyright (C) 1999, 2000 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
diff --git a/lisp/eshell/em-basic.el b/lisp/eshell/em-basic.el
index d0712ade94..c42b843add 100644
--- a/lisp/eshell/em-basic.el
+++ b/lisp/eshell/em-basic.el
@@ -1,6 +1,7 @@
;;; em-basic.el --- basic shell builtin commands
-;; Copyright (C) 1999, 2000 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
diff --git a/lisp/eshell/em-cmpl.el b/lisp/eshell/em-cmpl.el
index 734d0a87eb..423a93d46e 100644
--- a/lisp/eshell/em-cmpl.el
+++ b/lisp/eshell/em-cmpl.el
@@ -1,6 +1,7 @@
;;; em-cmpl.el --- completion using the TAB key
-;; Copyright (C) 1999, 2000 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
diff --git a/lisp/eshell/em-dirs.el b/lisp/eshell/em-dirs.el
index a699ea8363..3a18b1e042 100644
--- a/lisp/eshell/em-dirs.el
+++ b/lisp/eshell/em-dirs.el
@@ -1,6 +1,7 @@
;;; em-dirs.el --- directory navigation commands
-;; Copyright (C) 1999, 2000, 2004 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
diff --git a/lisp/eshell/em-glob.el b/lisp/eshell/em-glob.el
index 3a53ded645..869144dad7 100644
--- a/lisp/eshell/em-glob.el
+++ b/lisp/eshell/em-glob.el
@@ -1,6 +1,7 @@
;;; em-glob.el --- extended file name globbing
-;; Copyright (C) 1999, 2000 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
diff --git a/lisp/eshell/em-hist.el b/lisp/eshell/em-hist.el
index c82be565c4..fd887e5fa8 100644
--- a/lisp/eshell/em-hist.el
+++ b/lisp/eshell/em-hist.el
@@ -1,6 +1,7 @@
;;; em-hist.el --- history list management
-;; Copyright (C) 1999, 2000, 2004 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
@@ -204,6 +205,8 @@ element, regardless of any text on the command line. In that case,
(define-key eshell-isearch-map [(control ?c)] 'eshell-isearch-cancel-map)
(define-key eshell-isearch-cancel-map [(control ?c)] 'eshell-isearch-cancel))
+(defvar eshell-rebind-keys-alist)
+
;;; Functions:
(defun eshell-hist-initialize ()
@@ -217,10 +220,10 @@ element, regardless of any text on the command line. In that case,
(if (and (eshell-using-module 'eshell-rebind)
(not eshell-non-interactive-p))
- (let ((rebind-alist (symbol-value 'eshell-rebind-keys-alist)))
+ (let ((rebind-alist eshell-rebind-keys-alist))
(make-local-variable 'eshell-rebind-keys-alist)
- (set 'eshell-rebind-keys-alist
- (append rebind-alist eshell-hist-rebind-keys-alist))
+ (setq eshell-rebind-keys-alist
+ (append rebind-alist eshell-hist-rebind-keys-alist))
(set (make-local-variable 'search-invisible) t)
(set (make-local-variable 'search-exit-option) t)
(add-hook 'isearch-mode-hook
diff --git a/lisp/eshell/em-ls.el b/lisp/eshell/em-ls.el
index 514138b6bc..a42544bf98 100644
--- a/lisp/eshell/em-ls.el
+++ b/lisp/eshell/em-ls.el
@@ -1,6 +1,7 @@
;;; em-ls.el --- implementation of ls in Lisp
-;; Copyright (C) 1999, 2000, 2005 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
@@ -64,13 +65,13 @@ This is useful for enabling human-readable format (-h), for example."
:group 'eshell-ls)
(defcustom eshell-ls-dired-initial-args nil
- "*If non-nil, args is included before any call to `ls' in dired.
+ "*If non-nil, args is included before any call to `ls' in Dired.
This is useful for enabling human-readable format (-h), for example."
:type '(repeat :tag "Arguments" string)
:group 'eshell-ls)
(defcustom eshell-ls-use-in-dired nil
- "*If non-nil, use `eshell-ls' to read directories in dired."
+ "*If non-nil, use `eshell-ls' to read directories in Dired."
:set (lambda (symbol value)
(if value
(unless (and (boundp 'eshell-ls-use-in-dired)
@@ -158,7 +159,7 @@ faster and conserves more memory."
(defface eshell-ls-missing
'((((class color) (background light)) (:foreground "Red" :weight bold))
(((class color) (background dark)) (:foreground "Red" :weight bold)))
- "*The face used for highlighting non-existant file names."
+ "*The face used for highlighting non-existent file names."
:group 'eshell-ls)
;; backward-compatibility alias
(put 'eshell-ls-missing-face 'face-alias 'eshell-ls-missing)
@@ -863,8 +864,7 @@ to use, and each member of which is the width of that column
(cons col-widths newfiles)))))
(defun eshell-ls-decorated-name (file)
- "Return FILE, possibly decorated.
-Use TRUENAME for predicate tests, if passed."
+ "Return FILE, possibly decorated."
(if eshell-ls-use-colors
(let ((face
(cond
diff --git a/lisp/eshell/em-pred.el b/lisp/eshell/em-pred.el
index af72446bd1..9e2e8a32af 100644
--- a/lisp/eshell/em-pred.el
+++ b/lisp/eshell/em-pred.el
@@ -1,6 +1,7 @@
;;; em-pred.el --- argument predicates and modifiers (ala zsh)
-;; Copyright (C) 1999, 2000 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
diff --git a/lisp/eshell/em-prompt.el b/lisp/eshell/em-prompt.el
index fcb029fc9c..a4ba51609b 100644
--- a/lisp/eshell/em-prompt.el
+++ b/lisp/eshell/em-prompt.el
@@ -1,6 +1,7 @@
;;; em-prompt.el --- command prompts
-;; Copyright (C) 1999, 2000, 2005 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
diff --git a/lisp/eshell/em-rebind.el b/lisp/eshell/em-rebind.el
index 203801224b..da36551a4d 100644
--- a/lisp/eshell/em-rebind.el
+++ b/lisp/eshell/em-rebind.el
@@ -1,6 +1,7 @@
;;; em-rebind.el --- rebind keys when point is at current input
-;; Copyright (C) 1999, 2000 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
diff --git a/lisp/eshell/em-script.el b/lisp/eshell/em-script.el
index df1df5afe8..d67c5e063c 100644
--- a/lisp/eshell/em-script.el
+++ b/lisp/eshell/em-script.el
@@ -1,6 +1,7 @@
;;; em-script.el --- Eshell script files
-;; Copyright (C) 1999, 2000 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
diff --git a/lisp/eshell/em-smart.el b/lisp/eshell/em-smart.el
index aa80c6271d..1d8133effe 100644
--- a/lisp/eshell/em-smart.el
+++ b/lisp/eshell/em-smart.el
@@ -1,6 +1,7 @@
;;; em-smart.el --- smart display of output
-;; Copyright (C) 1999, 2000 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
diff --git a/lisp/eshell/em-term.el b/lisp/eshell/em-term.el
index c539f2edac..8e0786349a 100644
--- a/lisp/eshell/em-term.el
+++ b/lisp/eshell/em-term.el
@@ -1,6 +1,7 @@
;;; em-term.el --- running visual commands
-;; Copyright (C) 1999, 2000 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
diff --git a/lisp/eshell/em-unix.el b/lisp/eshell/em-unix.el
index 94f729c287..340b95f4d5 100644
--- a/lisp/eshell/em-unix.el
+++ b/lisp/eshell/em-unix.el
@@ -1,6 +1,7 @@
;;; em-unix.el --- UNIX command aliases
-;; Copyright (C) 1999, 2000, 2001, 2004 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
diff --git a/lisp/eshell/em-xtra.el b/lisp/eshell/em-xtra.el
index 2f9eee3dd8..3db159ad84 100644
--- a/lisp/eshell/em-xtra.el
+++ b/lisp/eshell/em-xtra.el
@@ -1,6 +1,7 @@
;;; em-xtra.el --- extra alias functions
-;; Copyright (C) 1999, 2000 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
diff --git a/lisp/eshell/esh-arg.el b/lisp/eshell/esh-arg.el
index afd52c36b4..322a0173b2 100644
--- a/lisp/eshell/esh-arg.el
+++ b/lisp/eshell/esh-arg.el
@@ -1,6 +1,7 @@
;;; esh-arg.el --- argument processing
-;; Copyright (C) 1999, 2000 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
@@ -341,8 +342,10 @@ special character that is not itself a backslash."
(save-restriction
(forward-char)
(narrow-to-region (point) end)
- (list 'eshell-escape-arg
- (eshell-parse-argument)))
+ (let ((arg (eshell-parse-argument)))
+ (if (eq arg nil)
+ ""
+ (list 'eshell-escape-arg arg))))
(goto-char (1+ end)))))))
(defun eshell-parse-special-reference ()
diff --git a/lisp/eshell/esh-cmd.el b/lisp/eshell/esh-cmd.el
index 4e2466c4d6..e655a87f89 100644
--- a/lisp/eshell/esh-cmd.el
+++ b/lisp/eshell/esh-cmd.el
@@ -1,6 +1,7 @@
;;; esh-cmd.el --- command invocation
-;; Copyright (C) 1999, 2000 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
@@ -452,12 +453,14 @@ hooks should be run before and after the command."
(defun eshell-rewrite-named-command (terms)
"If no other rewriting rule transforms TERMS, assume a named command."
- (list (if eshell-in-pipeline-p
- 'eshell-named-command*
- 'eshell-named-command)
- (car terms)
- (and (cdr terms)
- (append (list 'list) (cdr terms)))))
+ (let ((sym (if eshell-in-pipeline-p
+ 'eshell-named-command*
+ 'eshell-named-command))
+ (cmd (car terms))
+ (args (cdr terms)))
+ (if args
+ (list sym cmd (append (list 'list) (cdr terms)))
+ (list sym cmd))))
(eshell-deftest cmd named-command
"Execute named command"
diff --git a/lisp/eshell/esh-ext.el b/lisp/eshell/esh-ext.el
index 4b984af894..0aa3f4486a 100644
--- a/lisp/eshell/esh-ext.el
+++ b/lisp/eshell/esh-ext.el
@@ -1,6 +1,7 @@
;;; esh-ext.el --- commands external to Eshell
-;; Copyright (C) 1999, 2000 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
@@ -91,7 +92,7 @@ since nothing else but Eshell will be able to understand
(if (string-match "\\(\\`cmdproxy\\|sh\\)\\.\\(com\\|exe\\)"
shell-file-name)
(or (eshell-search-path "cmd.exe")
- (eshell-search-path "command.exe"))
+ (eshell-search-path "command.com"))
shell-file-name))
"*The name of the shell command to use for DOS/Windows batch files.
This defaults to nil on non-Windows systems, where this variable is
diff --git a/lisp/eshell/esh-io.el b/lisp/eshell/esh-io.el
index a5c939e0a3..1c3fd21945 100644
--- a/lisp/eshell/esh-io.el
+++ b/lisp/eshell/esh-io.el
@@ -1,6 +1,7 @@
;;; esh-io.el --- I/O management
-;; Copyright (C) 1999, 2000, 2005 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
diff --git a/lisp/eshell/esh-maint.el b/lisp/eshell/esh-maint.el
index d99eba388d..56d92b0c6a 100644
--- a/lisp/eshell/esh-maint.el
+++ b/lisp/eshell/esh-maint.el
@@ -1,6 +1,7 @@
;;; esh-maint.el --- init code for building eshell -*- no-byte-compile: t -*-
-;; Copyright (C) 1999, 2000 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
diff --git a/lisp/eshell/esh-mode.el b/lisp/eshell/esh-mode.el
index 152eb23c24..fce998e543 100644
--- a/lisp/eshell/esh-mode.el
+++ b/lisp/eshell/esh-mode.el
@@ -1,6 +1,7 @@
;;; esh-mode.el --- user interface
-;; Copyright (C) 1999, 2000, 2001, 2004 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
diff --git a/lisp/eshell/esh-module.el b/lisp/eshell/esh-module.el
index fc0801f3a9..ea87c662c1 100644
--- a/lisp/eshell/esh-module.el
+++ b/lisp/eshell/esh-module.el
@@ -1,6 +1,7 @@
;;; esh-module.el --- Eshell modules
-;; Copyright (C) 1999, 2000, 2004 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
;; Keywords: processes
diff --git a/lisp/eshell/esh-opt.el b/lisp/eshell/esh-opt.el
index da15e666bd..73fdf84c41 100644
--- a/lisp/eshell/esh-opt.el
+++ b/lisp/eshell/esh-opt.el
@@ -1,6 +1,7 @@
;;; esh-opt.el --- command options processing
-;; Copyright (C) 1999, 2000, 2003 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
diff --git a/lisp/eshell/esh-proc.el b/lisp/eshell/esh-proc.el
index a91cfa01bb..82a0968ae3 100644
--- a/lisp/eshell/esh-proc.el
+++ b/lisp/eshell/esh-proc.el
@@ -1,6 +1,7 @@
;;; esh-proc.el --- process management
-;; Copyright (C) 1999, 2000 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
diff --git a/lisp/eshell/esh-test.el b/lisp/eshell/esh-test.el
index e2972030b6..b7dcfab027 100644
--- a/lisp/eshell/esh-test.el
+++ b/lisp/eshell/esh-test.el
@@ -1,6 +1,7 @@
;;; esh-test.el --- Eshell test suite
-;; Copyright (C) 1999, 2000, 2005 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
diff --git a/lisp/eshell/esh-util.el b/lisp/eshell/esh-util.el
index f5e2072552..c05f6abb23 100644
--- a/lisp/eshell/esh-util.el
+++ b/lisp/eshell/esh-util.el
@@ -1,6 +1,7 @@
;;; esh-util.el --- general utilities
-;; Copyright (C) 1999, 2000, 2001 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
diff --git a/lisp/eshell/esh-var.el b/lisp/eshell/esh-var.el
index 2d444a3ae0..10cc7c703d 100644
--- a/lisp/eshell/esh-var.el
+++ b/lisp/eshell/esh-var.el
@@ -1,6 +1,7 @@
;;; esh-var.el --- handling of variables
-;; Copyright (C) 1999, 2000, 2005 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
diff --git a/lisp/eshell/eshell.el b/lisp/eshell/eshell.el
index 89b5a338ec..ce9641026c 100644
--- a/lisp/eshell/eshell.el
+++ b/lisp/eshell/eshell.el
@@ -1,6 +1,7 @@
;;; eshell.el --- the Emacs command shell
-;; Copyright (C) 1999, 2000 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
;; Version: 2.4.2
@@ -373,11 +374,10 @@ buffer selected (or created)."
;; `same-window-buffer-names', which is done when Eshell is loaded
(assert (and buf (buffer-live-p buf)))
(pop-to-buffer buf)
- (unless (fboundp 'eshell-mode)
+ (if (fboundp 'eshell-mode)
+ (unless (eq major-mode 'eshell-mode)
+ (eshell-mode))
(error "`eshell-auto' must be loaded before Eshell can be used"))
- (unless (eq major-mode 'eshell-mode)
- (eshell-mode))
- (assert (eq major-mode 'eshell-mode))
buf))
(defun eshell-return-exits-minibuffer ()
diff --git a/lisp/expand.el b/lisp/expand.el
index e0ebad49ca..aeb9ec83b1 100644
--- a/lisp/expand.el
+++ b/lisp/expand.el
@@ -1,6 +1,7 @@
;;; expand.el --- make abbreviations more usable
-;; Copyright (C) 1995, 1996 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Frederic Lepied <Frederic.Lepied@sugix.frmug.org>
;; Maintainer: Frederic Lepied <Frederic.Lepied@sugix.frmug.org>
diff --git a/lisp/facemenu.el b/lisp/facemenu.el
index 55ddf663b2..00fb13fe8f 100644
--- a/lisp/facemenu.el
+++ b/lisp/facemenu.el
@@ -1,6 +1,7 @@
;;; facemenu.el --- create a face menu for interactively adding fonts to text
-;; Copyright (c) 1994, 1995, 1996, 2001, 2002, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 1996, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Boris Goldowsky <boris@gnu.org>
;; Keywords: faces
@@ -475,10 +476,11 @@ These special properties include `invisible', `intangible' and `read-only'."
;;;###autoload
(defun facemenu-read-color (&optional prompt)
"Read a color using the minibuffer."
- (let ((col (completing-read (or prompt "Color: ")
- (or facemenu-color-alist
- (defined-colors))
- nil t)))
+ (let* ((completion-ignore-case t)
+ (col (completing-read (or prompt "Color: ")
+ (or facemenu-color-alist
+ (defined-colors))
+ nil t)))
(if (equal "" col)
nil
col)))
diff --git a/lisp/faces.el b/lisp/faces.el
index c7f1f2fc2f..7c0185e170 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -1,7 +1,7 @@
;;; faces.el --- Lisp faces
-;; Copyright (C) 1992,1993,1994,1995,1996,1998,1999,2000,2001,2002,2004,2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+;; 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: internal
@@ -32,6 +32,8 @@
;; Warning suppression -- can't require x-win in batch:
(autoload 'xw-defined-colors "x-win"))
+(defvar help-xref-stack-item)
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Font selection.
@@ -385,7 +387,7 @@ completely specified)."
(defun face-attribute-merged-with (attribute value faces &optional frame)
"Merges ATTRIBUTE, initially VALUE, with faces from FACES until absolute.
FACES may be either a single face or a list of faces.
-\[This is an internal function]"
+\[This is an internal function.]"
(cond ((not (face-attribute-relative-p attribute value))
value)
((null faces)
@@ -770,7 +772,7 @@ and DATA is a string, containing the raw bits of the bitmap."
(set-face-attribute face frame :stipple (or stipple 'unspecified)))
-(defun set-face-underline (face underline &optional frame)
+(defun set-face-underline-p (face underline-p &optional frame)
"Specify whether face FACE is underlined.
UNDERLINE nil means FACE explicitly doesn't underline.
UNDERLINE non-nil means FACE explicitly does underlining
@@ -781,20 +783,11 @@ Use `set-face-attribute' to ``unspecify'' underlining."
(interactive
(let ((list (read-face-and-attribute :underline)))
(list (car list) (eq (car (cdr list)) t))))
- (set-face-attribute face frame :underline underline))
-
-
-(defun set-face-underline-p (face underline-p &optional frame)
- "Specify whether face FACE is underlined.
-UNDERLINE-P nil means FACE explicitly doesn't underline.
-UNDERLINE-P non-nil means FACE explicitly does underlining.
-FRAME nil or not specified means change face on all frames.
-Use `set-face-attribute' to ``unspecify'' underlining."
- (interactive
- (let ((list (read-face-and-attribute :underline)))
- (list (car list) (eq (car (cdr list)) t))))
(set-face-attribute face frame :underline underline-p))
+(define-obsolete-function-alias 'set-face-underline
+ 'set-face-underline-p "22.1")
+
(defun set-face-inverse-video-p (face inverse-video-p &optional frame)
"Specify whether face FACE is in inverse video.
@@ -882,6 +875,7 @@ Otherwise, return a single face."
(push f faces)))
(if (symbolp faceprop)
(push faceprop faces)))
+ (delete-dups faces)
;; Build up the completion tables.
(mapatoms (lambda (s)
@@ -1095,7 +1089,7 @@ of a global face. Value is the new attribute value."
(defun read-face-font (face &optional frame)
"Read the name of a font for FACE on FRAME.
-If optional argument FRAME Is nil or omitted, use the selected frame."
+If optional argument FRAME is nil or omitted, use the selected frame."
(let ((completion-ignore-case t))
(completing-read (format "Set font attributes of face `%s' from font: " face)
(x-list-fonts "*" nil frame))))
@@ -1103,7 +1097,7 @@ If optional argument FRAME Is nil or omitted, use the selected frame."
(defun read-all-face-attributes (face &optional frame)
"Interactively read all attributes for FACE.
-If optional argument FRAME Is nil or omitted, use the selected frame.
+If optional argument FRAME is nil or omitted, use the selected frame.
Value is a property list of attribute names and new values."
(let (result)
(dolist (attribute face-attribute-name-alist result)
@@ -1117,7 +1111,7 @@ Value is a property list of attribute names and new values."
If optional argument FRAME is nil or omitted, modify the face used
for newly created frame, i.e. the global face.
For non-interactive use, `set-face-attribute' is preferred.
-When called from elisp, if FACE is nil, all arguments but FRAME are ignored
+When called from Lisp, if FACE is nil, all arguments but FRAME are ignored
and the face and its settings are obtained by querying the user."
(interactive)
(if face
@@ -1316,8 +1310,15 @@ If FRAME is omitted or nil, use the selected frame."
(terpri))
(dolist (a attrs)
(let ((attr (face-attribute f (car a) frame)))
- (insert (make-string (- max-width (length (cdr a))) ?\ )
- (cdr a) ": " (format "%s" attr) "\n")))))
+ (insert (make-string (- max-width (length (cdr a))) ?\s)
+ (cdr a) ": " (format "%s" attr))
+ (if (and (eq (car a) :inherit)
+ (not (eq attr 'unspecified)))
+ ;; Make a hyperlink to the parent face.
+ (save-excursion
+ (re-search-backward ": \\([^:]+\\)" nil t)
+ (help-xref-button 1 'help-face attr)))
+ (insert "\n")))))
(terpri)))
(print-help-return-message))))
@@ -1330,7 +1331,7 @@ If FRAME is omitted or nil, use the selected frame."
;; face implementation.
(defun face-attr-construct (face &optional frame)
- "Return a defface-style attribute list for FACE on FRAME.
+ "Return a `defface'-style attribute list for FACE on FRAME.
Value is a property list of pairs ATTRIBUTE VALUE for all specified
face attributes of FACE where ATTRIBUTE is the attribute name and
VALUE is the specified value of that attribute."
@@ -1860,8 +1861,8 @@ created."
;; Update the colors of FACE, after FRAME's own colors have been
;; changed.
-(defalias 'frame-update-face-colors 'frame-set-background-mode)
-(make-obsolete 'frame-update-face-colors 'frame-set-background-mode "21.1")
+(define-obsolete-function-alias 'frame-update-face-colors
+ 'frame-set-background-mode "21.1")
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -1907,12 +1908,10 @@ created."
:group 'basic-faces)
(defface mode-line-highlight
- '((((class color) (min-colors 88) (background light))
- :background "RoyalBlue4" :foreground "white")
- (((class color) (min-colors 88) (background dark))
- :background "light sky blue" :foreground "black")
- (t
- :inverse-video t))
+ '((((class color) (min-colors 88))
+ :box (:line-width 2 :color "grey40" :style released-button))
+ (t
+ :inherit highlight))
"Basic mode line face for highlighting."
:version "22.1"
:group 'modeline
@@ -1979,13 +1978,16 @@ created."
:group 'basic-faces)
-(defface minibuffer-prompt '((((background dark)) :foreground "cyan")
- ;; Don't use blue because many users of
- ;; the MS-DOS port customize their
- ;; foreground color to be blue.
- (((type pc)) :foreground "magenta")
- (t :foreground "dark blue"))
- "Face for minibuffer prompts."
+(defface minibuffer-prompt
+ '((((background dark)) :foreground "cyan")
+ ;; Don't use blue because many users of the MS-DOS port customize
+ ;; their foreground color to be blue.
+ (((type pc)) :foreground "magenta")
+ (t :foreground "dark blue"))
+ "Face for minibuffer prompts.
+By default, Emacs automatically adds this face to the value of
+`minibuffer-prompt-properties', which is a list of text properties
+used to display the prompt text."
:version "22.1"
:group 'basic-faces)
@@ -2082,7 +2084,7 @@ Note: Other faces cannot inherit from the cursor face."
;; because in some cases the display engine will do it's own
;; workaround (to `dim' on ttys)
:slant italic))
- "Basic italic font."
+ "Basic italic face."
:group 'basic-faces)
@@ -2174,8 +2176,14 @@ Note: Other faces cannot inherit from the cursor face."
:version "22.1")
(defface shadow
- '((((background dark)) :foreground "grey70")
- (((background light)) :foreground "grey50"))
+ '((((class color grayscale) (min-colors 88) (background light))
+ :foreground "grey50")
+ (((class color grayscale) (min-colors 88) (background dark))
+ :foreground "grey70")
+ (((class color) (min-colors 8) (background light))
+ :foreground "green")
+ (((class color) (min-colors 8) (background dark))
+ :foreground "yellow"))
"Basic face for shadowed text."
:group 'basic-faces
:version "22.1")
diff --git a/lisp/ffap.el b/lisp/ffap.el
index e30b859a58..d408918558 100644
--- a/lisp/ffap.el
+++ b/lisp/ffap.el
@@ -1,6 +1,7 @@
;;; ffap.el --- find file (or url) at point
-;; Copyright (C) 1995, 96, 97, 2000, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 1997, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Michelangelo Grigni <mic@mathcs.emory.edu>
;; Maintainer: Rajesh Vaidheeswarran <rv@gnu.org>
@@ -1711,6 +1712,9 @@ Only intended for interactive use."
(local-set-key "\M-l" 'ffap-gnus-next)
(local-set-key "\M-m" 'ffap-gnus-menu))
+(defvar gnus-summary-buffer)
+(defvar gnus-article-buffer)
+
(defun ffap-gnus-wrapper (form) ; used by both commands below
(and (eq (current-buffer) (get-buffer gnus-summary-buffer))
(gnus-summary-select-article)) ; get article of current line
diff --git a/lisp/filecache.el b/lisp/filecache.el
index 9fccba4b84..bb45bb392f 100644
--- a/lisp/filecache.el
+++ b/lisp/filecache.el
@@ -4,7 +4,8 @@
;; Created: Sun Nov 10 1996
;; Keywords: convenience
;;
-;; Copyright (C) 1996, 2000 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
diff --git a/lisp/files.el b/lisp/files.el
index 4490ede640..68a85f07df 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -1,7 +1,7 @@
;;; files.el --- file input and output commands for Emacs
;; Copyright (C) 1985, 1986, 1987, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-;; 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+;; 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
@@ -30,6 +30,9 @@
;;; Code:
+(defvar font-lock-keywords)
+
+
(defgroup backup nil
"Backups of edited data files."
:group 'files)
@@ -159,8 +162,7 @@ both at the file level and at the levels of the containing directories."
:type 'boolean
:group 'find-file)
-(defcustom revert-without-query
- nil
+(defcustom revert-without-query nil
"*Specify which files should be reverted without query.
The value is a list of regular expressions.
If the file name matches one of these regular expressions,
@@ -178,7 +180,7 @@ If the buffer is visiting a new file, the value is nil.")
(put 'buffer-file-number 'permanent-local t)
(defvar buffer-file-numbers-unique (not (memq system-type '(windows-nt)))
- "Non-nil means that buffer-file-number uniquely identifies files.")
+ "Non-nil means that `buffer-file-number' uniquely identifies files.")
(defvar buffer-file-read-only nil
"Non-nil if visited file was read-only when visited.")
@@ -381,9 +383,8 @@ and should return either a buffer or nil."
These functions are called as soon as the error is detected.
Variable `buffer-file-name' is already set up.
The functions are called in the order given until one of them returns non-nil.")
-(defvaralias 'find-file-not-found-hooks 'find-file-not-found-functions)
-(make-obsolete-variable
- 'find-file-not-found-hooks 'find-file-not-found-functions "22.1")
+(define-obsolete-variable-alias 'find-file-not-found-hooks
+ 'find-file-not-found-functions "22.1")
;;;It is not useful to make this a local variable.
;;;(put 'find-file-hooks 'permanent-local t)
@@ -395,8 +396,7 @@ functions are called."
:type 'hook
:options '(auto-insert)
:version "22.1")
-(defvaralias 'find-file-hooks 'find-file-hook)
-(make-obsolete-variable 'find-file-hooks 'find-file-hook "22.1")
+(define-obsolete-variable-alias 'find-file-hooks 'find-file-hook "22.1")
(defvar write-file-functions nil
"List of functions to be called before writing out a buffer to a file.
@@ -412,10 +412,9 @@ This hook is not run if any of the functions in
to how to save a buffer to file, for instance, choosing a suitable
coding system and setting mode bits. (See Info
node `(elisp)Saving Buffers'.) To perform various checks or
-updates before the buffer is saved, use `before-save-hook' .")
+updates before the buffer is saved, use `before-save-hook'.")
(put 'write-file-functions 'permanent-local t)
-(defvaralias 'write-file-hooks 'write-file-functions)
-(make-obsolete-variable 'write-file-hooks 'write-file-functions "22.1")
+(define-obsolete-variable-alias 'write-file-hooks 'write-file-functions "22.1")
(defvar local-write-file-hooks nil)
(make-variable-buffer-local 'local-write-file-hooks)
@@ -439,8 +438,8 @@ For hooks that _do_ pertain to the particular visited file, use
To perform various checks or updates before the buffer is saved,
use `before-save-hook'.")
(make-variable-buffer-local 'write-contents-functions)
-(defvaralias 'write-contents-hooks 'write-contents-functions)
-(make-obsolete-variable 'write-contents-hooks 'write-contents-functions "22.1")
+(define-obsolete-variable-alias 'write-contents-hooks
+ 'write-contents-functions "22.1")
(defcustom enable-local-variables t
"*Control use of local variables in files you visit.
@@ -866,8 +865,8 @@ it means chase no more than that many links and then stop."
"Change the encoding of FILE's name from CODING to NEW-CODING.
The value is a new name of FILE.
Signals a `file-already-exists' error if a file of the new name
-already exists unless optional third argument OK-IF-ALREADY-EXISTS
-is non-nil. A number as third arg means request confirmation if
+already exists unless optional fourth argument OK-IF-ALREADY-EXISTS
+is non-nil. A number as fourth arg means request confirmation if
the new name already exists. This is what happens in interactive
use with M-x."
(interactive
@@ -1326,9 +1325,9 @@ When nil, never request confirmation."
If a buffer exists visiting FILENAME, return that one, but
verify that the file has not changed since visited or saved.
The buffer is not selected, just returned to the caller.
-Optional first arg NOWARN non-nil means suppress any warning messages.
-Optional second arg RAWFILE non-nil means the file is read literally.
-Optional third arg WILDCARDS non-nil means do wildcard processing
+Optional second arg NOWARN non-nil means suppress any warning messages.
+Optional third arg RAWFILE non-nil means the file is read literally.
+Optional fourth arg WILDCARDS non-nil means do wildcard processing
and visit all the matching files. When wildcards are actually
used and expanded, return a list of buffers that are visiting
the various files."
@@ -1468,7 +1467,6 @@ the various files."
buf)
;; Create a new buffer.
(setq buf (create-file-buffer filename))
- (set-buffer-major-mode buf)
;; find-file-noselect-1 may use a different buffer.
(find-file-noselect-1 buf filename nowarn
rawfile truename number))))))
@@ -1542,6 +1540,7 @@ the various files."
(progn
(set-buffer-multibyte nil)
(setq buffer-file-coding-system 'no-conversion)
+ (set-buffer-major-mode buf)
(make-local-variable 'find-file-literally)
(setq find-file-literally t))
(after-find-file error (not nowarn)))
@@ -1731,12 +1730,18 @@ not set local variables (though we do notice a mode specified with -*-.)
or from Lisp without specifying the optional argument FIND-FILE;
in that case, this function acts as if `enable-local-variables' were t."
(interactive)
- (or find-file (funcall (or default-major-mode 'fundamental-mode)))
+ (funcall (or default-major-mode 'fundamental-mode))
(let ((enable-local-variables (or (not find-file) enable-local-variables)))
(report-errors "File mode specification error: %s"
(set-auto-mode))
(report-errors "File local-variables error: %s"
(hack-local-variables)))
+ ;; Turn font lock off and on, to make sure it takes account of
+ ;; whatever file local variables are relevant to it.
+ (when (and font-lock-mode (eq (car font-lock-keywords) t))
+ (setq font-lock-keywords (cadr font-lock-keywords))
+ (font-lock-mode 1))
+
(if (fboundp 'ucs-set-table-for-input) ; don't lose when building
(ucs-set-table-for-input)))
@@ -1951,9 +1956,8 @@ and `magic-mode-alist', which determines modes based on file contents.")
"Alist mapping interpreter names to major modes.
This is used for files whose first lines match `auto-mode-interpreter-regexp'.
Each element looks like (INTERPRETER . MODE).
-The car of each element, a regular expression, is compared with
-the name of the interpreter specified in the first line.
-If it matches, mode MODE is selected.
+If INTERPRETER matches the name of the interpreter specified in the first line
+of a script, mode MODE is enabled.
See also `auto-mode-alist'.")
@@ -2000,7 +2004,7 @@ if REGEXP matches the text at the beginning of the buffer,
to decide the buffer's major mode.
If FUNCTION is nil, then it is not called. (That is a way of saying
-\"allow `auto-mode-alist' to decide for these files.)")
+\"allow `auto-mode-alist' to decide for these files.\")")
(defun set-auto-mode (&optional keep-mode-if-same)
"Select major mode appropriate for current buffer.
@@ -2406,7 +2410,7 @@ If VAL is nil or omitted, the question is whether any value might be
dangerous."
(let ((safep (get sym 'safe-local-variable)))
(or (get sym 'risky-local-variable)
- (and (string-match "-hooks?$\\|-functions?$\\|-forms?$\\|-program$\\|-command$\\|-predicate$\\|font-lock-keywords$\\|font-lock-keywords-[0-9]+$\\|font-lock-syntactic-keywords$\\|-frame-alist$\\|-mode-alist$\\|-map$\\|-map-alist$"
+ (and (string-match "-hooks?$\\|-functions?$\\|-forms?$\\|-program$\\|-commands?$\\|-predicates?$\\|font-lock-keywords$\\|font-lock-keywords-[0-9]+$\\|font-lock-syntactic-keywords$\\|-frame-alist$\\|-mode-alist$\\|-map$\\|-map-alist$"
(symbol-name sym))
(not safep))
;; If the safe-local-variable property isn't t or nil,
@@ -2544,6 +2548,10 @@ the old visited file has been renamed to the new name FILENAME."
(setq truename (file-truename filename))
(if find-file-visit-truename
(setq filename truename))))
+ (if filename
+ (let ((new-name (file-name-nondirectory filename)))
+ (if (string= new-name "")
+ (error "Empty file name"))))
(let ((buffer (and filename (find-buffer-visiting filename))))
(and buffer (not (eq buffer (current-buffer)))
(not no-query)
@@ -2557,8 +2565,6 @@ the old visited file has been renamed to the new name FILENAME."
(setq buffer-file-name filename)
(if filename ; make buffer name reflect filename.
(let ((new-name (file-name-nondirectory buffer-file-name)))
- (if (string= new-name "")
- (error "Empty file name"))
(if (eq system-type 'vax-vms)
(setq new-name (downcase new-name)))
(setq default-directory (file-name-directory buffer-file-name))
@@ -3235,7 +3241,7 @@ in such cases.")
"Save the current buffer in its visited file, if it has been modified.
The hooks `write-contents-functions' and `write-file-functions' get a chance
to do the job of saving; if they do not, then the buffer is saved in
-the visited file file in the usual way.
+the visited file in the usual way.
Before and after saving the buffer, this function runs
`before-save-hook' and `after-save-hook', respectively."
(interactive)
@@ -3452,9 +3458,9 @@ This requires the external program `diff' to be in your `exec-path'."
(recursive-edit)
;; Return nil to ask about BUF again.
nil)
- "display the current buffer")
+ "view this file")
(?d diff-buffer-with-file
- "show difference to last saved version"))
+ "view changes in file"))
"ACTION-ALIST argument used in call to `map-y-or-n-p'.")
(put 'save-some-buffers-action-alist 'risky-local-variable t)
@@ -4004,8 +4010,10 @@ specifies the list of buffers to kill, asking for approval for each one."
(while list
(let* ((buffer (car list))
(name (buffer-name buffer)))
- (and (not (string-equal name ""))
- (/= (aref name 0) ? )
+ (and name ; Can be nil for an indirect buffer
+ ; if we killed the base buffer.
+ (not (string-equal name ""))
+ (/= (aref name 0) ?\s)
(yes-or-no-p
(format "Buffer %s %s. Kill? "
name
@@ -4057,53 +4065,57 @@ Does not consider `auto-save-visited-file-name' as that variable is checked
before calling this function. You can redefine this for customization.
See also `auto-save-file-name-p'."
(if buffer-file-name
- (let ((list auto-save-file-name-transforms)
- (filename buffer-file-name)
- result uniq)
- ;; Apply user-specified translations
- ;; to the file name.
- (while (and list (not result))
- (if (string-match (car (car list)) filename)
- (setq result (replace-match (cadr (car list)) t nil
- filename)
- uniq (car (cddr (car list)))))
- (setq list (cdr list)))
- (if result
- (if uniq
- (setq filename (concat
- (file-name-directory result)
- (subst-char-in-string
- ?/ ?!
- (replace-regexp-in-string "!" "!!"
- filename))))
- (setq filename result)))
- (setq result
- (if (and (eq system-type 'ms-dos)
- (not (msdos-long-file-names)))
- ;; We truncate the file name to DOS 8+3 limits
- ;; before doing anything else, because the regexp
- ;; passed to string-match below cannot handle
- ;; extensions longer than 3 characters, multiple
- ;; dots, and other atrocities.
- (let ((fn (dos-8+3-filename
- (file-name-nondirectory buffer-file-name))))
- (string-match
- "\\`\\([^.]+\\)\\(\\.\\(..?\\)?.?\\|\\)\\'"
- fn)
- (concat (file-name-directory buffer-file-name)
- "#" (match-string 1 fn)
- "." (match-string 3 fn) "#"))
- (concat (file-name-directory filename)
- "#"
- (file-name-nondirectory filename)
- "#")))
- ;; Make sure auto-save file names don't contain characters
- ;; invalid for the underlying filesystem.
- (if (and (memq system-type '(ms-dos windows-nt))
- ;; Don't modify remote (ange-ftp) filenames
- (not (string-match "^/\\w+@[-A-Za-z0-9._]+:" result)))
- (convert-standard-filename result)
- result))
+ (let ((handler (find-file-name-handler buffer-file-name
+ 'make-auto-save-file-name)))
+ (if handler
+ (funcall handler 'make-auto-save-file-name)
+ (let ((list auto-save-file-name-transforms)
+ (filename buffer-file-name)
+ result uniq)
+ ;; Apply user-specified translations
+ ;; to the file name.
+ (while (and list (not result))
+ (if (string-match (car (car list)) filename)
+ (setq result (replace-match (cadr (car list)) t nil
+ filename)
+ uniq (car (cddr (car list)))))
+ (setq list (cdr list)))
+ (if result
+ (if uniq
+ (setq filename (concat
+ (file-name-directory result)
+ (subst-char-in-string
+ ?/ ?!
+ (replace-regexp-in-string "!" "!!"
+ filename))))
+ (setq filename result)))
+ (setq result
+ (if (and (eq system-type 'ms-dos)
+ (not (msdos-long-file-names)))
+ ;; We truncate the file name to DOS 8+3 limits
+ ;; before doing anything else, because the regexp
+ ;; passed to string-match below cannot handle
+ ;; extensions longer than 3 characters, multiple
+ ;; dots, and other atrocities.
+ (let ((fn (dos-8+3-filename
+ (file-name-nondirectory buffer-file-name))))
+ (string-match
+ "\\`\\([^.]+\\)\\(\\.\\(..?\\)?.?\\|\\)\\'"
+ fn)
+ (concat (file-name-directory buffer-file-name)
+ "#" (match-string 1 fn)
+ "." (match-string 3 fn) "#"))
+ (concat (file-name-directory filename)
+ "#"
+ (file-name-nondirectory filename)
+ "#")))
+ ;; Make sure auto-save file names don't contain characters
+ ;; invalid for the underlying filesystem.
+ (if (and (memq system-type '(ms-dos windows-nt))
+ ;; Don't modify remote (ange-ftp) filenames
+ (not (string-match "^/\\w+@[-A-Za-z0-9._]+:" result)))
+ (convert-standard-filename result)
+ result))))
;; Deal with buffers that don't have any associated files. (Mail
;; mode tends to create a good number of these.)
@@ -4388,9 +4400,9 @@ preference to the program given by this variable."
:group 'dired)
(defun get-free-disk-space (dir)
- "Return the mount of free space on directory DIR's file system.
+ "Return the amount of free space on directory DIR's file system.
The result is a string that gives the number of free 1KB blocks,
-or nil if the system call or the program which retrieve the infornmation
+or nil if the system call or the program which retrieve the information
fail.
This function calls `file-system-info' if it is available, or invokes the
@@ -4638,7 +4650,7 @@ normally equivalent short `-D' option is just passed on to
(end (insert-directory-adj-pos
(+ beg (read (current-buffer)))
error-lines)))
- (if (memq (char-after end) '(?\n ?\ ))
+ (if (memq (char-after end) '(?\n ?\s))
;; End is followed by \n or by " -> ".
(put-text-property start end 'dired-filename t)
;; It seems that we can't trust ls's output as to
@@ -4844,7 +4856,8 @@ With prefix arg, silently save all file-visiting buffers, then kill."
((eq method 'add)
(concat "/:" (apply operation arguments)))
((eq method 'quote)
- (prog1 (apply operation arguments)
+ (unwind-protect
+ (apply operation arguments)
(setq buffer-file-name (concat "/:" buffer-file-name))))
((eq method 'unquote-then-quote)
(let (res)
diff --git a/lisp/filesets.el b/lisp/filesets.el
index 009e6797a4..1ee126465a 100644
--- a/lisp/filesets.el
+++ b/lisp/filesets.el
@@ -1,6 +1,6 @@
;;; filesets.el --- handle group of files
-;; Copyright (C) 2002, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Thomas Link <t.link@gmx.at>
;; Maintainer: FSF
diff --git a/lisp/find-dired.el b/lisp/find-dired.el
index e1b4ce65e7..8347e68c58 100644
--- a/lisp/find-dired.el
+++ b/lisp/find-dired.el
@@ -1,6 +1,7 @@
;;; find-dired.el --- run a `find' command and dired the output
-;; Copyright (C) 1992, 1994, 1995, 2000, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1994, 1995, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Roland McGrath <roland@gnu.org>,
;; Sebastian Kremer <sk@thp.uni-koeln.de>
diff --git a/lisp/find-file.el b/lisp/find-file.el
index d741ed7d84..db03adce29 100644
--- a/lisp/find-file.el
+++ b/lisp/find-file.el
@@ -4,7 +4,8 @@
;; Maintainer: FSF
;; Keywords: c, matching, tools
-;; Copyright (C) 1994, 1995, 2002, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
@@ -943,6 +944,9 @@ and the name of the file passed in."
;; bind with (setq ff-pre-load-hook 'ff-which-function-are-we-in)
;;
+(defvar ada-procedure-start-regexp)
+(defvar ada-package-start-regexp)
+
(defun ff-which-function-are-we-in ()
"Return the name of the function whose definition/declaration point is in.
Also remember that name in `ff-function-name'."
diff --git a/lisp/find-lisp.el b/lisp/find-lisp.el
index 35b24af3d6..59dac2f62d 100644
--- a/lisp/find-lisp.el
+++ b/lisp/find-lisp.el
@@ -5,7 +5,8 @@
;; Keywords: unix
;; Time-stamp: <2001-07-16 12:42:35 pavel>
-;; Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
@@ -45,6 +46,9 @@
;;; Code:
+(defvar dired-buffers)
+(defvar dired-subdir-alist)
+
;; Internal variables
(defvar find-lisp-regexp nil
diff --git a/lisp/finder.el b/lisp/finder.el
index 01052101e6..737bb676a1 100644
--- a/lisp/finder.el
+++ b/lisp/finder.el
@@ -1,6 +1,7 @@
;;; finder.el --- topic & keyword-based code finder
-;; Copyright (C) 1992,97,98,1999,2001,2004 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1997, 1998, 1999, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Eric S. Raymond <esr@snark.thyrsus.com>
;; Created: 16 Jun 1992
diff --git a/lisp/flow-ctrl.el b/lisp/flow-ctrl.el
index 0bfc5c7e92..0acbe41c6e 100644
--- a/lisp/flow-ctrl.el
+++ b/lisp/flow-ctrl.el
@@ -1,6 +1,7 @@
;;; flow-ctrl.el --- help for lusers on cu(1) or ttys with wired-in ^S/^Q flow control
-;; Copyright (C) 1990, 1991, 1994 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1994, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author Kevin Gallagher
;; Maintainer: FSF
diff --git a/lisp/foldout.el b/lisp/foldout.el
index 9c6ef395ab..54fca4eb6f 100644
--- a/lisp/foldout.el
+++ b/lisp/foldout.el
@@ -1,6 +1,6 @@
;;; foldout.el --- folding extensions for outline-mode and outline-minor-mode
-;; Copyright (C) 1994 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Kevin Broadey <KevinB@bartley.demon.co.uk>
;; Created: 27 Jan 1994
diff --git a/lisp/follow.el b/lisp/follow.el
index 09b408cb45..37a157cc40 100644
--- a/lisp/follow.el
+++ b/lisp/follow.el
@@ -1,7 +1,7 @@
;;; follow.el --- synchronize windows showing the same buffer
-;; Copyright (C) 1995, 1996, 1997, 1999, 2001, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 1997, 1999, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Anders Lindgren <andersl@andersl.com>
;; Maintainer: Anders Lindgren <andersl@andersl.com>
diff --git a/lisp/font-core.el b/lisp/font-core.el
index 318191e175..4af6e1c41f 100644
--- a/lisp/font-core.el
+++ b/lisp/font-core.el
@@ -1,7 +1,7 @@
;;; font-core.el --- Core interface to font-lock
;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-;; 2002, 2003, 2005 Free Software Foundation, Inc.
+;; 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: languages, faces
@@ -125,7 +125,7 @@ major modes support different levels of fontification, you can use the variable
When you turn Font Lock mode on/off the buffer is fontified/defontified, though
fontification occurs only if the buffer is less than `font-lock-maximum-size'.
-For example, to specify that Font Lock mode use use Lazy Lock mode as a support
+For example, to specify that Font Lock mode uses Lazy Lock mode as a support
mode and use maximum levels of fontification, put in your ~/.emacs:
(setq font-lock-support-mode 'lazy-lock-mode)
diff --git a/lisp/font-lock.el b/lisp/font-lock.el
index 1258609f9a..5b421f2b3f 100644
--- a/lisp/font-lock.el
+++ b/lisp/font-lock.el
@@ -1,7 +1,7 @@
;;; font-lock.el --- Electric font lock mode
;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-;; 2000, 2001, 2002, 2003, 2004 2005 Free Software Foundation, Inc.
+;; 2000, 2001, 2002, 2003, 2004 2005 Free Software Foundation, Inc.
;; Author: jwz, then rms, then sm
;; Maintainer: FSF
@@ -224,17 +224,6 @@
(defgroup font-lock-extra-types nil
"Extra mode-specific type names for highlighting declarations."
:group 'font-lock)
-
-;; Define support mode groups here to impose `font-lock' group order.
-(defgroup fast-lock nil
- "Font Lock support mode to cache fontification."
- :load 'fast-lock
- :group 'font-lock)
-
-(defgroup lazy-lock nil
- "Font Lock support mode to fontify lazily."
- :load 'lazy-lock
- :group 'font-lock)
;; User variables.
@@ -293,7 +282,7 @@ If a number, only buffers greater than this size have fontification messages."
(integer :tag "size"))
:group 'font-lock)
-(defcustom font-lock-lines-before 1
+(defcustom font-lock-lines-before 0
"*Number of lines before the changed text to include in refontification."
:type 'integer
:group 'font-lock
@@ -1049,6 +1038,8 @@ a very meaningful entity to highlight.")
;; Use the fontification syntax table, if any.
(when font-lock-syntax-table
(set-syntax-table font-lock-syntax-table))
+ (goto-char beg)
+ (setq beg (line-beginning-position (- 1 font-lock-lines-before)))
;; check to see if we should expand the beg/end area for
;; proper multiline matches
(when (and font-lock-multiline
@@ -1105,8 +1096,7 @@ what properties to clear before refontifying a region.")
(save-match-data
;; Rescan between start of lines enclosing the region.
(font-lock-fontify-region
- (progn (goto-char beg)
- (forward-line (- font-lock-lines-before)) (point))
+ (progn (goto-char beg) (forward-line 0) (point))
(progn (goto-char end) (forward-line 1) (point)))))))
(defun font-lock-fontify-block (&optional arg)
@@ -1473,7 +1463,11 @@ LOUDLY, if non-nil, allows progress-meter bar."
(while (and (< (point) end)
(if (stringp matcher)
(re-search-forward matcher end t)
- (funcall matcher end)))
+ (funcall matcher end))
+ ;; Beware empty string matches since they will
+ ;; loop indefinitely.
+ (or (> (point) (match-beginning 0))
+ (progn (forward-char 1) t)))
(when (and font-lock-multiline
(>= (point)
(save-excursion (goto-char (match-beginning 0))
@@ -1826,8 +1820,7 @@ Sets various variables using `font-lock-defaults' (or, if nil, using
:group 'font-lock-highlighting-faces)
(defface font-lock-regexp-grouping-backslash
- '((((class color) (min-colors 16)) :inherit escape-glyph)
- (t :inherit bold))
+ '((t :inherit bold))
"Font Lock mode face for backslashes in Lisp regexp grouping constructs."
:group 'font-lock-highlighting-faces)
diff --git a/lisp/format.el b/lisp/format.el
index e676677179..c43898d78a 100644
--- a/lisp/format.el
+++ b/lisp/format.el
@@ -1,6 +1,7 @@
;;; format.el --- read and save files in multiple formats
-;; Copyright (c) 1994, 1995, 1997, 1999, 2004 Free Software Foundation
+;; Copyright (C) 1994, 1995, 1997, 1999, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Boris Goldowsky <boris@gnu.org>
diff --git a/lisp/forms-d2.el b/lisp/forms-d2.el
index 19164b6a6d..63b47fc028 100644
--- a/lisp/forms-d2.el
+++ b/lisp/forms-d2.el
@@ -32,17 +32,17 @@
;; The following functions are used by this form for layout purposes.
;;
(defun arch-tocol (target &optional fill)
- "Produces a string to skip to column TARGET. Prepends newline if needed.
+ "Produces a string to skip to column TARGET. Prepends newline if needed.
The optional FILL should be a character, used to fill to the column."
(if (null fill)
- (setq fill ? ))
+ (setq fill ?\s))
(if (< target (current-column))
(concat "\n" (make-string target fill))
(make-string (- target (current-column)) fill)))
;;
(defun arch-rj (target field &optional fill)
"Produces a string to skip to column TARGET minus the width of field FIELD.
-Prepends newline if needed. The optional FILL should be a character,
+Prepends newline if needed. The optional FILL should be a character,
used to fill to the column."
(arch-tocol (- target (length (nth field forms-fields))) fill))
diff --git a/lisp/forms.el b/lisp/forms.el
index 7b41698cf4..419a6fa377 100644
--- a/lisp/forms.el
+++ b/lisp/forms.el
@@ -1,6 +1,7 @@
;;; forms.el --- Forms mode: edit a file as a form to fill in
-;; Copyright (C) 1991, 1994, 1995, 1996, 1997, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 1991, 1994, 1995, 1996, 1997, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Johan Vromans <jvromans@squirrel.nl>
diff --git a/lisp/frame.el b/lisp/frame.el
index 0f64a361a9..59a1490e39 100644
--- a/lisp/frame.el
+++ b/lisp/frame.el
@@ -1,7 +1,7 @@
;;; frame.el --- multi-frame management independent of window systems
-;; Copyright (C) 1993, 1994, 1996, 1997, 2000, 2001, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 1996, 1997, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: internal
@@ -617,8 +617,7 @@ The functions are run with one arg, the newly created frame.")
"Functions to run after a frame's font has been changed.")
;; Alias, kept temporarily.
-(defalias 'new-frame 'make-frame)
-(make-obsolete 'new-frame 'make-frame "22.1")
+(define-obsolete-function-alias 'new-frame 'make-frame "22.1")
(defun make-frame (&optional parameters)
"Return a newly created frame displaying the current buffer.
@@ -916,7 +915,7 @@ When called interactively, prompt for the name of the font to use.
To get the frame's current default font, use `frame-parameters'.
The default behavior is to keep the numbers of lines and columns in
-the frame, thus may change its pixel size. If optional KEEP-SIZE is
+the frame, thus may change its pixel size. If optional KEEP-SIZE is
non-nil (interactively, prefix argument) the current frame size (in
pixels) is kept by adjusting the numbers of the lines and columns."
(interactive
@@ -1218,23 +1217,21 @@ The value is one of the symbols `static-gray', `gray-scale',
;;;; Aliases for backward compatibility with Emacs 18.
-(defalias 'screen-height 'frame-height)
-(defalias 'screen-width 'frame-width)
+(define-obsolete-function-alias 'screen-height 'frame-height) ;before 19.15
+(define-obsolete-function-alias 'screen-width 'frame-width) ;before 19.15
(defun set-screen-width (cols &optional pretend)
- "Obsolete function to change the size of the screen to COLS columns.
+ "Change the size of the screen to COLS columns.
Optional second arg non-nil means that redisplay should use COLS columns
but that the idea of the actual width of the frame should not be changed.
-This function is provided only for compatibility with Emacs 18; new code
-should use `set-frame-width instead'."
+This function is provided only for compatibility with Emacs 18."
(set-frame-width (selected-frame) cols pretend))
(defun set-screen-height (lines &optional pretend)
- "Obsolete function to change the height of the screen to LINES lines.
+ "Change the height of the screen to LINES lines.
Optional second arg non-nil means that redisplay should use LINES lines
but that the idea of the actual height of the screen should not be changed.
-This function is provided only for compatibility with Emacs 18; new code
-should use `set-frame-height' instead."
+This function is provided only for compatibility with Emacs 18."
(set-frame-height (selected-frame) lines pretend))
(defun delete-other-frames (&optional frame)
@@ -1257,14 +1254,12 @@ left untouched. FRAME nil or omitted means use the selected frame."
(when (eq (frame-parameter frame 'minibuffer) 'only)
(delete-frame frame)))))
-(make-obsolete 'screen-height 'frame-height) ;before 19.15
-(make-obsolete 'screen-width 'frame-width) ;before 19.15
(make-obsolete 'set-screen-width 'set-frame-width) ;before 19.15
(make-obsolete 'set-screen-height 'set-frame-height) ;before 19.15
;; miscellaneous obsolescence declarations
-(defvaralias 'delete-frame-hook 'delete-frame-functions)
-(make-obsolete-variable 'delete-frame-hook 'delete-frame-functions "22.1")
+(define-obsolete-variable-alias 'delete-frame-hook
+ 'delete-frame-functions "22.1")
;; Highlighting trailing whitespace.
@@ -1325,10 +1320,6 @@ The function `blink-cursor-start' is called when the timer fires.")
This timer calls `blink-cursor-timer-function' every
`blink-cursor-interval' seconds.")
-;; We do not know the standard _evaluated_ value yet, because the standard
-;; expression uses values that are not yet set. The correct evaluated
-;; standard value will be installed in startup.el using exactly the same
-;; expression as in the defcustom.
(define-minor-mode blink-cursor-mode
"Toggle blinking cursor mode.
With a numeric argument, turn blinking cursor mode on iff ARG is positive.
@@ -1339,9 +1330,10 @@ Note that this command is effective only when Emacs
displays through a window system, because then Emacs does its own
cursor display. On a text-only terminal, this is not implemented."
:init-value (not (or noninteractive
- (if (boundp 'no-blinking-cursor) no-blinking-cursor)
+ no-blinking-cursor
(eq system-type 'ms-dos)
(not (memq initial-window-system '(x w32)))))
+ :initialize 'custom-initialize-safe-default
:group 'cursor
:global t
(if blink-cursor-idle-timer (cancel-timer blink-cursor-idle-timer))
@@ -1358,8 +1350,7 @@ cursor display. On a text-only terminal, this is not implemented."
'blink-cursor-start)))
(internal-show-cursor nil t)))
-(defvaralias 'blink-cursor 'blink-cursor-mode)
-(make-obsolete-variable 'blink-cursor 'blink-cursor-mode "22.1")
+(define-obsolete-variable-alias 'blink-cursor 'blink-cursor-mode "22.1")
(defun blink-cursor-start ()
"Timer function called from the timer `blink-cursor-idle-timer'.
@@ -1405,7 +1396,7 @@ itself as a pre-command hook."
(defcustom cursor-in-non-selected-windows t
- "*Non-nil means show a hollow box cursor in non-selected-windows.
+ "*Non-nil means show a hollow box cursor in non-selected windows.
If nil, don't show a cursor except in the selected window.
Use Custom to set this variable to get the display updated."
:tag "Cursor in non-selected windows"
diff --git a/lisp/fringe.el b/lisp/fringe.el
index 71914bd95f..a32d6b5902 100644
--- a/lisp/fringe.el
+++ b/lisp/fringe.el
@@ -1,6 +1,6 @@
;;; fringe.el --- change fringes appearance in various ways
-;; Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Simon Josefsson <simon@josefsson.org>
;; Maintainer: FSF
@@ -150,7 +150,7 @@ To set this variable in a Lisp program, use `set-fringe-mode' to make
it take real effect.
Setting the variable with a customization buffer also takes effect.
If you only want to modify the appearance of the fringe in one frame,
-you can use the interactive function `toggle-fringe'"
+you can use the interactive function `set-fringe-style'."
:type '(choice (const :tag "Default width" nil)
(const :tag "No fringes" 0)
(const :tag "Only right" (0 . nil))
@@ -174,7 +174,10 @@ If ALL-FRAMES, the negation of the fringe values in
Otherwise the negation of the fringe value in the currently selected
frame parameter is used."
(let ((mode (intern (completing-read
- "Select fringe mode for all frames (type ? for list): "
+ (concat
+ "Select fringe mode for "
+ (if all-frames "all frames" "selected frame")
+ " (type ? for list): ")
'(("none") ("default") ("left-only")
("right-only") ("half") ("minimal"))
nil t))))
@@ -257,43 +260,6 @@ SIDE must be the symbol `left' or `right'."
0)
(float (frame-char-width))))
-;; Fake defvar. Real definition using defcustom is below. The fake
-;; defvar is necessary because `fringe-indicators' and
-;; `set-fringe-indicators-1' mutually use each other.
-(defvar fringe-indicators)
-
-(defun set-fringe-indicators-1 (ignore value)
- "Set fringe indicators according to VALUE.
-This is usually invoked when setting `fringe-indicators' via customize."
- (setq fringe-indicators value)
- (setq default-indicate-empty-lines nil)
- (setq default-indicate-buffer-boundaries
- (cond
- ((memq value '(left right t))
- value)
- ((eq value 'box)
- '((top . left) (bottom . right)))
- ((eq value 'mixed)
- '((top . left) (t . right)))
- ((eq value 'empty)
- (setq default-indicate-empty-lines t)
- nil)
- (t nil))))
-
-;;;###autoload
-(defcustom fringe-indicators nil
- "Visually indicate buffer boundaries and scrolling.
-Setting this variable, changes `default-indicate-buffer-boundaries'."
- :type '(choice (const :tag "No indicators" nil)
- (const :tag "On left" left)
- (const :tag "On right" right)
- (const :tag "Opposite, no arrows" box)
- (const :tag "Opposite, arrows right" mixed)
- (const :tag "Empty lines" empty))
- :group 'fringe
- :require 'fringe
- :set 'set-fringe-indicators-1)
-
(provide 'fringe)
;;; arch-tag: 6611ef60-0869-47ed-8b93-587ee7d3ff5d
diff --git a/lisp/generic-x.el b/lisp/generic-x.el
index 55afcc73e6..d6f56cfc76 100644
--- a/lisp/generic-x.el
+++ b/lisp/generic-x.el
@@ -1,6 +1,7 @@
;;; generic-x.el --- A collection of generic modes
-;; Copyright (C) 1997, 1998, 2003, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Peter Breton <pbreton@cs.umb.edu>
;; Created: Tue Oct 08 1996
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 053ce91dad..198e395d26 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,205 @@
+2005-08-31 Juanma Barranquero <lekktu@gmail.com>
+
+ * gnus-art.el (w3m-minor-mode-map):
+ * gnus-spec.el (gnus-newsrc-file-version):
+ * gnus-util.el (nnmail-active-file-coding-system)
+ (gnus-original-article-buffer, gnus-user-agent):
+ * gnus.el (gnus-ham-process-destinations)
+ (gnus-parameter-ham-marks-alist)
+ (gnus-parameter-spam-marks-alist, gnus-spam-autodetect)
+ (gnus-spam-autodetect-methods, gnus-spam-newsgroup-contents)
+ (gnus-spam-process-destinations, gnus-spam-process-newsgroups):
+ * mm-decode.el (gnus-current-window-configuration):
+ * mm-extern.el (gnus-article-mime-handles):
+ * mm-url.el (url-current-object, url-package-name)
+ (url-package-version):
+ * mm-view.el (gnus-article-mime-handles, gnus-newsgroup-charset)
+ (smime-keys, w3m-cid-retrieve-function-alist)
+ (w3m-current-buffer, w3m-display-inline-images)
+ (w3m-minor-mode-map):
+ * mml-smime.el (gnus-extract-address-components):
+ * mml.el (gnus-article-mime-handles, gnus-mouse-2)
+ (gnus-newsrc-hashtb, message-default-charset)
+ (message-deletable-headers, message-options)
+ (message-posting-charset, message-required-mail-headers)
+ (message-required-news-headers):
+ * mml1991.el (mc-pgp-always-sign):
+ * mml2015.el (mc-pgp-always-sign):
+ * nnheader.el (nnmail-extra-headers):
+ * rfc1843.el (gnus-decode-encoded-word-function)
+ (gnus-decode-header-function, gnus-newsgroup-name):
+ * spam-stat.el (gnus-original-article-buffer): Add defvars.
+
+2005-08-22 Karl Chen <quarl@cs.berkeley.edu> (tiny change)
+
+ * gnus-art.el (gnus-treatment-function-alist): Move date-lapsed to
+ the end of the date treatments.
+
+2005-08-15 Simon Josefsson <jas@extundo.com>
+
+ * pgg.el (url-insert-file-contents): Don't autoload it, Emacs has
+ it in url-handlers.el and XEmacs in url.el. Reported by Luca
+ Capello and Romain Francoise.
+ (pgg-fetch-key-function): Removed, not used?
+ (pgg-insert-url-with-w3): Require url, to get
+ url-insert-file-contents regardless of where it is defined.
+
+2005-08-08 Simon Josefsson <jas@extundo.com>
+
+ * pgg.el: Autoload url-insert-file-contents instead of loading
+ w3/url.
+ (pgg-insert-url-with-w3): Don't load url here.
+
+2005-08-05 Daiki Ueno <ueno@unixuser.org>
+
+ * mml2015.el (mml2015-pgg-sign): Make sure micalg is correct.
+
+ * pgg-parse.el (pgg-parse-hash-algorithm-alist): Add SHA-2.
+
+2005-08-06 Romain Francoise <romain@orebokech.com>
+
+ * message.el: Fix typo in docstring.
+
+2005-08-05 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * mm-bodies.el (mm-encode-body): Use coding system rather than
+ charset to encode text.
+
+ * mm-util.el (mm-find-mime-charset-region): Attempt to reduce the
+ number of charsets if utf-8 is available (XEmacs).
+
+2005-08-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus-art.el (article-unsplit-urls): Don't anchor urls to the
+ start of the lines.
+ (gnus-picon-databases): Add /usr/share/picons.
+
+2005-08-04 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * gnus-art.el (gnus-button-valid-localpart-regexp): New variable
+ taken from `gnus-button-mid-or-mail-regexp'.
+ (gnus-button-mid-or-mail-regexp, gnus-button-alist): Use it.
+ (gnus-button-alist): Improve regexp for domain part of the MIDs
+ for news:localpart@domain buttons.
+ (gnus-button-ctan-directory-regexp): Update.
+
+ * message.el (message-kill-buffer): Raise the current frame.
+ (message-bury): Use `window-dedicated-p'.
+
+2005-08-02 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * sieve-manage.el (sieve-manage-interactive-login): Use
+ make-local-variable rather than make-variable-buffer-local.
+ (sieve-manage-open): Ditto.
+ (sieve-manage-authenticate): Ditto.
+
+ * mml.el (mml-generate-mime-1): Make the content type default to
+ text/plain if the filename is not specified.
+
+2005-08-01 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus-uu.el (gnus-uu-save-article): Use insert-buffer-substring
+ instead of insert-buffer.
+
+ * message.el (message-yank-original): Ditto; set the mark at the
+ end of the yanked message.
+
+2005-07-29 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus-art.el (gnus-article-next-page-1): Reduce the number of
+ lines to scroll rather than to stop it.
+
+ * mml.el (mml-generate-default-type): Add doc string.
+ (mml-generate-mime-1): Use mm-default-file-encoding or make it
+ default to application/octet-stream when determining the content
+ type if it is not specified for the part or the mml contents; add
+ a comment about mml-generate-default-type.
+
+2005-07-29 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * mml.el (mml-generate-mime-1): Use mm-default-file-encoding or
+ make it default to application/octet-stream when determining the
+ content type if it is not specified for the external contents.
+
+2005-07-28 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * rfc2231.el (rfc2231-parse-string): Take care that not only a
+ segmented parameter but also other parameters might be there.
+
+2005-07-27 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * mm-decode.el (mm-display-external): Delete temp file, directory
+ and buffer immediately if the external process is exited.
+
+2005-07-26 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus-art.el (gnus-article-next-page-1): Don't scroll if there're
+ fewer lines than that of scroll-margin.
+ (gnus-article-prev-page): Narrow the range to bind scroll-in-place.
+
+2005-07-25 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus-art.el (gnus-article-next-page): Revert.
+ (gnus-article-beginning-of-window): New macro.
+ (gnus-article-next-page-1): Use it.
+ (gnus-article-prev-page): Ditto.
+ (gnus-mime-save-part-and-strip): Use insert-buffer-substring
+ instead of insert-buffer.
+ (gnus-mime-delete-part): Ditto.
+ (gnus-article-edit-exit): Ditto.
+
+ * gnus-util.el (gnus-beginning-of-window): Remove.
+ (gnus-end-of-window): Remove.
+
+ * lpath.el: Don't bind scroll-margin.
+
+2005-07-25 Simon Josefsson <jas@extundo.com>
+
+ * pgg.el (pgg-insert-url-with-w3): Don't load w3, it is possible
+ to have the url package without w3. Reported by Daiki Ueno
+ <ueno@unixuser.org> and Luigi Panzeri <matley@muppetslab.org>.
+
+2005-07-21 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * mml.el (mml-minibuffer-read-disposition): Don't use inline by default
+ for text/rtf. Display default in prompt. Pass default for M-n.
+
+ * mm-uu.el (mm-uu-copy-to-buffer): Use with-current-buffer.
+
+2005-07-16 Romain Francoise <romain@orebokech.com>
+
+ * gnus-uu.el (gnus-uu-save-article): Use `message-make-date'
+ instead of `current-time-string' as the latter creates a time
+ string that is not RFC 2822 compliant (it lacks the zone).
+
+2005-07-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus-msg.el (gnus-button-mailto): Remove
+ save-selected-window-window hackery because it relies on
+ save-selected-window internals.
+
+2005-07-15 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus-art.el (gnus-article-next-page): Use gnus-end-of-window.
+ (gnus-article-next-page-1): Use gnus-beginning-of-window.
+ (gnus-article-prev-page): Ditto.
+
+ * gnus-util.el (gnus-beginning-of-window): New function.
+ (gnus-end-of-window): New function.
+
+2005-07-13 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus-salt.el (gnus-pick-mode): Remove the 5th arg of
+ gnus-add-minor-mode.
+ (gnus-binary-mode): Ditto.
+
+ * gnus-topic.el (gnus-topic-mode): Ditto.
+
+2005-07-08 Ralf Angeli <angeli@iwi.uni-sb.de> (tiny change)
+
+ * gnus-art.el (gnus-article-next-page, gnus-article-next-page-1)
+ (gnus-article-prev-page): Take scroll-margin into consideration.
+
2005-07-04 Lute Kamstra <lute@gnu.org>
Update FSF's address in GPL notices.
diff --git a/lisp/gnus/binhex.el b/lisp/gnus/binhex.el
index b662fc391d..af0669f62a 100644
--- a/lisp/gnus/binhex.el
+++ b/lisp/gnus/binhex.el
@@ -1,5 +1,7 @@
;;; binhex.el --- elisp native binhex decode
-;; Copyright (c) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
;; Keywords: binhex news
diff --git a/lisp/gnus/canlock.el b/lisp/gnus/canlock.el
index ae679d9fb7..bad7ea0409 100644
--- a/lisp/gnus/canlock.el
+++ b/lisp/gnus/canlock.el
@@ -1,7 +1,7 @@
;;; canlock.el --- functions for Cancel-Lock feature
-;; Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Katsumi Yamaoka <yamaoka@jpl.org>
;; Keywords: news, cancel-lock, hmac, sha1, rfc2104
diff --git a/lisp/gnus/compface.el b/lisp/gnus/compface.el
index ab6ce23362..874c8bd622 100644
--- a/lisp/gnus/compface.el
+++ b/lisp/gnus/compface.el
@@ -1,5 +1,6 @@
;;; compface.el --- functions for converting X-Face headers
-;; Copyright (C) 2002 Free Software Foundation, Inc.
+
+;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
diff --git a/lisp/gnus/dig.el b/lisp/gnus/dig.el
index 6bb2ab9105..ed752e5652 100644
--- a/lisp/gnus/dig.el
+++ b/lisp/gnus/dig.el
@@ -1,5 +1,7 @@
;;; dig.el --- Domain Name System dig interface
-;; Copyright (c) 2000, 2001, 2003, 2005 Free Software Foundation, Inc.
+
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Simon Josefsson <simon@josefsson.org>
;; Keywords: DNS BIND dig
diff --git a/lisp/gnus/dns.el b/lisp/gnus/dns.el
index 37a110e467..01c373ba95 100644
--- a/lisp/gnus/dns.el
+++ b/lisp/gnus/dns.el
@@ -1,5 +1,6 @@
;;; dns.el --- Domain Name Service lookups
-;; Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+
+;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: network
diff --git a/lisp/gnus/earcon.el b/lisp/gnus/earcon.el
index 051a9799c9..37ccb3baba 100644
--- a/lisp/gnus/earcon.el
+++ b/lisp/gnus/earcon.el
@@ -1,6 +1,7 @@
;;; earcon.el --- Sound effects for messages
-;; Copyright (C) 1996, 2000, 2001, 2003 Free Software Foundation
+;; Copyright (C) 1996, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Steven L. Baur <steve@miranova.com>
diff --git a/lisp/gnus/flow-fill.el b/lisp/gnus/flow-fill.el
index a18805952b..d6dc739b55 100644
--- a/lisp/gnus/flow-fill.el
+++ b/lisp/gnus/flow-fill.el
@@ -1,6 +1,7 @@
;;; flow-fill.el --- interpret RFC2646 "flowed" text
-;; Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Simon Josefsson <jas@pdc.kth.se>
;; Keywords: mail
diff --git a/lisp/gnus/format-spec.el b/lisp/gnus/format-spec.el
index d287af6f78..fc34b50bc1 100644
--- a/lisp/gnus/format-spec.el
+++ b/lisp/gnus/format-spec.el
@@ -1,5 +1,7 @@
;;; format-spec.el --- functions for formatting arbitrary formatting strings
-;; Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: tools
diff --git a/lisp/gnus/gnus-agent.el b/lisp/gnus/gnus-agent.el
index 49126e4bdb..ea45a139ab 100644
--- a/lisp/gnus/gnus-agent.el
+++ b/lisp/gnus/gnus-agent.el
@@ -1,6 +1,7 @@
;;; gnus-agent.el --- unplugged support for Gnus
-;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; This file is part of GNU Emacs.
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index fd032e9964..822448fa46 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -1,6 +1,7 @@
;;; gnus-art.el --- article mode commands for Gnus
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
@@ -28,7 +29,8 @@
(eval-when-compile
(require 'cl)
- (defvar tool-bar-map))
+ (defvar tool-bar-map)
+ (defvar w3m-minor-mode-map))
(require 'gnus)
(require 'gnus-sum)
@@ -842,7 +844,8 @@ be controlled by `gnus-treat-body-boundary'."
:type '(choice (item :tag "None" :value nil)
string))
-(defcustom gnus-picon-databases '("/usr/lib/picon" "/usr/local/faces")
+(defcustom gnus-picon-databases '("/usr/lib/picon" "/usr/local/faces"
+ "/usr/share/picons")
"Defines the location of the faces database.
For information on obtaining this database of pretty pictures, please
see http://www.cs.indiana.edu/picons/ftp/index.html"
@@ -1479,10 +1482,10 @@ This requires GNU Libidn, and by default only enabled if it is found."
(gnus-treat-date-ut gnus-article-date-ut)
(gnus-treat-date-local gnus-article-date-local)
(gnus-treat-date-english gnus-article-date-english)
- (gnus-treat-date-lapsed gnus-article-date-lapsed)
(gnus-treat-date-original gnus-article-date-original)
(gnus-treat-date-user-defined gnus-article-date-user)
(gnus-treat-date-iso8601 gnus-article-date-iso8601)
+ (gnus-treat-date-lapsed gnus-article-date-lapsed)
(gnus-treat-display-x-face gnus-article-display-x-face)
(gnus-treat-display-face gnus-article-display-face)
(gnus-treat-hide-headers gnus-article-maybe-hide-headers)
@@ -2428,7 +2431,7 @@ If READ-CHARSET, ask for a coding system."
(let ((inhibit-read-only t))
(goto-char (point-min))
(while (re-search-forward
- "^\\(\\(https?\\|ftp\\)://\\S-+\\) *\n\\(\\S-+\\)" nil t)
+ "\\(\\(https?\\|ftp\\)://\\S-+\\) *\n\\(\\S-+\\)" nil t)
(replace-match "\\1\\3" t)))
(when (interactive-p)
(gnus-treat-article nil))))
@@ -4117,7 +4120,7 @@ Deleting parts may malfunction or destroy the article; continue? ")
',gnus-newsgroup-ignored-charsets))
(mbl mml-buffer-list))
(setq mml-buffer-list nil)
- (insert-buffer gnus-original-article-buffer)
+ (insert-buffer-substring gnus-original-article-buffer)
(mime-to-mml ',handles)
(setq gnus-article-mime-handles nil)
(let ((mbl1 mml-buffer-list))
@@ -4199,7 +4202,7 @@ Deleting parts may malfunction or destroy the article; continue? ")
',gnus-newsgroup-ignored-charsets))
(mbl mml-buffer-list))
(setq mml-buffer-list nil)
- (insert-buffer gnus-original-article-buffer)
+ (insert-buffer-substring gnus-original-article-buffer)
(mime-to-mml ',handles)
(setq gnus-article-mime-handles nil)
(let ((mbl1 mml-buffer-list))
@@ -5182,14 +5185,38 @@ Argument LINES specifies lines to be scrolled up."
(gnus-article-next-page-1 lines)
nil))
+(defmacro gnus-article-beginning-of-window ()
+ "Move point to the beginning of the window.
+In Emacs, the point is placed at the line number which `scroll-margin'
+specifies."
+ (if (featurep 'xemacs)
+ '(move-to-window-line 0)
+ '(move-to-window-line
+ (min (max 0 scroll-margin)
+ (max 1 (- (window-height)
+ (if mode-line-format 1 0)
+ (if (and (boundp 'header-line-format)
+ (symbol-value 'header-line-format))
+ 1 0)))))))
+
(defun gnus-article-next-page-1 (lines)
- (let ((scroll-in-place nil))
- (condition-case ()
- (scroll-up lines)
- (end-of-buffer
- ;; Long lines may cause an end-of-buffer error.
- (goto-char (point-max)))))
- (move-to-window-line 0))
+ (when (and (not (featurep 'xemacs))
+ (numberp lines)
+ (> lines 0)
+ (numberp (symbol-value 'scroll-margin))
+ (> (symbol-value 'scroll-margin) 0))
+ ;; Protect against the bug that Emacs 21.x hangs up when scrolling up for
+ ;; too many number of lines if `scroll-margin' is set as two or greater.
+ (setq lines (min lines
+ (max 0 (- (count-lines (window-start) (point-max))
+ (symbol-value 'scroll-margin))))))
+ (condition-case ()
+ (let ((scroll-in-place nil))
+ (scroll-up lines))
+ (end-of-buffer
+ ;; Long lines may cause an end-of-buffer error.
+ (goto-char (point-max))))
+ (gnus-article-beginning-of-window))
(defun gnus-article-prev-page (&optional lines)
"Show previous page of current article.
@@ -5203,13 +5230,13 @@ Argument LINES specifies lines to be scrolled down."
(gnus-narrow-to-page -1) ;Go to previous page.
(goto-char (point-max))
(recenter -1))
- (let ((scroll-in-place nil))
- (prog1
- (condition-case ()
- (scroll-down lines)
- (beginning-of-buffer
- (goto-char (point-min))))
- (move-to-window-line 0)))))
+ (prog1
+ (condition-case ()
+ (let ((scroll-in-place nil))
+ (scroll-down lines))
+ (beginning-of-buffer
+ (goto-char (point-min))))
+ (gnus-article-beginning-of-window))))
(defun gnus-article-only-boring-p ()
"Decide whether there is only boring text remaining in the article.
@@ -5818,7 +5845,7 @@ groups."
(window-start (window-start)))
(erase-buffer)
(if (gnus-buffer-live-p gnus-original-article-buffer)
- (insert-buffer gnus-original-article-buffer))
+ (insert-buffer-substring gnus-original-article-buffer))
(let ((winconf gnus-prev-winconf))
(kill-all-local-variables)
(gnus-article-mode)
@@ -5862,6 +5889,14 @@ groups."
:group 'gnus-article-buttons
:type 'regexp)
+;; Regexp suggested by Felix Wiemann in <87oeuomcz9.fsf@news2.ososo.de>
+(defcustom gnus-button-valid-localpart-regexp
+ "[a-z0-9$%(*-=?[_][^<>\")!;:,{}\n\t ]*"
+ "Regular expression that matches a localpart of mail addresses or MIDs."
+ :version "22.1"
+ :group 'gnus-article-buttons
+ :type 'regexp)
+
(defcustom gnus-button-man-handler 'manual-entry
"Function to use for displaying man pages.
The function must take at least one argument with a string naming the
@@ -5901,12 +5936,11 @@ The function must take one argument, the string naming the URL."
(regexp :tag "Other")))
(defcustom gnus-button-ctan-directory-regexp
- (concat
- "\\("; Cannot use `\(?: ... \)' (compatibility with Emacs 20).
- "biblio\\|digests\\|dviware\\|fonts\\|graphics\\|help\\|"
- "indexing\\|info\\|language\\|macros\\|support\\|systems\\|"
- "tds\\|tools\\|usergrps\\|web\\|nonfree\\|obsolete"
- "\\)")
+ (regexp-opt
+ (list "archive-tools" "biblio" "bibliography" "digests" "documentation"
+ "dviware" "fonts" "graphics" "help" "indexing" "info" "language"
+ "languages" "macros" "nonfree" "obsolete" "support" "systems"
+ "tds" "tools" "usergrps" "web") t)
"Regular expression for ctan directories.
It should match all directories in the top level of `gnus-ctan-url'."
:version "22.1"
@@ -5914,8 +5948,7 @@ It should match all directories in the top level of `gnus-ctan-url'."
:type 'regexp)
(defcustom gnus-button-mid-or-mail-regexp
- (concat "\\b\\(<?[a-z0-9$%(*-=?[_][^<>\")!;:,{}\n\t ]*@"
- ;; Felix Wiemann in <87oeuomcz9.fsf@news2.ososo.de>
+ (concat "\\b\\(<?" gnus-button-valid-localpart-regexp "@"
gnus-button-valid-fqdn-regexp
">?\\)\\b")
"Regular expression that matches a message ID or a mail address."
@@ -6230,8 +6263,9 @@ positives are possible."
(defcustom gnus-button-alist
'(("<\\(url:[>\n\t ]*?\\)?\\(nntp\\|news\\):[>\n\t ]*\\([^>\n\t ]*@[^>\n\t ]*\\)>"
0 (>= gnus-button-message-level 0) gnus-button-handle-news 3)
- ("\\b\\(nntp\\|news\\):\\([^>\n\t ]*@[^>)!;:,\n\t ]*\\)" 0 t
- gnus-button-handle-news 2)
+ ((concat "\\b\\(nntp\\|news\\):\\("
+ gnus-button-valid-localpart-regexp "@[a-z0-9.-]+[a-z]\\)")
+ 0 t gnus-button-handle-news 2)
("\\(\\b<\\(url:[>\n\t ]*\\)?\\(nntp\\|news\\):[>\n\t ]*\\(//\\)?\\([^>\n\t ]*\\)>\\)"
1 (>= gnus-button-message-level 0) gnus-button-fetch-group 5)
("\\b\\(nntp\\|news\\):\\(//\\)?\\([^'\">\n\t ]+\\)"
diff --git a/lisp/gnus/gnus-async.el b/lisp/gnus/gnus-async.el
index 1c279e69a2..54e651c9e9 100644
--- a/lisp/gnus/gnus-async.el
+++ b/lisp/gnus/gnus-async.el
@@ -1,6 +1,7 @@
;;; gnus-async.el --- asynchronous support for Gnus
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2003
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
diff --git a/lisp/gnus/gnus-audio.el b/lisp/gnus/gnus-audio.el
index 79e1fcc490..7f6bd1167d 100644
--- a/lisp/gnus/gnus-audio.el
+++ b/lisp/gnus/gnus-audio.el
@@ -1,5 +1,7 @@
;;; gnus-audio.el --- Sound effects for Gnus
-;; Copyright (C) 1996, 2000, 2003 Free Software Foundation
+
+;; Copyright (C) 1996, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Steven L. Baur <steve@miranova.com>
;; Keywords: news, mail, multimedia
diff --git a/lisp/gnus/gnus-bcklg.el b/lisp/gnus/gnus-bcklg.el
index 54d62f0327..4ae08d2e47 100644
--- a/lisp/gnus/gnus-bcklg.el
+++ b/lisp/gnus/gnus-bcklg.el
@@ -1,6 +1,7 @@
;;; gnus-bcklg.el --- backlog functions for Gnus
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
diff --git a/lisp/gnus/gnus-cache.el b/lisp/gnus/gnus-cache.el
index 6621769955..4477e8f579 100644
--- a/lisp/gnus/gnus-cache.el
+++ b/lisp/gnus/gnus-cache.el
@@ -1,6 +1,7 @@
;;; gnus-cache.el --- cache interface for Gnus
+
;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
-;; 2004, 2005 Free Software Foundation, Inc.
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
@@ -357,7 +358,7 @@ Returns the list of articles removed."
(let ((alist (gnus-agent-load-alist gnus-newsgroup-name)))
(unless (cdr (assoc article alist))
(setq gnus-newsgroup-undownloaded
- (gnus-add-to-sorted-list
+ (gnus-add-to-sorted-list
gnus-newsgroup-undownloaded article)))))
(push article out))
(gnus-summary-update-download-mark article)
diff --git a/lisp/gnus/gnus-cite.el b/lisp/gnus/gnus-cite.el
index ab3612a09f..c33d224a49 100644
--- a/lisp/gnus/gnus-cite.el
+++ b/lisp/gnus/gnus-cite.el
@@ -1,8 +1,7 @@
;;; gnus-cite.el --- parse citations in articles for Gnus
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-;; 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Per Abhiddenware
diff --git a/lisp/gnus/gnus-cus.el b/lisp/gnus/gnus-cus.el
index 32dc8bcf1b..f523af2275 100644
--- a/lisp/gnus/gnus-cus.el
+++ b/lisp/gnus/gnus-cus.el
@@ -1,7 +1,7 @@
;;; gnus-cus.el --- customization commands for Gnus
-;;
-;; Copyright (C) 1996, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1996, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
;; Keywords: news
diff --git a/lisp/gnus/gnus-delay.el b/lisp/gnus/gnus-delay.el
index 8e00efb1f0..a664ff8ba0 100644
--- a/lisp/gnus/gnus-delay.el
+++ b/lisp/gnus/gnus-delay.el
@@ -1,6 +1,6 @@
;;; gnus-delay.el --- Delayed posting of articles
-;; Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Kai Großjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
;; Keywords: mail, news, extensions
diff --git a/lisp/gnus/gnus-demon.el b/lisp/gnus/gnus-demon.el
index 3d6b44c8b7..09015bfd63 100644
--- a/lisp/gnus/gnus-demon.el
+++ b/lisp/gnus/gnus-demon.el
@@ -1,7 +1,7 @@
;;; gnus-demon.el --- daemonic Gnus behaviour
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2003
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
diff --git a/lisp/gnus/gnus-diary.el b/lisp/gnus/gnus-diary.el
index c93f8a8ff7..d9ab81a4b9 100644
--- a/lisp/gnus/gnus-diary.el
+++ b/lisp/gnus/gnus-diary.el
@@ -1,6 +1,6 @@
;;; gnus-diary.el --- Wrapper around the NNDiary Gnus backend
-;; Copyright (c) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Copyright (C) 1999, 2000, 2001 Didier Verna.
;; Author: Didier Verna <didier@xemacs.org>
diff --git a/lisp/gnus/gnus-dired.el b/lisp/gnus/gnus-dired.el
index aa54a7eaed..665e75b2e8 100644
--- a/lisp/gnus/gnus-dired.el
+++ b/lisp/gnus/gnus-dired.el
@@ -1,7 +1,7 @@
;;; gnus-dired.el --- utility functions where gnus and dired meet
-;; Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Authors: Benjamin Rutt <brutt@bloomington.in.us>,
;; Shenghuo Zhu <zsh@cs.rochester.edu>
diff --git a/lisp/gnus/gnus-draft.el b/lisp/gnus/gnus-draft.el
index 2bc212f622..c4cd4dedda 100644
--- a/lisp/gnus/gnus-draft.el
+++ b/lisp/gnus/gnus-draft.el
@@ -1,6 +1,7 @@
;;; gnus-draft.el --- draft message support for Gnus
-;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
diff --git a/lisp/gnus/gnus-dup.el b/lisp/gnus/gnus-dup.el
index 6a66246b70..c5358728d0 100644
--- a/lisp/gnus/gnus-dup.el
+++ b/lisp/gnus/gnus-dup.el
@@ -1,6 +1,7 @@
;;; gnus-dup.el --- suppression of duplicate articles in Gnus
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
diff --git a/lisp/gnus/gnus-eform.el b/lisp/gnus/gnus-eform.el
index cebbb398f2..c133d1541d 100644
--- a/lisp/gnus/gnus-eform.el
+++ b/lisp/gnus/gnus-eform.el
@@ -1,6 +1,7 @@
;;; gnus-eform.el --- a mode for editing forms for Gnus
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2004, 2005
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
diff --git a/lisp/gnus/gnus-ems.el b/lisp/gnus/gnus-ems.el
index f14dac4e5f..c6ab193954 100644
--- a/lisp/gnus/gnus-ems.el
+++ b/lisp/gnus/gnus-ems.el
@@ -1,6 +1,7 @@
;;; gnus-ems.el --- functions for making Gnus work under different Emacsen
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
diff --git a/lisp/gnus/gnus-fun.el b/lisp/gnus/gnus-fun.el
index fcbc05cc2e..94f42efc36 100644
--- a/lisp/gnus/gnus-fun.el
+++ b/lisp/gnus/gnus-fun.el
@@ -1,5 +1,6 @@
;;; gnus-fun.el --- various frivolous extension functions to Gnus
-;; Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+
+;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
diff --git a/lisp/gnus/gnus-gl.el b/lisp/gnus/gnus-gl.el
index c1b52435bf..aac386cefc 100644
--- a/lisp/gnus/gnus-gl.el
+++ b/lisp/gnus/gnus-gl.el
@@ -1,7 +1,7 @@
;;; gnus-gl.el --- an interface to GroupLens for Gnus
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Brad Miller <bmiller@cs.umn.edu>
;; Keywords: news, score
diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el
index 0bfbc46cf5..9a2516d2c0 100644
--- a/lisp/gnus/gnus-group.el
+++ b/lisp/gnus/gnus-group.el
@@ -1,6 +1,7 @@
;;; gnus-group.el --- group mode commands for Gnus
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
diff --git a/lisp/gnus/gnus-int.el b/lisp/gnus/gnus-int.el
index 3cb4cb6153..8b274a0921 100644
--- a/lisp/gnus/gnus-int.el
+++ b/lisp/gnus/gnus-int.el
@@ -1,6 +1,7 @@
;;; gnus-int.el --- backend interface functions for Gnus
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
diff --git a/lisp/gnus/gnus-kill.el b/lisp/gnus/gnus-kill.el
index 9bffd6ebc0..6cdd76647d 100644
--- a/lisp/gnus/gnus-kill.el
+++ b/lisp/gnus/gnus-kill.el
@@ -1,6 +1,7 @@
;;; gnus-kill.el --- kill commands for Gnus
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
;; Lars Magne Ingebrigtsen <larsi@gnus.org>
diff --git a/lisp/gnus/gnus-logic.el b/lisp/gnus/gnus-logic.el
index 2d7d701c31..288bf3caa9 100644
--- a/lisp/gnus/gnus-logic.el
+++ b/lisp/gnus/gnus-logic.el
@@ -1,6 +1,7 @@
;;; gnus-logic.el --- advanced scoring code for Gnus
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
diff --git a/lisp/gnus/gnus-mh.el b/lisp/gnus/gnus-mh.el
index b4c502e9e0..cc36aa6468 100644
--- a/lisp/gnus/gnus-mh.el
+++ b/lisp/gnus/gnus-mh.el
@@ -1,6 +1,7 @@
;;; gnus-mh.el --- mh-e interface for Gnus
-;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
;; Lars Magne Ingebrigtsen <larsi@gnus.org>
diff --git a/lisp/gnus/gnus-ml.el b/lisp/gnus/gnus-ml.el
index 5a2b3b9ae0..c2cf1090d9 100644
--- a/lisp/gnus/gnus-ml.el
+++ b/lisp/gnus/gnus-ml.el
@@ -1,6 +1,7 @@
;;; gnus-ml.el --- Mailing list minor mode for Gnus
-;; Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Julien Gilles <jgilles@free.fr>
;; Keywords: news
diff --git a/lisp/gnus/gnus-mlspl.el b/lisp/gnus/gnus-mlspl.el
index 9b8d2d87e2..291145cabf 100644
--- a/lisp/gnus/gnus-mlspl.el
+++ b/lisp/gnus/gnus-mlspl.el
@@ -1,7 +1,7 @@
;;; gnus-mlspl.el --- a group params-based mail splitting mechanism
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Alexandre Oliva <oliva@lsd.ic.unicamp.br>
;; Keywords: news, mail
diff --git a/lisp/gnus/gnus-move.el b/lisp/gnus/gnus-move.el
index 2f5b4853d5..7accde21db 100644
--- a/lisp/gnus/gnus-move.el
+++ b/lisp/gnus/gnus-move.el
@@ -1,6 +1,7 @@
;;; gnus-move.el --- commands for moving Gnus from one server to another
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
diff --git a/lisp/gnus/gnus-msg.el b/lisp/gnus/gnus-msg.el
index 8cc8bfe5dd..0614a2304f 100644
--- a/lisp/gnus/gnus-msg.el
+++ b/lisp/gnus/gnus-msg.el
@@ -1,6 +1,7 @@
;;; gnus-msg.el --- mail and post interface for Gnus
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
;; Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -466,27 +467,19 @@ Gcc: header for archiving purposes."
;; COMPOSEFUNC should return t if succeed. Undocumented ???
t)
-(defvar save-selected-window-window)
-
;;;###autoload
(defun gnus-button-mailto (address)
"Mail to ADDRESS."
(set-buffer (gnus-copy-article-buffer))
(gnus-setup-message 'message
- (message-reply address))
- (and (boundp 'save-selected-window-window)
- (not (window-live-p save-selected-window-window))
- (setq save-selected-window-window (selected-window))))
+ (message-reply address)))
;;;###autoload
(defun gnus-button-reply (&optional to-address wide)
"Like `message-reply'."
(interactive)
(gnus-setup-message 'message
- (message-reply to-address wide))
- (and (boundp 'save-selected-window-window)
- (not (window-live-p save-selected-window-window))
- (setq save-selected-window-window (selected-window))))
+ (message-reply to-address wide)))
;;;###autoload
(define-mail-user-agent 'gnus-user-agent
diff --git a/lisp/gnus/gnus-nocem.el b/lisp/gnus/gnus-nocem.el
index a59c33f5e4..7718e53ea6 100644
--- a/lisp/gnus/gnus-nocem.el
+++ b/lisp/gnus/gnus-nocem.el
@@ -1,8 +1,7 @@
;;; gnus-nocem.el --- NoCeM pseudo-cancellation treatment
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2004, 2005
-;; Free Software Foundation, Inc.
-
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
diff --git a/lisp/gnus/gnus-picon.el b/lisp/gnus/gnus-picon.el
index 40ac294d26..90733027cc 100644
--- a/lisp/gnus/gnus-picon.el
+++ b/lisp/gnus/gnus-picon.el
@@ -1,7 +1,7 @@
;;; gnus-picon.el --- displaying pretty icons in Gnus
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news xpm annotation glyph faces
diff --git a/lisp/gnus/gnus-range.el b/lisp/gnus/gnus-range.el
index 286d9e7c77..90ea855675 100644
--- a/lisp/gnus/gnus-range.el
+++ b/lisp/gnus/gnus-range.el
@@ -1,7 +1,7 @@
;;; gnus-range.el --- range and sequence functions for Gnus
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2004
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
diff --git a/lisp/gnus/gnus-registry.el b/lisp/gnus/gnus-registry.el
index be29e96e10..17e8d5a5f5 100644
--- a/lisp/gnus/gnus-registry.el
+++ b/lisp/gnus/gnus-registry.el
@@ -1,6 +1,7 @@
;;; gnus-registry.el --- article registry for Gnus
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Ted Zlatanov <tzz@lifelogs.com>
;; Keywords: news
diff --git a/lisp/gnus/gnus-salt.el b/lisp/gnus/gnus-salt.el
index 8fbe465c76..89e45cac05 100644
--- a/lisp/gnus/gnus-salt.el
+++ b/lisp/gnus/gnus-salt.el
@@ -1,7 +1,7 @@
;;; gnus-salt.el --- alternate summary mode interfaces for Gnus
-;; Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2004, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
@@ -128,8 +128,7 @@ It accepts the same format specs that `gnus-summary-line-format' does."
;; Set up the menu.
(when (gnus-visual-p 'pick-menu 'menu)
(gnus-pick-make-menu-bar))
- (gnus-add-minor-mode 'gnus-pick-mode " Pick" gnus-pick-mode-map
- nil 'gnus-pick-mode)
+ (gnus-add-minor-mode 'gnus-pick-mode " Pick" gnus-pick-mode-map)
(gnus-run-hooks 'gnus-pick-mode-hook))))
(defun gnus-pick-setup-message ()
@@ -362,8 +361,7 @@ This must be bound to a button-down mouse event."
;; Set up the menu.
(when (gnus-visual-p 'binary-menu 'menu)
(gnus-binary-make-menu-bar))
- (gnus-add-minor-mode 'gnus-binary-mode " Binary"
- gnus-binary-mode-map nil 'gnus-binary-mode)
+ (gnus-add-minor-mode 'gnus-binary-mode " Binary" gnus-binary-mode-map)
(gnus-run-hooks 'gnus-binary-mode-hook))))
(defun gnus-binary-display-article (article &optional all-header)
diff --git a/lisp/gnus/gnus-score.el b/lisp/gnus/gnus-score.el
index 0fb853b868..e866f7f32f 100644
--- a/lisp/gnus/gnus-score.el
+++ b/lisp/gnus/gnus-score.el
@@ -1,6 +1,7 @@
;;; gnus-score.el --- scoring code for Gnus
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Per Abrahamsen <amanda@iesd.auc.dk>
;; Lars Magne Ingebrigtsen <larsi@gnus.org>
diff --git a/lisp/gnus/gnus-setup.el b/lisp/gnus/gnus-setup.el
index 3b35eddb1f..f67fe491d8 100644
--- a/lisp/gnus/gnus-setup.el
+++ b/lisp/gnus/gnus-setup.el
@@ -1,7 +1,7 @@
;;; gnus-setup.el --- Initialization & Setup for Gnus 5
-;; Copyright (C) 1995, 1996, 2000, 2001
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Steven L. Baur <steve@miranova.com>
;; Keywords: news
diff --git a/lisp/gnus/gnus-sieve.el b/lisp/gnus/gnus-sieve.el
index 75b2fa12b0..d790fec9ae 100644
--- a/lisp/gnus/gnus-sieve.el
+++ b/lisp/gnus/gnus-sieve.el
@@ -1,5 +1,6 @@
;;; gnus-sieve.el --- Utilities to manage sieve scripts for Gnus
-;; Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+
+;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: NAGY Andras <nagya@inf.elte.hu>,
;; Simon Josefsson <simon@josefsson.org>
diff --git a/lisp/gnus/gnus-soup.el b/lisp/gnus/gnus-soup.el
index 98cc0ea285..6bcd2c32cc 100644
--- a/lisp/gnus/gnus-soup.el
+++ b/lisp/gnus/gnus-soup.el
@@ -1,7 +1,7 @@
;;; gnus-soup.el --- SOUP packet writing support for Gnus
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2002
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Per Abrahamsen <abraham@iesd.auc.dk>
;; Lars Magne Ingebrigtsen <larsi@gnus.org>
diff --git a/lisp/gnus/gnus-spec.el b/lisp/gnus/gnus-spec.el
index 84c0697520..67c0ba8874 100644
--- a/lisp/gnus/gnus-spec.el
+++ b/lisp/gnus/gnus-spec.el
@@ -1,6 +1,7 @@
;;; gnus-spec.el --- format spec functions for Gnus
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
@@ -27,6 +28,7 @@
;;; Code:
(eval-when-compile (require 'cl))
+(defvar gnus-newsrc-file-version)
(require 'gnus)
diff --git a/lisp/gnus/gnus-srvr.el b/lisp/gnus/gnus-srvr.el
index 08527a5ea4..d7629c26fd 100644
--- a/lisp/gnus/gnus-srvr.el
+++ b/lisp/gnus/gnus-srvr.el
@@ -1,7 +1,7 @@
;;; gnus-srvr.el --- virtual server support for Gnus
+
;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
-;; 2004, 2005
-;; Free Software Foundation, Inc.
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
diff --git a/lisp/gnus/gnus-start.el b/lisp/gnus/gnus-start.el
index 730406a248..47b380b19b 100644
--- a/lisp/gnus/gnus-start.el
+++ b/lisp/gnus/gnus-start.el
@@ -1,6 +1,7 @@
;;; gnus-start.el --- startup functions for Gnus
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
index a61f3df629..c2f7143a9c 100644
--- a/lisp/gnus/gnus-sum.el
+++ b/lisp/gnus/gnus-sum.el
@@ -1,6 +1,7 @@
;;; gnus-sum.el --- summary mode commands for Gnus
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
diff --git a/lisp/gnus/gnus-topic.el b/lisp/gnus/gnus-topic.el
index 95a2e1ad56..945665fdcc 100644
--- a/lisp/gnus/gnus-topic.el
+++ b/lisp/gnus/gnus-topic.el
@@ -1,6 +1,7 @@
;;; gnus-topic.el --- a folding minor mode for Gnus group buffers
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Ilja Weis <kult@uni-paderborn.de>
;; Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -436,7 +437,7 @@ If LOWEST is non-nil, list all newsgroups of level LOWEST or higher."
(copy-sequence gnus-group-listed-groups))))
(gnus-update-format-specifications nil 'topic)
-
+
(when (or (not gnus-topic-alist)
(not gnus-topology-checked-p))
(gnus-topic-check-topology))
@@ -1136,10 +1137,7 @@ articles in the topic and its subtopics."
(when (gnus-visual-p 'topic-menu 'menu)
(gnus-topic-make-menu-bar))
(gnus-set-format 'topic t)
- (gnus-add-minor-mode 'gnus-topic-mode " Topic"
- gnus-topic-mode-map nil (lambda (&rest junk)
- (interactive)
- (gnus-topic-mode nil t)))
+ (gnus-add-minor-mode 'gnus-topic-mode " Topic" gnus-topic-mode-map)
(add-hook 'gnus-group-catchup-group-hook 'gnus-topic-update-topic)
(set (make-local-variable 'gnus-group-prepare-function)
'gnus-group-prepare-topics)
diff --git a/lisp/gnus/gnus-undo.el b/lisp/gnus/gnus-undo.el
index f09445827d..09753150aa 100644
--- a/lisp/gnus/gnus-undo.el
+++ b/lisp/gnus/gnus-undo.el
@@ -1,7 +1,7 @@
;;; gnus-undo.el --- minor mode for undoing in Gnus
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2003
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
diff --git a/lisp/gnus/gnus-util.el b/lisp/gnus/gnus-util.el
index da14d52161..69bcee9011 100644
--- a/lisp/gnus/gnus-util.el
+++ b/lisp/gnus/gnus-util.el
@@ -1,6 +1,7 @@
;;; gnus-util.el --- utility functions for Gnus
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
@@ -39,9 +40,12 @@
(require 'cl)
;; Fixme: this should be a gnus variable, not nnmail-.
(defvar nnmail-pathname-coding-system)
+ (defvar nnmail-active-file-coding-system)
;; Inappropriate references to other parts of Gnus.
(defvar gnus-emphasize-whitespace-regexp)
+ (defvar gnus-original-article-buffer)
+ (defvar gnus-user-agent)
)
(require 'time-date)
(require 'netrc)
diff --git a/lisp/gnus/gnus-uu.el b/lisp/gnus/gnus-uu.el
index 5bdd17f84c..a2f3f353a0 100644
--- a/lisp/gnus/gnus-uu.el
+++ b/lisp/gnus/gnus-uu.el
@@ -1,6 +1,7 @@
;;; gnus-uu.el --- extract (uu)encoded files in Gnus
-;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998, 2000,
-;; 2001, 2002, 2003 Free Software Foundation, Inc.
+
+;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998,
+;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Created: 2 Oct 1993
@@ -836,7 +837,7 @@ When called interactively, prompt for REGEXP."
(erase-buffer)
(insert (format
"Date: %s\nFrom: %s\nSubject: %s Digest\n\n"
- (current-time-string) name name))
+ (message-make-date) name name))
(when (and message-forward-as-mime gnus-uu-digest-buffer)
(insert "<#part type=message/rfc822>\nSubject: Topics\n\n"))
(insert "Topics:\n")))
@@ -917,16 +918,16 @@ When called interactively, prompt for REGEXP."
(if (and message-forward-as-mime gnus-uu-digest-buffer)
(with-current-buffer gnus-uu-digest-buffer
(erase-buffer)
- (insert-buffer "*gnus-uu-pre*")
+ (insert-buffer-substring "*gnus-uu-pre*")
(goto-char (point-max))
- (insert-buffer "*gnus-uu-body*"))
+ (insert-buffer-substring "*gnus-uu-body*"))
(save-excursion
(set-buffer "*gnus-uu-pre*")
(insert (format "\n\n%s\n\n" (make-string 70 ?-)))
(if gnus-uu-digest-buffer
(with-current-buffer gnus-uu-digest-buffer
(erase-buffer)
- (insert-buffer "*gnus-uu-pre*"))
+ (insert-buffer-substring "*gnus-uu-pre*"))
(let ((coding-system-for-write mm-text-coding-system))
(gnus-write-buffer gnus-uu-saved-article-name))))
(save-excursion
@@ -939,7 +940,7 @@ When called interactively, prompt for REGEXP."
(if gnus-uu-digest-buffer
(with-current-buffer gnus-uu-digest-buffer
(goto-char (point-max))
- (insert-buffer "*gnus-uu-body*"))
+ (insert-buffer-substring "*gnus-uu-body*"))
(let ((coding-system-for-write mm-text-coding-system)
(file-name-coding-system nnmail-pathname-coding-system))
(write-region
@@ -1353,7 +1354,7 @@ When called interactively, prompt for REGEXP."
(gnus-message 2 "No begin part at the beginning")
(sleep-for 2))
(setq state 'middle))))
-
+
;; When there are no result-files, then something must be wrong.
(if result-files
(message "")
@@ -1439,7 +1440,7 @@ When called interactively, prompt for REGEXP."
;; We replace certain characters that could make things messy.
(setq gnus-uu-file-name
(gnus-map-function
- mm-file-name-rewrite-functions
+ mm-file-name-rewrite-functions
(file-name-nondirectory (match-string 1))))
(replace-match (concat "begin 644 " gnus-uu-file-name) t t)
diff --git a/lisp/gnus/gnus-vm.el b/lisp/gnus/gnus-vm.el
index 240d297f3a..31bd639a7c 100644
--- a/lisp/gnus/gnus-vm.el
+++ b/lisp/gnus/gnus-vm.el
@@ -1,7 +1,7 @@
;;; gnus-vm.el --- vm interface for Gnus
-;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+;; 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Per Persson <pp@gnu.ai.mit.edu>
;; Keywords: news, mail
diff --git a/lisp/gnus/gnus-win.el b/lisp/gnus/gnus-win.el
index 9710b10ff2..5b8ddb32c0 100644
--- a/lisp/gnus/gnus-win.el
+++ b/lisp/gnus/gnus-win.el
@@ -1,6 +1,7 @@
;;; gnus-win.el --- window configuration functions for Gnus
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el
index 710c2c7502..e1abe07b55 100644
--- a/lisp/gnus/gnus.el
+++ b/lisp/gnus/gnus.el
@@ -1,7 +1,7 @@
;;; gnus.el --- a newsreader for GNU Emacs
-;; Copyright (C) 1987, 1988, 1989, 1990, 1993, 1994, 1995, 1996, 1997,
-;; 1998, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1987, 1988, 1989, 1990, 1993, 1994, 1995, 1996, 1997, 1998,
+;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
;; Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -35,6 +35,17 @@
(require 'mm-util)
(require 'nnheader)
+;; These are defined afterwards with gnus-define-group-parameter
+(defvar gnus-ham-process-destinations)
+(defvar gnus-parameter-ham-marks-alist)
+(defvar gnus-parameter-spam-marks-alist)
+(defvar gnus-spam-autodetect)
+(defvar gnus-spam-autodetect-methods)
+(defvar gnus-spam-newsgroup-contents)
+(defvar gnus-spam-process-destinations)
+(defvar gnus-spam-process-newsgroups)
+
+
(defgroup gnus nil
"The coffee-brewing, all singing, all dancing, kitchen sink newsreader."
:group 'news
diff --git a/lisp/gnus/hex-util.el b/lisp/gnus/hex-util.el
index 4458f42a49..1cc67c2861 100644
--- a/lisp/gnus/hex-util.el
+++ b/lisp/gnus/hex-util.el
@@ -1,6 +1,7 @@
;;; hex-util.el --- Functions to encode/decode hexadecimal string.
-;; Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Shuhei KOBAYASHI <shuhei@aqua.ocn.ne.jp>
;; Keywords: data
diff --git a/lisp/gnus/html2text.el b/lisp/gnus/html2text.el
index d29a3cf5da..41ba54f759 100644
--- a/lisp/gnus/html2text.el
+++ b/lisp/gnus/html2text.el
@@ -1,4 +1,5 @@
;;; html2text.el --- a simple html to plain text converter
+
;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Joakim Hove <hove@phys.ntnu.no>
diff --git a/lisp/gnus/ietf-drums.el b/lisp/gnus/ietf-drums.el
index 4e95b8aad4..98f3d20330 100644
--- a/lisp/gnus/ietf-drums.el
+++ b/lisp/gnus/ietf-drums.el
@@ -1,6 +1,7 @@
;;; ietf-drums.el --- Functions for parsing RFC822bis headers
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; This file is part of GNU Emacs.
diff --git a/lisp/gnus/imap.el b/lisp/gnus/imap.el
index 7d3fb46154..062f1be4c9 100644
--- a/lisp/gnus/imap.el
+++ b/lisp/gnus/imap.el
@@ -1,6 +1,7 @@
;;; imap.el --- imap library
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Simon Josefsson <jas@pdc.kth.se>
;; Keywords: mail
diff --git a/lisp/gnus/mail-parse.el b/lisp/gnus/mail-parse.el
index 086ab5c4f8..106aedad08 100644
--- a/lisp/gnus/mail-parse.el
+++ b/lisp/gnus/mail-parse.el
@@ -1,6 +1,7 @@
;;; mail-parse.el --- Interface functions for parsing mail
-;; Copyright (C) 1998, 1999, 2000
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; This file is part of GNU Emacs.
diff --git a/lisp/gnus/mail-prsvr.el b/lisp/gnus/mail-prsvr.el
index d7e07ff97b..d990f8dbc5 100644
--- a/lisp/gnus/mail-prsvr.el
+++ b/lisp/gnus/mail-prsvr.el
@@ -1,5 +1,7 @@
;;; mail-prsvr.el --- Interface variables for parsing mail
-;; Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; This file is part of GNU Emacs.
diff --git a/lisp/gnus/mail-source.el b/lisp/gnus/mail-source.el
index 58a3e63ab7..3f3ecc7919 100644
--- a/lisp/gnus/mail-source.el
+++ b/lisp/gnus/mail-source.el
@@ -1,6 +1,7 @@
;;; mail-source.el --- functions for fetching mail
-;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news, mail
diff --git a/lisp/gnus/mailcap.el b/lisp/gnus/mailcap.el
index d044adebdb..166edb60f7 100644
--- a/lisp/gnus/mailcap.el
+++ b/lisp/gnus/mailcap.el
@@ -1,6 +1,7 @@
;;; mailcap.el --- MIME media types configuration
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: William M. Perry <wmperry@aventail.com>
;; Lars Magne Ingebrigtsen <larsi@gnus.org>
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index d509b70341..7c55b7cc72 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -1,6 +1,7 @@
;;; message.el --- composing mail and news messages
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: mail, news
@@ -1442,7 +1443,7 @@ no, only reply back to the author."
:type 'boolean)
(defcustom message-user-fqdn nil
- "*Domain part of Messsage-Ids."
+ "*Domain part of Message-Ids."
:version "22.1"
:group 'message-headers
:link '(custom-manual "(message)News Headers")
@@ -3206,7 +3207,9 @@ prefix, and don't delete any headers."
(when (and message-reply-buffer
message-cite-function)
(delete-windows-on message-reply-buffer t)
- (insert-buffer message-reply-buffer)
+ (push-mark (save-excursion
+ (insert-buffer-substring message-reply-buffer)
+ (point)))
(unless arg
(funcall message-cite-function))
(message-exchange-point-and-mark)
@@ -3416,8 +3419,15 @@ Instead, just auto-save the buffer and then bury it."
(file-exists-p auto-save-file-name))
(and file-name
(file-exists-p file-name)))
- (yes-or-no-p (format "Remove the backup file%s? "
- (if modified " too" ""))))
+ (progn
+ ;; If the message buffer has lived in a dedicated window,
+ ;; `kill-buffer' has killed the frame. Thus the
+ ;; `yes-or-no-p' may show up in a lowered frame. Make sure
+ ;; that the user can see the question by raising the
+ ;; current frame:
+ (raise-frame)
+ (yes-or-no-p (format "Remove the backup file%s? "
+ (if modified " too" "")))))
(ignore-errors
(delete-file auto-save-file-name))
(let ((message-draft-article draft-article))
@@ -3428,8 +3438,7 @@ Instead, just auto-save the buffer and then bury it."
"Bury this mail BUFFER."
(let ((newbuf (other-buffer buffer)))
(bury-buffer buffer)
- (if (and (fboundp 'frame-parameters)
- (cdr (assq 'dedicated (frame-parameters)))
+ (if (and (window-dedicated-p (selected-window))
(not (null (delq (selected-frame) (visible-frame-list)))))
(delete-frame (selected-frame))
(switch-to-buffer newbuf))))
diff --git a/lisp/gnus/messcompat.el b/lisp/gnus/messcompat.el
index 3c6af7d9e8..d7c8f40de2 100644
--- a/lisp/gnus/messcompat.el
+++ b/lisp/gnus/messcompat.el
@@ -1,7 +1,7 @@
;;; messcompat.el --- making message mode compatible with mail mode
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002, 2003
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: mail, news
diff --git a/lisp/gnus/mm-bodies.el b/lisp/gnus/mm-bodies.el
index f58a840fbd..ffca7da75b 100644
--- a/lisp/gnus/mm-bodies.el
+++ b/lisp/gnus/mm-bodies.el
@@ -1,7 +1,7 @@
;;; mm-bodies.el --- Functions for decoding MIME things
-;; Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; MORIOKA Tomohiko <morioka@jaist.ac.jp>
@@ -95,7 +95,8 @@ If no encoding was done, nil is returned."
(save-excursion
(if charset
(progn
- (mm-encode-coding-region (point-min) (point-max) charset)
+ (mm-encode-coding-region (point-min) (point-max)
+ (mm-charset-to-coding-system charset))
charset)
(goto-char (point-min))
(let ((charsets (mm-find-mime-charset-region (point-min) (point-max)
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el
index 601843dcf5..435940faec 100644
--- a/lisp/gnus/mm-decode.el
+++ b/lisp/gnus/mm-decode.el
@@ -1,6 +1,7 @@
;;; mm-decode.el --- Functions for decoding MIME things
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; MORIOKA Tomohiko <morioka@jaist.ac.jp>
@@ -37,6 +38,8 @@
(autoload 'mm-inline-external-body "mm-extern")
(autoload 'mm-insert-inline "mm-view"))
+(defvar gnus-current-window-configuration)
+
(add-hook 'gnus-exit-gnus-hook 'mm-destroy-postponed-undisplay-list)
(defgroup mime-display ()
@@ -817,11 +820,32 @@ external if displayed external."
(let ((command (mm-mailcap-command
method file (mm-handle-type handle))))
(unwind-protect
- (start-process "*display*"
- (setq buffer
- (generate-new-buffer " *mm*"))
- shell-file-name
- shell-command-switch command)
+ (progn
+ (start-process "*display*"
+ (setq buffer
+ (generate-new-buffer " *mm*"))
+ shell-file-name
+ shell-command-switch command)
+ (set-process-sentinel
+ (get-buffer-process buffer)
+ `(lambda (process state)
+ (when (eq 'exit (process-status process))
+ ;; Don't use `ignore-errors'.
+ (condition-case nil
+ (delete-file ,file)
+ (error))
+ (condition-case nil
+ (delete-directory ,(file-name-directory file))
+ (error))
+ (condition-case nil
+ (kill-buffer ,buffer)
+ (error))
+ (condition-case nil
+ ,(macroexpand (list 'mm-handle-set-undisplayer
+ (list 'quote handle)
+ nil))
+ (error))
+ (message "Displaying %s...done" ,command)))))
(mm-handle-set-external-undisplayer
handle (cons file buffer)))
(message "Displaying %s..." command))
diff --git a/lisp/gnus/mm-encode.el b/lisp/gnus/mm-encode.el
index 43eb619368..fd6251c37d 100644
--- a/lisp/gnus/mm-encode.el
+++ b/lisp/gnus/mm-encode.el
@@ -1,6 +1,7 @@
;;; mm-encode.el --- Functions for encoding MIME things
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; MORIOKA Tomohiko <morioka@jaist.ac.jp>
diff --git a/lisp/gnus/mm-extern.el b/lisp/gnus/mm-extern.el
index 6792d0de0b..2f75139497 100644
--- a/lisp/gnus/mm-extern.el
+++ b/lisp/gnus/mm-extern.el
@@ -1,5 +1,7 @@
;;; mm-extern.el --- showing message/external-body
-;; Copyright (C) 2000, 2001, 2003 Free Software Foundation, Inc.
+
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
;; Keywords: message external-body
@@ -31,6 +33,8 @@
(require 'mm-decode)
(require 'mm-url)
+(defvar gnus-article-mime-handles)
+
(defvar mm-extern-function-alist
'((local-file . mm-extern-local-file)
(url . mm-extern-url)
diff --git a/lisp/gnus/mm-partial.el b/lisp/gnus/mm-partial.el
index e8dd559622..1c0c708d2a 100644
--- a/lisp/gnus/mm-partial.el
+++ b/lisp/gnus/mm-partial.el
@@ -1,5 +1,7 @@
;;; mm-partial.el --- showing message/partial
-;; Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
+
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
;; Keywords: message partial
diff --git a/lisp/gnus/mm-url.el b/lisp/gnus/mm-url.el
index 517263543c..961ee0ea4f 100644
--- a/lisp/gnus/mm-url.el
+++ b/lisp/gnus/mm-url.el
@@ -1,5 +1,6 @@
;;; mm-url.el --- a wrapper of url functions/commands for Gnus
-;; Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+
+;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
@@ -42,6 +43,10 @@
(require 'timer-funcs)
(require 'timer)))
+(defvar url-current-object)
+(defvar url-package-name)
+(defvar url-package-version)
+
(defgroup mm-url nil
"A wrapper of url package and external url command for Gnus."
:group 'gnus)
diff --git a/lisp/gnus/mm-util.el b/lisp/gnus/mm-util.el
index a57389f59c..339bd0f746 100644
--- a/lisp/gnus/mm-util.el
+++ b/lisp/gnus/mm-util.el
@@ -1,6 +1,7 @@
;;; mm-util.el --- Utility functions for Mule and low level things
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; MORIOKA Tomohiko <morioka@jaist.ac.jp>
@@ -766,6 +767,17 @@ charset, and a longer list means no appropriate charset."
(if (and (memq 'iso-2022-jp-2 charsets)
(memq 'iso-2022-jp-2 hack-charsets))
(setq charsets (delq 'iso-2022-jp charsets)))
+ ;; Attempt to reduce the number of charsets if utf-8 is available.
+ (if (and (featurep 'xemacs)
+ (> (length charsets) 1)
+ (mm-coding-system-p 'utf-8))
+ (let ((mm-coding-system-priorities
+ (cons 'utf-8 mm-coding-system-priorities)))
+ (setq charsets
+ (mm-delete-duplicates
+ (mapcar 'mm-mime-charset
+ (delq 'ascii
+ (mm-find-charset-region b e)))))))
charsets))
(defmacro mm-with-unibyte-buffer (&rest forms)
diff --git a/lisp/gnus/mm-uu.el b/lisp/gnus/mm-uu.el
index ad40ffb456..fdb6b7f458 100644
--- a/lisp/gnus/mm-uu.el
+++ b/lisp/gnus/mm-uu.el
@@ -1,5 +1,7 @@
;;; mm-uu.el --- Return uu stuff as mm handles
-;; Copyright (c) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
;; Keywords: postscript uudecode binhex shar forward gnatsweb pgp
@@ -111,8 +113,8 @@ This can be either \"inline\" or \"attachment\".")
"^exit 0$"
mm-uu-shar-extract)
(forward
-;;; Thanks to Edward J. Sabol <sabol@alderaan.gsfc.nasa.gov> and
-;;; Peter von der Ah\'e <pahe@daimi.au.dk>
+ ;; Thanks to Edward J. Sabol <sabol@alderaan.gsfc.nasa.gov> and
+ ;; Peter von der Ah\'e <pahe@daimi.au.dk>
"^-+ \\(Start of \\)?Forwarded message"
"^-+ End \\(of \\)?forwarded message"
mm-uu-forward-extract
@@ -186,13 +188,12 @@ To disable dissecting shar codes, for instance, add
(defun mm-uu-copy-to-buffer (&optional from to)
"Copy the contents of the current buffer to a fresh buffer.
Return that buffer."
- (save-excursion
- (let ((obuf (current-buffer))
- (coding-system
- ;; Might not exist in non-MULE XEmacs
- (when (boundp 'buffer-file-coding-system)
- buffer-file-coding-system)))
- (set-buffer (generate-new-buffer " *mm-uu*"))
+ (let ((obuf (current-buffer))
+ (coding-system
+ ;; Might not exist in non-MULE XEmacs
+ (when (boundp 'buffer-file-coding-system)
+ buffer-file-coding-system)))
+ (with-current-buffer (generate-new-buffer " *mm-uu*")
(setq buffer-file-coding-system coding-system)
(insert-buffer-substring obuf from to)
(current-buffer))))
@@ -496,5 +497,5 @@ Return that buffer."
(provide 'mm-uu)
-;;; arch-tag: 7db076bf-53db-4320-aa19-ca76a1d2ab2c
+;; arch-tag: 7db076bf-53db-4320-aa19-ca76a1d2ab2c
;;; mm-uu.el ends here
diff --git a/lisp/gnus/mm-view.el b/lisp/gnus/mm-view.el
index 9b0d821747..2d78ccab86 100644
--- a/lisp/gnus/mm-view.el
+++ b/lisp/gnus/mm-view.el
@@ -1,6 +1,7 @@
;;; mm-view.el --- functions for viewing MIME objects
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; This file is part of GNU Emacs.
@@ -39,6 +40,14 @@
(unless (fboundp 'diff-mode)
(autoload 'diff-mode "diff-mode" "" t nil)))
+(defvar gnus-article-mime-handles)
+(defvar gnus-newsgroup-charset)
+(defvar smime-keys)
+(defvar w3m-cid-retrieve-function-alist)
+(defvar w3m-current-buffer)
+(defvar w3m-display-inline-images)
+(defvar w3m-minor-mode-map)
+
(defvar mm-text-html-renderer-alist
'((w3 . mm-inline-text-html-render-with-w3)
(w3m . mm-inline-text-html-render-with-w3m)
diff --git a/lisp/gnus/mml-sec.el b/lisp/gnus/mml-sec.el
index 11f076c803..f8c573a765 100644
--- a/lisp/gnus/mml-sec.el
+++ b/lisp/gnus/mml-sec.el
@@ -1,5 +1,7 @@
;;; mml-sec.el --- A package with security functions for MML documents
-;; Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Simon Josefsson <simon@josefsson.org>
diff --git a/lisp/gnus/mml-smime.el b/lisp/gnus/mml-smime.el
index 788fd80003..8a5ba61d00 100644
--- a/lisp/gnus/mml-smime.el
+++ b/lisp/gnus/mml-smime.el
@@ -1,5 +1,7 @@
;;; mml-smime.el --- S/MIME support for MML
-;; Copyright (c) 2000, 2001, 2003 Free Software Foundation, Inc.
+
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Simon Josefsson <simon@josefsson.org>
;; Keywords: Gnus, MIME, S/MIME, MML
@@ -27,6 +29,8 @@
(eval-when-compile (require 'cl))
+(defvar gnus-extract-address-components)
+
(require 'smime)
(require 'mm-decode)
(autoload 'message-narrow-to-headers "message")
@@ -52,7 +56,7 @@
(if (not (and (not (file-exists-p tmp))
(get-buffer tmp)))
(push tmp certfiles)
- (setq file (mm-make-temp-file (expand-file-name "mml."
+ (setq file (mm-make-temp-file (expand-file-name "mml."
mm-tmp-directory)))
(with-current-buffer tmp
(write-region (point-min) (point-max) file))
diff --git a/lisp/gnus/mml.el b/lisp/gnus/mml.el
index 1f54754f98..3024959ae7 100644
--- a/lisp/gnus/mml.el
+++ b/lisp/gnus/mml.el
@@ -1,6 +1,7 @@
;;; mml.el --- A package for parsing and validating MML documents
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; This file is part of GNU Emacs.
@@ -40,6 +41,16 @@
(autoload 'fill-flowed-encode "flow-fill")
(autoload 'message-posting-charset "message"))
+(defvar gnus-article-mime-handles)
+(defvar gnus-mouse-2)
+(defvar gnus-newsrc-hashtb)
+(defvar message-default-charset)
+(defvar message-deletable-headers)
+(defvar message-options)
+(defvar message-posting-charset)
+(defvar message-required-mail-headers)
+(defvar message-required-news-headers)
+
(defcustom mml-content-type-parameters
'(name access-type expiration size permission format)
"*A list of acceptable parameters in MML tag.
@@ -123,7 +134,13 @@ unknown encoding; `use-ascii': always use ASCII for those characters
with unknown encoding; `multipart': always send messages with more than
one charsets.")
-(defvar mml-generate-default-type "text/plain")
+(defvar mml-generate-default-type "text/plain"
+ "Content type by which the Content-Type header can be omitted.
+The Content-Type header will not be put in the MIME part if the type
+equals the value and there's no parameter (e.g. charset, format, etc.)
+and `mml-insert-mime-headers-always' is nil. The value will be bound
+to \"message/rfc822\" when encoding an article to be forwarded as a MIME
+part. This is for the internal use, you should never modify the value.")
(defvar mml-buffer-list nil)
@@ -400,9 +417,14 @@ If MML is non-nil, return the buffer up till the correspondent mml tag."
(mml-tweak-part cont)
(cond
((or (eq (car cont) 'part) (eq (car cont) 'mml))
- (let ((raw (cdr (assq 'raw cont)))
- coded encoding charset filename type flowed)
- (setq type (or (cdr (assq 'type cont)) "text/plain"))
+ (let* ((raw (cdr (assq 'raw cont)))
+ (filename (cdr (assq 'filename cont)))
+ (type (or (cdr (assq 'type cont))
+ (if filename
+ (or (mm-default-file-encoding filename)
+ "application/octet-stream")
+ "text/plain")))
+ coded encoding charset flowed)
(if (and (not raw)
(member (car (split-string type "/")) '("text" "message")))
(progn
@@ -414,7 +436,7 @@ If MML is non-nil, return the buffer up till the correspondent mml tag."
(cond
((cdr (assq 'buffer cont))
(insert-buffer-substring (cdr (assq 'buffer cont))))
- ((and (setq filename (cdr (assq 'filename cont)))
+ ((and filename
(not (equal (cdr (assq 'nofile cont)) "yes")))
(let ((coding-system-for-read charset))
(mm-insert-file-contents filename)))
@@ -434,6 +456,10 @@ If MML is non-nil, return the buffer up till the correspondent mml tag."
(cond
((eq (car cont) 'mml)
(let ((mml-boundary (mml-compute-boundary cont))
+ ;; It is necessary for the case where this
+ ;; function is called recursively since
+ ;; `m-g-d-t' will be bound to "message/rfc822"
+ ;; when encoding an article to be forwarded.
(mml-generate-default-type "text/plain"))
(mml-to-mime))
(let ((mm-7bit-chars (concat mm-7bit-chars "\x1b")))
@@ -475,7 +501,7 @@ If MML is non-nil, return the buffer up till the correspondent mml tag."
(insert (with-current-buffer (cdr (assq 'buffer cont))
(mm-with-unibyte-current-buffer
(buffer-string)))))
- ((and (setq filename (cdr (assq 'filename cont)))
+ ((and filename
(not (equal (cdr (assq 'nofile cont)) "yes")))
(let ((coding-system-for-read mm-binary-coding-system))
(mm-insert-file-contents filename nil nil nil nil t)))
@@ -516,15 +542,21 @@ If MML is non-nil, return the buffer up till the correspondent mml tag."
"access-type=url"))
(when parameters
(mml-insert-parameter-string
- cont '(expiration size permission))))
- (insert "\n\n")
- (insert "Content-Type: " (cdr (assq 'type cont)) "\n")
- (insert "Content-ID: " (message-make-message-id) "\n")
- (insert "Content-Transfer-Encoding: "
- (or (cdr (assq 'encoding cont)) "binary"))
- (insert "\n\n")
- (insert (or (cdr (assq 'contents cont))))
- (insert "\n"))
+ cont '(expiration size permission)))
+ (insert "\n\n")
+ (insert "Content-Type: "
+ (or (cdr (assq 'type cont))
+ (if name
+ (or (mm-default-file-encoding name)
+ "application/octet-stream")
+ "text/plain"))
+ "\n")
+ (insert "Content-ID: " (message-make-message-id) "\n")
+ (insert "Content-Transfer-Encoding: "
+ (or (cdr (assq 'encoding cont)) "binary"))
+ (insert "\n\n")
+ (insert (or (cdr (assq 'contents cont))))
+ (insert "\n")))
((eq (car cont) 'multipart)
(let* ((type (or (cdr (assq 'type cont)) "mixed"))
(mml-generate-default-type (if (equal type "digest")
@@ -560,7 +592,8 @@ If MML is non-nil, return the buffer up till the correspondent mml tag."
(message-options-set 'message-sender sender))
(if (setq recipients (cdr (assq 'recipients cont)))
(message-options-set 'message-recipients recipients))
- (let ((style (mml-signencrypt-style (first (or sign-item encrypt-item)))))
+ (let ((style (mml-signencrypt-style
+ (first (or sign-item encrypt-item)))))
;; check if: we're both signing & encrypting, both methods
;; are the same (why would they be different?!), and that
;; the signencrypt style allows for combined operation.
@@ -943,13 +976,15 @@ See Info node `(emacs-mime)Composing'.
description))
(defun mml-minibuffer-read-disposition (type &optional default)
- (let* ((default (or default
- (if (string-match "^text/.*" type)
- "inline"
- "attachment")))
- (disposition (completing-read "Disposition: "
- '(("attachment") ("inline") (""))
- nil t)))
+ (unless default (setq default
+ (if (and (string-match "\\`text/" type)
+ (not (string-match "\\`text/rtf\\'" type)))
+ "inline"
+ "attachment")))
+ (let ((disposition (completing-read
+ (format "Disposition (default %s): " default)
+ '(("attachment") ("inline") (""))
+ nil t nil nil default)))
(if (not (equal disposition ""))
disposition
default)))
diff --git a/lisp/gnus/mml1991.el b/lisp/gnus/mml1991.el
index 8a9cce093d..932737dc4b 100644
--- a/lisp/gnus/mml1991.el
+++ b/lisp/gnus/mml1991.el
@@ -1,6 +1,7 @@
;;; mml1991.el --- Old PGP message format (RFC 1991) support for MML
-;; Copyright (C) 1998, 1999, 2000, 2001, 2003, 2005
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Sascha Lüdecke <sascha@meta-x.de>,
;; Simon Josefsson <simon@josefsson.org> (Mailcrypt interface, Gnus glue)
@@ -31,6 +32,8 @@
(require 'cl)
(require 'mm-util))
+(defvar mc-pgp-always-sign)
+
(autoload 'quoted-printable-decode-region "qp")
(autoload 'quoted-printable-encode-region "qp")
@@ -181,7 +184,7 @@
(delete-region (point-min) (point)))
(mm-with-unibyte-current-buffer
(with-temp-buffer
- (flet ((gpg-encrypt-func
+ (flet ((gpg-encrypt-func
(sign plaintext ciphertext result recipients &optional
passphrase sign-with-key armor textmode)
(if sign
@@ -269,7 +272,7 @@
(delete-region (point-min) (point)))
(mm-decode-content-transfer-encoding cte)
(unless (pgg-encrypt-region
- (point-min) (point-max)
+ (point-min) (point-max)
(split-string
(or
(message-options-get 'message-recipients)
diff --git a/lisp/gnus/mml2015.el b/lisp/gnus/mml2015.el
index d403444e84..c8d46c99f5 100644
--- a/lisp/gnus/mml2015.el
+++ b/lisp/gnus/mml2015.el
@@ -1,6 +1,7 @@
;;; mml2015.el --- MIME Security with Pretty Good Privacy (PGP)
-;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
;; Keywords: PGP MIME MML
@@ -34,6 +35,8 @@
(require 'mm-util)
(require 'mml)
+(defvar mc-pgp-always-sign)
+
(defvar mml2015-use (or
(progn
(ignore-errors
@@ -641,7 +644,8 @@
(autoload 'pgg-decrypt-region "pgg")
(autoload 'pgg-verify-region "pgg")
(autoload 'pgg-sign-region "pgg")
- (autoload 'pgg-encrypt-region "pgg"))
+ (autoload 'pgg-encrypt-region "pgg")
+ (autoload 'pgg-parse-armor "pgg-parse"))
(defun mml2015-pgg-decrypt (handle ctl)
(catch 'error
@@ -809,15 +813,23 @@
(let ((pgg-errors-buffer mml2015-result-buffer)
(boundary (mml-compute-boundary cont))
(pgg-default-user-id (or (message-options-get 'mml-sender)
- pgg-default-user-id)))
+ pgg-default-user-id))
+ entry)
(unless (pgg-sign-region (point-min) (point-max))
(pop-to-buffer mml2015-result-buffer)
(error "Sign error"))
(goto-char (point-min))
(insert (format "Content-Type: multipart/signed; boundary=\"%s\";\n"
boundary))
- ;;; FIXME: what is the micalg?
- (insert "\tmicalg=pgp-sha1; protocol=\"application/pgp-signature\"\n")
+ (if (setq entry (assq 2 (pgg-parse-armor
+ (with-current-buffer pgg-output-buffer
+ (buffer-string)))))
+ (setq entry (assq 'hash-algorithm (cdr entry))))
+ (insert (format "\tmicalg=%s; "
+ (if (cdr entry)
+ (downcase (format "pgp-%s" (cdr entry)))
+ "pgp-sha1")))
+ (insert "protocol=\"application/pgp-signature\"\n")
(insert (format "\n--%s\n" boundary))
(goto-char (point-max))
(insert (format "\n--%s\n" boundary))
diff --git a/lisp/gnus/nnagent.el b/lisp/gnus/nnagent.el
index 257148dcd7..4b8233a4d5 100644
--- a/lisp/gnus/nnagent.el
+++ b/lisp/gnus/nnagent.el
@@ -1,7 +1,7 @@
;;; nnagent.el --- offline backend for Gnus
-;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news, mail
diff --git a/lisp/gnus/nnbabyl.el b/lisp/gnus/nnbabyl.el
index 449a7dbafc..afdd4d1535 100644
--- a/lisp/gnus/nnbabyl.el
+++ b/lisp/gnus/nnbabyl.el
@@ -1,7 +1,7 @@
;;; nnbabyl.el --- rmail mbox access for Gnus
-;; Copyright (C) 1995, 1996, 1997, 1998, 1099, 2000, 2001
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 1997, 1998, 1099, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
diff --git a/lisp/gnus/nndb.el b/lisp/gnus/nndb.el
index 4174728f47..ca5b27cdd1 100644
--- a/lisp/gnus/nndb.el
+++ b/lisp/gnus/nndb.el
@@ -1,7 +1,7 @@
;;; nndb.el --- nndb access for Gnus
-;; Copyright (C) 1997, 1998, 2000, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
;; Kai Grossjohann <grossjohann@ls6.informatik.uni-dortmund.de>
diff --git a/lisp/gnus/nndiary.el b/lisp/gnus/nndiary.el
index 2228b6a2de..4be4c6f664 100644
--- a/lisp/gnus/nndiary.el
+++ b/lisp/gnus/nndiary.el
@@ -1,7 +1,7 @@
;;; nndiary.el --- A diary backend for Gnus
-;; Copyright (C) 1999, 2000, 2001, 2003
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Didier Verna <didier@xemacs.org>
;; Maintainer: Didier Verna <didier@xemacs.org>
diff --git a/lisp/gnus/nndir.el b/lisp/gnus/nndir.el
index 880df5166f..18e64e8399 100644
--- a/lisp/gnus/nndir.el
+++ b/lisp/gnus/nndir.el
@@ -1,7 +1,7 @@
;;; nndir.el --- single directory newsgroup access for Gnus
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
diff --git a/lisp/gnus/nndoc.el b/lisp/gnus/nndoc.el
index 4fab99fd84..70e301b5b0 100644
--- a/lisp/gnus/nndoc.el
+++ b/lisp/gnus/nndoc.el
@@ -1,6 +1,7 @@
;;; nndoc.el --- single file access for Gnus
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
diff --git a/lisp/gnus/nndraft.el b/lisp/gnus/nndraft.el
index 9a93e5aa07..beea344e0c 100644
--- a/lisp/gnus/nndraft.el
+++ b/lisp/gnus/nndraft.el
@@ -1,7 +1,7 @@
;;; nndraft.el --- draft article access for Gnus
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
diff --git a/lisp/gnus/nneething.el b/lisp/gnus/nneething.el
index db7a5fcc2a..33f6a5f4ea 100644
--- a/lisp/gnus/nneething.el
+++ b/lisp/gnus/nneething.el
@@ -1,7 +1,7 @@
;;; nneething.el --- arbitrary file access for Gnus
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
diff --git a/lisp/gnus/nnfolder.el b/lisp/gnus/nnfolder.el
index 07697000ee..5a29878b5f 100644
--- a/lisp/gnus/nnfolder.el
+++ b/lisp/gnus/nnfolder.el
@@ -1,6 +1,7 @@
;;; nnfolder.el --- mail folder access for Gnus
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Simon Josefsson <simon@josefsson.org> (adding MARKS)
;; ShengHuo Zhu <zsh@cs.rochester.edu> (adding NOV)
diff --git a/lisp/gnus/nngateway.el b/lisp/gnus/nngateway.el
index d8e3e0a638..8ddbf9ca13 100644
--- a/lisp/gnus/nngateway.el
+++ b/lisp/gnus/nngateway.el
@@ -1,7 +1,7 @@
;;; nngateway.el --- posting news via mail gateways
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news, mail
diff --git a/lisp/gnus/nnheader.el b/lisp/gnus/nnheader.el
index e793b5ef8f..45e030027a 100644
--- a/lisp/gnus/nnheader.el
+++ b/lisp/gnus/nnheader.el
@@ -1,8 +1,8 @@
;;; nnheader.el --- header access macros for Gnus and its backends
-;; Copyright (C) 1987, 1988, 1989, 1990, 1993, 1994, 1995, 1996,
-;; 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1987, 1988, 1989, 1990, 1993, 1994,
+;; 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
;; Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -31,6 +31,8 @@
(eval-when-compile (require 'cl))
+(defvar nnmail-extra-headers)
+
;; Requiring `gnus-util' at compile time creates a circular
;; dependency between nnheader.el and gnus-util.el.
;;(eval-when-compile (require 'gnus-util))
diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el
index 698f7cf9a3..5a2b7e2f94 100644
--- a/lisp/gnus/nnimap.el
+++ b/lisp/gnus/nnimap.el
@@ -1,6 +1,7 @@
;;; nnimap.el --- imap backend for Gnus
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Simon Josefsson <jas@pdc.kth.se>
;; Jim Radford <radford@robby.caltech.edu>
diff --git a/lisp/gnus/nnkiboze.el b/lisp/gnus/nnkiboze.el
index dd5951cf53..ee3c804ae8 100644
--- a/lisp/gnus/nnkiboze.el
+++ b/lisp/gnus/nnkiboze.el
@@ -1,7 +1,7 @@
;;; nnkiboze.el --- select virtual news access for Gnus
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
diff --git a/lisp/gnus/nnlistserv.el b/lisp/gnus/nnlistserv.el
index 432a259b78..2b9d478086 100644
--- a/lisp/gnus/nnlistserv.el
+++ b/lisp/gnus/nnlistserv.el
@@ -1,6 +1,7 @@
;;; nnlistserv.el --- retrieving articles via web mailing list archives
-;; Copyright (C) 1997, 1998, 1999, 2000, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news, mail
diff --git a/lisp/gnus/nnmail.el b/lisp/gnus/nnmail.el
index de4247dc55..9856314324 100644
--- a/lisp/gnus/nnmail.el
+++ b/lisp/gnus/nnmail.el
@@ -1,6 +1,7 @@
;;; nnmail.el --- mail support functions for the Gnus mail backends
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news, mail
diff --git a/lisp/gnus/nnmbox.el b/lisp/gnus/nnmbox.el
index e3d88396e1..fe25ef9d0a 100644
--- a/lisp/gnus/nnmbox.el
+++ b/lisp/gnus/nnmbox.el
@@ -1,7 +1,7 @@
;;; nnmbox.el --- mail mbox access for Gnus
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
diff --git a/lisp/gnus/nnmh.el b/lisp/gnus/nnmh.el
index f73bda68bf..4c0af4fdcf 100644
--- a/lisp/gnus/nnmh.el
+++ b/lisp/gnus/nnmh.el
@@ -1,7 +1,7 @@
;;; nnmh.el --- mhspool access for Gnus
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2003
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
diff --git a/lisp/gnus/nnml.el b/lisp/gnus/nnml.el
index e6eca8b155..9bdd08fd3c 100644
--- a/lisp/gnus/nnml.el
+++ b/lisp/gnus/nnml.el
@@ -1,6 +1,7 @@
;;; nnml.el --- mail spool access for Gnus
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2003
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Simon Josefsson <simon@josefsson.org> (adding MARKS)
;; Lars Magne Ingebrigtsen <larsi@gnus.org>
diff --git a/lisp/gnus/nnoo.el b/lisp/gnus/nnoo.el
index 7339911210..fcd50c3a76 100644
--- a/lisp/gnus/nnoo.el
+++ b/lisp/gnus/nnoo.el
@@ -1,7 +1,7 @@
;;; nnoo.el --- OO Gnus Backends
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
@@ -254,7 +254,7 @@
(setcdr bstate (delq defs (cdr bstate)))
(pop defs)
(while defs
- (set (car (pop defs)) nil)))))
+ (set (car (pop defs)) nil)))))
t)
(defun nnoo-close (backend)
diff --git a/lisp/gnus/nnrss.el b/lisp/gnus/nnrss.el
index 4d43604984..5018701ee4 100644
--- a/lisp/gnus/nnrss.el
+++ b/lisp/gnus/nnrss.el
@@ -1,5 +1,6 @@
;;; nnrss.el --- interfacing with RSS
-;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
;; Keywords: RSS
diff --git a/lisp/gnus/nnslashdot.el b/lisp/gnus/nnslashdot.el
index 177bb01922..9350a284e3 100644
--- a/lisp/gnus/nnslashdot.el
+++ b/lisp/gnus/nnslashdot.el
@@ -1,5 +1,7 @@
;;; nnslashdot.el --- interfacing with Slashdot
-;; Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
diff --git a/lisp/gnus/nnsoup.el b/lisp/gnus/nnsoup.el
index 13a464ab21..94c259b6d9 100644
--- a/lisp/gnus/nnsoup.el
+++ b/lisp/gnus/nnsoup.el
@@ -1,7 +1,7 @@
;;; nnsoup.el --- SOUP access for Gnus
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
diff --git a/lisp/gnus/nnspool.el b/lisp/gnus/nnspool.el
index 49e9693c32..228879a4da 100644
--- a/lisp/gnus/nnspool.el
+++ b/lisp/gnus/nnspool.el
@@ -1,8 +1,7 @@
;;; nnspool.el --- spool access for GNU Emacs
;; Copyright (C) 1988, 1989, 1990, 1993, 1994, 1995, 1996, 1997, 1998,
-;; 2000, 2002, 2003
-;; Free Software Foundation, Inc.
+;; 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
;; Lars Magne Ingebrigtsen <larsi@gnus.org>
diff --git a/lisp/gnus/nntp.el b/lisp/gnus/nntp.el
index 2895faf62e..4998c7a950 100644
--- a/lisp/gnus/nntp.el
+++ b/lisp/gnus/nntp.el
@@ -1,8 +1,8 @@
;;; nntp.el --- nntp access for Gnus
-;; Copyright (C) 1987, 1988, 1989, 1990, 1992, 1993, 1994, 1995, 1996,
-;; 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1987, 1988, 1989, 1990, 1992, 1993,
+;; 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002,
+;; 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
@@ -255,7 +255,7 @@ noticing asynchronous data.")
(defvar nntp-async-timer nil)
(defvar nntp-async-process-list nil)
-(defvar nntp-ssl-program
+(defvar nntp-ssl-program
"openssl s_client -quiet -ssl3 -connect %s:%p"
"A string containing commands for SSL connections.
Within a string, %s is replaced with the server address and %p with
@@ -889,7 +889,7 @@ command whose response triggered the error."
(if (numberp article) (int-to-string article) article))))
(deffoo nntp-request-group (group &optional server dont-check)
- (nntp-with-open-group
+ (nntp-with-open-group
nil server
(when (nntp-send-command "^[245].*\n" "GROUP" group)
(let ((entry (nntp-find-connection-entry nntp-server-buffer)))
@@ -1156,10 +1156,10 @@ password contained in '~/.nntp-authinfo'."
(defun nntp-open-ssl-stream (buffer)
(let* ((process-connection-type nil)
- (proc (start-process "nntpd" buffer
+ (proc (start-process "nntpd" buffer
shell-file-name
shell-command-switch
- (format-spec nntp-ssl-program
+ (format-spec nntp-ssl-program
(format-spec-make
?s nntp-address
?p nntp-port-number)))))
@@ -1317,7 +1317,7 @@ password contained in '~/.nntp-authinfo'."
;; that the server has closed the connection. This MUST be
;; handled here as the buffer restored by the save-excursion may
;; be the process's former output buffer (i.e. now killed)
- (or (and process
+ (or (and process
(memq (process-status process) '(open run)))
(nntp-report "Server closed connection"))))
@@ -1501,7 +1501,7 @@ password contained in '~/.nntp-authinfo'."
(goto-char (point-min))
(when (re-search-forward "^[0-9][0-9][0-9] .*\n\\([0-9]+\\)" nil t)
(let ((low-limit (string-to-number
- (buffer-substring (match-beginning 1)
+ (buffer-substring (match-beginning 1)
(match-end 1)))))
(while (and articles (<= (car articles) low-limit))
(setq articles (cdr articles))))))
diff --git a/lisp/gnus/nnultimate.el b/lisp/gnus/nnultimate.el
index 7bc7bbf462..4689664016 100644
--- a/lisp/gnus/nnultimate.el
+++ b/lisp/gnus/nnultimate.el
@@ -1,6 +1,7 @@
;;; nnultimate.el --- interfacing with the Ultimate Bulletin Board system
-;; Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
diff --git a/lisp/gnus/nnvirtual.el b/lisp/gnus/nnvirtual.el
index c7e93528a5..28ef0f5c83 100644
--- a/lisp/gnus/nnvirtual.el
+++ b/lisp/gnus/nnvirtual.el
@@ -1,6 +1,7 @@
;;; nnvirtual.el --- virtual newsgroups access for Gnus
-;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+;; 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: David Moore <dmoore@ucsd.edu>
;; Lars Magne Ingebrigtsen <larsi@gnus.org>
diff --git a/lisp/gnus/nnwarchive.el b/lisp/gnus/nnwarchive.el
index 8e4c22e8b0..a543c8edb8 100644
--- a/lisp/gnus/nnwarchive.el
+++ b/lisp/gnus/nnwarchive.el
@@ -1,5 +1,7 @@
;;; nnwarchive.el --- interfacing with web archives
-;; Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc.
+
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
;; Keywords: news egroups mail-archive
diff --git a/lisp/gnus/nnweb.el b/lisp/gnus/nnweb.el
index 4e1ed36d86..d05520ee1d 100644
--- a/lisp/gnus/nnweb.el
+++ b/lisp/gnus/nnweb.el
@@ -1,6 +1,7 @@
;;; nnweb.el --- retrieving articles via web search engines
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
diff --git a/lisp/gnus/nnwfm.el b/lisp/gnus/nnwfm.el
index 71d622357b..d759d12f79 100644
--- a/lisp/gnus/nnwfm.el
+++ b/lisp/gnus/nnwfm.el
@@ -1,5 +1,6 @@
;;; nnwfm.el --- interfacing with a web forum
-;; Copyright (C) 2000 Free Software Foundation, Inc.
+
+;; Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
diff --git a/lisp/gnus/pgg-def.el b/lisp/gnus/pgg-def.el
index 351a336800..f27afada3f 100644
--- a/lisp/gnus/pgg-def.el
+++ b/lisp/gnus/pgg-def.el
@@ -1,6 +1,6 @@
;;; pgg-def.el --- functions/macros for defining PGG functions
-;; Copyright (C) 1999, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Daiki Ueno <ueno@unixuser.org>
;; Created: 1999/11/02
diff --git a/lisp/gnus/pgg-gpg.el b/lisp/gnus/pgg-gpg.el
index 904c0e4687..f012a9d850 100644
--- a/lisp/gnus/pgg-gpg.el
+++ b/lisp/gnus/pgg-gpg.el
@@ -1,6 +1,7 @@
;;; pgg-gpg.el --- GnuPG support for PGG.
-;; Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Daiki Ueno <ueno@unixuser.org>
;; Created: 1999/10/28
diff --git a/lisp/gnus/pgg-parse.el b/lisp/gnus/pgg-parse.el
index c65f6a3a82..26b48e2f14 100644
--- a/lisp/gnus/pgg-parse.el
+++ b/lisp/gnus/pgg-parse.el
@@ -1,6 +1,6 @@
;;; pgg-parse.el --- OpenPGP packet parsing
-;; Copyright (C) 1999, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Daiki Ueno <ueno@unixuser.org>
;; Created: 1999/10/28
@@ -58,7 +58,8 @@
(cons (sexp :tag "Number") (sexp :tag "Type"))))
(defcustom pgg-parse-hash-algorithm-alist
- '((1 . MD5) (2 . SHA1) (3 . RIPEMD160) (5 . MD2))
+ '((1 . MD5) (2 . SHA1) (3 . RIPEMD160) (5 . MD2) (8 . SHA256) (9 . SHA384)
+ (10 . SHA512))
"Alist of the assigned number to the cryptographic hash algorithm."
:group 'pgg-parse
:type '(repeat
diff --git a/lisp/gnus/pgg-pgp.el b/lisp/gnus/pgg-pgp.el
index b2add4726d..88f1d69720 100644
--- a/lisp/gnus/pgg-pgp.el
+++ b/lisp/gnus/pgg-pgp.el
@@ -1,6 +1,7 @@
;;; pgg-pgp.el --- PGP 2.* and 6.* support for PGG.
-;; Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Daiki Ueno <ueno@unixuser.org>
;; Created: 1999/11/02
diff --git a/lisp/gnus/pgg-pgp5.el b/lisp/gnus/pgg-pgp5.el
index cbdb693ef6..ffe467ec04 100644
--- a/lisp/gnus/pgg-pgp5.el
+++ b/lisp/gnus/pgg-pgp5.el
@@ -1,6 +1,7 @@
;;; pgg-pgp5.el --- PGP 5.* support for PGG.
-;; Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Daiki Ueno <ueno@unixuser.org>
;; Created: 1999/11/02
diff --git a/lisp/gnus/pgg.el b/lisp/gnus/pgg.el
index 91b56c57a4..af59833c6c 100644
--- a/lisp/gnus/pgg.el
+++ b/lisp/gnus/pgg.el
@@ -1,6 +1,7 @@
;;; pgg.el --- glue for the various PGP implementations.
-;; Copyright (C) 1999, 2000, 2003, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Daiki Ueno <ueno@unixuser.org>
;; Created: 1999/10/28
@@ -34,20 +35,10 @@
;; Don't merge these two `eval-when-compile's.
(eval-when-compile
(require 'cl))
-;; Fixme: This would be better done with an autoload for
-;; `url-insert-file-contents', and the url stuff rationalized.
-;; (`locate-library' can say whether the url code is available.)
-(eval-when-compile
- (ignore-errors
- (require 'w3)
- (require 'url)))
;;; @ utility functions
;;;
-(defvar pgg-fetch-key-function (if (fboundp 'url-insert-file-contents)
- (function pgg-fetch-key-with-w3)))
-
(defun pgg-invoke (func scheme &rest args)
(progn
(require (intern (format "pgg-%s" scheme)))
@@ -410,7 +401,6 @@ within the region."
(defun pgg-insert-url-with-w3 (url)
(ignore-errors
- (require 'w3)
(require 'url)
(let (buffer-file-name)
(url-insert-file-contents url))))
diff --git a/lisp/gnus/pop3.el b/lisp/gnus/pop3.el
index 1f109f6d7d..f021e063fc 100644
--- a/lisp/gnus/pop3.el
+++ b/lisp/gnus/pop3.el
@@ -1,8 +1,7 @@
;;; pop3.el --- Post Office Protocol (RFC 1460) interface
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-;; 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Richard L. Pieri <ratinox@peorth.gweep.net>
;; Maintainer: FSF
diff --git a/lisp/gnus/qp.el b/lisp/gnus/qp.el
index d95508123a..bd0a1b4b5a 100644
--- a/lisp/gnus/qp.el
+++ b/lisp/gnus/qp.el
@@ -1,7 +1,7 @@
;;; qp.el --- Quoted-Printable functions
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: mail, extensions
diff --git a/lisp/gnus/rfc1843.el b/lisp/gnus/rfc1843.el
index 9af2fc6327..55150fbdac 100644
--- a/lisp/gnus/rfc1843.el
+++ b/lisp/gnus/rfc1843.el
@@ -1,5 +1,7 @@
;;; rfc1843.el --- HZ (rfc1843) decoding
-;; Copyright (c) 1998, 1999, 2000, 2003 Free Software Foundation, Inc.
+
+;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
;; Keywords: news HZ HZ+ mail i18n
@@ -35,6 +37,10 @@
(eval-when-compile (require 'cl))
(require 'mm-util)
+(defvar gnus-decode-encoded-word-function)
+(defvar gnus-decode-header-function)
+(defvar gnus-newsgroup-name)
+
(defvar rfc1843-word-regexp
"~\\({\\([\041-\167][\041-\176]\\| \\)+\\)\\(~}\\|$\\)")
diff --git a/lisp/gnus/rfc2045.el b/lisp/gnus/rfc2045.el
index a1b06b4d93..b3bbe373d9 100644
--- a/lisp/gnus/rfc2045.el
+++ b/lisp/gnus/rfc2045.el
@@ -1,6 +1,7 @@
;;; rfc2045.el --- Functions for decoding rfc2045 headers
-;; Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; This file is part of GNU Emacs.
diff --git a/lisp/gnus/rfc2047.el b/lisp/gnus/rfc2047.el
index ae2904c86f..84c46e936a 100644
--- a/lisp/gnus/rfc2047.el
+++ b/lisp/gnus/rfc2047.el
@@ -1,7 +1,7 @@
;;; rfc2047.el --- functions for encoding and decoding rfc2047 messages
-;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; MORIOKA Tomohiko <morioka@jaist.ac.jp>
diff --git a/lisp/gnus/rfc2104.el b/lisp/gnus/rfc2104.el
index cea9f587ac..bdacc19ec9 100644
--- a/lisp/gnus/rfc2104.el
+++ b/lisp/gnus/rfc2104.el
@@ -1,5 +1,7 @@
;;; rfc2104.el --- RFC2104 Hashed Message Authentication Codes
-;; Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
+
+;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Simon Josefsson <jas@pdc.kth.se>
;; Keywords: mail
diff --git a/lisp/gnus/rfc2231.el b/lisp/gnus/rfc2231.el
index 0a6cfdb2af..f328f2dbc6 100644
--- a/lisp/gnus/rfc2231.el
+++ b/lisp/gnus/rfc2231.el
@@ -1,7 +1,7 @@
;;; rfc2231.el --- Functions for decoding rfc2231 headers
-;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; This file is part of GNU Emacs.
@@ -52,7 +52,7 @@ The list will be on the form
(prev-value "")
display-name mailbox c display-string parameters
attribute value type subtype number encoded
- prev-attribute)
+ prev-attribute prev-encoded)
(ietf-drums-init (mail-header-remove-whitespace
(mail-header-remove-comments string)))
(let ((table (copy-syntax-table ietf-drums-syntax-table)))
@@ -106,9 +106,14 @@ The list will be on the form
;; See if we have any previous continuations.
(when (and prev-attribute
(not (eq prev-attribute attribute)))
- (push (cons prev-attribute prev-value) parameters)
+ (push (cons prev-attribute
+ (if prev-encoded
+ (rfc2231-decode-encoded-string prev-value)
+ prev-value))
+ parameters)
(setq prev-attribute nil
- prev-value ""))
+ prev-value ""
+ prev-encoded nil))
(unless (eq c ?=)
(error "Invalid header: %s" string))
(forward-char 1)
@@ -127,7 +132,8 @@ The list will be on the form
(error "Invalid header: %s" string)))
(if number
(setq prev-attribute attribute
- prev-value (concat prev-value value))
+ prev-value (concat prev-value value)
+ prev-encoded encoded)
(push (cons attribute
(if encoded
(rfc2231-decode-encoded-string value)
@@ -137,7 +143,7 @@ The list will be on the form
;; Take care of any final continuations.
(when prev-attribute
(push (cons prev-attribute
- (if encoded
+ (if prev-encoded
(rfc2231-decode-encoded-string prev-value)
prev-value))
parameters))
diff --git a/lisp/gnus/score-mode.el b/lisp/gnus/score-mode.el
index c580256c94..add14ea6de 100644
--- a/lisp/gnus/score-mode.el
+++ b/lisp/gnus/score-mode.el
@@ -1,6 +1,7 @@
;;; score-mode.el --- mode for editing Gnus score files
-;; Copyright (C) 1996, 2001, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news, mail
diff --git a/lisp/gnus/sha1.el b/lisp/gnus/sha1.el
index 8968f1d42d..99b9aa47bb 100644
--- a/lisp/gnus/sha1.el
+++ b/lisp/gnus/sha1.el
@@ -1,6 +1,7 @@
;;; sha1.el --- SHA1 Secure Hash Algorithm in Emacs-Lisp
-;; Copyright (C) 1999, 2001, 2003, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Shuhei KOBAYASHI <shuhei@aqua.ocn.ne.jp>
;; Keywords: SHA1, FIPS 180-1
diff --git a/lisp/gnus/sieve-manage.el b/lisp/gnus/sieve-manage.el
index 2afa49c79a..dc2016f282 100644
--- a/lisp/gnus/sieve-manage.el
+++ b/lisp/gnus/sieve-manage.el
@@ -1,5 +1,6 @@
;;; sieve-manage.el --- Implementation of the managesive protocol in elisp
-;; Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+
+;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Simon Josefsson <simon@josefsson.org>
@@ -184,8 +185,8 @@ LOGINFUNC is passed a username and a password, it should return t if
it where sucessful authenticating itself to the server, nil otherwise.
Returns t if login was successful, nil otherwise."
(with-current-buffer buffer
- (make-variable-buffer-local 'sieve-manage-username)
- (make-variable-buffer-local 'sieve-manage-password)
+ (make-local-variable 'sieve-manage-username)
+ (make-local-variable 'sieve-manage-password)
(let (user passwd ret reason)
;; (condition-case ()
(while (or (not user) (not passwd))
@@ -370,7 +371,7 @@ Optional variable BUFFER is buffer (buffer, or string naming buffer)
to work in."
(setq buffer (or buffer (format " *sieve* %s:%d" server (or port 2000))))
(with-current-buffer (get-buffer-create buffer)
- (mapcar 'make-variable-buffer-local sieve-manage-local-variables)
+ (mapcar 'make-local-variable sieve-manage-local-variables)
(sieve-manage-disable-multibyte)
(buffer-disable-undo)
(setq sieve-manage-server (or server sieve-manage-server))
@@ -458,8 +459,8 @@ password is remembered in the buffer."
(with-current-buffer (or buffer (current-buffer))
(if (not (eq sieve-manage-state 'nonauth))
(eq sieve-manage-state 'auth)
- (make-variable-buffer-local 'sieve-manage-username)
- (make-variable-buffer-local 'sieve-manage-password)
+ (make-local-variable 'sieve-manage-username)
+ (make-local-variable 'sieve-manage-password)
(if user (setq sieve-manage-username user))
(if passwd (setq sieve-manage-password passwd))
(if (funcall (nth 2 (assq sieve-manage-auth
diff --git a/lisp/gnus/sieve-mode.el b/lisp/gnus/sieve-mode.el
index 012c58de3b..31ff5d1e9c 100644
--- a/lisp/gnus/sieve-mode.el
+++ b/lisp/gnus/sieve-mode.el
@@ -1,5 +1,6 @@
;;; sieve-mode.el --- Sieve code editing commands for Emacs
-;; Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+
+;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Simon Josefsson <simon@josefsson.org>
diff --git a/lisp/gnus/sieve.el b/lisp/gnus/sieve.el
index 498a82387c..28fde926c9 100644
--- a/lisp/gnus/sieve.el
+++ b/lisp/gnus/sieve.el
@@ -1,5 +1,6 @@
;;; sieve.el --- Utilities to manage sieve scripts
-;; Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+
+;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Simon Josefsson <simon@josefsson.org>
diff --git a/lisp/gnus/smiley.el b/lisp/gnus/smiley.el
index 42444e74bd..cdd1c8dbc9 100644
--- a/lisp/gnus/smiley.el
+++ b/lisp/gnus/smiley.el
@@ -1,6 +1,7 @@
;;; smiley.el --- displaying smiley faces
-;; Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Dave Love <fx@gnu.org>
;; Keywords: news mail multimedia
diff --git a/lisp/gnus/smime.el b/lisp/gnus/smime.el
index 059c181960..485cf17715 100644
--- a/lisp/gnus/smime.el
+++ b/lisp/gnus/smime.el
@@ -1,5 +1,7 @@
;;; smime.el --- S/MIME support library
-;; Copyright (c) 2000, 2001, 2003 Free Software Foundation, Inc.
+
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Simon Josefsson <simon@josefsson.org>
;; Keywords: SMIME X.509 PEM OpenSSL
diff --git a/lisp/gnus/spam-report.el b/lisp/gnus/spam-report.el
index 8ac235d12f..50a564885b 100644
--- a/lisp/gnus/spam-report.el
+++ b/lisp/gnus/spam-report.el
@@ -1,4 +1,5 @@
;;; spam-report.el --- Reporting spam
+
;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Teodor Zlatanov <tzz@lifelogs.com>
@@ -95,7 +96,7 @@ undo that change.")
(string-match spam-report-gmane-regex gnus-newsgroup-name)))
(gnus-message 6 "Reporting spam article %d to spam.gmane.org..." article)
(if spam-report-gmane-use-article-number
- (spam-report-url-ping
+ (spam-report-url-ping
"spam.gmane.org"
(format "/%s:%d"
(gnus-group-real-name gnus-newsgroup-name)
diff --git a/lisp/gnus/spam-stat.el b/lisp/gnus/spam-stat.el
index 18f16fd094..c8870454be 100644
--- a/lisp/gnus/spam-stat.el
+++ b/lisp/gnus/spam-stat.el
@@ -1,6 +1,6 @@
;;; spam-stat.el --- detecting spam based on statistics
-;; Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Alex Schroeder <alex@gnu.org>
;; Keywords: network
@@ -123,6 +123,8 @@
;;; Code:
+(defvar gnus-original-article-buffer)
+
(defgroup spam-stat nil
"Statistical spam detection for Emacs.
Use the functions to build a dictionary of words and their statistical
diff --git a/lisp/gnus/spam.el b/lisp/gnus/spam.el
index e22ad1c2fa..32de2f60e2 100644
--- a/lisp/gnus/spam.el
+++ b/lisp/gnus/spam.el
@@ -1,4 +1,5 @@
;;; spam.el --- Identifying spam
+
;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
diff --git a/lisp/gnus/starttls.el b/lisp/gnus/starttls.el
index 92a436ca86..67464395c7 100644
--- a/lisp/gnus/starttls.el
+++ b/lisp/gnus/starttls.el
@@ -1,7 +1,7 @@
;;; starttls.el --- STARTTLS functions
-;; Copyright (C) 1999, 2000, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Daiki Ueno <ueno@unixuser.org>
;; Author: Simon Josefsson <simon@josefsson.org>
diff --git a/lisp/gnus/utf7.el b/lisp/gnus/utf7.el
index 5207e96aea..d1eb6ee40d 100644
--- a/lisp/gnus/utf7.el
+++ b/lisp/gnus/utf7.el
@@ -1,5 +1,7 @@
;;; utf7.el --- UTF-7 encoding/decoding for Emacs -*-coding: iso-8859-1;-*-
-;; Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc.
+
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Jon K Hellan <hellan@acm.org>
;; Maintainer: bugs@gnus.org
diff --git a/lisp/gnus/uudecode.el b/lisp/gnus/uudecode.el
index b4f4b74700..c1fc56ad8b 100644
--- a/lisp/gnus/uudecode.el
+++ b/lisp/gnus/uudecode.el
@@ -1,6 +1,7 @@
;;; uudecode.el -- elisp native uudecode
-;; Copyright (c) 1998, 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
;; Keywords: uudecode news
diff --git a/lisp/gnus/webmail.el b/lisp/gnus/webmail.el
index 51125897fe..e9bc074f2c 100644
--- a/lisp/gnus/webmail.el
+++ b/lisp/gnus/webmail.el
@@ -1,5 +1,7 @@
;;; webmail.el --- interface of web mail
-;; Copyright (C) 1999, 2000, 2001, 2004 Free Software Foundation, Inc.
+
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
;; Keywords: hotmail netaddress my-deja netscape
diff --git a/lisp/gnus/yenc.el b/lisp/gnus/yenc.el
index 0d5ad3905b..37018d2fa1 100644
--- a/lisp/gnus/yenc.el
+++ b/lisp/gnus/yenc.el
@@ -1,5 +1,6 @@
;;; yenc.el --- elisp native yenc decoder
-;; Copyright (c) 2002 Free Software Foundation, Inc.
+
+;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Jesper Harder <harder@ifa.au.dk>
;; Keywords: yenc news
diff --git a/lisp/gs.el b/lisp/gs.el
index 7a8fb807cc..8f9414f0e5 100644
--- a/lisp/gs.el
+++ b/lisp/gs.el
@@ -1,6 +1,7 @@
;;; gs.el --- interface to Ghostscript
-;; Copyright (C) 1998, 2001, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: internal
diff --git a/lisp/help-at-pt.el b/lisp/help-at-pt.el
index f3321e437d..fcb431feba 100644
--- a/lisp/help-at-pt.el
+++ b/lisp/help-at-pt.el
@@ -1,6 +1,6 @@
;;; help-at-pt.el --- local help through the keyboard
-;; Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Luc Teirlinck <teirllm@auburn.edu>
;; Keywords: help
diff --git a/lisp/help-fns.el b/lisp/help-fns.el
index 58a633e179..ed58234ffa 100644
--- a/lisp/help-fns.el
+++ b/lisp/help-fns.el
@@ -1,7 +1,7 @@
;;; help-fns.el --- Complex help functions
-;; Copyright (C) 1985, 86, 93, 94, 98, 1999, 2000, 01, 02, 03, 2004
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1993, 1994, 1998, 1999, 2000, 2001,
+;; 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: help, internal
@@ -217,13 +217,13 @@ ARGLIST can also be t or a string of the form \"(FUN ARG1 ARG2 ...)\"."
(intern (upcase name))))))
arglist)))
-;;; Could be this, if we make symbol-file do the work below.
-;;; (defun help-C-file-name (subr-or-var kind)
-;;; "Return the name of the C file where SUBR-OR-VAR is defined.
-;;; KIND should be `var' for a variable or `subr' for a subroutine."
-;;; (symbol-file (if (symbolp subr-or-var) subr-or-var
-;;; (subr-name subr-or-var))
-;;; (if (eq kind 'var) 'defvar 'defun)))
+;; Could be this, if we make symbol-file do the work below.
+;; (defun help-C-file-name (subr-or-var kind)
+;; "Return the name of the C file where SUBR-OR-VAR is defined.
+;; KIND should be `var' for a variable or `subr' for a subroutine."
+;; (symbol-file (if (symbolp subr-or-var) subr-or-var
+;; (subr-name subr-or-var))
+;; (if (eq kind 'var) 'defvar 'defun)))
;;;###autoload
(defun help-C-file-name (subr-or-var kind)
"Return the name of the C file where SUBR-OR-VAR is defined.
@@ -724,5 +724,5 @@ BUFFER should be a buffer or a buffer name."
(provide 'help-fns)
-;;; arch-tag: 9e10331c-ae81-4d13-965d-c4819aaab0b3
+;; arch-tag: 9e10331c-ae81-4d13-965d-c4819aaab0b3
;;; help-fns.el ends here
diff --git a/lisp/help-macro.el b/lisp/help-macro.el
index cf3e63d8d7..33ee42abe7 100644
--- a/lisp/help-macro.el
+++ b/lisp/help-macro.el
@@ -1,6 +1,7 @@
;;; help-macro.el --- makes command line help such as help-for-help
-;; Copyright (C) 1993, 1994 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lynn Slater <lrs@indetech.com>
;; Maintainer: FSF
diff --git a/lisp/help-mode.el b/lisp/help-mode.el
index 3349bc058f..eac7caad0c 100644
--- a/lisp/help-mode.el
+++ b/lisp/help-mode.el
@@ -1,7 +1,7 @@
;;; help-mode.el --- `help-mode' used by *Help* buffers
-;; Copyright (C) 1985, 1986, 1993, 1994, 1998, 1999, 2000, 2001, 2002, 2004
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1993, 1994, 1998, 1999, 2000, 2001, 2002,
+;; 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: help, internal
@@ -631,5 +631,5 @@ For the cross-reference format, see `help-make-xrefs'."
(provide 'help-mode)
-;;; arch-tag: 850954ae-3725-4cb4-8e91-0bf6d52d6b0b
+;; arch-tag: 850954ae-3725-4cb4-8e91-0bf6d52d6b0b
;;; help-mode.el ends here
diff --git a/lisp/help.el b/lisp/help.el
index bab0592160..cb634e2bda 100644
--- a/lisp/help.el
+++ b/lisp/help.el
@@ -1,7 +1,7 @@
;;; help.el --- help commands for Emacs
-;; Copyright (C) 1985, 1986, 1993, 1994, 1998, 1999, 2000, 2001, 2002, 2004,
-;; 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1993, 1994, 1998, 1999, 2000, 2001, 2002,
+;; 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: help, internal
diff --git a/lisp/hexl.el b/lisp/hexl.el
index 894633a1f3..45044da098 100644
--- a/lisp/hexl.el
+++ b/lisp/hexl.el
@@ -1,6 +1,7 @@
;;; hexl.el --- edit a file in a hex dump format using the hexl filter
-;; Copyright (C) 1989, 1994, 1998, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1989, 1994, 1998, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Keith Gabryelski <ag@wheaties.ai.mit.edu>
;; Maintainer: FSF
@@ -84,12 +85,12 @@ Quoting cannot be used, so the arguments cannot themselves contain spaces."
:options '(hexl-follow-line hexl-activate-ruler turn-on-eldoc-mode)
:group 'hexl)
-(defface hexl-address-area
+(defface hexl-address-region
'((t (:inherit header-line)))
"Face used in address are of hexl-mode buffer."
:group 'hexl)
-(defface hexl-ascii-area
+(defface hexl-ascii-region
'((t (:inherit header-line)))
"Face used in ascii are of hexl-mode buffer."
:group 'hexl)
@@ -120,8 +121,8 @@ Quoting cannot be used, so the arguments cannot themselves contain spaces."
(defvar hexl-font-lock-keywords
'(("^\\([0-9a-f]+:\\).\\{40\\} \\(.+$\\)"
;; "^\\([0-9a-f]+:\\).+ \\(.+$\\)"
- (1 'hexl-address-area t t)
- (2 'hexl-ascii-area t t)))
+ (1 'hexl-address-region t t)
+ (2 'hexl-ascii-region t t)))
"Font lock keywords used in `hexl-mode'.")
;; routines
@@ -287,7 +288,7 @@ You can use \\[hexl-find-file] to visit a file in Hexl mode.
(set (make-local-variable 'eldoc-documentation-function)
'hexl-print-current-point-info)
(eldoc-add-command-completions "hexl-")
- (eldoc-remove-command "hexl-save-buffer"
+ (eldoc-remove-command "hexl-save-buffer"
"hexl-current-address")
(if hexl-follow-ascii (hexl-follow-ascii 1)))
@@ -425,7 +426,7 @@ Ask the user for confirmation."
(defun hexl-print-current-point-info ()
"Return current hexl-address in string.
-This function is indented to be used as eldoc callback."
+This function is intended to be used as eldoc callback."
(let ((addr (hexl-current-address)))
(format "Current address is %d/0x%08x" addr addr)))
@@ -918,7 +919,7 @@ Customize the variable `hexl-follow-ascii' to disable this feature."
(defun hexl-activate-ruler ()
"Activate `ruler-mode'"
(require 'ruler-mode)
- (set (make-local-variable 'ruler-mode-ruler-function)
+ (set (make-local-variable 'ruler-mode-ruler-function)
'hexl-mode-ruler)
(ruler-mode 1))
@@ -929,12 +930,12 @@ Customize the variable `hexl-follow-ascii' to disable this feature."
(with-no-warnings
(set (make-local-variable 'hl-line-range-function)
'hexl-highlight-line-range)
- (set (make-local-variable 'hl-line-face)
+ (set (make-local-variable 'hl-line-face)
'highlight))
(hl-line-mode 1))
(defun hexl-highlight-line-range ()
- "Return the range of address area for the point.
+ "Return the range of address region for the point.
This function is assumed to be used as call back function for `hl-line-mode'."
(cons
(line-beginning-position)
@@ -1009,7 +1010,8 @@ This function is assumed to be used as call back function for `hl-line-mode'."
(define-key hexl-mode-map "\C-e" 'hexl-end-of-line)
(define-key hexl-mode-map "\C-f" 'hexl-forward-char)
- (if (not (eq (key-binding (char-to-string help-char)) 'help-command))
+ (if (not (memq (key-binding (char-to-string help-char))
+ '(help-command ehelp-command)))
(define-key hexl-mode-map (char-to-string help-char) 'undefined))
(define-key hexl-mode-map "\C-k" 'undefined)
diff --git a/lisp/hi-lock.el b/lisp/hi-lock.el
index d7aec9112b..14920cf93c 100644
--- a/lisp/hi-lock.el
+++ b/lisp/hi-lock.el
@@ -1,6 +1,7 @@
;;; hi-lock.el --- minor mode for interactive automatic highlighting
-;; Copyright (C) 2000, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David M. Koppelman, koppel@ee.lsu.edu
;; Keywords: faces, minor-mode, matching, display
diff --git a/lisp/hilit-chg.el b/lisp/hilit-chg.el
index 59468147cb..7011ff37dd 100644
--- a/lisp/hilit-chg.el
+++ b/lisp/hilit-chg.el
@@ -1,6 +1,7 @@
;;; hilit-chg.el --- minor mode displaying buffer changes with special face
-;; Copyright (C) 1998, 2000, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Richard Sharman <rsharman@pobox.com>
;; Keywords: faces
@@ -81,11 +82,11 @@
;;
;; Example usage:
;; (defun my-highlight-changes-enable-hook ()
-;; (add-hook 'local-write-file-hooks 'highlight-changes-rotate-faces)
+;; (add-hook 'write-file-functions 'highlight-changes-rotate-faces nil t)
;; )
;;
;; (defun my-highlight-changes-disable-hook ()
-;; (remove-hook 'local-write-file-hooks 'highlight-changes-rotate-faces)
+;; (remove-hook 'write-file-functions 'highlight-changes-rotate-faces t)
;; )
;;
;; (add-hook 'highlight-changes-enable-hook 'my-highlight-changes-enable-hook)
@@ -213,7 +214,7 @@
;; indentation on inserts gets underlined (which can look pretty ugly!).
(defface highlight-changes
- '((((min-colors 88) (class color)) (:foreground "red1" ))
+ '((((min-colors 88) (class color)) (:foreground "red1"))
(((class color)) (:foreground "red" ))
(t (:inverse-video t)))
"Face used for highlighting changes."
@@ -270,7 +271,7 @@ This variable must be set to one of the symbols `active' or `passive'."
(defcustom highlight-changes-global-initial-state 'passive
"*What state `global-highlight-changes' should start in.
This is used if `global-highlight-changes' is called with no argument.
-This variable must be set to either `active' or `passive'"
+This variable must be set to either `active' or `passive'."
:type '(choice (const :tag "Active" active)
(const :tag "Passive" passive))
:group 'highlight-changes)
@@ -302,8 +303,8 @@ A list means the elements are major modes suitable for Highlight
Changes mode, or a list whose first element is `not' followed by major
modes which are not suitable.
-t means the buffer is suitable if it is visiting a file and its name
-does not begin with ` ' or `*'.
+A value of t means the buffer is suitable if it is visiting a file and
+its name does not begin with ` ' or `*'.
A value of nil means no buffers are suitable for `global-highlight-changes'
\(effectively disabling the mode).
@@ -488,7 +489,7 @@ This is the opposite of `hilit-chg-display-changes'."
"Fix change overlays in region between BEG and END.
Ensure the overlays agree with the changes as determined from
-the text properties of type `hilit-chg' ."
+the text properties of type `hilit-chg'."
;; Remove or alter overlays in region beg..end
(let (ov-start ov-end props q)
;; temp for debugging:
@@ -641,12 +642,12 @@ Functions:
\\[highlight-changes-remove-highlight] - remove the change face from the region
\\[highlight-changes-rotate-faces] - rotate different \"ages\" of changes \
through
- various faces.
+ various faces
Hook variables:
-`highlight-changes-enable-hook' - when enabling Highlight Changes mode.
+`highlight-changes-enable-hook' - when enabling Highlight Changes mode
`highlight-changes-toggle-hook' - when entering active or passive state
-`highlight-changes-disable-hook' - when turning off Highlight Changes mode."
+`highlight-changes-disable-hook' - when turning off Highlight Changes mode"
(interactive "P")
(if (or (display-color-p)
(and (fboundp 'x-display-grayscale-p) (x-display-grayscale-p)))
@@ -672,6 +673,7 @@ Hook variables:
(if new-highlight-changes-mode
;; mode is turned on -- but may be passive
(progn
+ (add-to-list 'desktop-locals-to-save 'highlight-changes-mode)
(hilit-chg-set new-highlight-changes-mode)
(or was-on
;; run highlight-changes-enable-hook once
@@ -781,11 +783,11 @@ of `highlight-changes-face-list', one level older changes are shown in
face described by the second element, and so on. Very old changes remain
shown in the last face in the list.
-You can automatically rotate colors when the buffer is saved
-by adding the following to `local-write-file-hooks', by evaling it in the
-buffer to be saved):
+You can automatically rotate colors when the buffer is saved by adding
+this function to `write-file-functions' as a buffer-local value. To do
+this, eval the following in the buffer to be saved:
- \(add-hook 'local-write-file-hooks 'highlight-changes-rotate-faces)"
+ \(add-hook 'write-file-functions 'highlight-changes-rotate-faces nil t)"
(interactive)
;; If not in active mode do nothing but don't complain because this
;; may be bound to a hook.
@@ -800,8 +802,7 @@ buffer to be saved):
;; and display them all if active
(if (eq highlight-changes-mode 'active)
(hilit-chg-display-changes))))
- ;; This always returns nil so it is safe to use in
- ;; local-write-file-hook
+ ;; This always returns nil so it is safe to use in write-file-functions
nil)
;; ========================================================================
@@ -886,7 +887,7 @@ The default is the current buffer and the one in the next window.
If either buffer is modified and is visiting a file, you are prompted
to save the file.
-Unless the buffer is unmodified and visiting a file, the buffer is
+Unless the buffer is unmodified and visiting a file, the buffer is
written to a temporary file for comparison.
If a buffer is read-only, differences will be highlighted but no property
@@ -1110,9 +1111,9 @@ variable `highlight-changes-global-changes-existing-buffers' is non-nil).
A buffer is appropriate for Highlight Changes mode if all these are true:
- the buffer is not a special buffer (one whose name begins with
- `*' or ` ')
+ `*' or ` '),
- the buffer's mode is suitable as per variable
- `highlight-changes-global-modes'
+ `highlight-changes-global-modes',
- Highlight Changes mode is not already on for this buffer.
This function is called from `hilit-chg-update-all-buffers' or
@@ -1154,6 +1155,16 @@ from `global-highlight-changes' when turning on global Highlight Changes mode."
)))
(buffer-list)))
+;;;; Desktop support.
+
+;; Called by `desktop-create-buffer' to restore `highlight-changes-mode'.
+(defun hilit-chg-desktop-restore (desktop-buffer-locals)
+ (highlight-changes-mode
+ (or (cdr (assq 'highlight-changes-mode desktop-buffer-locals)) 1)))
+
+(add-to-list 'desktop-minor-mode-handlers
+ '(highlight-changes-mode . hilit-chg-desktop-restore))
+
;; ===================== debug ==================
;; For debug & test use:
;;
diff --git a/lisp/hippie-exp.el b/lisp/hippie-exp.el
index cdbc03bd1f..1210166305 100644
--- a/lisp/hippie-exp.el
+++ b/lisp/hippie-exp.el
@@ -1,6 +1,6 @@
;;; hippie-exp.el --- expand text trying various ways to find its expansion
-;; Copyright (C) 1992 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Anders Holst <aho@sans.kth.se>
;; Last change: 3 March 1998
diff --git a/lisp/hl-line.el b/lisp/hl-line.el
index 85617eab68..3dd56f2f23 100644
--- a/lisp/hl-line.el
+++ b/lisp/hl-line.el
@@ -1,6 +1,7 @@
;;; hl-line.el --- highlight the current line
-;; Copyright (C) 1998, 2000, 2001, 2003, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Dave Love <fx@gnu.org>
;; Maintainer: FSF
diff --git a/lisp/ibuf-ext.el b/lisp/ibuf-ext.el
index 9aef1ed95b..e6fc1d67b8 100644
--- a/lisp/ibuf-ext.el
+++ b/lisp/ibuf-ext.el
@@ -1,6 +1,7 @@
;;; ibuf-ext.el --- extensions for ibuffer
-;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Colin Walters <walters@verbum.org>
;; Maintainer: John Paul Wallington <jpw@gnu.org>
@@ -221,8 +222,7 @@ Currently, this only applies to `ibuffer-saved-filters' and
(ibuffer-buf-matches-predicates buf ibuffer-always-show-predicates)))))
(defun ibuffer-auto-update-changed ()
- (when ibuffer-auto-buffers-changed
- (setq ibuffer-auto-buffers-changed nil)
+ (when (frame-or-buffer-changed-p 'ibuffer-auto-buffers-changed)
(mapcar #'(lambda (buf)
(ignore-errors
(with-current-buffer buf
@@ -242,10 +242,7 @@ With numeric ARG, enable auto-update if and only if ARG is positive."
(if arg
(plusp arg)
(not ibuffer-auto-mode)))
- (defadvice get-buffer-create (after ibuffer-notify-create activate)
- (setq ibuffer-auto-buffers-changed t))
- (defadvice kill-buffer (after ibuffer-notify-kill activate)
- (setq ibuffer-auto-buffers-changed t))
+ (frame-or-buffer-changed-p 'ibuffer-auto-buffers-changed)
(add-hook 'post-command-hook 'ibuffer-auto-update-changed)
(ibuffer-update-mode-name))
diff --git a/lisp/ibuf-macs.el b/lisp/ibuf-macs.el
index aebe923ee8..5274e3173e 100644
--- a/lisp/ibuf-macs.el
+++ b/lisp/ibuf-macs.el
@@ -1,6 +1,7 @@
;;; ibuf-macs.el --- macros for ibuffer
-;; Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Colin Walters <walters@verbum.org>
;; Maintainer: John Paul Wallington <jpw@gnu.org>
diff --git a/lisp/ibuffer.el b/lisp/ibuffer.el
index dd0fba2091..7d6b72b06a 100644
--- a/lisp/ibuffer.el
+++ b/lisp/ibuffer.el
@@ -1,6 +1,7 @@
;;; ibuffer.el --- operate on buffers like dired
-;; Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Colin Walters <walters@verbum.org>
;; Maintainer: John Paul Wallington <jpw@gnu.org>
@@ -39,6 +40,21 @@
(require 'font-core)
+;; These come from ibuf-ext.el, which can not be require'd at compile time
+;; because it has a recursive dependency on ibuffer.el
+(defvar ibuffer-auto-mode)
+(defvar ibuffer-cached-filter-formats)
+(defvar ibuffer-compiled-filter-formats)
+(defvar ibuffer-filter-format-alist)
+(defvar ibuffer-filter-group-kill-ring)
+(defvar ibuffer-filter-groups)
+(defvar ibuffer-filtering-qualifiers)
+(defvar ibuffer-hidden-filter-groups)
+(defvar ibuffer-inline-columns)
+(defvar ibuffer-show-empty-filter-groups)
+(defvar ibuffer-tmp-hide-regexps)
+(defvar ibuffer-tmp-show-regexps)
+
(defgroup ibuffer nil
"An advanced replacement for `buffer-menu'.
@@ -193,11 +209,12 @@ view of the buffers."
(defvar ibuffer-sorting-reversep nil)
(defcustom ibuffer-elide-long-columns nil
- "If non-nil, then elide column entries which exceed their max length.
-This variable is deprecated; use the :elide argument of
-`ibuffer-formats' to elide just certain columns."
+ "If non-nil, then elide column entries which exceed their max length."
:type 'boolean
:group 'ibuffer)
+(make-obsolete-variable 'ibuffer-elide-long-columns
+ "use the :elide argument of `ibuffer-formats'."
+ "22.1")
(defcustom ibuffer-eliding-string "..."
"The string to use for eliding long columns."
@@ -307,13 +324,15 @@ directory, like `default-directory'."
"Hook run when `ibuffer' is called."
:type 'hook
:group 'ibuffer)
-(defvaralias 'ibuffer-hooks 'ibuffer-hook)
+(define-obsolete-variable-alias 'ibuffer-hooks
+ 'ibuffer-hook "22.1")
(defcustom ibuffer-mode-hook nil
"Hook run upon entry into `ibuffer-mode'."
:type 'hook
:group 'ibuffer)
-(defvaralias 'ibuffer-mode-hooks 'ibuffer-mode-hook)
+(define-obsolete-variable-alias 'ibuffer-mode-hooks
+ 'ibuffer-mode-hook "22.1")
(defcustom ibuffer-load-hook nil
"Hook run when Ibuffer is loaded."
@@ -810,6 +829,11 @@ directory, like `default-directory'."
(defvar ibuffer-did-modification nil)
+(defvar ibuffer-compiled-formats nil)
+(defvar ibuffer-cached-formats nil)
+(defvar ibuffer-cached-eliding-string nil)
+(defvar ibuffer-cached-elide-long-columns 0)
+
(defvar ibuffer-sorting-functions-alist nil
"An alist of functions which describe how to sort buffers.
@@ -838,7 +862,7 @@ width and the longest string in LIST."
(while list
(dotimes (i (1- columns))
(insert (concat (car list) (make-string (- max (length (car list)))
- ? )))
+ ?\s)))
(setq list (cdr list)))
(when (not (null list))
(insert (pop list)))
@@ -861,7 +885,7 @@ width and the longest string in LIST."
(let ((mark (ibuffer-current-mark)))
(setq buffer-read-only nil)
(if (eq mark ibuffer-marked-char)
- (ibuffer-set-mark ? )
+ (ibuffer-set-mark ?\s)
(ibuffer-set-mark ibuffer-marked-char)))))
(setq buffer-read-only t)))
@@ -1153,7 +1177,7 @@ a new window in the current frame, splitting vertically."
(if all
(ibuffer-map-lines-nomodify
#'(lambda (buf mark)
- (not (char-equal mark ? ))))
+ (not (char-equal mark ?\s))))
(ibuffer-map-lines-nomodify
#'(lambda (buf mark)
(char-equal mark ibuffer-marked-char)))))
@@ -1227,18 +1251,18 @@ a new window in the current frame, splitting vertically."
((char-equal mark ibuffer-marked-char)
(ibuffer-map-marked-lines
#'(lambda (buf mark)
- (ibuffer-set-mark-1 ? )
+ (ibuffer-set-mark-1 ?\s)
t)))
((char-equal mark ibuffer-deletion-char)
(ibuffer-map-deletion-lines
#'(lambda (buf mark)
- (ibuffer-set-mark-1 ? )
+ (ibuffer-set-mark-1 ?\s)
t)))
(t
(ibuffer-map-lines
#'(lambda (buf mark)
- (when (not (char-equal mark ? ))
- (ibuffer-set-mark-1 ? ))
+ (when (not (char-equal mark ?\s))
+ (ibuffer-set-mark-1 ?\s))
t)))))
(ibuffer-redisplay t))
@@ -1255,9 +1279,9 @@ group."
(ibuffer-map-lines
#'(lambda (buf mark)
(cond ((eq mark ibuffer-marked-char)
- (ibuffer-set-mark-1 ? )
+ (ibuffer-set-mark-1 ?\s)
nil)
- ((eq mark ? )
+ ((eq mark ?\s)
(ibuffer-set-mark-1 ibuffer-marked-char)
t)
(t
@@ -1276,13 +1300,13 @@ If point is on a group name, this function operates on that group."
"Unmark the buffer on this line, and move forward ARG lines.
If point is on a group name, this function operates on that group."
(interactive "P")
- (ibuffer-mark-interactive arg ? 1))
+ (ibuffer-mark-interactive arg ?\s 1))
(defun ibuffer-unmark-backward (arg)
"Unmark the buffer on this line, and move backward ARG lines.
If point is on a group name, this function operates on that group."
(interactive "P")
- (ibuffer-mark-interactive arg ? -1))
+ (ibuffer-mark-interactive arg ?\s -1))
(defun ibuffer-mark-interactive (arg mark movement)
(assert (eq major-mode 'ibuffer-mode))
@@ -1390,7 +1414,7 @@ If point is on a group name, this function operates on that group."
(defun ibuffer-compile-make-eliding-form (strvar elide from-end-p)
(let ((ellipsis (propertize ibuffer-eliding-string 'font-lock-face 'bold)))
- (if (or elide ibuffer-elide-long-columns)
+ (if (or elide (with-no-warnings ibuffer-elide-long-columns))
`(if (> strlen 5)
,(if from-end-p
`(concat ,ellipsis
@@ -1409,8 +1433,8 @@ If point is on a group name, this function operates on that group."
`(substring ,strvar 0 ,maxvar)))
(defun ibuffer-compile-make-format-form (strvar widthform alignment)
- (let* ((left `(make-string tmp2 ? ))
- (right `(make-string (- tmp1 tmp2) ? )))
+ (let* ((left `(make-string tmp2 ?\s))
+ (right `(make-string (- tmp1 tmp2) ?\s)))
`(progn
(setq tmp1 ,widthform
tmp2 (/ tmp1 2))
@@ -1563,11 +1587,6 @@ If point is on a group name, this function operates on that group."
'(tmp2)))
,@(nreverse result))))))))
-(defvar ibuffer-compiled-formats nil)
-(defvar ibuffer-cached-formats nil)
-(defvar ibuffer-cached-eliding-string nil)
-(defvar ibuffer-cached-elide-long-columns 0)
-
(defun ibuffer-recompile-formats ()
"Recompile `ibuffer-formats'."
(interactive)
@@ -1599,7 +1618,7 @@ If point is on a group name, this function operates on that group."
(not (equal ibuffer-cached-eliding-string ibuffer-eliding-string))
(eql 0 ibuffer-cached-elide-long-columns)
(not (eql ibuffer-cached-elide-long-columns
- ibuffer-elide-long-columns))
+ (with-no-warnings ibuffer-elide-long-columns)))
(and ext-loaded
(not (eq ibuffer-cached-filter-formats
ibuffer-filter-format-alist))
@@ -1609,7 +1628,7 @@ If point is on a group name, this function operates on that group."
(ibuffer-recompile-formats)
(setq ibuffer-cached-formats ibuffer-formats
ibuffer-cached-eliding-string ibuffer-eliding-string
- ibuffer-cached-elide-long-columns ibuffer-elide-long-columns)
+ ibuffer-cached-elide-long-columns (with-no-warnings ibuffer-elide-long-columns))
(when ext-loaded
(setq ibuffer-cached-filter-formats ibuffer-filter-format-alist))
(message "Formats have changed, recompiling...done"))))
@@ -1690,7 +1709,7 @@ If point is on a group name, this function operates on that group."
(and (boundp 'dired-directory)
(if (stringp dired-directory)
dired-directory
- (car dired-directory)))
+ (car dired-directory)))
""))))
(define-ibuffer-column filename-and-process
@@ -1724,8 +1743,8 @@ If point is on a group name, this function operates on that group."
filename)))
(defun ibuffer-format-column (str width alignment)
- (let ((left (make-string (/ width 2) ? ))
- (right (make-string (- width (/ width 2)) ? )))
+ (let ((left (make-string (/ width 2) ?\s))
+ (right (make-string (- width (/ width 2)) ?\s)))
(case alignment
(:right (concat left right str))
(:center (concat left str right))
@@ -1881,7 +1900,7 @@ the value of point at the beginning of the line for that buffer."
(mapcar #'(lambda (buf) (let ((e (assq buf bufs)))
(if e
e
- (cons buf ? ))))
+ (cons buf ?\s))))
curbufs)))
(defun ibuffer-buf-matches-predicates (buf predicates)
@@ -1989,10 +2008,10 @@ the value of point at the beginning of the line for that buffer."
(buffer-substring (point) (line-end-position)))))
(apply #'insert (mapcar
#'(lambda (c)
- (if (not (or (char-equal c ? )
+ (if (not (or (char-equal c ?\s)
(char-equal c ?\n)))
?-
- ? ))
+ ?\s))
str)))
(insert "\n"))
(point))
@@ -2011,7 +2030,7 @@ the value of point at the beginning of the line for that buffer."
(dolist (element format)
(insert
(if (stringp element)
- (make-string (length element) ? )
+ (make-string (length element) ?\s)
(let ((sym (car element)))
(let ((min (cadr element))
;; (max (caddr element))
@@ -2023,7 +2042,7 @@ the value of point at the beginning of the line for that buffer."
(funcall (get sym 'ibuffer-column-summarizer)
(get sym 'ibuffer-column-summary))
(make-string (length (get sym 'ibuffer-column-name))
- ? )))
+ ?\s)))
(len (length summary)))
(if (< len min)
(ibuffer-format-column summary
@@ -2241,22 +2260,22 @@ buffers which are visiting a file."
;;;###autoload
(defun ibuffer (&optional other-window-p name qualifiers noselect
shrink filter-groups formats)
- "Begin using `ibuffer' to edit a list of buffers.
+ "Begin using Ibuffer to edit a list of buffers.
Type 'h' after entering ibuffer for more information.
-Optional argument OTHER-WINDOW-P says to use another window.
-Optional argument NAME specifies the name of the buffer; it defaults
-to \"*Ibuffer*\".
-Optional argument QUALIFIERS is an initial set of filtering qualifiers
-to use; see `ibuffer-filtering-qualifiers'.
-Optional argument NOSELECT means don't select the Ibuffer buffer.
-Optional argument SHRINK means shrink the buffer to minimal size. The
-special value `onewindow' means always use another window.
-Optional argument FILTER-GROUPS is an initial set of filtering
-groups to use; see `ibuffer-filter-groups'.
-Optional argument FORMATS is the value to use for `ibuffer-formats'.
-If specified, then the variable `ibuffer-formats' will have that value
-locally in this buffer."
+All arguments are optional.
+OTHER-WINDOW-P says to use another window.
+NAME specifies the name of the buffer (defaults to \"*Ibuffer*\").
+QUALIFIERS is an initial set of filtering qualifiers to use;
+ see `ibuffer-filtering-qualifiers'.
+NOSELECT means don't select the Ibuffer buffer.
+SHRINK means shrink the buffer to minimal size. The special
+ value `onewindow' means always use another window.
+FILTER-GROUPS is an initial set of filtering groups to use;
+ see `ibuffer-filter-groups'.
+FORMATS is the value to use for `ibuffer-formats'.
+ If specified, then the variable `ibuffer-formats' will have
+ that value locally in this buffer."
(interactive "P")
(when ibuffer-use-other-window
(setq other-window-p t))
@@ -2297,7 +2316,7 @@ locally in this buffer."
(put 'ibuffer-mode 'mode-class 'special)
(defun ibuffer-mode ()
"A major mode for viewing a list of buffers.
-In ibuffer, you can conveniently perform many operations on the
+In Ibuffer, you can conveniently perform many operations on the
currently open buffers, in addition to filtering your view to a
particular subset of them, and sorting by various criteria.
diff --git a/lisp/icomplete.el b/lisp/icomplete.el
index 9e9662c169..085c111d85 100644
--- a/lisp/icomplete.el
+++ b/lisp/icomplete.el
@@ -1,7 +1,7 @@
;;; icomplete.el --- minibuffer completion incremental feedback
-;; Copyright (C) 1992, 1993, 1994, 1997, 1999, 2001, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1993, 1994, 1997, 1999, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Ken Manheimer <klm@i.am>
;; Maintainer: Ken Manheimer <klm@i.am>
@@ -243,13 +243,15 @@ and `minibuffer-setup-hook'."
;; embarking on computing completions:
(sit-for icomplete-compute-delay)))
(let ((text (while-no-input
- (icomplete-completions
- (field-string)
- minibuffer-completion-table
- minibuffer-completion-predicate
- (not minibuffer-completion-confirm))))
+ (list
+ (icomplete-completions
+ (field-string)
+ minibuffer-completion-table
+ minibuffer-completion-predicate
+ (not minibuffer-completion-confirm)))))
(buffer-undo-list t))
- (if text (insert text)))))))
+ ;; Do nothing if while-no-input was aborted.
+ (if (consp text) (insert (car text))))))))
;;;_ > icomplete-completions (name candidates predicate require-match)
(defun icomplete-completions (name candidates predicate require-match)
diff --git a/lisp/ido.el b/lisp/ido.el
index d4d94164f3..7c9d269417 100644
--- a/lisp/ido.el
+++ b/lisp/ido.el
@@ -1,6 +1,7 @@
;;; ido.el --- interactively do things with buffers and files.
-;; Copyright (C) 1996-2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Kim F. Storm <storm@cua.dk>
;; Based on: iswitchb by Stephen Eglen <stephen@cns.ed.ac.uk>
@@ -101,9 +102,9 @@
;; The list in {...} are the matching buffers, most recent first
;; (buffers visible in the current frame are put at the end of the
;; list by default). At any time I can select the item at the head of
-;; the list by pressing RET. I can also bring the put the first
-;; element at the end of the list by pressing C-s or [right], or put
-;; the last element at the head of the list by pressing C-r or [left].
+;; the list by pressing RET. I can also put the first element at the
+;; end of the list by pressing C-s or [right], or bring the last
+;; element to the head of the list by pressing C-r or [left].
;;
;; The item in [...] indicates what can be added to my input by
;; pressing TAB. In this case, I will get "3" added to my input.
@@ -210,8 +211,7 @@
;; Example:
;;
;; If you have again two Buffers "123456" and "123" then hitting "2" does
-;; not match because "2" is not a PREFIX in any of the buffer-names. This
-;; is the only difference between the substring and prefix matching.
+;; not match because "2" is not a PREFIX in any of the buffer-names.
;; Flexible matching
;; -----------------
@@ -236,14 +236,10 @@
;;
;; There is limited provision for regexp matching within ido,
;; enabled through `ido-enable-regexp' (toggle with C-t).
-;; This allows you to type `c$' for example and see all file names
-;; ending in `c'. This facility is quite limited though in two
-;; respects. First, you can't currently type in expressions like
-;; `[0-9]' directly -- you have to type them in when ido-enable-regexp
-;; is nil and then toggle on the regexp functionality. Likewise,
-;; don't enter an expression containing `\' in regexp mode. If you
-;; try, ido gets confused, so just hit C-g and try again. Secondly,
-;; no completion mechanism is currently offered with regexp searching.
+;; This allows you to type `[ch]$' for example and see all file names
+;; ending in `c' or `h'.
+;;
+;; Note: ido-style completion is inhibited when you enable regexp matching.
;; Customization
@@ -327,6 +323,8 @@
(provide 'ido)
+(defvar cua-inhibit-cua-keys)
+
;;; User Variables
;;
;; These are some things you might want to change.
@@ -371,7 +369,7 @@ use either \\[customize] or the function `ido-mode'."
Setting this variable directly does not work. Use `customize' or
call the function `ido-everywhere'."
:set #'(lambda (symbol value)
- (ido-everywhere value))
+ (ido-everywhere (if value 1 -1)))
:initialize 'custom-initialize-default
:type 'boolean
:group 'ido)
@@ -578,8 +576,12 @@ the `ido-work-directory-list' list."
(defcustom ido-use-filename-at-point nil
"*Non-nil means that ido shall look for a filename at point.
+May use `ffap-guesser' to guess whether text at point is a filename.
If found, use that as the starting point for filename selection."
- :type 'boolean
+ :type '(choice
+ (const :tag "Disabled" nil)
+ (const :tag "Guess filename" guess)
+ (other :tag "Use literal filename" t))
:group 'ido)
@@ -688,12 +690,17 @@ not provide the normal completion. To show the completions, use C-a."
:type 'boolean
:group 'ido)
-(defcustom ido-enter-single-matching-directory 'slash
- "*Automatically enter sub-directory if it is the only matching item, if non-nil.
-If value is 'slash, only enter if typing final slash, else do it always."
+(defcustom ido-enter-matching-directory 'only
+ "*Additional methods to enter sub-directory of first/only matching item.
+If value is 'first, enter first matching sub-directory when typing a slash.
+If value is 'only, typing a slash only enters the sub-directory if it is
+the only matching item.
+If value is t, automatically enter a sub-directory when it is the only
+matching item, even without typing a slash."
:type '(choice (const :tag "Never" nil)
- (const :tag "When typing /" slash)
- (other :tag "Always" t))
+ (const :tag "Slash enters first directory" first)
+ (const :tag "Slash enters first and only directory" only)
+ (other :tag "Always enter unique directory" t))
:group 'ido)
(defcustom ido-create-new-buffer 'prompt
@@ -881,6 +888,12 @@ the file name using normal `read-file-name' style."
:type '(repeat symbol)
:group 'ido)
+(defcustom ido-before-fallback-functions '()
+ "List of functions to call before calling a fallback command.
+The fallback command is passed as an argument to the functions."
+ :type 'hook
+ :group 'ido)
+
;;; Internal Variables
;; Persistent variables
@@ -1356,7 +1369,8 @@ This function also adds a hook to the minibuffer."
(define-key map [remap display-buffer] 'ido-display-buffer)))))
(defun ido-everywhere (arg)
- "Enable ido everywhere file and directory names are read."
+ "Toggle using ido speed-ups everywhere file and directory names are read.
+With ARG, turn ido speed-up on if arg is positive, off otherwise."
(interactive "P")
(setq ido-everywhere (if arg
(> (prefix-numeric-value arg) 0)
@@ -1395,7 +1409,7 @@ This function also adds a hook to the minibuffer."
(define-key map "\C-s" 'ido-next-match)
(define-key map "\C-t" 'ido-toggle-regexp)
(define-key map "\C-z" 'ido-undo-merge-work-directory)
- (define-key map [(control ? )] 'ido-restrict-to-matches)
+ (define-key map [(control ?\s)] 'ido-restrict-to-matches)
(define-key map [(control ?@)] 'ido-restrict-to-matches)
(define-key map [right] 'ido-next-match)
(define-key map [left] 'ido-prev-match)
@@ -1426,7 +1440,7 @@ This function also adds a hook to the minibuffer."
(define-key map [(meta ?m)] 'ido-make-directory)
(define-key map [(meta ?n)] 'ido-next-work-directory)
(define-key map [(meta ?o)] 'ido-prev-work-file)
- (define-key map [(meta ?O)] 'ido-next-work-file)
+ (define-key map [(meta control ?o)] 'ido-next-work-file)
(define-key map [(meta ?p)] 'ido-prev-work-directory)
(define-key map [(meta ?s)] 'ido-merge-work-directories)
)
@@ -1918,7 +1932,10 @@ If INITIAL is non-nil, it specifies the initial input string."
(defun ido-buffer-internal (method &optional fallback prompt default initial switch-cmd)
;; Internal function for ido-switch-buffer and friends
(if (not ido-mode)
- (call-interactively (or fallback 'switch-to-buffer))
+ (progn
+ (run-hook-with-args 'ido-before-fallback-functions
+ (or fallback 'switch-to-buffer))
+ (call-interactively (or fallback 'switch-to-buffer)))
(let* ((ido-context-switch-command switch-cmd)
(ido-current-directory nil)
(ido-directory-nonreadable nil)
@@ -1937,6 +1954,8 @@ If INITIAL is non-nil, it specifies the initial input string."
((eq ido-exit 'fallback)
(let ((read-buffer-function nil))
+ (run-hook-with-args 'ido-before-fallback-functions
+ (or fallback 'switch-to-buffer))
(call-interactively (or fallback 'switch-to-buffer))))
;; Check buf is non-nil.
@@ -1948,7 +1967,9 @@ If INITIAL is non-nil, it specifies the initial input string."
(if (eq method 'insert)
(progn
(ido-record-command 'insert-buffer buf)
- (insert-buffer buf))
+ (with-no-warnings
+ ;; we really want to run insert-buffer here
+ (insert-buffer buf)))
(ido-visit-buffer buf method t)))
;; buffer doesn't exist
@@ -2013,7 +2034,8 @@ If INITIAL is non-nil, it specifies the initial input string."
(setq item 'file))
(let ((ido-current-directory (ido-expand-directory default))
(ido-context-switch-command switch-cmd)
- ido-directory-nonreadable ido-directory-too-big
+ ido-directory-nonreadable ido-directory-too-big
+ (minibuffer-completing-file-name t)
filename)
(if (or (not ido-mode) (ido-is-slow-ftp-host))
@@ -2040,7 +2062,9 @@ If INITIAL is non-nil, it specifies the initial input string."
filename t))
((and ido-use-filename-at-point
- (setq fn (ffap-string-at-point))
+ (setq fn (if (eq ido-use-filename-at-point 'guess)
+ (with-no-warnings (ffap-guesser))
+ (ffap-string-at-point)))
(not (string-match "^http:/" fn))
(setq d (file-name-directory fn))
(file-directory-p d))
@@ -2068,6 +2092,8 @@ If INITIAL is non-nil, it specifies the initial input string."
;; we don't want to change directory of current buffer.
(let ((default-directory ido-current-directory)
(read-file-name-function nil))
+ (run-hook-with-args 'ido-before-fallback-functions
+ (or fallback 'find-file))
(call-interactively (or fallback 'find-file))))
((eq ido-exit 'switch-to-buffer)
@@ -2134,6 +2160,7 @@ If INITIAL is non-nil, it specifies the initial input string."
(setq filename (concat ido-current-directory filename))
(ido-record-command fallback filename)
(ido-record-work-directory)
+ (run-hook-with-args 'ido-before-fallback-functions fallback)
(funcall fallback filename))
((eq method 'insert)
@@ -2995,11 +3022,10 @@ for first matching file."
(let (res)
(message "Searching for `%s'...." text)
(condition-case nil
- (unless (catch 'input-pending-p
- (let ((throw-on-input 'input-pending-p))
- (setq res (ido-make-merged-file-list-1 text auto wide))
- t))
- (setq res 'input-pending-p))
+ (if (eq t (setq res
+ (while-no-input
+ (ido-make-merged-file-list-1 text auto wide))))
+ (setq res 'input-pending-p))
(quit
(setq res t
ido-try-merged-list nil
@@ -3342,38 +3368,37 @@ for first matching file."
(or (member name ido-ignore-item-temp-list)
(and
ido-process-ignore-lists re-list
- (let ((data (match-data))
- (ext-list (and ignore-ext ido-ignore-extensions
+ (save-match-data
+ (let ((ext-list (and ignore-ext ido-ignore-extensions
completion-ignored-extensions))
- ignorep nextstr
- (flen (length name)) slen)
- (while ext-list
- (setq nextstr (car ext-list))
- (if (cond
- ((stringp nextstr)
- (and (>= flen (setq slen (length nextstr)))
- (string-equal (substring name (- flen slen)) nextstr)))
- ((fboundp nextstr) (funcall nextstr name))
- (t nil))
- (setq ignorep t
- ext-list nil
- re-list nil)
- (setq ext-list (cdr ext-list))))
- (while re-list
- (setq nextstr (car re-list))
- (if (cond
- ((stringp nextstr) (string-match nextstr name))
- ((fboundp nextstr) (funcall nextstr name))
- (t nil))
- (setq ignorep t
- re-list nil)
- (setq re-list (cdr re-list))))
- ;; return the result
- (if ignorep
- (setq ido-ignored-list (cons name ido-ignored-list)))
- (set-match-data data)
- ignorep))))
-
+ (case-fold-search ido-case-fold)
+ ignorep nextstr
+ (flen (length name)) slen)
+ (while ext-list
+ (setq nextstr (car ext-list))
+ (if (cond
+ ((stringp nextstr)
+ (and (>= flen (setq slen (length nextstr)))
+ (string-equal (substring name (- flen slen)) nextstr)))
+ ((fboundp nextstr) (funcall nextstr name))
+ (t nil))
+ (setq ignorep t
+ ext-list nil
+ re-list nil)
+ (setq ext-list (cdr ext-list))))
+ (while re-list
+ (setq nextstr (car re-list))
+ (if (cond
+ ((stringp nextstr) (string-match nextstr name))
+ ((fboundp nextstr) (funcall nextstr name))
+ (t nil))
+ (setq ignorep t
+ re-list nil)
+ (setq re-list (cdr re-list))))
+ ;; return the result
+ (if ignorep
+ (setq ido-ignored-list (cons name ido-ignored-list)))
+ ignorep)))))
;; Private variable used by `ido-word-matching-substring'.
(defvar ido-change-word-sub)
@@ -3974,12 +3999,13 @@ For details of keybindings, do `\\[describe-function] ido-find-file'."
(ido-set-matches)
(ido-trace "new " ido-matches)
- (when (and ido-enter-single-matching-directory
+ (when (and ido-enter-matching-directory
ido-matches
- (null (cdr ido-matches))
+ (or (eq ido-enter-matching-directory 'first)
+ (null (cdr ido-matches)))
(ido-final-slash (car ido-matches))
(or try-single-dir-match
- (eq ido-enter-single-matching-directory t)))
+ (eq ido-enter-matching-directory t)))
(ido-trace "single match" (car ido-matches))
(ido-set-current-directory
(concat ido-current-directory (car ido-matches)))
@@ -4195,6 +4221,7 @@ For details of keybindings, do `\\[describe-function] ido-find-file'."
(put 'dired-do-rename 'ido 'ignore)
(put 'ibuffer-find-file 'ido 'find-file)
+(put 'dired-other-window 'ido 'dir)
;;;###autoload
(defun ido-read-buffer (prompt &optional default require-match)
@@ -4210,6 +4237,7 @@ If REQUIRE-MATCH is non-nil, an existing buffer must be selected."
(buf (ido-read-internal 'buffer prompt 'ido-buffer-history default require-match)))
(if (eq ido-exit 'fallback)
(let ((read-buffer-function nil))
+ (run-hook-with-args 'ido-before-fallback-functions 'read-buffer)
(read-buffer prompt default require-match))
buf)))
@@ -4234,6 +4262,7 @@ See `read-file-name' for additional parameters."
(ido-context-switch-command
(if (eq (get this-command 'ido) 'find-file) nil 'ignore))
(vc-handled-backends (and (boundp 'vc-handled-backends) vc-handled-backends))
+ (minibuffer-completing-file-name t)
(ido-current-directory (ido-expand-directory dir))
(ido-directory-nonreadable (not (file-readable-p ido-current-directory)))
(ido-directory-too-big (and (not ido-directory-nonreadable)
@@ -4256,6 +4285,7 @@ See `read-file-name' for additional parameters."
(setq filename 'fallback)))
(if (eq filename 'fallback)
(let ((read-file-name-function nil))
+ (run-hook-with-args 'ido-before-fallback-functions 'read-file-name)
(read-file-name prompt dir default-filename mustmatch initial predicate))
filename)))
@@ -4265,6 +4295,7 @@ See `read-file-name' for additional parameters."
Read directory name, prompting with PROMPT and completing in directory DIR.
See `read-directory-name' for additional parameters."
(let* (filename
+ (minibuffer-completing-file-name t)
(ido-context-switch-command 'ignore)
ido-saved-vc-hb
(ido-current-directory (ido-expand-directory dir))
diff --git a/lisp/ielm.el b/lisp/ielm.el
index 66a1da3906..57354008b1 100644
--- a/lisp/ielm.el
+++ b/lisp/ielm.el
@@ -1,6 +1,6 @@
;;; ielm.el --- interaction mode for Emacs Lisp
-;; Copyright (C) 1994, 2002, 2003, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: David Smith <maa036@lancaster.ac.uk>
;; Maintainer: FSF
diff --git a/lisp/iimage.el b/lisp/iimage.el
index b10679592b..ace21702a0 100644
--- a/lisp/iimage.el
+++ b/lisp/iimage.el
@@ -1,6 +1,6 @@
;;; iimage.el --- Inline image minor mode.
-;; Copyright (C) 2004, 2005 Free Software Foundation
+;; Copyright (C) 2004, 2005 Free Software Foundation, Inc.
;; Author: KOSEKI Yoshinori <kose@meadowy.org>
;; Maintainer: KOSEKI Yoshinori <kose@meadowy.org>
diff --git a/lisp/image-file.el b/lisp/image-file.el
index 8f74dd63c0..94028b740f 100644
--- a/lisp/image-file.el
+++ b/lisp/image-file.el
@@ -1,6 +1,7 @@
;;; image-file.el --- support for visiting image files
;;
-;; Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;;
;; Author: Miles Bader <miles@gnu.org>
;; Keywords: multimedia
@@ -118,6 +119,8 @@ the command `insert-file-contents'."
(create-image data nil t))
(props
`(display ,image
+ yank-handler
+ (image-file-yank-handler nil t)
intangible ,image
rear-nonsticky (display intangible)
;; This a cheap attempt to make the whole buffer
@@ -135,6 +138,25 @@ the command `insert-file-contents'."
(setq truncate-lines t))))
rval))
+;; We use a yank-handler to make yanked images unique, so that
+;; yanking two copies of the same image next to each other are
+;; recognized as two different images.
+(defun image-file-yank-handler (string)
+ "Yank handler for inserting an image into a buffer."
+ (let ((len (length string))
+ (image (get-text-property 0 'display string)))
+ (remove-text-properties 0 len yank-excluded-properties string)
+ (if (consp image)
+ (add-text-properties 0
+ (or (next-single-property-change 0 'image-counter string)
+ (length string))
+ `(display
+ ,(cons (car image) (cdr image))
+ yank-handler
+ ,(cons 'image-file-yank-handler '(nil t)))
+ string))
+ (insert string)))
+
(put 'image-file-handler 'safe-magic t)
(defun image-file-handler (operation &rest args)
"Filename handler for inserting image files.
diff --git a/lisp/image.el b/lisp/image.el
index 561e0ac0ab..b45b23db61 100644
--- a/lisp/image.el
+++ b/lisp/image.el
@@ -1,6 +1,7 @@
;;; image.el --- image API
-;; Copyright (C) 1998, 99, 2000, 01, 04 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: multimedia
diff --git a/lisp/imenu.el b/lisp/imenu.el
index a210b39c60..1a107ed8ae 100644
--- a/lisp/imenu.el
+++ b/lisp/imenu.el
@@ -1,7 +1,7 @@
;;; imenu.el --- framework for mode-specific buffer indexes
-;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 2003, 2004
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Ake Stenhoff <etxaksf@aom.ericsson.se>
;; Lars Lindberg <lli@sypro.cap.se>
diff --git a/lisp/indent.el b/lisp/indent.el
index 14488e79a6..9e84dfe13e 100644
--- a/lisp/indent.el
+++ b/lisp/indent.el
@@ -1,6 +1,7 @@
;;; indent.el --- indentation commands for Emacs
-;; Copyright (C) 1985, 1995, 2001, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1995, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
diff --git a/lisp/info-look.el b/lisp/info-look.el
index a408a7b238..ad09df777c 100644
--- a/lisp/info-look.el
+++ b/lisp/info-look.el
@@ -1,7 +1,8 @@
;;; info-look.el --- major-mode-sensitive Info index lookup facility
;; An older version of this was known as libc.el.
-;; Copyright (C) 1995,96,97,98,99,2001,03,04,05 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Ralph Schleicher <rs@nunatak.allgaeu.org>
;; (did not show signs of life (Nov 2001) -stef)
diff --git a/lisp/info-xref.el b/lisp/info-xref.el
index bffe5681cd..18d64cf0a1 100644
--- a/lisp/info-xref.el
+++ b/lisp/info-xref.el
@@ -1,6 +1,6 @@
;;; info-xref.el --- check external references in an Info document
-;; Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Kevin Ryde <user42@zip.com.au>
;; Keywords: docs
@@ -138,19 +138,25 @@ should open up the purported top file and see what subfiles it says."
;; Some dynamic variables are used to share information with sub-functions
;; below.
;;
-;; info-xref-filename - current top-level filename, eg. /usr/info/foo.info.gz
-;;
;; info-xref-filename-header - a heading message for the current top-level
;; filename, or "" when it's been printed.
;;
+(defvar info-xref-xfile-alist)
+;;
;; info-xref-good - count of good cross references.
;;
+(defvar info-xref-good)
+;;
;; info-xref-bad - count of bad cross references.
;;
+(defvar info-xref-bad)
+;;
;; info-xref-xfile-alist - indexed by "(foo)" with value nil or t according
;; to whether "(foo)" exists or not. This is used to suppress duplicate
;; messages about foo not being available. (Duplicates within one
;; top-level file that is.)
+;;
+(defvar info-xref-filename-heading)
(defun info-xref-check-list (filename-list)
"Check external references in info documents in FILENAME-LIST."
diff --git a/lisp/info.el b/lisp/info.el
index 695d67c364..4c40e187c0 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -1,7 +1,7 @@
;;; info.el --- info package for Emacs
;; Copyright (C) 1985, 1986, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: help
@@ -25,7 +25,7 @@
;;; Commentary:
-;; Note that nowadays we expect info files to be made using makeinfo.
+;; Note that nowadays we expect Info files to be made using makeinfo.
;; In particular we make these assumptions:
;; - a menu item MAY contain colons but not colon-space ": "
;; - a menu item ending with ": " (but not ":: ") is an index entry
@@ -44,20 +44,20 @@
(defvar Info-history nil
- "Stack of info nodes user has visited.
+ "Stack of Info nodes user has visited.
Each element of the stack is a list (FILENAME NODENAME BUFFERPOS).")
(defvar Info-history-forward nil
- "Stack of info nodes user has visited with `Info-history-back' command.
+ "Stack of Info nodes user has visited with `Info-history-back' command.
Each element of the stack is a list (FILENAME NODENAME BUFFERPOS).")
(defvar Info-history-list nil
- "List of all info nodes user has visited.
+ "List of all Info nodes user has visited.
Each element of the list is a list (FILENAME NODENAME).")
(defcustom Info-enable-edit nil
"*Non-nil means the \\<Info-mode-map>\\[Info-edit] command in Info can edit the current node.
-This is convenient if you want to write info files by hand.
+This is convenient if you want to write Info files by hand.
However, we recommend that you not do this.
It is better to write a Texinfo file and generate the Info file from that,
because that gives you a printed manual as well."
@@ -76,11 +76,57 @@ The Lisp code is executed when the node is selected.")
"Face for Info node names."
:group 'info)
-(defface info-menu-5
+(defface info-title-1
+ '((((type tty pc) (class color) (background light))
+ :foreground "green" :weight bold)
+ (((type tty pc) (class color) (background dark))
+ :foreground "yellow" :weight bold)
+ (t :height 1.2 :inherit info-title-2))
+ "Face for info titles at level 1."
+ :group 'info)
+;; backward-compatibility alias
+(put 'Info-title-1-face 'face-alias 'info-title-1)
+
+(defface info-title-2
+ '((((type tty pc) (class color)) :foreground "lightblue" :weight bold)
+ (t :height 1.2 :inherit info-title-3))
+ "Face for info titles at level 2."
+ :group 'info)
+;; backward-compatibility alias
+(put 'Info-title-2-face 'face-alias 'info-title-2)
+
+(defface info-title-3
+ '((((type tty pc) (class color)) :weight bold)
+ (t :height 1.2 :inherit info-title-4))
+ "Face for info titles at level 3."
+ :group 'info)
+;; backward-compatibility alias
+(put 'Info-title-3-face 'face-alias 'info-title-3)
+
+(defface info-title-4
+ '((((type tty pc) (class color)) :weight bold)
+ (t :weight bold :inherit variable-pitch))
+ "Face for info titles at level 4."
+ :group 'info)
+;; backward-compatibility alias
+(put 'Info-title-4-face 'face-alias 'info-title-4)
+
+(defface info-menu-header
+ '((((type tty pc))
+ :underline t
+ :weight bold)
+ (t
+ :inherit variable-pitch
+ :weight bold))
+ "Face for headers in Info menus."
+ :group 'info)
+
+(defface info-menu-star
'((((class color)) :foreground "red1")
(t :underline t))
"Face for every third `*' in an Info menu."
:group 'info)
+(put 'info-menu-5 'face-alias 'info-menu-star)
(defface info-xref
'((((min-colors 88)
@@ -96,12 +142,12 @@ The Lisp code is executed when the node is selected.")
(defface info-xref-visited
'((default :inherit info-xref)
(((class color) (background light)) :foreground "magenta4")
- (((class color) (background dark)) :foreground "magenta3")) ;"violet"?
+ (((class color) (background dark)) :foreground "violet"))
"Face for visited Info cross-references."
:group 'info)
(defcustom Info-fontify-visited-nodes t
- "*Non-nil means to fontify visited nodes in a different face."
+ "*Non-nil to fontify references to visited nodes in `info-xref-visited' face."
:version "22.1"
:type 'boolean
:group 'info)
@@ -165,6 +211,7 @@ These directories are searched after those in `Info-directory-list'."
(defcustom Info-scroll-prefer-subnodes nil
"*If non-nil, \\<Info-mode-map>\\[Info-scroll-up] in a menu visits subnodes.
+
If this is non-nil, and you scroll far enough in a node that its menu
appears on the screen, the next \\<Info-mode-map>\\[Info-scroll-up]
moves to a subnode indicated by the following menu item. This means
@@ -180,7 +227,8 @@ when you hit the end of the current node."
(defcustom Info-hide-note-references t
"*If non-nil, hide the tag and section reference in *note and * menu items.
If value is non-nil but not `hide', also replaces the \"*note\" with \"see\".
-If value is non-nil but not t or `hide', the reference section is still shown."
+If value is non-nil but not t or `hide', the reference section is still shown.
+`nil' completely disables this feature."
:version "22.1"
:type '(choice (const :tag "No hiding" nil)
(const :tag "Replace tag and hide reference" t)
@@ -190,7 +238,7 @@ If value is non-nil but not t or `hide', the reference section is still shown."
(defcustom Info-refill-paragraphs nil
"*If non-nil, attempt to refill paragraphs with hidden references.
-This refilling may accidentally remove explicit line breaks in the info
+This refilling may accidentally remove explicit line breaks in the Info
file, so be prepared for a few surprises if you enable this feature."
:version "22.1"
:type 'boolean
@@ -247,7 +295,7 @@ Can also be t when using `Info-on-current-buffer'.")
(defvar Info-current-subfile nil
"Info subfile that is actually in the *info* buffer now.
-nil if current info file is not split into subfiles.")
+nil if current Info file is not split into subfiles.")
(defvar Info-current-node nil
"Name of node that Info is now looking at, or nil.")
@@ -357,7 +405,7 @@ be last in the list.")
(not (file-directory-p filename))))
(defun info-insert-file-contents (filename &optional visit)
- "Insert the contents of an info file in the current buffer.
+ "Insert the contents of an Info file in the current buffer.
Do the right thing if the file has been compressed or zipped."
(let* ((tail Info-suffix-list)
(lfn (if (fboundp 'msdos-long-file-names)
@@ -632,12 +680,12 @@ just return nil (no error)."
filename)))
(defun Info-find-node (filename nodename &optional no-going-back)
- "Go to an info node specified as separate FILENAME and NODENAME.
+ "Go to an Info node specified as separate FILENAME and NODENAME.
NO-GOING-BACK is non-nil if recovering from an error in this function;
it says do not attempt further (recursive) error recovery."
(info-initialize)
(setq filename (Info-find-file filename))
- ;; Go into info buffer.
+ ;; Go into Info buffer.
(or (eq major-mode 'Info-mode) (pop-to-buffer "*info*"))
;; Record the node we are leaving.
(if (and Info-current-file (not no-going-back))
@@ -647,7 +695,7 @@ it says do not attempt further (recursive) error recovery."
(Info-find-node-2 filename nodename no-going-back))
(defun Info-on-current-buffer (&optional nodename)
- "Use the `Info-mode' to browse the current info buffer.
+ "Use the `Info-mode' to browse the current Info buffer.
If a prefix arg is provided, it queries for the NODENAME which
else defaults to \"Top\"."
(interactive
@@ -665,7 +713,7 @@ else defaults to \"Top\"."
;; makeinfo-buffer) out of the way of normal operations.
;;
(defun Info-revert-find-node (filename nodename)
- "Go to an info node FILENAME and NODENAME, re-reading disk contents.
+ "Go to an Info node FILENAME and NODENAME, re-reading disk contents.
When *info* is already displaying FILENAME and NODENAME, the window position
is preserved, if possible."
(pop-to-buffer "*info*")
@@ -1028,7 +1076,7 @@ a case-insensitive match is tried."
;; Insert the entire original dir file as a start; note that we've
;; already saved its default directory to use as the default
;; directory for the whole concatenation.
- (insert-buffer buffer)
+ (save-excursion (insert-buffer-substring buffer))
;; Look at each of the other buffers one by one.
(dolist (other others)
@@ -1157,8 +1205,9 @@ a case-insensitive match is tried."
(goto-char start)
(while (re-search-forward "^* \\([^:\n]+:\\(:\\|[^.\n]+\\).\\)"
limit 'move)
- (let ((x (match-string 1)))
- (if (member-ignore-case x seen)
+ ;; Fold case straight away; `member-ignore-case' here wasteful.
+ (let ((x (downcase (match-string 1))))
+ (if (member x seen)
(delete-region (match-beginning 0)
(progn (re-search-forward "^[^ \t]" nil t)
(match-beginning 0)))
@@ -1286,7 +1335,7 @@ any double quotes or backslashes must be escaped (\\\",\\\\)."
(set-buffer-modified-p nil)))
(defun Info-select-node ()
- "Select the info node that point is in."
+ "Select the Info node that point is in."
;; Bind this in case the user sets it to nil.
(let ((case-fold-search t))
(save-excursion
@@ -1342,20 +1391,20 @@ any double quotes or backslashes must be escaped (\\\",\\\\)."
") "
(or Info-current-node ""))))))
-;; Go to an info node specified with a filename-and-nodename string
+;; Go to an Info node specified with a filename-and-nodename string
;; of the sort that is found in pointers in nodes.
;; Don't autoload this function: the correct entry point for other packages
;; to use is `info'. --Stef
;; ;;;###autoload
(defun Info-goto-node (nodename &optional fork)
- "Go to info node named NODENAME. Give just NODENAME or (FILENAME)NODENAME.
+ "Go to Info node named NODENAME. Give just NODENAME or (FILENAME)NODENAME.
If NODENAME is of the form (FILENAME)NODENAME, the node is in the Info file
FILENAME; otherwise, NODENAME should be in the current Info file (or one of
its sub-files).
Completion is available, but only for node names in the current Info file.
If FORK is non-nil (interactively with a prefix arg), show the node in
-a new info buffer.
+a new Info buffer.
If FORK is a string, it is the name to use for the new buffer."
(interactive (list (Info-read-node-name "Go to node: ") current-prefix-arg))
(info-initialize)
@@ -1401,7 +1450,7 @@ PATH-AND-SUFFIXES is a pair of lists, (DIRECTORIES . SUFFIXES)."
;; include it.
(and (or (null (file-name-extension file))
(string-match suffix file))
- ;; But exclude subfiles of split info files.
+ ;; But exclude subfiles of split Info files.
(not (string-match "-[0-9]+\\'" file))
;; And exclude backup files.
(not (string-match "~\\'" file))
@@ -1721,9 +1770,11 @@ If DIRECTION is `backward', search in the reverse direction."
(lambda (string &optional bound noerror count)
(if isearch-word
(Info-search (concat "\\b" (replace-regexp-in-string
- "\\W+" "\\\\W+"
+ "\\W+" "\\W+"
(replace-regexp-in-string
- "^\\W+\\|\\W+$" "" string)) "\\b")
+ "^\\W+\\|\\W+$" "" string)
+ nil t)
+ "\\b")
bound noerror count
(unless isearch-forward 'backward))
(Info-search (if isearch-regexp string (regexp-quote string))
@@ -1821,7 +1872,7 @@ If SAME-FILE is non-nil, do not move to a different Info file."
(concat "\n\\* +\\(" (regexp-quote old-node)
":\\|[^:]+: +" (regexp-quote old-node) "\\)"))
nil t))
- (beginning-of-line)
+ (progn (beginning-of-line) (if (looking-at "^\\* ") (forward-char 2)))
(goto-char p)
(Info-restore-point Info-history))))
@@ -2010,7 +2061,7 @@ Table of contents is created from the tree structure of menus."
"Follow cross reference named FOOTNOTENAME to the node it refers to.
FOOTNOTENAME may be an abbreviation of the reference name.
If FORK is non-nil (interactively with a prefix arg), show the node in
-a new info buffer. If FORK is a string, it is the name to use for the
+a new Info buffer. If FORK is a string, it is the name to use for the
new buffer."
(interactive
(let ((completion-ignore-case t)
@@ -2221,7 +2272,7 @@ Because of ambiguities, this should be concatenated with something like
The menu item should one of those listed in the current node's menu.
Completion is allowed, and the default menu item is the one point is on.
If FORK is non-nil (interactively with a prefix arg), show the node in
-a new info buffer. If FORK is a string, it is the name to use for the
+a new Info buffer. If FORK is a string, it is the name to use for the
new buffer."
(interactive
(let ((completions '())
@@ -2546,7 +2597,9 @@ parent node."
(if (looking-at "\\* Menu:")
(if recur
(error "No cross references in this node")
- (Info-next-reference t)))))
+ (Info-next-reference t))
+ (if (looking-at "^\\* ")
+ (forward-char 2)))))
(defun Info-prev-reference (&optional recur)
"Move cursor to the previous cross-reference or menu item in the node."
@@ -2565,7 +2618,9 @@ parent node."
(if (looking-at "\\* Menu:")
(if recur
(error "No cross references in this node")
- (Info-prev-reference t)))))
+ (Info-prev-reference t))
+ (if (looking-at "^\\* ")
+ (forward-char 2)))))
(defvar Info-index-nodes nil
"Alist of cached index node names of visited Info files.
@@ -2799,25 +2854,29 @@ Build a menu of the possible matches."
(goto-char (point-min))
(re-search-forward "\\* Menu: *\n" nil t)
(while (re-search-forward "\\*.*: *(\\([^)]+\\))" nil t)
- (add-to-list 'manuals (match-string 1)))
- (dolist (manual manuals)
+ (setq manuals (cons (match-string 1) manuals)))
+ (dolist (manual (nreverse manuals))
(message "Searching %s" manual)
- (if (setq nodes (Info-index-nodes (Info-find-file manual)))
- (condition-case nil
+ (condition-case err
+ (if (setq nodes (Info-index-nodes (Info-find-file manual)))
(save-excursion
(Info-find-node manual (car nodes))
(while
(progn
(goto-char (point-min))
(while (re-search-forward pattern nil t)
- (add-to-list 'matches
- (list manual
- (match-string-no-properties 1)
- (match-string-no-properties 2)
- (match-string-no-properties 3))))
+ (setq matches
+ (cons (list manual
+ (match-string-no-properties 1)
+ (match-string-no-properties 2)
+ (match-string-no-properties 3))
+ matches)))
(setq nodes (cdr nodes) node (car nodes)))
- (Info-goto-node node)))
- (error nil)))))
+ (Info-goto-node node))))
+ (error
+ (message "%s" (if (eq (car-safe err) 'error)
+ (nth 1 err) err))
+ (sit-for 1 t)))))
(Info-goto-node (concat "(" current-file ")" current-node))
(setq Info-history ohist
Info-history-list ohist-list)
@@ -2827,8 +2886,8 @@ Build a menu of the possible matches."
(with-current-buffer (get-buffer-create " *info-apropos*")
(erase-buffer)
(insert "\n\^_\nFile: apropos, Node: Index, Up: (dir)\n")
- (insert "* Menu: \nNodes whose indices contain \"" string "\"\n\n")
- (dolist (entry matches)
+ (insert "* Menu: \nNodes whose indices contain `" string "':\n\n")
+ (dolist (entry (nreverse matches))
(insert
(format "* %-38s (%s)%s.%s\n"
(concat (nth 1 entry) " [" (nth 0 entry) "]:")
@@ -3001,7 +3060,6 @@ if point is in a menu item description, follow that menu item."
(define-key Info-mode-map "<" 'Info-top-node)
(define-key Info-mode-map ">" 'Info-final-node)
(define-key Info-mode-map "b" 'beginning-of-buffer)
- (define-key Info-mode-map "c" 'Info-copy-current-node-name)
(define-key Info-mode-map "d" 'Info-directory)
(define-key Info-mode-map "e" 'Info-edit)
(define-key Info-mode-map "f" 'Info-follow-reference)
@@ -3023,8 +3081,11 @@ if point is in a menu item description, follow that menu item."
(define-key Info-mode-map "t" 'Info-top-node)
(define-key Info-mode-map "T" 'Info-toc)
(define-key Info-mode-map "u" 'Info-up)
- ;; For consistency with dired-copy-filename-as-kill.
+ ;; `w' for consistency with `dired-copy-filename-as-kill'.
(define-key Info-mode-map "w" 'Info-copy-current-node-name)
+ (define-key Info-mode-map "c" 'Info-copy-current-node-name)
+ ;; `^' for consistency with `dired-up-directory'.
+ (define-key Info-mode-map "^" 'Info-up)
(define-key Info-mode-map "," 'Info-index-next)
(define-key Info-mode-map "\177" 'Info-scroll-down)
(define-key Info-mode-map [mouse-2] 'Info-mouse-follow-nearest-node)
@@ -3039,7 +3100,7 @@ if point is in a menu item description, follow that menu item."
(easy-menu-define
Info-mode-menu Info-mode-map
- "Menu for info files."
+ "Menu for Info files."
'("Info"
["Up" Info-up :active (Info-check-pointer "up")
:help "Go up in the Info tree"]
@@ -3061,8 +3122,6 @@ if point is in a menu item description, follow that menu item."
("Reference" ["You should never see this" report-emacs-bug t])
["Search..." Info-search
:help "Search for regular expression in this Info file"]
- ["Search Case-Sensitively..." Info-search-case-sensitively
- :help "Search for regular expression case sensitively"]
["Search Next" Info-search-next
:help "Search for another occurrence of regular expression"]
["Go to Node..." Info-goto-node
@@ -3174,12 +3233,12 @@ if point is in a menu item description, follow that menu item."
(defun Info-copy-current-node-name (&optional arg)
- "Put the name of the current info node into the kill ring.
-The name of the info file is prepended to the node name in parentheses.
+ "Put the name of the current Info node into the kill ring.
+The name of the Info file is prepended to the node name in parentheses.
With a zero prefix arg, put the name inside a function call to `info'."
(interactive "P")
(unless Info-current-node
- (error "No current info node"))
+ (error "No current Info node"))
(let ((node (concat "(" (file-name-nondirectory
(or (and (stringp Info-current-file)
Info-current-file)
@@ -3198,6 +3257,8 @@ With a zero prefix arg, put the name inside a function call to `info'."
(defvar tool-bar-map)
+;; Autoload cookie needed by desktop.el
+;;;###autoload
(defun Info-mode ()
"Info mode provides commands for browsing through the Info documentation tree.
Documentation in Info is divided into \"nodes\", each of which discusses
@@ -3245,7 +3306,7 @@ Moving within a node:
\\[beginning-of-buffer] Go to beginning of node.
Advanced commands:
-\\[Info-copy-current-node-name] Put name of current info node in the kill ring.
+\\[Info-copy-current-node-name] Put name of current Info node in the kill ring.
\\[clone-buffer] Select a new cloned Info buffer in another window.
\\[Info-edit] Edit contents of selected node.
1 .. 9 Pick first ... ninth item in node's menu.
@@ -3355,7 +3416,7 @@ which returns to Info mode for browsing.
Allowed only if variable `Info-enable-edit' is non-nil."
(interactive)
(or Info-enable-edit
- (error "Editing info nodes is not enabled"))
+ (error "Editing Info nodes is not enabled"))
(Info-edit-mode)
(message "%s" (substitute-command-keys
"Editing: Type \\<Info-edit-map>\\[Info-cease-edit] to return to info")))
@@ -3417,7 +3478,7 @@ in the first element of the returned list (which is treated specially in
"\\( <[0-9]+>\\)?:\\s *\\(.*\\)\\."
"\\(?:[ \t\n]+(line +\\([0-9]+\\))\\)?"))
(info-file "emacs")) ;default
- ;; Determine which info file this command is documented in.
+ ;; Determine which Info file this command is documented in.
(if (get command 'info-file)
(setq info-file (get command 'info-file))
;; If it doesn't say explicitly, test its name against
@@ -3526,69 +3587,6 @@ the variable `Info-file-list-for-emacs'."
(t
(Info-goto-emacs-command-node command)))))
-(defface info-title-1
- '((((type tty pc) (class color)) :foreground "green" :weight bold)
- (t :height 1.2 :inherit info-title-2))
- "Face for info titles at level 1."
- :group 'info)
-;; backward-compatibility alias
-(put 'Info-title-1-face 'face-alias 'info-title-1)
-
-(defface info-title-2
- '((((type tty pc) (class color)) :foreground "lightblue" :weight bold)
- (t :height 1.2 :inherit info-title-3))
- "Face for info titles at level 2."
- :group 'info)
-;; backward-compatibility alias
-(put 'Info-title-2-face 'face-alias 'info-title-2)
-
-(defface info-title-3
- '((((type tty pc) (class color)) :weight bold)
- (t :height 1.2 :inherit info-title-4))
- "Face for info titles at level 3."
- :group 'info)
-;; backward-compatibility alias
-(put 'Info-title-3-face 'face-alias 'info-title-3)
-
-(defface info-title-4
- '((((type tty pc) (class color)) :weight bold)
- (t :weight bold :inherit variable-pitch))
- "Face for info titles at level 4."
- :group 'info)
-;; backward-compatibility alias
-(put 'Info-title-4-face 'face-alias 'info-title-4)
-
-(defface info-menu-header
- '((((type tty pc))
- :underline t
- :weight bold)
- (t
- :inherit variable-pitch
- :weight bold))
- "Face for headers in Info menus."
- :group 'info)
-
-(defun Info-escape-percent (string)
- "Double all occurrences of `%' in STRING.
-
-Return a new string with all `%' characters replaced by `%%'.
-Preserve text properties."
- (let ((start 0)
- (end (length string))
- mb me m matches)
- (save-match-data
- (while (and (< start end) (string-match "%" string start))
- (setq mb (match-beginning 0)
- me (1+ mb)
- m (substring string mb me)
- matches (cons m
- (cons m
- (cons (substring string start mb)
- matches)))
- start me))
- (push (substring string start end) matches)
- (apply #'concat (nreverse matches)))))
-
(defvar Info-next-link-keymap
(let ((keymap (make-sparse-keymap)))
(define-key keymap [header-line mouse-1] 'Info-next)
@@ -3680,7 +3678,11 @@ Preserve text properties."
(buffer-substring (point) header-end)))
(setq header (buffer-substring (point) header-end))))
(put-text-property (point-min) (1+ (point-min))
- 'header-line (Info-escape-percent header))
+ 'header-line
+ (replace-regexp-in-string
+ "%"
+ ;; Preserve text properties on duplicated `%'.
+ (lambda (s) (concat s s)) header))
;; Hide the part of the first line
;; that is in the header, if it is just part.
(unless (bobp)
@@ -3864,7 +3866,7 @@ Preserve text properties."
(if (and (<= n 9) (zerop (% n 3))) ; visual aids to help with 1-9 keys
(put-text-property (match-beginning 0)
(1+ (match-beginning 0))
- 'font-lock-face 'info-menu-5)))
+ 'font-lock-face 'info-menu-star)))
(when not-fontified-p
(add-text-properties
(match-beginning 1) (match-end 1)
@@ -3958,7 +3960,7 @@ Preserve text properties."
;;; Speedbar support:
;; These functions permit speedbar to display the "tags" in the
-;; current info node.
+;; current Info node.
(eval-when-compile (require 'speedbar))
(defvar Info-speedbar-key-map nil
@@ -4000,7 +4002,7 @@ Preserve text properties."
;;; Info hierarchy display method
;;;###autoload
(defun Info-speedbar-browser ()
- "Initialize speedbar to display an info node browser.
+ "Initialize speedbar to display an Info node browser.
This will add a speedbar major display mode."
(interactive)
(require 'speedbar)
@@ -4141,7 +4143,7 @@ BUFFER is the buffer speedbar is requesting buttons for."
"^No `.*' in index$"
"^No cross-reference named"
"^No cross.references in this node$"
- "^No current info node$"
+ "^No current Info node$"
"^No menu in this node$"
"^No more items in menu$"
"^No more nodes$"
@@ -4164,11 +4166,10 @@ BUFFER is the buffer speedbar is requesting buttons for."
(if (not (member Info-current-file '("apropos" "history" "toc")))
(list Info-current-file Info-current-node)))
-;;;###autoload
(defun Info-restore-desktop-buffer (desktop-buffer-file-name
desktop-buffer-name
desktop-buffer-misc)
- "Restore an info buffer specified in a desktop file."
+ "Restore an Info buffer specified in a desktop file."
(let ((first (nth 0 desktop-buffer-misc))
(second (nth 1 desktop-buffer-misc)))
(when (and first second)
@@ -4178,6 +4179,9 @@ BUFFER is the buffer speedbar is requesting buttons for."
(Info-find-node first second)
(current-buffer))))
+(add-to-list 'desktop-buffer-mode-handlers
+ '(Info-mode . Info-restore-desktop-buffer))
+
(provide 'info)
;; arch-tag: f2480fe2-2139-40c1-a49b-6314991164ac
diff --git a/lisp/informat.el b/lisp/informat.el
index f3688cb366..c9198d9319 100644
--- a/lisp/informat.el
+++ b/lisp/informat.el
@@ -1,6 +1,6 @@
;;; informat.el --- info support functions package for Emacs
-;; Copyright (C) 1986 Free Software Foundation, Inc.
+;; Copyright (C) 1986, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: help
diff --git a/lisp/international/code-pages.el b/lisp/international/code-pages.el
index 0e3e675e38..df9853147c 100644
--- a/lisp/international/code-pages.el
+++ b/lisp/international/code-pages.el
@@ -216,6 +216,7 @@ Return an updated `non-iso-charset-alist'."
;; Fixme: Do better for mode-line mnemonics?
+;;;###autoload(autoload-coding-system 'cp437 '(require 'code-pages))
(cp-make-coding-system
cp437
[?\Ç
@@ -347,6 +348,7 @@ Return an updated `non-iso-charset-alist'."
?\â– 
?\ ])
+;;;###autoload(autoload-coding-system 'cp737 '(require 'code-pages))
(cp-make-coding-system
cp737
[?\Α
@@ -479,6 +481,7 @@ Return an updated `non-iso-charset-alist'."
?\ ])
(coding-system-put 'cp737 'mime-charset nil) ; not in IANA list
+;;;###autoload(autoload-coding-system 'cp775 '(require 'code-pages))
(cp-make-coding-system
cp775
[?\Ć
@@ -610,6 +613,7 @@ Return an updated `non-iso-charset-alist'."
?\â– 
?\ ])
+;;;###autoload(autoload-coding-system 'cp850 '(require 'code-pages))
(cp-make-coding-system
cp850
[?\Ç
@@ -741,6 +745,7 @@ Return an updated `non-iso-charset-alist'."
?\â– 
?\ ])
+;;;###autoload(autoload-coding-system 'cp851 '(require 'code-pages))
(cp-make-coding-system
cp851
[?\Ç
@@ -872,6 +877,7 @@ Return an updated `non-iso-charset-alist'."
?\â– 
?\ ])
+;;;###autoload(autoload-coding-system 'cp852 '(require 'code-pages))
(cp-make-coding-system
cp852
[?\Ç
@@ -1003,6 +1009,7 @@ Return an updated `non-iso-charset-alist'."
?\â– 
?\ ])
+;;;###autoload(autoload-coding-system 'cp855 '(require 'code-pages))
(cp-make-coding-system
cp855
[?\Ñ’
@@ -1134,6 +1141,7 @@ Return an updated `non-iso-charset-alist'."
?\â– 
?\ ])
+;;;###autoload(autoload-coding-system 'cp857 '(require 'code-pages))
(cp-make-coding-system
cp857
[?\Ç
@@ -1265,6 +1273,7 @@ Return an updated `non-iso-charset-alist'."
?\â– 
?\ ])
+;;;###autoload(autoload-coding-system 'cp860 '(require 'code-pages))
(cp-make-coding-system
cp860
[?\Ç
@@ -1396,6 +1405,7 @@ Return an updated `non-iso-charset-alist'."
?\â– 
?\ ])
+;;;###autoload(autoload-coding-system 'cp861 '(require 'code-pages))
(cp-make-coding-system
cp861
[?\Ç
@@ -1527,6 +1537,7 @@ Return an updated `non-iso-charset-alist'."
?\â– 
?\ ])
+;;;###autoload(autoload-coding-system 'cp862 '(require 'code-pages))
(cp-make-coding-system
cp862
[?\×
@@ -1658,6 +1669,7 @@ Return an updated `non-iso-charset-alist'."
?\â– 
?\ ])
+;;;###autoload(autoload-coding-system 'cp863 '(require 'code-pages))
(cp-make-coding-system
cp863
[?\Ç
@@ -1789,6 +1801,7 @@ Return an updated `non-iso-charset-alist'."
?\â– 
?\ ])
+;;;###autoload(autoload-coding-system 'cp864 '(require 'code-pages))
(cp-make-coding-system
cp864
[?\°
@@ -1920,6 +1933,7 @@ Return an updated `non-iso-charset-alist'."
?\â– 
?\ ])
+;;;###autoload(autoload-coding-system 'cp865 '(require 'code-pages))
(cp-make-coding-system
cp865
[?\Ç
@@ -2051,6 +2065,7 @@ Return an updated `non-iso-charset-alist'."
?\â– 
?\ ])
+;;;###autoload(autoload-coding-system 'cp866 '(require 'code-pages))
(cp-make-coding-system
cp866
[?\Ð
@@ -2184,6 +2199,7 @@ Return an updated `non-iso-charset-alist'."
"CP866 (Cyrillic)."
?A)
+;;;###autoload(autoload-coding-system 'cp869 '(require 'code-pages))
(cp-make-coding-system
cp869
[nil
@@ -2315,6 +2331,7 @@ Return an updated `non-iso-charset-alist'."
?\â– 
?\ ])
+;;;###autoload(autoload-coding-system 'cp874 '(require 'code-pages))
(cp-make-coding-system
cp874
[?\€
@@ -3374,6 +3391,7 @@ Return an updated `non-iso-charset-alist'."
?\â‚«
?\ÿ])
+;;;###autoload(autoload-coding-system 'next '(require 'code-pages))
(cp-make-coding-system
next
[?\ 
@@ -3506,6 +3524,7 @@ Return an updated `non-iso-charset-alist'."
nil]
"NeXTstep encoding." ?N)
+;;;###autoload(autoload-coding-system 'koi8-t '(require 'code-pages))
(cp-make-coding-system
koi8-t ; used by glibc for tg_TJ
[?\Ò›
@@ -3774,6 +3793,7 @@ Return an updated `non-iso-charset-alist'."
;; Unicode-based alternative which has the possible advantage of
;; having its relative sparseness specified.
+;;;###autoload(autoload-coding-system 'iso-8859-6 '(require 'code-pages))
(cp-make-coding-system
;; The base system uses arabic-iso-8bit, but that's not a MIME charset.
iso-8859-6
@@ -4189,6 +4209,7 @@ Return an updated `non-iso-charset-alist'."
nil ?G)
(coding-system-put 'georgian-ps 'mime-charset nil) ; not in IANA list
+;;;###autoload(autoload-coding-system 'cp720 '(require 'code-pages))
;; From http://www.microsoft.com/globaldev/reference/oem/720.htm
(cp-make-coding-system
cp720
@@ -4322,6 +4343,7 @@ Return an updated `non-iso-charset-alist'."
?\ ])
(coding-system-put 'cp720 'mime-charset nil) ; not in IANA list
+;;;###autoload(autoload-coding-system 'cp1125 '(require 'code-pages))
;; http://oss.software.ibm.com/cvs/icu/charset/data/ucm/ibm-1125_P100-2000.ucm
(cp-make-coding-system
cp1125
@@ -4461,6 +4483,7 @@ Return an updated `non-iso-charset-alist'."
;; Suggested by Anton Zinoviev <anton@lml.bas.bg>: Bulgarian DOS
;; codepage. Table at
;; <URL:http://czyborra.com/charsets/bulgarian-mik.txt.gz>.
+;;;###autoload(autoload-coding-system 'mik '(require 'code-pages))
(cp-make-coding-system
mik
[?Р?Б ?В ?Г ?Д ?Е ?Ж ?З ?И ?Й ?К ?Л ?М ?Р?О ?П ?Р ?С ?Т ?У ?Ф ?Х ?Ц
diff --git a/lisp/international/isearch-x.el b/lisp/international/isearch-x.el
index 46193d24d2..1d0d50b01a 100644
--- a/lisp/international/isearch-x.el
+++ b/lisp/international/isearch-x.el
@@ -98,9 +98,9 @@
(defun isearch-process-search-multibyte-characters (last-char)
(if (eq this-command 'isearch-printing-char)
(let ((overriding-terminal-local-map nil)
- (prompt (concat (isearch-message-prefix)))
+ (prompt (isearch-message-prefix))
(minibuffer-local-map isearch-minibuffer-local-map)
- str)
+ str junk-hist)
(if isearch-input-method-function
(let (;; Let input method work rather tersely.
(input-method-verbose-flag nil))
@@ -108,8 +108,8 @@
(cons 'with-input-method
(cons last-char unread-command-events))
;; Inherit current-input-method in a minibuffer.
- str (read-string prompt isearch-message nil nil t))
- (if (not str)
+ str (read-string prompt isearch-message 'junk-hist nil t))
+ (if (or (not str) (< (length str) (length isearch-message)))
;; All inputs were deleted while the input method
;; was working.
(setq str "")
@@ -124,7 +124,7 @@
(setq unread-command-events
(cons 'with-keyboard-coding
(cons last-char unread-command-events))
- str (read-string prompt)))
+ str (read-string prompt nil 'junk-hist)))
(if (and str (> (length str) 0))
(let ((unread-command-events nil))
diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el
index e9c22a47d8..336ec40325 100644
--- a/lisp/international/mule-cmds.el
+++ b/lisp/international/mule-cmds.el
@@ -33,6 +33,9 @@
(defvar dos-codepage)
(autoload 'widget-value "wid-edit"))
+(defvar mac-system-coding-system)
+(defvar mac-system-locale)
+
;;; MULE related key bindings and menus.
(defvar mule-keymap (make-sparse-keymap)
@@ -820,7 +823,7 @@ returned without any user interaction. See also the command
`prefer-coding-system'.
However, the user is queried if the chosen coding system is
-inconsistent with what would be selected by `set-auto-coding' from
+inconsistent with what would be selected by `find-auto-coding' from
coding cookies &c. if the contents of the region were read from a
file. (That could lead to data corruption in a file subsequently
re-visited and edited.)
@@ -850,7 +853,33 @@ and TO is ignored."
(not (listp default-coding-system)))
(setq default-coding-system (list default-coding-system)))
- (let ((no-other-defaults nil))
+ (let ((no-other-defaults nil)
+ auto-cs)
+ (unless (or (stringp from) find-file-literally)
+ ;; Find an auto-coding that is specified for the the current
+ ;; buffer and file from the region FROM and TO.
+ (save-excursion
+ (save-restriction
+ (widen)
+ (goto-char from)
+ (setq auto-cs (find-auto-coding (or file buffer-file-name "")
+ (- to from)))
+ (if auto-cs
+ (if (coding-system-p (car auto-cs))
+ (setq auto-cs (car auto-cs))
+ (display-warning
+ :warning
+ (format "\
+Invalid coding system `%s' is specified
+for the current buffer/file by the %s.
+It is highly recommended to fix it before writing to a file."
+ (car auto-cs)
+ (if (eq (cdr auto-cs) :coding) ":coding tag"
+ (format "variable `%s'" (cdr auto-cs)))))
+ (or (yes-or-no-p "Really proceed with writing? ")
+ (error "Save aborted"))
+ (setq auto-cs nil))))))
+
(if (eq (car default-coding-system) t)
(setq no-other-defaults t
default-coding-system (cdr default-coding-system)))
@@ -860,6 +889,15 @@ and TO is ignored."
(mapcar (function (lambda (x) (cons x (coding-system-base x))))
default-coding-system))
+ (if (and auto-cs (not no-other-defaults))
+ ;; If the file has a coding cookie, try to use it before anything
+ ;; else (i.e. before default-coding-system which will typically come
+ ;; from file-coding-system-alist).
+ (let ((base (coding-system-base auto-cs)))
+ (or (memq base '(nil undecided))
+ (rassq base default-coding-system)
+ (push (cons auto-cs base) default-coding-system))))
+
;; From now on, the list of defaults is reversed.
(setq default-coding-system (nreverse default-coding-system))
@@ -893,56 +931,49 @@ and TO is ignored."
(coding-system-get preferred 'mime-charset)
(not (rassq base default-coding-system))
(push (cons preferred base)
- default-coding-system)))))
-
- (if select-safe-coding-system-accept-default-p
- (setq accept-default-p select-safe-coding-system-accept-default-p))
-
- (let ((codings (find-coding-systems-region from to))
- (coding-system nil)
- safe rejected unsafe)
- (if (eq (car codings) 'undecided)
- ;; Any coding system is ok.
- (setq coding-system t)
- ;; Classify the defaults into safe, rejected, and unsafe.
- (dolist (elt default-coding-system)
- (if (memq (cdr elt) codings)
- (if (and (functionp accept-default-p)
- (not (funcall accept-default-p (cdr elt))))
- (push (car elt) rejected)
- (push (car elt) safe))
- (push (car elt) unsafe)))
- (if safe
- (setq coding-system (car safe))))
-
- ;; If all the defaults failed, ask a user.
- (when (not coding-system)
- (setq coding-system (select-safe-coding-system-interactively
- from to codings unsafe rejected (car codings))))
-
- (if (vectorp (coding-system-eol-type coding-system))
- (let ((eol (coding-system-eol-type buffer-file-coding-system)))
- (if (numberp eol)
- (setq coding-system
- (coding-system-change-eol-conversion coding-system eol)))))
-
- (if (eq coding-system t)
- (setq coding-system buffer-file-coding-system))
- ;; Check we're not inconsistent with what `coding:' spec &c would
- ;; give when file is re-read.
- ;; But don't do this if we explicitly ignored the cookie
- ;; by using `find-file-literally'.
- (unless (or (stringp from)
- find-file-literally
- (and coding-system
- (memq (coding-system-type coding-system) '(0 5))))
- (let ((auto-cs (save-excursion
- (save-restriction
- (widen)
- (narrow-to-region from to)
- (goto-char (point-min))
- (set-auto-coding (or file buffer-file-name "")
- (buffer-size))))))
+ default-coding-system))))
+
+ (if select-safe-coding-system-accept-default-p
+ (setq accept-default-p select-safe-coding-system-accept-default-p))
+
+ (let ((codings (find-coding-systems-region from to))
+ (coding-system nil)
+ safe rejected unsafe)
+ (if (eq (car codings) 'undecided)
+ ;; Any coding system is ok.
+ (setq coding-system t)
+ ;; Classify the defaults into safe, rejected, and unsafe.
+ (dolist (elt default-coding-system)
+ (if (memq (cdr elt) codings)
+ (if (and (functionp accept-default-p)
+ (not (funcall accept-default-p (cdr elt))))
+ (push (car elt) rejected)
+ (push (car elt) safe))
+ (push (car elt) unsafe)))
+ (if safe
+ (setq coding-system (car safe))))
+
+ ;; If all the defaults failed, ask a user.
+ (when (not coding-system)
+ (setq coding-system (select-safe-coding-system-interactively
+ from to codings unsafe rejected (car codings))))
+
+ (if (vectorp (coding-system-eol-type coding-system))
+ (let ((eol (coding-system-eol-type buffer-file-coding-system)))
+ (if (numberp eol)
+ (setq coding-system
+ (coding-system-change-eol-conversion coding-system eol)))))
+
+ (if (eq coding-system t)
+ (setq coding-system buffer-file-coding-system))
+ ;; Check we're not inconsistent with what `coding:' spec &c would
+ ;; give when file is re-read.
+ ;; But don't do this if we explicitly ignored the cookie
+ ;; by using `find-file-literally'.
+ (when (and auto-cs
+ (not (and
+ coding-system
+ (memq (coding-system-type coding-system) '(0 5)))))
;; Merge coding-system and auto-cs as far as possible.
(if (not coding-system)
(setq coding-system auto-cs)
@@ -974,8 +1005,8 @@ and TO is ignored."
(format "Selected encoding %s disagrees with \
%s specified by file contents. Really save (else edit coding cookies \
and try again)? " coding-system auto-cs))
- (error "Save aborted")))))
- coding-system))
+ (error "Save aborted"))))
+ coding-system)))
(setq select-safe-coding-system-function 'select-safe-coding-system)
@@ -999,10 +1030,19 @@ it asks the user to select a proper coding system."
;; We should never use no-conversion for outgoing mail.
(setq coding nil))
(if (fboundp select-safe-coding-system-function)
- (funcall select-safe-coding-system-function
- (point-min) (point-max) coding
- (function (lambda (x) (coding-system-get x 'mime-charset))))
- coding)))
+ (setq coding
+ (funcall select-safe-coding-system-function
+ (point-min) (point-max) coding
+ (function (lambda (x)
+ (coding-system-get x 'mime-charset))))))
+ (if coding
+ ;; Be sure to use LF for end-of-line.
+ (setq coding (coding-system-change-eol-conversion coding 'unix))
+ ;; No coding system is decided. Usually this is the case that
+ ;; the current buffer contains only ASCII. So, we hope
+ ;; iso-8859-1 works.
+ (setq coding 'iso-8859-1-unix))
+ coding))
;;; Language support stuff.
@@ -2410,12 +2450,15 @@ See also `locale-charset-language-names', `locale-language-names',
(= 0 (length locale))) ; nil or empty string
(setq locale (server-getenv (pop vars))))))
- (unless (or locale (not (fboundp 'mac-get-preference)))
- (setq locale (mac-get-preference "AppleLocale"))
- (unless locale
- (let ((languages (mac-get-preference "AppleLanguages")))
- (unless (= (length languages) 0) ; nil or empty vector
- (setq locale (aref languages 0))))))
+ (unless locale
+ ;; The two tests are kept separate so the byte-compiler sees
+ ;; that mac-get-preference is only called after checking its existence.
+ (when (fboundp 'mac-get-preference)
+ (setq locale (mac-get-preference "AppleLocale"))
+ (unless locale
+ (let ((languages (mac-get-preference "AppleLanguages")))
+ (unless (= (length languages) 0) ; nil or empty vector
+ (setq locale (aref languages 0)))))))
(unless (or locale (not (boundp 'mac-system-locale)))
(setq locale mac-system-locale))
diff --git a/lisp/international/mule.el b/lisp/international/mule.el
index 0c7c6f8448..aea8e09471 100644
--- a/lisp/international/mule.el
+++ b/lisp/international/mule.el
@@ -1628,8 +1628,8 @@ This is used for loading and byte-compiling Emacs Lisp files.")
(setq alist (cdr alist))))
coding-system))
-(defun set-auto-coding (filename size)
- "Return coding system for a file FILENAME of which SIZE bytes follow point.
+(defun find-auto-coding (filename size)
+ "Find a coding system for a file FILENAME of which SIZE bytes follow point.
These bytes should include at least the first 1k of the file
and the last 3k of the file, but the middle may be omitted.
@@ -1643,12 +1643,21 @@ contents of the current buffer following point against
succeed, it checks to see if any function in `auto-coding-functions'
gives a match.
-The return value is the specified coding system, or nil if nothing is
-specified.
+If a coding system is specifed, the return value is a
+cons (CODING . SOURCE), where CODING is the specified coding
+system and SOURCE is a symbol `auto-coding-alist',
+`auto-coding-regexp-alist', `coding:', or `auto-coding-functions'
+indicating by what CODING is specified. Note that the validity
+of CODING is not checked; it's callers responsibility to check
+it.
+
+If nothing is specified, the return value is nil.
The variable `set-auto-coding-function' (which see) is set to this
function by default."
- (or (auto-coding-alist-lookup filename)
+ (or (let ((coding-system (auto-coding-alist-lookup filename)))
+ (if coding-system
+ (cons coding-system 'auto-coding-alist)))
;; Try using `auto-coding-regexp-alist'.
(save-excursion
(let ((alist auto-coding-regexp-alist)
@@ -1658,7 +1667,8 @@ function by default."
(when (re-search-forward regexp (+ (point) size) t)
(setq coding-system (cdr (car alist)))))
(setq alist (cdr alist)))
- coding-system))
+ (if coding-system
+ (cons coding-system 'auto-coding-regexp-alist))))
(let* ((case-fold-search t)
(head-start (point))
(head-end (+ head-start (min size 1024)))
@@ -1692,9 +1702,7 @@ function by default."
(re-search-forward
"\\(.*;\\)?[ \t]*coding:[ \t]*\\([^ ;]+\\)"
head-end t))
- (setq coding-system (intern (match-string 2)))
- (or (coding-system-p coding-system)
- (setq coding-system nil)))))
+ (setq coding-system (intern (match-string 2))))))
;; If no coding: tag in the head, check the tail.
;; Here we must pay attention to the case that the end-of-line
@@ -1735,10 +1743,9 @@ function by default."
(setq coding-system 'raw-text))
(when (and (not coding-system)
(re-search-forward re-coding tail-end t))
- (setq coding-system (intern (match-string 1)))
- (or (coding-system-p coding-system)
- (setq coding-system nil))))))
- coding-system)
+ (setq coding-system (intern (match-string 1)))))))
+ (if coding-system
+ (cons coding-system :coding)))
;; Finally, try all the `auto-coding-functions'.
(let ((funcs auto-coding-functions)
(coding-system nil))
@@ -1748,7 +1755,16 @@ function by default."
(goto-char (point-min))
(funcall (pop funcs) size))
(error nil))))
- coding-system)))
+ (if coding-system
+ (cons coding-system 'auto-coding-functions)))))
+
+(defun set-auto-coding (filename size)
+ "Return coding system for a file FILENAME of which SIZE bytes follow point.
+See `find-auto-coding' for how the coding system is found.
+Return nil if an invalid coding system is found."
+ (let ((found (find-auto-coding filename size)))
+ (if (and found (coding-system-p (car found)))
+ (car found))))
(setq set-auto-coding-function 'set-auto-coding)
diff --git a/lisp/isearch.el b/lisp/isearch.el
index e0c02f3eba..df868e7abf 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -1,7 +1,7 @@
;;; isearch.el --- incremental search minor mode
-;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1999,
-;; 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1999, 2000,
+;; 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Daniel LaLiberte <liberte@cs.uiuc.edu>
;; Maintainer: FSF
@@ -122,8 +122,8 @@ a tab, a carriage return (control-M), a newline, and `]+'."
(defcustom search-invisible 'open
"If t incremental search can match hidden text.
-nil means don't match invisible text.
-If the value is `open', if the text matched is made invisible by
+A nil value means don't match invisible text.
+When the value is `open', if the text matched is made invisible by
an overlay having an `invisible' property and that overlay has a property
`isearch-open-invisible', then incremental search will show the contents.
\(This applies when using `outline.el' and `hideshow.el'.)
@@ -154,7 +154,12 @@ command history."
"Function(s) to call after starting up an incremental search.")
(defvar isearch-mode-end-hook nil
- "Function(s) to call after terminating an incremental search.")
+ "Function(s) to call after terminating an incremental search.
+When these functions are called, `isearch-mode-end-hook-quit'
+is non-nil if the user quit the search.")
+
+(defvar isearch-mode-end-hook-quit nil
+ "Non-nil while running `isearch-mode-end-hook' if user quit the search.")
(defvar isearch-wrap-function nil
"Function to call to wrap the search when search is failed.
@@ -183,10 +188,10 @@ to the search status stack.")
(defvar search-ring-yank-pointer nil
"Index in `search-ring' of last string reused.
-nil if none yet.")
+It is nil if none yet.")
(defvar regexp-search-ring-yank-pointer nil
"Index in `regexp-search-ring' of last string reused.
-nil if none yet.")
+It is nil if none yet.")
(defcustom search-ring-update nil
"*Non-nil if advancing or retreating in the search ring should cause search.
@@ -205,7 +210,7 @@ Default value, nil, means edit the string instead."
'((((class color) (min-colors 88) (background light))
;; The background must not be too dark, for that means
;; the character is hard to see when the cursor is there.
- (:background "magenta2" :foreground "lightskyblue1"))
+ (:background "magenta3" :foreground "lightskyblue1"))
(((class color) (min-colors 88) (background dark))
(:background "palevioletred2" :foreground "brown4"))
(((class color) (min-colors 16))
@@ -241,22 +246,25 @@ If this is nil, extra highlighting can be \"manually\" removed with
\\[lazy-highlight-cleanup]."
:type 'boolean
:group 'lazy-highlight)
-(defvaralias 'isearch-lazy-highlight-cleanup 'lazy-highlight-cleanup)
-(make-obsolete-variable 'isearch-lazy-highlight-cleanup 'lazy-highlight-cleanup "22.1")
+(define-obsolete-variable-alias 'isearch-lazy-highlight-cleanup
+ 'lazy-highlight-cleanup
+ "22.1")
(defcustom lazy-highlight-initial-delay 0.25
"*Seconds to wait before beginning to lazily highlight all matches."
:type 'number
:group 'lazy-highlight)
-(defvaralias 'isearch-lazy-highlight-initial-delay 'lazy-highlight-initial-delay)
-(make-obsolete-variable 'isearch-lazy-highlight-initial-delay 'lazy-highlight-initial-delay "22.1")
+(define-obsolete-variable-alias 'isearch-lazy-highlight-initial-delay
+ 'lazy-highlight-initial-delay
+ "22.1")
(defcustom lazy-highlight-interval 0 ; 0.0625
"*Seconds between lazily highlighting successive matches."
:type 'number
:group 'lazy-highlight)
-(defvaralias 'isearch-lazy-highlight-interval 'lazy-highlight-interval)
-(make-obsolete-variable 'isearch-lazy-highlight-interval 'lazy-highlight-interval "22.1")
+(define-obsolete-variable-alias 'isearch-lazy-highlight-interval
+ 'lazy-highlight-interval
+ "22.1")
(defcustom lazy-highlight-max-at-a-time 20
"*Maximum matches to highlight at a time (for `lazy-highlight').
@@ -266,8 +274,9 @@ A value of nil means highlight all matches."
:type '(choice (const :tag "All" nil)
(integer :tag "Some"))
:group 'lazy-highlight)
-(defvaralias 'isearch-lazy-highlight-max-at-a-time 'lazy-highlight-max-at-a-time)
-(make-obsolete-variable 'isearch-lazy-highlight-max-at-a-time 'lazy-highlight-max-at-a-time "22.1")
+(define-obsolete-variable-alias 'isearch-lazy-highlight-max-at-a-time
+ 'lazy-highlight-max-at-a-time
+ "22.1")
(defface lazy-highlight
'((((class color) (min-colors 88) (background light))
@@ -283,8 +292,9 @@ A value of nil means highlight all matches."
:group 'lazy-highlight)
(put 'isearch-lazy-highlight-face 'face-alias 'lazy-highlight)
(defvar lazy-highlight-face 'lazy-highlight)
-(defvaralias 'isearch-lazy-highlight-face 'lazy-highlight-face)
-(make-obsolete-variable 'isearch-lazy-highlight-face 'lazy-highlight-face "22.1")
+(define-obsolete-variable-alias 'isearch-lazy-highlight-face
+ 'lazy-highlight-face
+ "22.1")
;; Define isearch-mode keymap.
@@ -307,12 +317,12 @@ A value of nil means highlight all matches."
;; We need these explicit definitions because, in a dense keymap,
;; the binding for t does not affect characters.
;; We use a dense keymap to save space.
- (while (< i ?\ )
+ (while (< i ?\s)
(define-key map (make-string 1 i) 'isearch-other-control-char)
(setq i (1+ i)))
;; Single-byte printing chars extend the search string by default.
- (setq i ?\ )
+ (setq i ?\s)
(while (< i 256)
(define-key map (vector i) 'isearch-printing-char)
(setq i (1+ i)))
@@ -356,13 +366,6 @@ A value of nil means highlight all matches."
(define-key map "\M-\C-y" 'isearch-yank-char)
(define-key map "\C-y" 'isearch-yank-line)
- ;; Define keys for regexp chars * ? } |.
- ;; Nothing special for + because it matches at least once.
- (define-key map "*" 'isearch-*-char)
- (define-key map "?" 'isearch-*-char)
- (define-key map "}" 'isearch-}-char)
- (define-key map "|" 'isearch-|-char)
-
;; Turned off because I find I expect to get the global definition--rms.
;; ;; Instead bind C-h to special help command for isearch-mode.
;; (define-key map "\C-h" 'isearch-mode-help)
@@ -533,7 +536,7 @@ Type \\[isearch-quote-char] to quote control character to search for it.
Type \\[isearch-query-replace] to start `query-replace' with string to\
replace from last search string.
Type \\[isearch-query-replace-regexp] to start `query-replace-regexp'\
- with string to replace from last search string..
+ with string to replace from last search string.
Type \\[isearch-toggle-case-fold] to toggle search case-sensitivity.
Type \\[isearch-toggle-regexp] to toggle regular-expression mode.
@@ -744,6 +747,12 @@ is treated as a regexp. See \\[isearch-forward] for more info."
(setq disable-point-adjustment t))
(defun isearch-done (&optional nopush edit)
+ "Exit Isearch mode.
+For successful search, pass no args.
+For a failing search, NOPUSH is t.
+For going to the minibuffer to edit the search string,
+NOPUSH is t and EDIT is t."
+
(if isearch-resume-in-command-history
(let ((command `(isearch-resume ,isearch-string ,isearch-regexp
,isearch-word ,isearch-forward
@@ -795,7 +804,8 @@ is treated as a regexp. See \\[isearch-forward] for more info."
;; Update the ring data.
(isearch-update-ring isearch-string isearch-regexp))
- (run-hooks 'isearch-mode-end-hook)
+ (let ((isearch-mode-end-hook-quit (and nopush (not edit))))
+ (run-hooks 'isearch-mode-end-hook))
;; If there was movement, mark the starting position.
;; Maybe should test difference between and set mark iff > threshold.
@@ -1062,7 +1072,11 @@ If first char entered is \\[isearch-yank-word-or-char], then do word search inst
(if isearch-nonincremental
(progn
;; (sit-for 1) ;; needed if isearch-done does: (message "")
- (isearch-done))))
+ (isearch-done)
+ ;; The search done message is confusing when the string
+ ;; is empty, so erase it.
+ (if (equal isearch-string "")
+ (message "")))))
(quit ; handle abort-recursive-edit
(isearch-abort) ;; outside of let to restore outside global values
@@ -1137,7 +1151,8 @@ Use `isearch-exit' to quit without signaling."
(funcall isearch-wrap-function)
(goto-char (if isearch-forward (point-min) (point-max)))))))
;; C-s in reverse or C-r in forward, change direction.
- (setq isearch-forward (not isearch-forward)))
+ (setq isearch-forward (not isearch-forward)
+ isearch-success t))
(setq isearch-barrier (point)) ; For subsequent \| if regexp.
@@ -1404,14 +1419,14 @@ might return the position of the end of the line."
Respects \\[isearch-repeat-forward] and \\[isearch-repeat-backward] by
stopping at `isearch-barrier' as needed.
-Do nothing if a backslash is escaping the liberalizing character. If
-WANT-BACKSLASH is non-nil, invert this behavior (for \\} and \\|).
+Do nothing if a backslash is escaping the liberalizing character.
+If WANT-BACKSLASH is non-nil, invert this behavior (for \\} and \\|).
-Do nothing if regexp has recently been invalid unless optional ALLOW-INVALID
-non-nil.
+Do nothing if regexp has recently been invalid unless optional
+ALLOW-INVALID non-nil.
-If optional TO-BARRIER non-nil, ignore previous matches and go exactly to the
-barrier."
+If optional TO-BARRIER non-nil, ignore previous matches and go exactly
+to the barrier."
;; (eq (not a) (not b)) makes all non-nil values equivalent
(when (and isearch-regexp (eq (not (isearch-backslash isearch-string))
(not want-backslash))
@@ -1457,26 +1472,7 @@ barrier."
(goto-char (if isearch-forward
(max last-other-end isearch-barrier)
(min last-other-end isearch-barrier)))
- (setq isearch-adjusted t))))))
- (isearch-process-search-char last-command-char))
-
-;; * and ? are special when not preceded by \.
-(defun isearch-*-char ()
- "Maybe back up to handle * and ? specially in regexps."
- (interactive)
- (isearch-fallback nil))
-
-;; } is special when it is preceded by \.
-(defun isearch-}-char ()
- "Handle \\} specially in regexps."
- (interactive)
- (isearch-fallback t t))
-
-;; | is special when it is preceded by \.
-(defun isearch-|-char ()
- "If in regexp search, jump to the barrier unless in a group."
- (interactive)
- (isearch-fallback t nil t))
+ (setq isearch-adjusted t)))))))
(defun isearch-unread-key-sequence (keylist)
"Unread the given key-sequence KEYLIST.
@@ -1672,7 +1668,7 @@ Isearch mode."
;; directly to avoid the input method and keyboard
;; coding system translating it.
(if (and (integerp key)
- (>= key ?\ ) (/= key 127) (< key 256))
+ (>= key ?\s) (/= key 127) (< key 256))
(progn
(isearch-process-search-char key)
(setq keylist (cdr keylist)))
@@ -1764,7 +1760,7 @@ Isearch mode."
;; Assume character codes 0200 - 0377 stand for characters in some
;; single-byte character set, and convert them to Emacs
;; characters.
- (if (and isearch-regexp (= char ?\ ))
+ (if (and isearch-regexp (= char ?\s))
(if (subregexp-context-p isearch-string (length isearch-string))
(isearch-process-search-string "[ ]" " ")
(isearch-process-search-char char))
@@ -1775,17 +1771,17 @@ Isearch mode."
(isearch-process-search-char char))))
(defun isearch-return-char ()
- "Convert return into newline for incremental search.
-Obsolete."
+ "Convert return into newline for incremental search."
(interactive)
(isearch-process-search-char ?\n))
+(make-obsolete 'isearch-return-char 'isearch-printing-char)
(defun isearch-printing-char ()
"Add this ordinary printing character to the search string and search."
(interactive)
(let ((char last-command-char))
(if (= char ?\S-\ )
- (setq char ?\ ))
+ (setq char ?\s))
(if (and enable-multibyte-characters
(>= char ?\200)
(<= char ?\377))
@@ -1797,6 +1793,14 @@ Obsolete."
(isearch-process-search-char char)))))
(defun isearch-process-search-char (char)
+ ;; * and ? are special in regexps when not preceded by \.
+ ;; } and | are special in regexps when preceded by \.
+ ;; Nothing special for + because it matches at least once.
+ (cond
+ ((memq char '(?* ??)) (isearch-fallback nil))
+ ((eq char ?\}) (isearch-fallback t t))
+ ((eq char ?|) (isearch-fallback t nil t)))
+
;; Append the char to the search string, update the message and re-search.
(isearch-process-search-string
(char-to-string char)
@@ -2207,7 +2211,7 @@ since they have special meaning in a regexp."
(defun isearch-text-char-description (c)
(cond
- ((< c ?\ ) (format "^%c" (+ c 64)))
+ ((< c ?\s) (format "^%c" (+ c 64)))
((= c ?\^?) "^?")
(t (char-to-string c))))
@@ -2294,8 +2298,9 @@ is nil. This function is called when exiting an incremental search if
(cancel-timer isearch-lazy-highlight-timer)
(setq isearch-lazy-highlight-timer nil)))
-(defalias 'isearch-lazy-highlight-cleanup 'lazy-highlight-cleanup)
-(make-obsolete 'isearch-lazy-highlight-cleanup 'lazy-highlight-cleanup "22.1")
+(define-obsolete-function-alias 'isearch-lazy-highlight-cleanup
+ 'lazy-highlight-cleanup
+ "22.1")
(defun isearch-lazy-highlight-new-loop (&optional beg end)
"Cleanup any previous `lazy-highlight' loop and begin a new one.
diff --git a/lisp/isearchb.el b/lisp/isearchb.el
index 3665311aaf..0e7a20a57e 100644
--- a/lisp/isearchb.el
+++ b/lisp/isearchb.el
@@ -1,6 +1,6 @@
;;; isearchb --- a marriage between iswitchb and isearch
-;; Copyright (C) 2004 John Wiegley
+;; Copyright (C) 2004, 2005 John Wiegley
;; Author: John Wiegley <johnw@gnu.org>
;; Created: 16 Apr 2004
diff --git a/lisp/iswitchb.el b/lisp/iswitchb.el
index 408b17c933..c2e08d3a46 100644
--- a/lisp/iswitchb.el
+++ b/lisp/iswitchb.el
@@ -1,7 +1,7 @@
;;; iswitchb.el --- switch between buffers using substrings
-;; Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Stephen Eglen <stephen@gnu.org>
;; Maintainer: Stephen Eglen <stephen@gnu.org>
diff --git a/lisp/jit-lock.el b/lisp/jit-lock.el
index d98e879112..2f8fcba91d 100644
--- a/lisp/jit-lock.el
+++ b/lisp/jit-lock.el
@@ -1,6 +1,7 @@
;;; jit-lock.el --- just-in-time fontification
-;; Copyright (C) 1998, 2000, 2001, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Gerd Moellmann <gerd@gnu.org>
;; Keywords: faces files
diff --git a/lisp/jka-cmpr-hook.el b/lisp/jka-cmpr-hook.el
index 36775a2547..1967a5d6c1 100644
--- a/lisp/jka-cmpr-hook.el
+++ b/lisp/jka-cmpr-hook.el
@@ -1,6 +1,7 @@
;;; jka-cmpr-hook.el --- preloaded code to enable jka-compr.el
-;; Copyright (C) 1993, 1994, 1995, 1997, 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 1995, 1997, 1999, 2000, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: jka@ece.cmu.edu (Jay K. Adams)
;; Maintainer: FSF
diff --git a/lisp/jka-compr.el b/lisp/jka-compr.el
index db18903e21..b25d386566 100644
--- a/lisp/jka-compr.el
+++ b/lisp/jka-compr.el
@@ -1,6 +1,7 @@
;;; jka-compr.el --- reading/writing/loading compressed files
-;; Copyright (C) 1993, 1994, 1995, 1997, 1999, 2000, 2003, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 1995, 1997, 1999, 2000, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: jka@ece.cmu.edu (Jay K. Adams)
;; Maintainer: FSF
diff --git a/lisp/kermit.el b/lisp/kermit.el
index 1b22df1dbe..73cac8f3bc 100644
--- a/lisp/kermit.el
+++ b/lisp/kermit.el
@@ -1,6 +1,6 @@
;;; kermit.el --- additions to shell mode for use with kermit
-;; Copyright (C) 1988 Free Software Foundation, Inc.
+;; Copyright (C) 1988, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Jeff Norden <jeff@colgate.csnet>
;; Maintainer: FSF
diff --git a/lisp/kmacro.el b/lisp/kmacro.el
index 28e2c17c2a..6bb1ab6f58 100644
--- a/lisp/kmacro.el
+++ b/lisp/kmacro.el
@@ -1,6 +1,6 @@
;;; kmacro.el --- enhanced keyboard macros
-;; Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Kim F. Storm <storm@cua.dk>
;; Keywords: keyboard convenience
diff --git a/lisp/language/ethio-util.el b/lisp/language/ethio-util.el
index e825bc62df..fb70b2641d 100644
--- a/lisp/language/ethio-util.el
+++ b/lisp/language/ethio-util.el
@@ -31,6 +31,9 @@
;;; Code:
+(defvar rmail-current-message)
+(defvar rmail-message-vector)
+
;; Information for exiting Ethiopic environment.
(defvar exit-ethiopic-environment-data nil)
@@ -432,7 +435,7 @@ The variable `ethio-primary-language' specifies the primary language
and `ethio-secondary-language' specifies the secondary.
If the 3rd parameter SECONDARY is given and non-nil, assume the region
-begins begins with the secondary language; otherwise with the primary
+begins with the secondary language; otherwise with the primary
language.
If the 4th parameter FORCE is given and non-nil, perform conversion
diff --git a/lisp/language/thai-util.el b/lisp/language/thai-util.el
index 661ed75b51..2fabc56616 100644
--- a/lisp/language/thai-util.el
+++ b/lisp/language/thai-util.el
@@ -28,6 +28,8 @@
;;; Code:
+(defvar thai-auto-composition-mode)
+
;; Setting information of Thai characters.
(defconst thai-category-table (make-category-table))
diff --git a/lisp/ldefs-boot.el b/lisp/ldefs-boot.el
index 5c58dc001d..ef54a899c6 100644
--- a/lisp/ldefs-boot.el
+++ b/lisp/ldefs-boot.el
@@ -4,7 +4,7 @@
;;;### (autoloads (5x5-crack 5x5-crack-xor-mutate 5x5-crack-mutating-best
;;;;;; 5x5-crack-mutating-current 5x5-crack-randomly 5x5) "5x5"
-;;;;;; "play/5x5.el" (17107 37380))
+;;;;;; "play/5x5.el" (17178 22152))
;;; Generated autoloads from play/5x5.el
(autoload (quote 5x5) "5x5" "\
@@ -64,7 +64,7 @@ should return a grid vector array that is the new solution.
;;;***
;;;### (autoloads (ada-mode ada-add-extensions) "ada-mode" "progmodes/ada-mode.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22152))
;;; Generated autoloads from progmodes/ada-mode.el
(autoload (quote ada-add-extensions) "ada-mode" "\
@@ -125,7 +125,7 @@ If you use ada-xref.el:
;;;***
;;;### (autoloads (ada-header) "ada-stmt" "progmodes/ada-stmt.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22152))
;;; Generated autoloads from progmodes/ada-stmt.el
(autoload (quote ada-header) "ada-stmt" "\
@@ -136,7 +136,7 @@ Insert a descriptive header at the top of the file.
;;;***
;;;### (autoloads (ada-find-file) "ada-xref" "progmodes/ada-xref.el"
-;;;;;; (17107 37382))
+;;;;;; (17178 22152))
;;; Generated autoloads from progmodes/ada-xref.el
(autoload (quote ada-find-file) "ada-xref" "\
@@ -151,7 +151,7 @@ Completion is available.
;;;;;; change-log-mode add-change-log-entry-other-window add-change-log-entry
;;;;;; find-change-log prompt-for-change-log-name add-log-mailing-address
;;;;;; add-log-full-name add-log-current-defun-function) "add-log"
-;;;;;; "add-log.el" (17107 37380))
+;;;;;; "add-log.el" (17178 22141))
;;; Generated autoloads from add-log.el
(defvar add-log-current-defun-function nil "\
@@ -168,7 +168,7 @@ This defaults to the value returned by the function `user-full-name'.")
(custom-autoload (quote add-log-full-name) "add-log")
(defvar add-log-mailing-address nil "\
-*Electronic mail addresses of user, for inclusion in ChangeLog headers.
+*Email addresses of user, for inclusion in ChangeLog headers.
This defaults to the value of `user-mail-address'. In addition to
being a simple string, this value can also be a list. All elements
will be recognized as referring to the same user; when creating a new
@@ -270,7 +270,7 @@ Has a preference of looking backwards.
\(fn)" nil nil)
(autoload (quote change-log-merge) "add-log" "\
-Merge the contents of ChangeLog file OTHER-LOG with this buffer.
+Merge the contents of change log file OTHER-LOG with this buffer.
Both must be found in Change Log mode (since the merging depends on
the appropriate motion commands). OTHER-LOG can be either a file name
or a buffer.
@@ -288,8 +288,8 @@ Fix any old-style date entries in the current log file to default format.
;;;***
;;;### (autoloads (defadvice ad-add-advice ad-default-compilation-action
-;;;;;; ad-redefinition-action) "advice" "emacs-lisp/advice.el" (17107
-;;;;;; 37381))
+;;;;;; ad-redefinition-action) "advice" "emacs-lisp/advice.el" (17178
+;;;;;; 22143))
;;; Generated autoloads from emacs-lisp/advice.el
(defvar ad-redefinition-action (quote warn) "\
@@ -388,7 +388,7 @@ See Info node `(elisp)Advising Functions' for comprehensive documentation.
;;;### (autoloads (align-newline-and-indent align-unhighlight-rule
;;;;;; align-highlight-rule align-current align-entire align-regexp
-;;;;;; align) "align" "align.el" (17107 37382))
+;;;;;; align) "align" "align.el" (17178 22141))
;;; Generated autoloads from align.el
(autoload (quote align) "align" "\
@@ -477,7 +477,7 @@ A replacement function for `newline-and-indent', aligning as it goes.
;;;***
-;;;### (autoloads (allout-init) "allout" "allout.el" (17107 37380))
+;;;### (autoloads (allout-init) "allout" "allout.el" (17178 22141))
;;; Generated autoloads from allout.el
(autoload (quote allout-init) "allout" "\
@@ -513,7 +513,7 @@ the following two lines in your Emacs init file:
;;;***
;;;### (autoloads (ange-ftp-hook-function ange-ftp-reread-dir) "ange-ftp"
-;;;;;; "net/ange-ftp.el" (17107 37379))
+;;;;;; "net/ange-ftp.el" (17178 22151))
;;; Generated autoloads from net/ange-ftp.el
(defalias (quote ange-ftp-re-read-dir) (quote ange-ftp-reread-dir))
@@ -535,7 +535,7 @@ Not documented
;;;***
;;;### (autoloads (animate-birthday-present animate-sequence animate-string)
-;;;;;; "animate" "play/animate.el" (17107 37380))
+;;;;;; "animate" "play/animate.el" (17178 22152))
;;; Generated autoloads from play/animate.el
(autoload (quote animate-string) "animate" "\
@@ -563,7 +563,7 @@ You can specify the one's name by NAME; the default value is \"Sarah\".
;;;***
;;;### (autoloads (ansi-color-process-output ansi-color-for-comint-mode-on)
-;;;;;; "ansi-color" "ansi-color.el" (17107 37380))
+;;;;;; "ansi-color" "ansi-color.el" (17178 22141))
;;; Generated autoloads from ansi-color.el
(autoload (quote ansi-color-for-comint-mode-on) "ansi-color" "\
@@ -589,7 +589,7 @@ This is a good function to put in `comint-output-filter-functions'.
;;;***
;;;### (autoloads (antlr-set-tabs antlr-mode antlr-show-makefile-rules)
-;;;;;; "antlr-mode" "progmodes/antlr-mode.el" (17107 37381))
+;;;;;; "antlr-mode" "progmodes/antlr-mode.el" (17178 22152))
;;; Generated autoloads from progmodes/antlr-mode.el
(autoload (quote antlr-show-makefile-rules) "antlr-mode" "\
@@ -628,7 +628,7 @@ Used in `antlr-mode'. Also a useful function in `java-mode-hook'.
;;;### (autoloads (appt-activate appt-make-list appt-delete appt-add
;;;;;; appt-display-diary appt-display-duration appt-display-mode-line
;;;;;; appt-msg-window appt-visible appt-audible appt-message-warning-time
-;;;;;; appt-issue-message) "appt" "calendar/appt.el" (17107 37380))
+;;;;;; appt-issue-message) "appt" "calendar/appt.el" (17178 20480))
;;; Generated autoloads from calendar/appt.el
(defvar appt-issue-message t "\
@@ -716,7 +716,7 @@ ARG is positive, otherwise off.
;;;### (autoloads (apropos-documentation apropos-value apropos apropos-documentation-property
;;;;;; apropos-command apropos-variable) "apropos" "apropos.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22141))
;;; Generated autoloads from apropos.el
(autoload (quote apropos-variable) "apropos" "\
@@ -770,8 +770,8 @@ Returns list of symbols and documentation found.
;;;***
-;;;### (autoloads (archive-mode) "arc-mode" "arc-mode.el" (17107
-;;;;;; 37383))
+;;;### (autoloads (archive-mode) "arc-mode" "arc-mode.el" (17178
+;;;;;; 22141))
;;; Generated autoloads from arc-mode.el
(autoload (quote archive-mode) "arc-mode" "\
@@ -791,7 +791,7 @@ archive.
;;;***
-;;;### (autoloads (array-mode) "array" "array.el" (17107 37382))
+;;;### (autoloads (array-mode) "array" "array.el" (17178 22141))
;;; Generated autoloads from array.el
(autoload (quote array-mode) "array" "\
@@ -804,7 +804,7 @@ NOT recognized as integers or real numbers.
The array MUST reside at the top of the buffer.
TABs are not respected, and may be converted into spaces at any time.
-Setting the variable 'array-respect-tabs to non-nil will prevent TAB conversion,
+Setting the variable `array-respect-tabs' to non-nil will prevent TAB conversion,
but will cause many functions to give errors if they encounter one.
Upon entering array mode, you will be prompted for the values of
@@ -862,8 +862,8 @@ Entering array mode calls the function `array-mode-hook'.
;;;***
-;;;### (autoloads (artist-mode) "artist" "textmodes/artist.el" (17107
-;;;;;; 37381))
+;;;### (autoloads (artist-mode) "artist" "textmodes/artist.el" (17178
+;;;;;; 22154))
;;; Generated autoloads from textmodes/artist.el
(autoload (quote artist-mode) "artist" "\
@@ -1068,8 +1068,8 @@ Keymap summary
;;;***
-;;;### (autoloads (asm-mode) "asm-mode" "progmodes/asm-mode.el" (17107
-;;;;;; 37382))
+;;;### (autoloads (asm-mode) "asm-mode" "progmodes/asm-mode.el" (17178
+;;;;;; 22152))
;;; Generated autoloads from progmodes/asm-mode.el
(autoload (quote asm-mode) "asm-mode" "\
@@ -1097,7 +1097,7 @@ Special commands:
;;;***
;;;### (autoloads (auto-show-mode auto-show-mode) "auto-show" "obsolete/auto-show.el"
-;;;;;; (17107 37382))
+;;;;;; (17178 20481))
;;; Generated autoloads from obsolete/auto-show.el
(defvar auto-show-mode nil "\
@@ -1113,7 +1113,7 @@ This command is obsolete.
;;;***
;;;### (autoloads (autoarg-kp-mode autoarg-mode) "autoarg" "autoarg.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22141))
;;; Generated autoloads from autoarg.el
(defvar autoarg-mode nil "\
@@ -1170,7 +1170,7 @@ This is similar to \\[autoarg-mode] but rebinds the keypad keys `kp-1'
;;;***
;;;### (autoloads (autoconf-mode) "autoconf" "progmodes/autoconf.el"
-;;;;;; (17107 37382))
+;;;;;; (17178 22152))
;;; Generated autoloads from progmodes/autoconf.el
(autoload (quote autoconf-mode) "autoconf" "\
@@ -1181,7 +1181,7 @@ Major mode for editing Autoconf configure.in files.
;;;***
;;;### (autoloads (auto-insert-mode define-auto-insert auto-insert)
-;;;;;; "autoinsert" "autoinsert.el" (17107 37380))
+;;;;;; "autoinsert" "autoinsert.el" (17178 22141))
;;; Generated autoloads from autoinsert.el
(autoload (quote auto-insert) "autoinsert" "\
@@ -1221,7 +1221,7 @@ insert a template for the file depending on the mode of the buffer.
;;;### (autoloads (batch-update-autoloads update-directory-autoloads
;;;;;; update-file-autoloads) "autoload" "emacs-lisp/autoload.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22143))
;;; Generated autoloads from emacs-lisp/autoload.el
(autoload (quote update-file-autoloads) "autoload" "\
@@ -1256,7 +1256,7 @@ Calls `update-directory-autoloads' on the command line arguments.
;;;### (autoloads (global-auto-revert-mode turn-on-auto-revert-tail-mode
;;;;;; auto-revert-tail-mode turn-on-auto-revert-mode auto-revert-mode)
-;;;;;; "autorevert" "autorevert.el" (17107 37380))
+;;;;;; "autorevert" "autorevert.el" (17178 22141))
;;; Generated autoloads from autorevert.el
(autoload (quote auto-revert-mode) "autorevert" "\
@@ -1326,7 +1326,7 @@ Use `auto-revert-mode' to revert a particular buffer.
;;;***
;;;### (autoloads (mouse-avoidance-mode mouse-avoidance-mode) "avoid"
-;;;;;; "avoid.el" (17107 37380))
+;;;;;; "avoid.el" (17178 22141))
;;; Generated autoloads from avoid.el
(defvar mouse-avoidance-mode nil "\
@@ -1367,7 +1367,7 @@ definition of \"random distance\".)
;;;***
;;;### (autoloads (backquote) "backquote" "emacs-lisp/backquote.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22143))
;;; Generated autoloads from emacs-lisp/backquote.el
(autoload (quote backquote) "backquote" "\
@@ -1392,7 +1392,7 @@ Vectors work just like lists. Nested backquotes are permitted.
;;;***
;;;### (autoloads (display-battery-mode battery) "battery" "battery.el"
-;;;;;; (17107 37398))
+;;;;;; (17178 22141))
;;; Generated autoloads from battery.el
(put 'battery-mode-line-string 'risky-local-variable t)
@@ -1425,7 +1425,7 @@ seconds.
;;;***
;;;### (autoloads (benchmark benchmark-run-compiled benchmark-run)
-;;;;;; "benchmark" "emacs-lisp/benchmark.el" (17107 37381))
+;;;;;; "benchmark" "emacs-lisp/benchmark.el" (17178 22143))
;;; Generated autoloads from emacs-lisp/benchmark.el
(autoload (quote benchmark-run) "benchmark" "\
@@ -1457,8 +1457,8 @@ non-interactive use see also `benchmark-run' and
;;;***
-;;;### (autoloads (bibtex-mode) "bibtex" "textmodes/bibtex.el" (17107
-;;;;;; 37381))
+;;;### (autoloads (bibtex-mode) "bibtex" "textmodes/bibtex.el" (17178
+;;;;;; 22154))
;;; Generated autoloads from textmodes/bibtex.el
(autoload (quote bibtex-mode) "bibtex" "\
@@ -1520,7 +1520,7 @@ if that value is non-nil.
;;;### (autoloads (binhex-decode-region binhex-decode-region-external
;;;;;; binhex-decode-region-internal) "binhex" "gnus/binhex.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22145))
;;; Generated autoloads from gnus/binhex.el
(defconst binhex-begin-line "^:...............................................................$")
@@ -1543,8 +1543,8 @@ Binhex decode region between START and END.
;;;***
-;;;### (autoloads (blackbox) "blackbox" "play/blackbox.el" (17107
-;;;;;; 37380))
+;;;### (autoloads (blackbox) "blackbox" "play/blackbox.el" (17178
+;;;;;; 22152))
;;; Generated autoloads from play/blackbox.el
(autoload (quote blackbox) "blackbox" "\
@@ -1666,7 +1666,7 @@ a reflection.
;;;### (autoloads (bookmark-bmenu-list bookmark-load bookmark-save
;;;;;; bookmark-write bookmark-delete bookmark-insert bookmark-rename
;;;;;; bookmark-insert-location bookmark-relocate bookmark-jump
-;;;;;; bookmark-set) "bookmark" "bookmark.el" (17107 37383))
+;;;;;; bookmark-set) "bookmark" "bookmark.el" (17178 22141))
;;; Generated autoloads from bookmark.el
(define-key ctl-x-map "rb" 'bookmark-jump)
(define-key ctl-x-map "rm" 'bookmark-set)
@@ -1725,7 +1725,7 @@ bookmarks. See help on function `bookmark-load' for more about
this.
If the file pointed to by BOOKMARK no longer exists, you will be asked
-if you wish to give the bookmark a new location, and bookmark-jump
+if you wish to give the bookmark a new location, and `bookmark-jump'
will then jump to the new location, as well as recording it in place
of the old one in the permanent bookmark record.
@@ -1795,8 +1795,8 @@ Saves by default in the file defined by the variable
`bookmark-default-file'. With a prefix arg, save it in file FILE
\(second argument).
-If you are calling this from Lisp, the two arguments are PREFIX-ARG
-and FILE, and if you just want it to write to the default file, then
+If you are calling this from Lisp, the two arguments are PARG and
+FILE, and if you just want it to write to the default file, then
pass no arguments. Or pass in nil and FILE, and it will save in FILE
instead. If you pass in one argument, and it is non-nil, then the
user will be interactively queried for a file to save in.
@@ -1856,7 +1856,7 @@ deletion, or > if it is flagged for displaying.
;;;;;; browse-url browse-url-of-region browse-url-of-dired-file
;;;;;; browse-url-of-buffer browse-url-of-file browse-url-url-at-point
;;;;;; browse-url-galeon-program browse-url-firefox-program browse-url-browser-function)
-;;;;;; "browse-url" "net/browse-url.el" (17107 37379))
+;;;;;; "browse-url" "net/browse-url.el" (17178 22151))
;;; Generated autoloads from net/browse-url.el
(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))) "\
@@ -2187,8 +2187,8 @@ Default to the URL around or before point.
;;;***
-;;;### (autoloads (snarf-bruces bruce) "bruce" "play/bruce.el" (17107
-;;;;;; 37380))
+;;;### (autoloads (snarf-bruces bruce) "bruce" "play/bruce.el" (17178
+;;;;;; 22152))
;;; Generated autoloads from play/bruce.el
(autoload (quote bruce) "bruce" "\
@@ -2204,7 +2204,7 @@ Return a vector containing the lines from `bruce-phrases-file'.
;;;***
;;;### (autoloads (bs-show bs-customize bs-cycle-previous bs-cycle-next)
-;;;;;; "bs" "bs.el" (17107 37380))
+;;;;;; "bs" "bs.el" (17178 22141))
;;; Generated autoloads from bs.el
(autoload (quote bs-cycle-next) "bs" "\
@@ -2245,8 +2245,8 @@ name of buffer configuration.
;;;***
;;;### (autoloads (insert-text-button make-text-button insert-button
-;;;;;; make-button define-button-type) "button" "button.el" (17107
-;;;;;; 37380))
+;;;;;; make-button define-button-type) "button" "button.el" (17178
+;;;;;; 22141))
;;; Generated autoloads from button.el
(defvar button-map (let ((map (make-sparse-keymap))) (define-key map " " (quote push-button)) (define-key map [mouse-2] (quote push-button)) map) "\
@@ -2334,7 +2334,7 @@ Also see `make-text-button'.
;;;;;; batch-byte-compile-if-not-done display-call-tree byte-compile
;;;;;; compile-defun byte-compile-file byte-recompile-directory
;;;;;; byte-force-recompile) "bytecomp" "emacs-lisp/bytecomp.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22144))
;;; Generated autoloads from emacs-lisp/bytecomp.el
(autoload (quote byte-force-recompile) "bytecomp" "\
@@ -2426,7 +2426,7 @@ For example, invoke `emacs -batch -f batch-byte-recompile-directory .'.
;;;***
-;;;### (autoloads nil "cal-dst" "calendar/cal-dst.el" (17107 37380))
+;;;### (autoloads nil "cal-dst" "calendar/cal-dst.el" (17178 20480))
;;; Generated autoloads from calendar/cal-dst.el
(put (quote calendar-daylight-savings-starts) (quote risky-local-variable) t)
@@ -2436,7 +2436,7 @@ For example, invoke `emacs -batch -f batch-byte-recompile-directory .'.
;;;***
;;;### (autoloads (list-yahrzeit-dates) "cal-hebrew" "calendar/cal-hebrew.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22142))
;;; Generated autoloads from calendar/cal-hebrew.el
(autoload (quote list-yahrzeit-dates) "cal-hebrew" "\
@@ -2451,7 +2451,7 @@ from the cursor position.
;;;### (autoloads (defmath calc-embedded-activate calc-embedded calc-grab-rectangle
;;;;;; calc-grab-region full-calc-keypad calc-keypad calc-eval quick-calc
;;;;;; full-calc calc calc-dispatch calc-settings-file) "calc" "calc/calc.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22142))
;;; Generated autoloads from calc/calc.el
(defvar calc-settings-file (convert-standard-filename "~/.calc.el") "\
@@ -2529,8 +2529,8 @@ Not documented
;;;***
-;;;### (autoloads (calculator) "calculator" "calculator.el" (17107
-;;;;;; 37381))
+;;;### (autoloads (calculator) "calculator" "calculator.el" (17178
+;;;;;; 22142))
;;; Generated autoloads from calculator.el
(autoload (quote calculator) "calculator" "\
@@ -2558,7 +2558,7 @@ See the documentation for `calculator-mode' for more information.
;;;;;; mark-holidays-in-calendar view-calendar-holidays-initially
;;;;;; calendar-remove-frame-by-deleting mark-diary-entries-in-calendar
;;;;;; number-of-diary-entries view-diary-entries-initially calendar-offset)
-;;;;;; "calendar" "calendar/calendar.el" (17107 37380))
+;;;;;; "calendar" "calendar/calendar.el" (17178 22143))
;;; Generated autoloads from calendar/calendar.el
(defvar calendar-offset 0 "\
@@ -3149,7 +3149,7 @@ movement commands will not work correctly.")
;;;***
;;;### (autoloads (canlock-verify canlock-insert-header) "canlock"
-;;;;;; "gnus/canlock.el" (17107 37379))
+;;;;;; "gnus/canlock.el" (17178 22145))
;;; Generated autoloads from gnus/canlock.el
(autoload (quote canlock-insert-header) "canlock" "\
@@ -3166,9 +3166,21 @@ it fails.
;;;***
+;;;### (autoloads (c-guess-basic-syntax) "cc-engine" "progmodes/cc-engine.el"
+;;;;;; (17178 22152))
+;;; Generated autoloads from progmodes/cc-engine.el
+
+(autoload (quote c-guess-basic-syntax) "cc-engine" "\
+Return the syntactic context of the current line.
+This function does not do any hidden buffer changes.
+
+\(fn)" nil nil)
+
+;;;***
+
;;;### (autoloads (pike-mode idl-mode java-mode objc-mode c++-mode
;;;;;; c-mode c-initialize-cc-mode) "cc-mode" "progmodes/cc-mode.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22152))
;;; Generated autoloads from progmodes/cc-mode.el
(autoload (quote c-initialize-cc-mode) "cc-mode" "\
@@ -3326,7 +3338,7 @@ Key bindings:
;;;***
;;;### (autoloads (c-set-offset c-add-style c-set-style) "cc-styles"
-;;;;;; "progmodes/cc-styles.el" (17107 37381))
+;;;;;; "progmodes/cc-styles.el" (17178 22152))
;;; Generated autoloads from progmodes/cc-styles.el
(autoload (quote c-set-style) "cc-styles" "\
@@ -3383,7 +3395,7 @@ and exists only for compatibility reasons.
;;;### (autoloads (ccl-execute-with-args check-ccl-program define-ccl-program
;;;;;; declare-ccl-program ccl-dump ccl-compile) "ccl" "international/ccl.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 20480))
;;; Generated autoloads from international/ccl.el
(autoload (quote ccl-compile) "ccl" "\
@@ -3642,7 +3654,7 @@ See the documentation of `define-ccl-program' for the detail of CCL program.
;;;***
;;;### (autoloads (cfengine-mode) "cfengine" "progmodes/cfengine.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22152))
;;; Generated autoloads from progmodes/cfengine.el
(autoload (quote cfengine-mode) "cfengine" "\
@@ -3664,7 +3676,7 @@ to the action header.
;;;;;; checkdoc-comments checkdoc-continue checkdoc-start checkdoc-current-buffer
;;;;;; checkdoc-eval-current-buffer checkdoc-message-interactive
;;;;;; checkdoc-interactive checkdoc) "checkdoc" "emacs-lisp/checkdoc.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22144))
;;; Generated autoloads from emacs-lisp/checkdoc.el
(autoload (quote checkdoc) "checkdoc" "\
@@ -3847,8 +3859,8 @@ checking of documentation strings.
;;;***
;;;### (autoloads (encode-hz-buffer encode-hz-region decode-hz-buffer
-;;;;;; decode-hz-region) "china-util" "language/china-util.el" (17107
-;;;;;; 37382))
+;;;;;; decode-hz-region) "china-util" "language/china-util.el" (17178
+;;;;;; 20481))
;;; Generated autoloads from language/china-util.el
(autoload (quote decode-hz-region) "china-util" "\
@@ -3876,7 +3888,7 @@ Encode the text in the current buffer to HZ.
;;;***
;;;### (autoloads (command-history list-command-history repeat-matching-complex-command)
-;;;;;; "chistory" "chistory.el" (17107 37381))
+;;;;;; "chistory" "chistory.el" (17178 22143))
;;; Generated autoloads from chistory.el
(autoload (quote repeat-matching-complex-command) "chistory" "\
@@ -3915,7 +3927,7 @@ and runs the normal hook `command-history-hook'.
;;;***
-;;;### (autoloads nil "cl" "emacs-lisp/cl.el" (17107 37381))
+;;;### (autoloads nil "cl" "emacs-lisp/cl.el" (17178 22144))
;;; Generated autoloads from emacs-lisp/cl.el
(defvar custom-print-functions nil "\
@@ -3931,7 +3943,7 @@ a future Emacs interpreter will be able to use it.")
;;;***
;;;### (autoloads (common-lisp-indent-function) "cl-indent" "emacs-lisp/cl-indent.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22144))
;;; Generated autoloads from emacs-lisp/cl-indent.el
(autoload (quote common-lisp-indent-function) "cl-indent" "\
@@ -3942,7 +3954,7 @@ Not documented
;;;***
;;;### (autoloads (c-macro-expand) "cmacexp" "progmodes/cmacexp.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22153))
;;; Generated autoloads from progmodes/cmacexp.el
(autoload (quote c-macro-expand) "cmacexp" "\
@@ -3951,8 +3963,9 @@ Normally display output in temp buffer, but
prefix arg means replace the region with it.
`c-macro-preprocessor' specifies the preprocessor to use.
-Prompt for arguments to the preprocessor (e.g. `-DDEBUG -I ./include')
-if the user option `c-macro-prompt-flag' is non-nil.
+Tf the user option `c-macro-prompt-flag' is non-nil
+prompt for arguments to the preprocessor (e.g. `-DDEBUG -I ./include'),
+otherwise use `c-macro-cppflags'.
Noninteractive args are START, END, SUBST.
For use inside Lisp programs, see also `c-macro-expansion'.
@@ -3961,16 +3974,20 @@ For use inside Lisp programs, see also `c-macro-expansion'.
;;;***
-;;;### (autoloads (run-scheme) "cmuscheme" "cmuscheme.el" (17107
-;;;;;; 37380))
+;;;### (autoloads (run-scheme) "cmuscheme" "cmuscheme.el" (17178
+;;;;;; 22143))
;;; Generated autoloads from cmuscheme.el
(autoload (quote run-scheme) "cmuscheme" "\
-Run an inferior Scheme process, input and output via buffer *scheme*.
+Run an inferior Scheme process, input and output via buffer `*scheme*'.
If there is a process already running in `*scheme*', switch to that buffer.
With argument, allows you to edit the command line (default is value
-of `scheme-program-name'). Runs the hooks `inferior-scheme-mode-hook'
-\(after the `comint-mode-hook' is run).
+of `scheme-program-name').
+If a file `~/.emacs_SCHEMENAME' exists, it is given as initial input.
+Note that this may lose due to a timing error if the Scheme processor
+discards input when it starts up.
+Runs the hook `inferior-scheme-mode-hook' (after the `comint-mode-hook'
+is run).
\(Type \\[describe-mode] in the process buffer for a list of commands.)
\(fn CMD)" t nil)
@@ -3979,7 +3996,7 @@ of `scheme-program-name'). Runs the hooks `inferior-scheme-mode-hook'
;;;***
;;;### (autoloads (cp-make-coding-system) "code-pages" "international/code-pages.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22146))
;;; Generated autoloads from international/code-pages.el
(autoload (quote cp-make-coding-system) "code-pages" "\
@@ -3991,6 +4008,23 @@ corresponding args of `make-coding-system'. If MNEMONIC isn't given,
Return an updated `non-iso-charset-alist'.
\(fn NAME V &optional DOC-STRING MNEMONIC)" nil (quote macro))
+(autoload-coding-system 'cp437 '(require 'code-pages))
+(autoload-coding-system 'cp737 '(require 'code-pages))
+(autoload-coding-system 'cp775 '(require 'code-pages))
+(autoload-coding-system 'cp850 '(require 'code-pages))
+(autoload-coding-system 'cp851 '(require 'code-pages))
+(autoload-coding-system 'cp852 '(require 'code-pages))
+(autoload-coding-system 'cp855 '(require 'code-pages))
+(autoload-coding-system 'cp857 '(require 'code-pages))
+(autoload-coding-system 'cp860 '(require 'code-pages))
+(autoload-coding-system 'cp861 '(require 'code-pages))
+(autoload-coding-system 'cp862 '(require 'code-pages))
+(autoload-coding-system 'cp863 '(require 'code-pages))
+(autoload-coding-system 'cp864 '(require 'code-pages))
+(autoload-coding-system 'cp865 '(require 'code-pages))
+(autoload-coding-system 'cp866 '(require 'code-pages))
+(autoload-coding-system 'cp869 '(require 'code-pages))
+(autoload-coding-system 'cp874 '(require 'code-pages))
(autoload-coding-system 'windows-1250 '(require 'code-pages))
(autoload-coding-system 'windows-1253 '(require 'code-pages))
(autoload-coding-system 'windows-1254 '(require 'code-pages))
@@ -3998,10 +4032,16 @@ Return an updated `non-iso-charset-alist'.
(autoload-coding-system 'windows-1256 '(require 'code-pages))
(autoload-coding-system 'windows-1257 '(require 'code-pages))
(autoload-coding-system 'windows-1258 '(require 'code-pages))
+(autoload-coding-system 'next '(require 'code-pages))
+(autoload-coding-system 'koi8-t '(require 'code-pages))
(autoload-coding-system 'iso-8859-16 '(require 'code-pages))
+(autoload-coding-system 'iso-8859-6 '(require 'code-pages))
(autoload-coding-system 'iso-8859-10 '(require 'code-pages))
(autoload-coding-system 'iso-8859-13 '(require 'code-pages))
(autoload-coding-system 'georgian-ps '(require 'code-pages))
+(autoload-coding-system 'cp720 '(require 'code-pages))
+(autoload-coding-system 'cp1125 '(require 'code-pages))
+(autoload-coding-system 'mik '(require 'code-pages))
(autoload-coding-system 'pt154 '(require 'code-pages))
(autoload-coding-system 'iso-8859-11 '(require 'code-pages))
@@ -4009,7 +4049,7 @@ Return an updated `non-iso-charset-alist'.
;;;### (autoloads (codepage-setup cp-supported-codepages cp-offset-for-codepage
;;;;;; cp-language-for-codepage cp-charset-for-codepage cp-make-coding-systems-for-codepage)
-;;;;;; "codepage" "international/codepage.el" (17107 37380))
+;;;;;; "codepage" "international/codepage.el" (17178 20480))
;;; Generated autoloads from international/codepage.el
(autoload (quote cp-make-coding-systems-for-codepage) "codepage" "\
@@ -4068,7 +4108,7 @@ read/written by MS-DOS software, or for display on the MS-DOS terminal.
;;;### (autoloads (comint-redirect-results-list-from-process comint-redirect-results-list
;;;;;; comint-redirect-send-command-to-process comint-redirect-send-command
;;;;;; comint-run make-comint make-comint-in-buffer) "comint" "comint.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22143))
;;; Generated autoloads from comint.el
(defvar comint-output-filter-functions (quote (comint-postoutput-scroll-to-bottom comint-watch-for-password-prompt)) "\
@@ -4084,7 +4124,7 @@ See also `comint-preoutput-filter-functions'.
You can use `add-hook' to add functions to this list
either globally or locally.")
-(defvaralias (quote comint-use-prompt-regexp-instead-of-fields) (quote comint-use-prompt-regexp))
+(define-obsolete-variable-alias (quote comint-use-prompt-regexp-instead-of-fields) (quote comint-use-prompt-regexp) "22.1")
(autoload (quote make-comint-in-buffer) "comint" "\
Make a Comint process NAME in BUFFER, running PROGRAM.
@@ -4121,6 +4161,11 @@ See `make-comint' and `comint-exec'.
\(fn PROGRAM)" t nil)
+(defvar comint-file-name-prefix "" "\
+Prefix prepended to absolute file names taken from process input.
+This is used by Comint's and shell's completion functions, and by shell's
+directory tracking functions.")
+
(autoload (quote comint-redirect-send-command) "comint" "\
Send COMMAND to process in current buffer, with output to OUTPUT-BUFFER.
With prefix arg ECHO, echo output in process buffer.
@@ -4153,8 +4198,8 @@ REGEXP-GROUP is the regular expression group in REGEXP to use.
;;;***
-;;;### (autoloads (compare-windows) "compare-w" "compare-w.el" (17107
-;;;;;; 37380))
+;;;### (autoloads (compare-windows) "compare-w" "compare-w.el" (17178
+;;;;;; 22143))
;;; Generated autoloads from compare-w.el
(autoload (quote compare-windows) "compare-w" "\
@@ -4188,13 +4233,14 @@ on third call it again advances points to the next difference and so on.
;;;***
;;;### (autoloads (compilation-next-error-function compilation-minor-mode
-;;;;;; compilation-shell-minor-mode compilation-mode compile compilation-search-path
-;;;;;; compilation-ask-about-save compilation-window-height compilation-mode-hook)
-;;;;;; "compile" "progmodes/compile.el" (17107 37381))
+;;;;;; compilation-shell-minor-mode compilation-mode compilation-start
+;;;;;; compile compilation-search-path compilation-ask-about-save
+;;;;;; compilation-window-height compilation-mode-hook) "compile"
+;;;;;; "progmodes/compile.el" (17178 22153))
;;; Generated autoloads from progmodes/compile.el
(defvar compilation-mode-hook nil "\
-*List of hook functions run by `compilation-mode' (see `run-hooks').")
+*List of hook functions run by `compilation-mode' (see `run-mode-hooks').")
(custom-autoload (quote compilation-mode-hook) "compile")
@@ -4268,13 +4314,31 @@ to a function that generates a unique name.
\(fn COMMAND &optional COMINT)" t nil)
+(autoload (quote compilation-start) "compile" "\
+Run compilation command COMMAND (low level interface).
+If COMMAND starts with a cd command, that becomes the `default-directory'.
+The rest of the arguments are optional; for them, nil means use the default.
+
+MODE is the major mode to set in the compilation buffer. Mode
+may also be t meaning use `compilation-shell-minor-mode' under `comint-mode'.
+If NAME-FUNCTION is non-nil, call it with one argument (the mode name)
+to determine the buffer name.
+
+If HIGHLIGHT-REGEXP is non-nil, `next-error' will temporarily highlight
+the matching section of the visited source line; the default is to use the
+global value of `compilation-highlight-regexp'.
+
+Returns the compilation buffer created.
+
+\(fn COMMAND &optional MODE NAME-FUNCTION HIGHLIGHT-REGEXP)" nil nil)
+
(autoload (quote compilation-mode) "compile" "\
Major mode for compilation log buffers.
\\<compilation-mode-map>To visit the source for a line-numbered error,
move point to the error message line and type \\[compile-goto-error].
To kill the compilation, type \\[kill-compilation].
-Runs `compilation-mode-hook' with `run-hooks' (which see).
+Runs `compilation-mode-hook' with `run-mode-hooks' (which see).
\\{compilation-mode-map}
@@ -4310,7 +4374,7 @@ This is the value of `next-error-function' in Compilation buffers.
;;;***
;;;### (autoloads (partial-completion-mode) "complete" "complete.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22143))
;;; Generated autoloads from complete.el
(defvar partial-completion-mode nil "\
@@ -4347,7 +4411,7 @@ See also the variable `PC-include-file-path'.
;;;***
;;;### (autoloads (dynamic-completion-mode) "completion" "completion.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22143))
;;; Generated autoloads from completion.el
(autoload (quote dynamic-completion-mode) "completion" "\
@@ -4360,7 +4424,7 @@ Enable dynamic word-completion.
;;;### (autoloads (decompose-composite-char compose-last-chars compose-chars-after
;;;;;; find-composition compose-chars decompose-string compose-string
;;;;;; decompose-region compose-region encode-composition-rule)
-;;;;;; "composite" "composite.el" (17107 37380))
+;;;;;; "composite" "composite.el" (17178 22143))
;;; Generated autoloads from composite.el
(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))) "\
@@ -4405,7 +4469,7 @@ follows (the point `*' corresponds to both reference points):
(autoload (quote encode-composition-rule) "composite" "\
Encode composition rule RULE into an integer value.
RULE is a cons of global and new reference point symbols
-\(see reference-point-alist).
+\(see `reference-point-alist').
\(fn RULE)" nil nil)
@@ -4459,7 +4523,7 @@ The return value is STRING where `composition' property is put on all
the characters in it.
Optional 2nd and 3rd arguments START and END specify the range of
-STRING to be composed. They defaults to the beginning and the end of
+STRING to be composed. They default to the beginning and the end of
STRING respectively.
Optional 4th argument COMPONENTS, if non-nil, is a character or a
@@ -4556,11 +4620,11 @@ The argument is a parameterized event of the form
where N is the number of characters before point to compose,
COMPONENTS, if non-nil, is the same as the argument to `compose-region'
\(which see). If it is nil, `compose-chars-after' is called,
-and that function find a proper rule to compose the target characters.
+and that function finds a proper rule to compose the target characters.
This function is intended to be used from input methods.
The global keymap binds special event `compose-last-chars' to this
function. Input method may generate an event (compose-last-chars N COMPONENTS)
-after a sequence character events.
+after a sequence of character events.
\(fn ARGS)" t nil)
(global-set-key [compose-last-chars] 'compose-last-chars)
@@ -4581,7 +4645,7 @@ Optional 3rd arg WITH-COMPOSITION-RULE is ignored.
;;;### (autoloads (conf-xdefaults-mode conf-ppd-mode conf-colon-mode
;;;;;; conf-space-mode conf-javaprop-mode conf-windows-mode conf-unix-mode
-;;;;;; conf-mode) "conf-mode" "textmodes/conf-mode.el" (17107 37381))
+;;;;;; conf-mode) "conf-mode" "textmodes/conf-mode.el" (17178 22154))
;;; Generated autoloads from textmodes/conf-mode.el
(autoload (quote conf-mode) "conf-mode" "\
@@ -4731,7 +4795,7 @@ For details see `conf-mode'. Example:
;;;***
;;;### (autoloads (shuffle-vector cookie-snarf cookie-insert cookie)
-;;;;;; "cookie1" "play/cookie1.el" (17107 37380))
+;;;;;; "cookie1" "play/cookie1.el" (17178 22152))
;;; Generated autoloads from play/cookie1.el
(autoload (quote cookie) "cookie1" "\
@@ -4763,7 +4827,7 @@ Randomly permute the elements of VECTOR (all permutations equally likely).
;;;***
;;;### (autoloads (copyright copyright-fix-years copyright-update)
-;;;;;; "copyright" "emacs-lisp/copyright.el" (17107 37381))
+;;;;;; "copyright" "emacs-lisp/copyright.el" (17178 22144))
;;; Generated autoloads from emacs-lisp/copyright.el
(autoload (quote copyright-update) "copyright" "\
@@ -4791,7 +4855,7 @@ Insert a copyright by $ORGANIZATION notice at cursor.
;;;***
;;;### (autoloads (cperl-mode) "cperl-mode" "progmodes/cperl-mode.el"
-;;;;;; (17107 37382))
+;;;;;; (17178 22153))
;;; Generated autoloads from progmodes/cperl-mode.el
(autoload (quote cperl-mode) "cperl-mode" "\
@@ -4964,7 +5028,7 @@ or as help on variables `cperl-tips', `cperl-problems',
;;;***
;;;### (autoloads (cpp-parse-edit cpp-highlight-buffer) "cpp" "progmodes/cpp.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22153))
;;; Generated autoloads from progmodes/cpp.el
(autoload (quote cpp-highlight-buffer) "cpp" "\
@@ -4983,7 +5047,7 @@ Edit display information for cpp conditionals.
;;;***
;;;### (autoloads (crisp-mode crisp-mode) "crisp" "emulation/crisp.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22144))
;;; Generated autoloads from emulation/crisp.el
(defvar crisp-mode nil "\
@@ -5007,7 +5071,7 @@ With ARG, turn CRiSP mode on if ARG is positive, off otherwise.
;;;***
;;;### (autoloads (completing-read-multiple) "crm" "emacs-lisp/crm.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22144))
;;; Generated autoloads from emacs-lisp/crm.el
(autoload (quote completing-read-multiple) "crm" "\
@@ -5042,8 +5106,8 @@ INHERIT-INPUT-METHOD.
;;;***
-;;;### (autoloads (cua-mode) "cua-base" "emulation/cua-base.el" (17107
-;;;;;; 36868))
+;;;### (autoloads (cua-selection-mode cua-mode) "cua-base" "emulation/cua-base.el"
+;;;;;; (17178 24780))
;;; Generated autoloads from emulation/cua-base.el
(defvar cua-mode nil "\
@@ -5058,12 +5122,33 @@ use either \\[customize] or the function `cua-mode'.")
(autoload (quote cua-mode) "cua-base" "\
Toggle CUA key-binding mode.
-When enabled, using shifted movement keys will activate the region (and
-highlight the region using `transient-mark-mode'), and typed text replaces
-the active selection. C-z, C-x, C-c, and C-v will undo, cut, copy, and
-paste (in addition to the normal Emacs bindings).
+When enabled, using shifted movement keys will activate the
+region (and highlight the region using `transient-mark-mode'),
+and typed text replaces the active selection.
+
+Also when enabled, you can use C-z, C-x, C-c, and C-v to undo,
+cut, copy, and paste in addition to the normal Emacs bindings.
+The C-x and C-c keys only do cut and copy when the region is
+active, so in most cases, they do not conflict with the normal
+function of these prefix keys.
+
+If you really need to perform a command which starts with one of
+the prefix keys even when the region is active, you have three
+options:
+- press the prefix key twice very quickly (within 0.2 seconds),
+- press the prefix key and the following key within 0.2 seconds, or
+- use the SHIFT key with the prefix key, i.e. C-S-x or C-S-c.
+
+You can customize `cua-enable-cua-keys' to completely disable the
+CUA bindings, or `cua-prefix-override-inhibit-delay' to change
+the prefix fallback behavior.
\(fn &optional ARG)" t nil)
+
+(autoload (quote cua-selection-mode) "cua-base" "\
+Enable CUA selection mode without the C-z/C-x/C-c/C-v bindings.
+
+\(fn ARG)" t nil)
(eval-after-load 'CUA-mode
'(error (concat "\n\n"
"CUA-mode is now part of the standard GNU Emacs distribution,\n"
@@ -5076,15 +5161,15 @@ paste (in addition to the normal Emacs bindings).
;;;***
-;;;### (autoloads (customize-menu-create custom-menu-create custom-save-all
-;;;;;; customize-save-customized custom-file customize-browse custom-buffer-create-other-window
+;;;### (autoloads (customize-menu-create custom-menu-create customize-save-customized
+;;;;;; custom-save-all custom-file customize-browse custom-buffer-create-other-window
;;;;;; custom-buffer-create customize-apropos-groups customize-apropos-faces
;;;;;; customize-apropos-options customize-apropos customize-saved
;;;;;; customize-rogue customize-customized customize-face-other-window
;;;;;; customize-face customize-changed-options customize-option-other-window
;;;;;; customize-option customize-group-other-window customize-group
;;;;;; customize-mode customize customize-save-variable customize-set-variable
-;;;;;; customize-set-value) "cus-edit" "cus-edit.el" (17107 37380))
+;;;;;; customize-set-value) "cus-edit" "cus-edit.el" (17178 22143))
;;; Generated autoloads from cus-edit.el
(add-hook 'same-window-regexps "\\`\\*Customiz.*\\*\\'")
@@ -5312,16 +5397,16 @@ and hence will not set `custom-file' to that file either.")
(custom-autoload (quote custom-file) "cus-edit")
-(autoload (quote customize-save-customized) "cus-edit" "\
-Save all user options which have been set in this session.
-
-\(fn)" t nil)
-
(autoload (quote custom-save-all) "cus-edit" "\
Save all customizations in `custom-file'.
\(fn)" nil nil)
+(autoload (quote customize-save-customized) "cus-edit" "\
+Save all user options which have been set in this session.
+
+\(fn)" t nil)
+
(autoload (quote custom-menu-create) "cus-edit" "\
Create menu for customization group SYMBOL.
The menu is in a format applicable to `easy-menu-define'.
@@ -5338,9 +5423,8 @@ The format is suitable for use with `easy-menu-define'.
;;;***
-;;;### (autoloads (custom-reset-faces custom-theme-reset-faces custom-theme-face-value
-;;;;;; custom-set-faces custom-declare-face) "cus-face" "cus-face.el"
-;;;;;; (17107 37380))
+;;;### (autoloads (custom-reset-faces custom-theme-reset-faces custom-set-faces
+;;;;;; custom-declare-face) "cus-face" "cus-face.el" (17178 22143))
;;; Generated autoloads from cus-face.el
(autoload (quote custom-declare-face) "cus-face" "\
@@ -5385,38 +5469,32 @@ COMMENT is a string comment about FACE.
\(fn &rest ARGS)" nil nil)
-(autoload (quote custom-theme-face-value) "cus-face" "\
-Return spec of FACE in THEME if THEME modifies FACE.
-Value is nil otherwise. The association between theme and spec for FACE
-is stored in FACE's property `theme-face'. The appropriate face
-is retrieved using `custom-theme-value'.
-
-\(fn FACE THEME)" nil nil)
-
(autoload (quote custom-theme-reset-faces) "cus-face" "\
-Reset the value of the face to values previously defined.
-Associate this setting with THEME.
-
-ARGS is a list of lists of the form
+Reset the specs in THEME of some faces to their specs in other themes.
+Each of the arguments ARGS has this form:
- (FACE TO-THEME)
+ (FACE FROM-THEME)
-This means reset FACE to its value in TO-THEME.
+This means reset FACE to its value in FROM-THEME.
\(fn THEME &rest ARGS)" nil nil)
(autoload (quote custom-reset-faces) "cus-face" "\
-Reset the value of the face to values previously saved.
-This is the setting assosiated the `user' theme.
+Reset the specs of some faces to their specs in specified themes.
+This creates settings in the `user' theme.
+
+Each of the arguments ARGS has this form:
-ARGS is defined as for `custom-theme-reset-faces'
+ (FACE FROM-THEME)
+
+This means reset FACE to its value in FROM-THEME.
\(fn &rest ARGS)" nil nil)
;;;***
;;;### (autoloads (customize-create-theme) "cus-theme" "cus-theme.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22143))
;;; Generated autoloads from cus-theme.el
(autoload (quote customize-create-theme) "cus-theme" "\
@@ -5427,7 +5505,7 @@ Create a custom theme.
;;;***
;;;### (autoloads (cvs-status-mode) "cvs-status" "cvs-status.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22143))
;;; Generated autoloads from cvs-status.el
(autoload (quote cvs-status-mode) "cvs-status" "\
@@ -5438,7 +5516,7 @@ Mode used for cvs status output.
;;;***
;;;### (autoloads (global-cwarn-mode turn-on-cwarn-mode cwarn-mode)
-;;;;;; "cwarn" "progmodes/cwarn.el" (17107 37381))
+;;;;;; "cwarn" "progmodes/cwarn.el" (17178 22153))
;;; Generated autoloads from progmodes/cwarn.el
(autoload (quote cwarn-mode) "cwarn" "\
@@ -5482,7 +5560,7 @@ in which `turn-on-cwarn-mode-if-enabled' turns it on.
;;;### (autoloads (standard-display-cyrillic-translit cyrillic-encode-alternativnyj-char
;;;;;; cyrillic-encode-koi8-r-char) "cyril-util" "language/cyril-util.el"
-;;;;;; (17107 37382))
+;;;;;; (17178 20481))
;;; Generated autoloads from language/cyril-util.el
(autoload (quote cyrillic-encode-koi8-r-char) "cyril-util" "\
@@ -5511,7 +5589,7 @@ If the argument is nil, we return the display table to its standard state.
;;;***
;;;### (autoloads (dabbrev-expand dabbrev-completion) "dabbrev" "dabbrev.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22143))
;;; Generated autoloads from dabbrev.el
(define-key esc-map "/" 'dabbrev-expand)
(define-key esc-map [?\C-/] 'dabbrev-completion)
@@ -5558,8 +5636,8 @@ See also `dabbrev-abbrev-char-regexp' and \\[dabbrev-completion].
;;;***
-;;;### (autoloads (dcl-mode) "dcl-mode" "progmodes/dcl-mode.el" (17107
-;;;;;; 37381))
+;;;### (autoloads (dcl-mode) "dcl-mode" "progmodes/dcl-mode.el" (17178
+;;;;;; 22153))
;;; Generated autoloads from progmodes/dcl-mode.el
(autoload (quote dcl-mode) "dcl-mode" "\
@@ -5686,7 +5764,7 @@ There is some minimal font-lock support (see vars
;;;***
;;;### (autoloads (cancel-debug-on-entry debug-on-entry debug) "debug"
-;;;;;; "emacs-lisp/debug.el" (17107 37381))
+;;;;;; "emacs-lisp/debug.el" (17178 22144))
;;; Generated autoloads from emacs-lisp/debug.el
(setq debugger (quote debug))
@@ -5730,7 +5808,7 @@ To specify a nil argument interactively, exit with an empty minibuffer.
;;;***
;;;### (autoloads (decipher-mode decipher) "decipher" "play/decipher.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22152))
;;; Generated autoloads from play/decipher.el
(autoload (quote decipher) "decipher" "\
@@ -5759,8 +5837,8 @@ The most useful commands are:
;;;***
;;;### (autoloads (delimit-columns-rectangle delimit-columns-region
-;;;;;; delimit-columns-customize) "delim-col" "delim-col.el" (17107
-;;;;;; 37383))
+;;;;;; delimit-columns-customize) "delim-col" "delim-col.el" (17178
+;;;;;; 22143))
;;; Generated autoloads from delim-col.el
(autoload (quote delimit-columns-customize) "delim-col" "\
@@ -5784,8 +5862,8 @@ START and END delimits the corners of text rectangle.
;;;***
-;;;### (autoloads (delphi-mode) "delphi" "progmodes/delphi.el" (17107
-;;;;;; 37381))
+;;;### (autoloads (delphi-mode) "delphi" "progmodes/delphi.el" (17178
+;;;;;; 22153))
;;; Generated autoloads from progmodes/delphi.el
(autoload (quote delphi-mode) "delphi" "\
@@ -5835,8 +5913,8 @@ no args, if that value is non-nil.
;;;***
-;;;### (autoloads (delete-selection-mode) "delsel" "delsel.el" (17107
-;;;;;; 37381))
+;;;### (autoloads (delete-selection-mode) "delsel" "delsel.el" (17178
+;;;;;; 22143))
;;; Generated autoloads from delsel.el
(defalias (quote pending-delete-mode) (quote delete-selection-mode))
@@ -5866,7 +5944,7 @@ any selection.
;;;***
;;;### (autoloads (derived-mode-init-mode-variables define-derived-mode)
-;;;;;; "derived" "emacs-lisp/derived.el" (17107 37381))
+;;;;;; "derived" "emacs-lisp/derived.el" (17178 22144))
;;; Generated autoloads from emacs-lisp/derived.el
(autoload (quote define-derived-mode) "derived" "\
@@ -5931,7 +6009,7 @@ the first time the mode is used.
;;;***
;;;### (autoloads (describe-char describe-text-properties) "descr-text"
-;;;;;; "descr-text.el" (17107 37380))
+;;;;;; "descr-text.el" (17178 22143))
;;; Generated autoloads from descr-text.el
(autoload (quote describe-text-properties) "descr-text" "\
@@ -5955,8 +6033,8 @@ as well as widgets, buttons, overlays, and text properties.
;;;***
;;;### (autoloads (desktop-revert desktop-save-in-desktop-dir desktop-change-dir
-;;;;;; desktop-load-default desktop-read desktop-save-mode) "desktop"
-;;;;;; "desktop.el" (17107 37383))
+;;;;;; desktop-load-default desktop-read desktop-locals-to-save
+;;;;;; desktop-save-mode) "desktop" "desktop.el" (17178 22143))
;;; Generated autoloads from desktop.el
(defvar desktop-save-mode nil "\
@@ -5975,26 +6053,116 @@ desktop is saved.
\(fn &optional ARG)" t nil)
+(defvar desktop-locals-to-save (quote (desktop-locals-to-save truncate-lines case-fold-search case-replace fill-column overwrite-mode change-log-default-name line-number-mode column-number-mode size-indication-mode buffer-file-coding-system indent-tabs-mode indicate-buffer-boundaries indicate-empty-lines show-trailing-whitespace)) "\
+List of local variables to save for each buffer.
+The variables are saved only when they really are local. Conventional minor
+modes are restored automatically; they should not be listed here.")
+
+(custom-autoload (quote desktop-locals-to-save) "desktop")
+
(defvar desktop-save-buffer nil "\
When non-nil, save buffer status in desktop file.
This variable becomes buffer local when set.
-If the value is a function, it called by `desktop-save' with argument
-DESKTOP-DIRNAME to obtain auxiliary information to saved in the desktop
+If the value is a function, it is called by `desktop-save' with argument
+DESKTOP-DIRNAME to obtain auxiliary information to save in the desktop
file along with the state of the buffer for which it was called.
When file names are returned, they should be formatted using the call
\"(desktop-file-name FILE-NAME DESKTOP-DIRNAME)\".
-Later, when `desktop-read' calls a function in `desktop-buffer-mode-handlers'
-to restore the buffer, the auxiliary information is passed as the argument
-DESKTOP-BUFFER-MISC.")
+Later, when `desktop-read' evaluates the desktop file, auxiliary information
+is passed as the argument DESKTOP-BUFFER-MISC to functions in
+`desktop-buffer-mode-handlers'.")
+
+(defvar desktop-buffer-mode-handlers nil "\
+Alist of major mode specific functions to restore a desktop buffer.
+Functions listed are called by `desktop-create-buffer' when `desktop-read'
+evaluates the desktop file. List elements must have the form
+
+ (MAJOR-MODE . RESTORE-BUFFER-FUNCTION).
+
+Buffers with a major mode not specified here, are restored by the default
+handler `desktop-restore-file-buffer'.
+
+Handlers are called with argument list
+
+ (DESKTOP-BUFFER-FILE-NAME DESKTOP-BUFFER-NAME DESKTOP-BUFFER-MISC)
+
+Furthermore, they may use the following variables:
+
+ desktop-file-version
+ desktop-buffer-major-mode
+ desktop-buffer-minor-modes
+ desktop-buffer-point
+ desktop-buffer-mark
+ desktop-buffer-read-only
+ desktop-buffer-locals
+
+If a handler returns a buffer, then the saved mode settings
+and variable values for that buffer are copied into it.
+
+Modules that define a major mode that needs a special handler should contain
+code like
+
+ (defun foo-restore-desktop-buffer
+ ...
+ (add-to-list 'desktop-buffer-mode-handlers
+ '(foo-mode . foo-restore-desktop-buffer))
+
+Furthermore the major mode function must be autoloaded.")
+
+(put (quote desktop-buffer-mode-handlers) (quote risky-local-variable) t)
+
+(defvar desktop-minor-mode-handlers nil "\
+Alist of functions to restore non-standard minor modes.
+Functions are called by `desktop-create-buffer' to restore minor modes.
+List elements must have the form
+
+ (MINOR-MODE . RESTORE-FUNCTION).
+
+Minor modes not specified here, are restored by the standard minor mode
+function.
+
+Handlers are called with argument list
+
+ (DESKTOP-BUFFER-LOCALS)
+
+Furthermore, they may use the following variables:
+
+ desktop-file-version
+ desktop-buffer-file-name
+ desktop-buffer-name
+ desktop-buffer-major-mode
+ desktop-buffer-minor-modes
+ desktop-buffer-point
+ desktop-buffer-mark
+ desktop-buffer-read-only
+ desktop-buffer-misc
+
+When a handler is called, the buffer has been created and the major mode has
+been set, but local variables listed in desktop-buffer-locals has not yet been
+created and set.
+
+Modules that define a minor mode that needs a special handler should contain
+code like
+
+ (defun foo-desktop-restore
+ ...
+ (add-to-list 'desktop-minor-mode-handlers
+ '(foo-mode . foo-desktop-restore))
+
+Furthermore the minor mode function must be autoloaded.
+
+See also `desktop-minor-mode-table'.")
+
+(put (quote desktop-minor-mode-handlers) (quote risky-local-variable) t)
(autoload (quote desktop-read) "desktop" "\
Read and process the desktop file in directory DIRNAME.
Look for a desktop file in DIRNAME, or if DIRNAME is omitted, look in
directories listed in `desktop-path'. If a desktop file is found, it
-is processed and `desktop-after-read-hook' is run. If no desktop file
+is processed and `desktop-after-read-hook' is run. If no desktop file
is found, clear the desktop and run `desktop-no-desktop-file-hook'.
This function is a no-op when Emacs is running in batch mode.
It returns t if a desktop file was loaded, nil otherwise.
@@ -6031,7 +6199,7 @@ Revert to the last loaded desktop.
;;;;;; gnus-article-outlook-repair-attribution gnus-article-outlook-unwrap-lines
;;;;;; gnus-outlook-display-hook gnus-outlook-deuglify-unwrap-max
;;;;;; gnus-outlook-deuglify-unwrap-min) "deuglify" "gnus/deuglify.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 20480))
;;; Generated autoloads from gnus/deuglify.el
(defvar gnus-outlook-deuglify-unwrap-min 45 "\
@@ -6080,7 +6248,7 @@ Deuglify broken Outlook (Express) articles and redisplay.
;;;***
;;;### (autoloads (devanagari-post-read-conversion devanagari-compose-region)
-;;;;;; "devan-util" "language/devan-util.el" (17107 37382))
+;;;;;; "devan-util" "language/devan-util.el" (17178 20481))
;;; Generated autoloads from language/devan-util.el
(defconst devanagari-consonant "[\x51ad5-\x51af9\x51b38-\x51b3f]")
@@ -6098,7 +6266,7 @@ Not documented
;;;***
;;;### (autoloads (diary-mode diary-mail-entries diary) "diary-lib"
-;;;;;; "calendar/diary-lib.el" (17107 37380))
+;;;;;; "calendar/diary-lib.el" (17178 22143))
;;; Generated autoloads from calendar/diary-lib.el
(autoload (quote diary) "diary-lib" "\
@@ -6144,7 +6312,7 @@ Major mode for editing the diary file.
;;;***
;;;### (autoloads (diff-backup diff diff-command diff-switches) "diff"
-;;;;;; "diff.el" (17107 37380))
+;;;;;; "diff.el" (17178 22143))
;;; Generated autoloads from diff.el
(defvar diff-switches "-c" "\
@@ -6178,7 +6346,7 @@ With prefix arg, prompt for diff switches.
;;;***
;;;### (autoloads (diff-minor-mode diff-mode) "diff-mode" "diff-mode.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22143))
;;; Generated autoloads from diff-mode.el
(autoload (quote diff-mode) "diff-mode" "\
@@ -6203,21 +6371,21 @@ Minor mode for viewing/editing context diffs.
;;;***
-;;;### (autoloads (dired-restore-desktop-buffer dired-noselect dired-other-frame
-;;;;;; dired-other-window dired dired-copy-preserve-time dired-dwim-target
-;;;;;; dired-keep-marker-symlink dired-keep-marker-hardlink dired-keep-marker-copy
-;;;;;; dired-keep-marker-rename dired-trivial-filenames dired-ls-F-marks-symlinks
-;;;;;; dired-listing-switches) "dired" "dired.el" (17107 37380))
+;;;### (autoloads (dired-mode dired-noselect dired-other-frame dired-other-window
+;;;;;; dired dired-copy-preserve-time dired-dwim-target dired-keep-marker-symlink
+;;;;;; dired-keep-marker-hardlink dired-keep-marker-copy dired-keep-marker-rename
+;;;;;; dired-trivial-filenames dired-ls-F-marks-symlinks dired-listing-switches)
+;;;;;; "dired" "dired.el" (17178 22143))
;;; Generated autoloads from dired.el
(defvar dired-listing-switches "-al" "\
-*Switches passed to `ls' for dired. MUST contain the `l' option.
+*Switches passed to `ls' for Dired. MUST contain the `l' option.
May contain all other options that don't contradict `-l';
may contain even `F', `b', `i' and `s'. See also the variable
`dired-ls-F-marks-symlinks' concerning the `F' switch.
On systems such as MS-DOS and MS-Windows, which use `ls' emulation in Lisp,
some of the `ls' switches are not supported; see the doc string of
-`insert-directory' on ls-lisp.el for more details.")
+`insert-directory' on `ls-lisp.el' for more details.")
(custom-autoload (quote dired-listing-switches) "dired")
@@ -6225,7 +6393,7 @@ some of the `ls' switches are not supported; see the doc string of
Name of chown command (usually `chown' or `/etc/chown').")
(defvar dired-ls-F-marks-symlinks nil "\
-*Informs dired about how `ls -lF' marks symbolic links.
+*Informs Dired about how `ls -lF' marks symbolic links.
Set this to t if `ls' (or whatever program is specified by
`insert-directory-program') with `-lF' marks the symbolic link
itself with a trailing @ (usually the case under Ultrix).
@@ -6277,7 +6445,7 @@ If a character, new links are unconditionally marked with that character.")
(custom-autoload (quote dired-keep-marker-symlink) "dired")
(defvar dired-dwim-target nil "\
-*If non-nil, dired tries to guess a default target directory.
+*If non-nil, Dired tries to guess a default target directory.
This means: if there is a dired buffer displayed in the next window,
use its current subdir, instead of the current subdir of this dired buffer.
@@ -6292,7 +6460,7 @@ The target is used in the prompt for file copy, rename etc.")
(custom-autoload (quote dired-copy-preserve-time) "dired")
(defvar dired-directory nil "\
-The directory name or wildcard spec that this Dired directory lists.
+The directory name or wildcard spec that this dired directory lists.
Local to each dired buffer. May be a list, in which case the car is the
directory name and the cdr is the list of files to mention.
The directory name must be absolute, but need not be fully expanded.")
@@ -6309,7 +6477,7 @@ list of files to make directory entries for.
\\<dired-mode-map>You can move around in it with the usual commands.
You can flag files for deletion with \\[dired-flag-file-deletion] and then
delete them by typing \\[dired-do-flagged-delete].
-Type \\[describe-mode] after entering dired for more info.
+Type \\[describe-mode] after entering Dired for more info.
If DIRNAME is already in a dired buffer, that buffer is used without refresh.
@@ -6331,12 +6499,71 @@ If DIRNAME is already in a dired buffer, that buffer is used without refresh.
Like `dired' but returns the dired buffer as value, does not select it.
\(fn DIR-OR-LIST &optional SWITCHES)" nil nil)
- (put 'dired-find-alternate-file 'disabled t)
-(autoload (quote dired-restore-desktop-buffer) "dired" "\
-Restore a dired buffer specified in a desktop file.
-
-\(fn DESKTOP-BUFFER-FILE-NAME DESKTOP-BUFFER-NAME DESKTOP-BUFFER-MISC)" nil nil)
+(autoload (quote dired-mode) "dired" "\
+Mode for \"editing\" directory listings.
+In Dired, you are \"editing\" a list of the files in a directory and
+ (optionally) its subdirectories, in the format of `ls -lR'.
+ Each directory is a page: use \\[backward-page] and \\[forward-page] to move pagewise.
+\"Editing\" means that you can run shell commands on files, visit,
+ compress, load or byte-compile them, change their file attributes
+ and insert subdirectories into the same buffer. You can \"mark\"
+ files for later commands or \"flag\" them for deletion, either file
+ by file or all files matching certain criteria.
+You can move using the usual cursor motion commands.\\<dired-mode-map>
+Letters no longer insert themselves. Digits are prefix arguments.
+Instead, type \\[dired-flag-file-deletion] to flag a file for Deletion.
+Type \\[dired-mark] to Mark a file or subdirectory for later commands.
+ Most commands operate on the marked files and use the current file
+ if no files are marked. Use a numeric prefix argument to operate on
+ the next ARG (or previous -ARG if ARG<0) files, or just `1'
+ to operate on the current file only. Prefix arguments override marks.
+ Mark-using commands display a list of failures afterwards. Type \\[dired-summary]
+ to see why something went wrong.
+Type \\[dired-unmark] to Unmark a file or all files of a subdirectory.
+Type \\[dired-unmark-backward] to back up one line and unflag.
+Type \\[dired-do-flagged-delete] to eXecute the deletions requested.
+Type \\[dired-advertised-find-file] to Find the current line's file
+ (or dired it in another buffer, if it is a directory).
+Type \\[dired-find-file-other-window] to find file or dired directory in Other window.
+Type \\[dired-maybe-insert-subdir] to Insert a subdirectory in this buffer.
+Type \\[dired-do-rename] to Rename a file or move the marked files to another directory.
+Type \\[dired-do-copy] to Copy files.
+Type \\[dired-sort-toggle-or-edit] to toggle Sorting by name/date or change the `ls' switches.
+Type \\[revert-buffer] to read all currently expanded directories aGain.
+ This retains all marks and hides subdirs again that were hidden before.
+SPC and DEL can be used to move down and up by lines.
+
+If Dired ever gets confused, you can either type \\[revert-buffer] to read the
+directories again, type \\[dired-do-redisplay] to relist a single or the marked files or a
+subdirectory, or type \\[dired-build-subdir-alist] to parse the buffer
+again for the directory tree.
+
+Customization variables (rename this buffer and type \\[describe-variable] on each line
+for more info):
+
+ `dired-listing-switches'
+ `dired-trivial-filenames'
+ `dired-shrink-to-fit'
+ `dired-marker-char'
+ `dired-del-marker'
+ `dired-keep-marker-rename'
+ `dired-keep-marker-copy'
+ `dired-keep-marker-hardlink'
+ `dired-keep-marker-symlink'
+
+Hooks (use \\[describe-variable] to see their documentation):
+
+ `dired-before-readin-hook'
+ `dired-after-readin-hook'
+ `dired-mode-hook'
+ `dired-load-hook'
+
+Keybindings:
+\\{dired-mode-map}
+
+\(fn &optional DIRNAME SWITCHES)" nil nil)
+ (put 'dired-find-alternate-file 'disabled t)
;;;***
@@ -6353,7 +6580,7 @@ Restore a dired buffer specified in a desktop file.
;;;;;; dired-run-shell-command dired-do-shell-command dired-clean-directory
;;;;;; dired-do-print dired-do-touch dired-do-chown dired-do-chgrp
;;;;;; dired-do-chmod dired-compare-directories dired-backup-diff
-;;;;;; dired-diff) "dired-aux" "dired-aux.el" (17107 37382))
+;;;;;; dired-diff) "dired-aux" "dired-aux.el" (17178 22143))
;;; Generated autoloads from dired-aux.el
(autoload (quote dired-diff) "dired-aux" "\
@@ -6761,13 +6988,13 @@ true then the type of the file linked to by FILE is printed instead.
;;;***
-;;;### (autoloads (dired-jump) "dired-x" "dired-x.el" (17107 37380))
+;;;### (autoloads (dired-jump) "dired-x" "dired-x.el" (17178 22143))
;;; Generated autoloads from dired-x.el
(autoload (quote dired-jump) "dired-x" "\
Jump to dired buffer corresponding to current buffer.
If in a file, dired the current directory and move to file's line.
-If in dired already, pop up a level and goto old directory's line.
+If in Dired already, pop up a level and goto old directory's line.
In case the proper dired file line cannot be found, refresh the dired
buffer and try again.
@@ -6775,7 +7002,7 @@ buffer and try again.
;;;***
-;;;### (autoloads (dirtrack) "dirtrack" "dirtrack.el" (17107 37383))
+;;;### (autoloads (dirtrack) "dirtrack" "dirtrack.el" (17178 22143))
;;; Generated autoloads from dirtrack.el
(autoload (quote dirtrack) "dirtrack" "\
@@ -6794,8 +7021,8 @@ You can enable directory tracking by adding this function to
;;;***
-;;;### (autoloads (disassemble) "disass" "emacs-lisp/disass.el" (17107
-;;;;;; 37381))
+;;;### (autoloads (disassemble) "disass" "emacs-lisp/disass.el" (17178
+;;;;;; 22144))
;;; Generated autoloads from emacs-lisp/disass.el
(autoload (quote disassemble) "disass" "\
@@ -6813,7 +7040,7 @@ redefine OBJECT if it is a symbol.
;;;;;; standard-display-graphic standard-display-g1 standard-display-ascii
;;;;;; standard-display-default standard-display-8bit describe-current-display-table
;;;;;; describe-display-table set-display-table-slot display-table-slot
-;;;;;; make-display-table) "disp-table" "disp-table.el" (17107 37380))
+;;;;;; make-display-table) "disp-table" "disp-table.el" (17178 22143))
;;; Generated autoloads from disp-table.el
(autoload (quote make-display-table) "disp-table" "\
@@ -6914,7 +7141,7 @@ for users who call this function in `.emacs'.
;;;***
;;;### (autoloads (dissociated-press) "dissociate" "play/dissociate.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22152))
;;; Generated autoloads from play/dissociate.el
(autoload (quote dissociated-press) "dissociate" "\
@@ -6930,7 +7157,7 @@ Default is 2.
;;;***
-;;;### (autoloads (dnd-protocol-alist) "dnd" "dnd.el" (17107 37380))
+;;;### (autoloads (dnd-protocol-alist) "dnd" "dnd.el" (17178 22143))
;;; Generated autoloads from dnd.el
(defvar dnd-protocol-alist (quote (("^file:///" . dnd-open-local-file) ("^file://" . dnd-open-file) ("^file:" . dnd-open-local-file))) "\
@@ -6951,7 +7178,7 @@ if some action was made, or nil if the URL is ignored.")
;;;***
;;;### (autoloads (dns-mode-soa-increment-serial dns-mode) "dns-mode"
-;;;;;; "textmodes/dns-mode.el" (17107 37381))
+;;;;;; "textmodes/dns-mode.el" (17178 22154))
;;; Generated autoloads from textmodes/dns-mode.el
(autoload (quote dns-mode) "dns-mode" "\
@@ -6974,7 +7201,7 @@ Locate SOA record and increment the serial field.
;;;***
-;;;### (autoloads (doctor) "doctor" "play/doctor.el" (17107 37380))
+;;;### (autoloads (doctor) "doctor" "play/doctor.el" (17178 22152))
;;; Generated autoloads from play/doctor.el
(autoload (quote doctor) "doctor" "\
@@ -6985,7 +7212,7 @@ Switch to *doctor* buffer and start giving psychotherapy.
;;;***
;;;### (autoloads (double-mode double-mode) "double" "double.el"
-;;;;;; (17107 37229))
+;;;;;; (17178 22143))
;;; Generated autoloads from double.el
(defvar double-mode nil "\
@@ -7006,7 +7233,7 @@ when pressed twice. See variable `double-map' for details.
;;;***
-;;;### (autoloads (dunnet) "dunnet" "play/dunnet.el" (17107 37380))
+;;;### (autoloads (dunnet) "dunnet" "play/dunnet.el" (17178 22152))
;;; Generated autoloads from play/dunnet.el
(autoload (quote dunnet) "dunnet" "\
@@ -7017,7 +7244,7 @@ Switch to *dungeon* buffer and start game.
;;;***
;;;### (autoloads (gnus-earcon-display) "earcon" "gnus/earcon.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22145))
;;; Generated autoloads from gnus/earcon.el
(autoload (quote gnus-earcon-display) "earcon" "\
@@ -7029,7 +7256,7 @@ Play sounds in message buffers.
;;;### (autoloads (easy-mmode-defsyntax easy-mmode-defmap easy-mmode-define-keymap
;;;;;; define-global-minor-mode define-minor-mode) "easy-mmode"
-;;;;;; "emacs-lisp/easy-mmode.el" (17107 37381))
+;;;;;; "emacs-lisp/easy-mmode.el" (17178 22144))
;;; Generated autoloads from emacs-lisp/easy-mmode.el
(defalias (quote easy-mmode-define-minor-mode) (quote define-minor-mode))
@@ -7115,8 +7342,8 @@ CSS contains a list of syntax specifications of the form (CHAR . SYNTAX).
;;;***
;;;### (autoloads (easy-menu-change easy-menu-create-menu easy-menu-do-define
-;;;;;; easy-menu-define) "easymenu" "emacs-lisp/easymenu.el" (17107
-;;;;;; 37381))
+;;;;;; easy-menu-define) "easymenu" "emacs-lisp/easymenu.el" (17178
+;;;;;; 22144))
;;; Generated autoloads from emacs-lisp/easymenu.el
(put (quote easy-menu-define) (quote lisp-indent-function) (quote defun))
@@ -7261,7 +7488,7 @@ to implement dynamic menus.
;;;;;; ebnf-eps-directory ebnf-spool-region ebnf-spool-buffer ebnf-spool-file
;;;;;; ebnf-spool-directory ebnf-print-region ebnf-print-buffer
;;;;;; ebnf-print-file ebnf-print-directory ebnf-customize) "ebnf2ps"
-;;;;;; "progmodes/ebnf2ps.el" (17107 37381))
+;;;;;; "progmodes/ebnf2ps.el" (17178 20481))
;;; Generated autoloads from progmodes/ebnf2ps.el
(autoload (quote ebnf-customize) "ebnf2ps" "\
@@ -7520,8 +7747,8 @@ See `ebnf-style-database' documentation.
;;;;;; ebrowse-tags-find-declaration-other-window ebrowse-tags-find-definition
;;;;;; ebrowse-tags-view-definition ebrowse-tags-find-declaration
;;;;;; ebrowse-tags-view-declaration ebrowse-member-mode ebrowse-electric-choose-tree
-;;;;;; ebrowse-tree-mode) "ebrowse" "progmodes/ebrowse.el" (17107
-;;;;;; 37381))
+;;;;;; ebrowse-tree-mode) "ebrowse" "progmodes/ebrowse.el" (17178
+;;;;;; 22153))
;;; Generated autoloads from progmodes/ebrowse.el
(autoload (quote ebrowse-tree-mode) "ebrowse" "\
@@ -7672,7 +7899,7 @@ Display statistics for a class tree.
;;;***
;;;### (autoloads (electric-buffer-list) "ebuff-menu" "ebuff-menu.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22143))
;;; Generated autoloads from ebuff-menu.el
(autoload (quote electric-buffer-list) "ebuff-menu" "\
@@ -7697,7 +7924,7 @@ Run hooks in `electric-buffer-menu-mode-hook' on entry.
;;;***
;;;### (autoloads (Electric-command-history-redo-expression) "echistory"
-;;;;;; "echistory.el" (17107 37382))
+;;;;;; "echistory.el" (17178 22143))
;;; Generated autoloads from echistory.el
(autoload (quote Electric-command-history-redo-expression) "echistory" "\
@@ -7709,7 +7936,7 @@ With prefix arg NOCONFIRM, execute current line as-is without editing.
;;;***
;;;### (autoloads (edebug-eval-top-level-form def-edebug-spec edebug-all-forms
-;;;;;; edebug-all-defs) "edebug" "emacs-lisp/edebug.el" (17107 37381))
+;;;;;; edebug-all-defs) "edebug" "emacs-lisp/edebug.el" (17178 22144))
;;; Generated autoloads from emacs-lisp/edebug.el
(defvar edebug-all-defs nil "\
@@ -7772,7 +7999,7 @@ already is one.)
;;;;;; ediff-merge-directory-revisions ediff-merge-directories-with-ancestor
;;;;;; ediff-merge-directories ediff-directories3 ediff-directory-revisions
;;;;;; ediff-directories ediff-buffers3 ediff-buffers ediff-backup
-;;;;;; ediff-files3 ediff-files) "ediff" "ediff.el" (17107 37379))
+;;;;;; ediff-files3 ediff-files) "ediff" "ediff.el" (17178 22143))
;;; Generated autoloads from ediff.el
(autoload (quote ediff-files) "ediff" "\
@@ -7971,11 +8198,13 @@ buffer. If odd -- assume it is in a file.
\(fn &optional ARG PATCH-BUF)" t nil)
(autoload (quote ediff-patch-buffer) "ediff" "\
-Run Ediff by patching BUFFER-NAME.
-Without prefix argument: asks if the patch is in some buffer and prompts for
-the buffer or a file, depending on the answer.
-With prefix arg=1: assumes the patch is in a file and prompts for the file.
-With prefix arg=2: assumes the patch is in a buffer and prompts for the buffer.
+Run Ediff by patching the buffer specified at prompt.
+Without the optional prefix ARG, asks if the patch is in some buffer and
+prompts for the buffer or a file, depending on the answer.
+With ARG=1, assumes the patch is in a file and prompts for the file.
+With ARG=2, assumes the patch is in a buffer and prompts for the buffer.
+PATCH-BUF is an optional argument, which specifies the buffer that contains the
+patch. If not given, the user is prompted according to the prefix argument.
\(fn &optional ARG PATCH-BUF)" t nil)
@@ -8008,7 +8237,7 @@ With optional NODE, goes to that node.
;;;***
;;;### (autoloads (ediff-customize) "ediff-help" "ediff-help.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22143))
;;; Generated autoloads from ediff-help.el
(autoload (quote ediff-customize) "ediff-help" "\
@@ -8018,7 +8247,7 @@ Not documented
;;;***
-;;;### (autoloads nil "ediff-hook" "ediff-hook.el" (17107 37380))
+;;;### (autoloads nil "ediff-hook" "ediff-hook.el" (17178 22143))
;;; Generated autoloads from ediff-hook.el
(defvar ediff-window-setup-function)
@@ -8031,7 +8260,7 @@ Not documented
;;;***
;;;### (autoloads (ediff-show-registry) "ediff-mult" "ediff-mult.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22143))
;;; Generated autoloads from ediff-mult.el
(autoload (quote ediff-show-registry) "ediff-mult" "\
@@ -8044,7 +8273,7 @@ Display Ediff's registry.
;;;***
;;;### (autoloads (ediff-toggle-use-toolbar ediff-toggle-multiframe)
-;;;;;; "ediff-util" "ediff-util.el" (17107 37380))
+;;;;;; "ediff-util" "ediff-util.el" (17178 22143))
;;; Generated autoloads from ediff-util.el
(autoload (quote ediff-toggle-multiframe) "ediff-util" "\
@@ -8065,7 +8294,7 @@ To change the default, set the variable `ediff-use-toolbar-p', which see.
;;;### (autoloads (format-kbd-macro read-kbd-macro edit-named-kbd-macro
;;;;;; edit-last-kbd-macro edit-kbd-macro) "edmacro" "edmacro.el"
-;;;;;; (17107 37227))
+;;;;;; (17178 22143))
;;; Generated autoloads from edmacro.el
(defvar edmacro-eight-bits nil "\
@@ -8118,7 +8347,7 @@ or nil, use a compact 80-column format.
;;;***
;;;### (autoloads (edt-emulation-on edt-set-scroll-margins) "edt"
-;;;;;; "emulation/edt.el" (17107 37380))
+;;;;;; "emulation/edt.el" (17178 22144))
;;; Generated autoloads from emulation/edt.el
(autoload (quote edt-set-scroll-margins) "edt" "\
@@ -8136,7 +8365,7 @@ Turn on EDT Emulation.
;;;***
;;;### (autoloads (electric-helpify with-electric-help) "ehelp" "ehelp.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22143))
;;; Generated autoloads from ehelp.el
(autoload (quote with-electric-help) "ehelp" "\
@@ -8174,7 +8403,7 @@ Not documented
;;;***
;;;### (autoloads (turn-on-eldoc-mode eldoc-mode eldoc-minor-mode-string)
-;;;;;; "eldoc" "emacs-lisp/eldoc.el" (17107 37381))
+;;;;;; "eldoc" "emacs-lisp/eldoc.el" (17178 22144))
;;; Generated autoloads from emacs-lisp/eldoc.el
(defvar eldoc-minor-mode-string " ElDoc" "\
@@ -8212,8 +8441,8 @@ Emacs Lisp mode) that support Eldoc.")
;;;***
-;;;### (autoloads (elide-head) "elide-head" "elide-head.el" (17107
-;;;;;; 37400))
+;;;### (autoloads (elide-head) "elide-head" "elide-head.el" (17178
+;;;;;; 22143))
;;; Generated autoloads from elide-head.el
(autoload (quote elide-head) "elide-head" "\
@@ -8229,7 +8458,7 @@ This is suitable as an entry on `find-file-hook' or appropriate mode hooks.
;;;***
;;;### (autoloads (elint-initialize) "elint" "emacs-lisp/elint.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22144))
;;; Generated autoloads from emacs-lisp/elint.el
(autoload (quote elint-initialize) "elint" "\
@@ -8240,8 +8469,8 @@ Initialize elint.
;;;***
;;;### (autoloads (elp-results elp-instrument-package elp-instrument-list
-;;;;;; elp-instrument-function) "elp" "emacs-lisp/elp.el" (17107
-;;;;;; 37381))
+;;;;;; elp-instrument-function) "elp" "emacs-lisp/elp.el" (17178
+;;;;;; 22144))
;;; Generated autoloads from emacs-lisp/elp.el
(autoload (quote elp-instrument-function) "elp" "\
@@ -8275,7 +8504,7 @@ displayed.
;;;***
;;;### (autoloads (report-emacs-bug) "emacsbug" "mail/emacsbug.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22150))
;;; Generated autoloads from mail/emacsbug.el
(autoload (quote report-emacs-bug) "emacsbug" "\
@@ -8290,7 +8519,7 @@ Prompts for bug subject. Leaves you in a mail buffer.
;;;;;; emerge-revisions emerge-files-with-ancestor-remote emerge-files-remote
;;;;;; emerge-files-with-ancestor-command emerge-files-command emerge-buffers-with-ancestor
;;;;;; emerge-buffers emerge-files-with-ancestor emerge-files) "emerge"
-;;;;;; "emerge.el" (17107 37379))
+;;;;;; "emerge.el" (17178 22144))
;;; Generated autoloads from emerge.el
(defvar menu-bar-emerge-menu (make-sparse-keymap "Emerge"))
@@ -8368,7 +8597,7 @@ Not documented
;;;***
;;;### (autoloads (encoded-kbd-setup-display) "encoded-kb" "international/encoded-kb.el"
-;;;;;; (17107 37229))
+;;;;;; (17178 21353))
;;; Generated autoloads from international/encoded-kb.el
(autoload (quote encoded-kbd-setup-display) "encoded-kb" "\
@@ -8381,7 +8610,7 @@ DISPLAY may be a display id, a frame, or nil for the selected frame's display.
;;;***
;;;### (autoloads (enriched-decode enriched-encode enriched-mode)
-;;;;;; "enriched" "textmodes/enriched.el" (17107 37381))
+;;;;;; "enriched" "textmodes/enriched.el" (17178 22154))
;;; Generated autoloads from textmodes/enriched.el
(autoload (quote enriched-mode) "enriched" "\
@@ -8411,8 +8640,8 @@ Not documented
;;;***
-;;;### (autoloads (eshell-mode) "esh-mode" "eshell/esh-mode.el" (17107
-;;;;;; 37380))
+;;;### (autoloads (eshell-mode) "esh-mode" "eshell/esh-mode.el" (17178
+;;;;;; 22144))
;;; Generated autoloads from eshell/esh-mode.el
(autoload (quote eshell-mode) "esh-mode" "\
@@ -8424,8 +8653,8 @@ Emacs shell interactive mode.
;;;***
-;;;### (autoloads (eshell-test) "esh-test" "eshell/esh-test.el" (17107
-;;;;;; 37380))
+;;;### (autoloads (eshell-test) "esh-test" "eshell/esh-test.el" (17178
+;;;;;; 22144))
;;; Generated autoloads from eshell/esh-test.el
(autoload (quote eshell-test) "esh-test" "\
@@ -8436,7 +8665,7 @@ Test Eshell to verify that it works as expected.
;;;***
;;;### (autoloads (eshell-report-bug eshell-command-result eshell-command
-;;;;;; eshell) "eshell" "eshell/eshell.el" (17107 37380))
+;;;;;; eshell) "eshell" "eshell/eshell.el" (17178 22144))
;;; Generated autoloads from eshell/eshell.el
(autoload (quote eshell) "eshell" "\
@@ -8481,8 +8710,8 @@ Please include any configuration details that might be involved.
;;;;;; find-tag find-tag-noselect tags-table-files visit-tags-table-buffer
;;;;;; visit-tags-table find-tag-default-function find-tag-hook
;;;;;; tags-add-tables tags-compression-info-list tags-table-list
-;;;;;; tags-case-fold-search) "etags" "progmodes/etags.el" (17107
-;;;;;; 37381))
+;;;;;; tags-case-fold-search) "etags" "progmodes/etags.el" (17178
+;;;;;; 22153))
;;; Generated autoloads from progmodes/etags.el
(defvar tags-file-name nil "\
@@ -8779,7 +9008,7 @@ for \\[find-tag] (which see).
;;;;;; ethio-fidel-to-sera-buffer ethio-fidel-to-sera-region ethio-sera-to-fidel-marker
;;;;;; ethio-sera-to-fidel-mail ethio-sera-to-fidel-mail-or-marker
;;;;;; ethio-sera-to-fidel-buffer ethio-sera-to-fidel-region setup-ethiopic-environment-internal)
-;;;;;; "ethio-util" "language/ethio-util.el" (17107 37382))
+;;;;;; "ethio-util" "language/ethio-util.el" (17178 22147))
;;; Generated autoloads from language/ethio-util.el
(autoload (quote setup-ethiopic-environment-internal) "ethio-util" "\
@@ -8793,7 +9022,7 @@ The variable `ethio-primary-language' specifies the primary language
and `ethio-secondary-language' specifies the secondary.
If the 3rd parameter SECONDARY is given and non-nil, assume the region
-begins begins with the secondary language; otherwise with the primary
+begins with the secondary language; otherwise with the primary
language.
If the 4th parameter FORCE is given and non-nil, perform conversion
@@ -8974,7 +9203,7 @@ Transcribe Ethiopic characters in ASCII depending on the file extension.
;;;### (autoloads (eudc-load-eudc eudc-query-form eudc-expand-inline
;;;;;; eudc-get-phone eudc-get-email eudc-set-server) "eudc" "net/eudc.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22151))
;;; Generated autoloads from net/eudc.el
(autoload (quote eudc-set-server) "eudc" "\
@@ -9030,7 +9259,7 @@ This does nothing except loading eudc by autoload side-effect.
;;;### (autoloads (eudc-display-jpeg-as-button eudc-display-jpeg-inline
;;;;;; eudc-display-sound eudc-display-mail eudc-display-url eudc-display-generic-binary)
-;;;;;; "eudc-bob" "net/eudc-bob.el" (17107 37379))
+;;;;;; "eudc-bob" "net/eudc-bob.el" (17178 22151))
;;; Generated autoloads from net/eudc-bob.el
(autoload (quote eudc-display-generic-binary) "eudc-bob" "\
@@ -9066,7 +9295,7 @@ Display a button for the JPEG DATA.
;;;***
;;;### (autoloads (eudc-try-bbdb-insert eudc-insert-record-at-point-into-bbdb)
-;;;;;; "eudc-export" "net/eudc-export.el" (17107 37379))
+;;;;;; "eudc-export" "net/eudc-export.el" (17178 22151))
;;; Generated autoloads from net/eudc-export.el
(autoload (quote eudc-insert-record-at-point-into-bbdb) "eudc-export" "\
@@ -9083,7 +9312,7 @@ Call `eudc-insert-record-at-point-into-bbdb' if on a record.
;;;***
;;;### (autoloads (eudc-edit-hotlist) "eudc-hotlist" "net/eudc-hotlist.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22151))
;;; Generated autoloads from net/eudc-hotlist.el
(autoload (quote eudc-edit-hotlist) "eudc-hotlist" "\
@@ -9096,7 +9325,7 @@ Edit the hotlist of directory servers in a specialized buffer.
;;;### (autoloads (executable-make-buffer-file-executable-if-script-p
;;;;;; executable-self-display executable-set-magic executable-interpret
;;;;;; executable-command-find-posix-p) "executable" "progmodes/executable.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22153))
;;; Generated autoloads from progmodes/executable.el
(autoload (quote executable-command-find-posix-p) "executable" "\
@@ -9138,7 +9367,7 @@ file modes.
;;;***
;;;### (autoloads (expand-jump-to-next-slot expand-jump-to-previous-slot
-;;;;;; expand-add-abbrevs) "expand" "expand.el" (17107 37380))
+;;;;;; expand-add-abbrevs) "expand" "expand.el" (17178 22144))
;;; Generated autoloads from expand.el
(autoload (quote expand-add-abbrevs) "expand" "\
@@ -9181,7 +9410,7 @@ This is used only in conjunction with `expand-add-abbrevs'.
;;;***
-;;;### (autoloads (f90-mode) "f90" "progmodes/f90.el" (17107 37381))
+;;;### (autoloads (f90-mode) "f90" "progmodes/f90.el" (17178 22153))
;;; Generated autoloads from progmodes/f90.el
(autoload (quote f90-mode) "f90" "\
@@ -9250,7 +9479,7 @@ with no args, if that value is non-nil.
;;;;;; facemenu-remove-all facemenu-remove-face-props facemenu-set-read-only
;;;;;; facemenu-set-intangible facemenu-set-invisible facemenu-set-face-from-menu
;;;;;; facemenu-set-background facemenu-set-foreground facemenu-set-face)
-;;;;;; "facemenu" "facemenu.el" (17107 37380))
+;;;;;; "facemenu" "facemenu.el" (17178 22144))
;;; Generated autoloads from facemenu.el
(define-key global-map "\M-o" 'facemenu-keymap)
(autoload 'facemenu-keymap "facemenu" "Keymap for face-changing commands." t 'keymap)
@@ -9413,7 +9642,7 @@ argument BUFFER-NAME is nil, it defaults to *Colors*.
;;;***
;;;### (autoloads (turn-on-fast-lock fast-lock-mode) "fast-lock"
-;;;;;; "obsolete/fast-lock.el" (17107 37382))
+;;;;;; "obsolete/fast-lock.el" (17178 22151))
;;; Generated autoloads from obsolete/fast-lock.el
(autoload (quote fast-lock-mode) "fast-lock" "\
@@ -9454,7 +9683,7 @@ Unconditionally turn on Fast Lock mode.
;;;### (autoloads (feedmail-queue-reminder feedmail-run-the-queue
;;;;;; feedmail-run-the-queue-global-prompt feedmail-run-the-queue-no-prompts
-;;;;;; feedmail-send-it) "feedmail" "mail/feedmail.el" (17107 37380))
+;;;;;; feedmail-send-it) "feedmail" "mail/feedmail.el" (17178 20480))
;;; Generated autoloads from mail/feedmail.el
(autoload (quote feedmail-send-it) "feedmail" "\
@@ -9508,7 +9737,7 @@ you can set feedmail-queue-reminder-alist to nil.
;;;***
;;;### (autoloads (ffap-bindings dired-at-point ffap-at-mouse ffap-menu
-;;;;;; find-file-at-point ffap-next) "ffap" "ffap.el" (17107 37380))
+;;;;;; find-file-at-point ffap-next) "ffap" "ffap.el" (17178 22144))
;;; Generated autoloads from ffap.el
(autoload (quote ffap-next) "ffap" "\
@@ -9567,7 +9796,7 @@ Evaluate the forms in variable `ffap-bindings'.
;;;***
;;;### (autoloads (file-cache-minibuffer-complete) "filecache" "filecache.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22144))
;;; Generated autoloads from filecache.el
(autoload (quote file-cache-minibuffer-complete) "filecache" "\
@@ -9585,8 +9814,8 @@ the name is considered already unique; only the second substitution
;;;***
-;;;### (autoloads (filesets-init) "filesets" "filesets.el" (17107
-;;;;;; 37380))
+;;;### (autoloads (filesets-init) "filesets" "filesets.el" (17178
+;;;;;; 22144))
;;; Generated autoloads from filesets.el
(autoload (quote filesets-init) "filesets" "\
@@ -9599,7 +9828,7 @@ Set up hooks, load the cache file -- if existing -- and build the menu.
;;;### (autoloads (find-grep-dired find-name-dired find-dired find-grep-options
;;;;;; find-ls-subdir-switches find-ls-option) "find-dired" "find-dired.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22144))
;;; Generated autoloads from find-dired.el
(defvar find-ls-option (if (eq system-type (quote berkeley-unix)) (quote ("-ls" . "-gilsb")) (quote ("-exec ls -ld {} \\;" . "-ld"))) "\
@@ -9660,7 +9889,7 @@ Thus ARG can also contain additional grep options.
;;;### (autoloads (ff-mouse-find-other-file-other-window ff-mouse-find-other-file
;;;;;; ff-find-other-file ff-get-other-file) "find-file" "find-file.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22144))
;;; Generated autoloads from find-file.el
(defvar ff-special-constructs (quote (("^#\\s *\\(include\\|import\\)\\s +[<\"]\\(.*\\)[>\"]" lambda nil (setq fname (buffer-substring (match-beginning 2) (match-end 2)))))) "\
@@ -9752,7 +9981,7 @@ Visit the file you click on in another window.
;;;;;; find-variable find-variable-noselect find-function-other-frame
;;;;;; find-function-other-window find-function find-function-noselect
;;;;;; find-function-search-for-symbol find-library) "find-func"
-;;;;;; "emacs-lisp/find-func.el" (17107 37381))
+;;;;;; "emacs-lisp/find-func.el" (17178 22144))
;;; Generated autoloads from emacs-lisp/find-func.el
(autoload (quote find-library) "find-func" "\
@@ -9901,7 +10130,7 @@ Define some key bindings for the find-function family of functions.
;;;***
;;;### (autoloads (find-lisp-find-dired-filter find-lisp-find-dired-subdirectories
-;;;;;; find-lisp-find-dired) "find-lisp" "find-lisp.el" (17107 37380))
+;;;;;; find-lisp-find-dired) "find-lisp" "find-lisp.el" (17178 22144))
;;; Generated autoloads from find-lisp.el
(autoload (quote find-lisp-find-dired) "find-lisp" "\
@@ -9922,7 +10151,7 @@ Change the filter on a find-lisp-find-dired buffer to REGEXP.
;;;***
;;;### (autoloads (finder-by-keyword finder-commentary finder-list-keywords)
-;;;;;; "finder" "finder.el" (17107 37380))
+;;;;;; "finder" "finder.el" (17178 22144))
;;; Generated autoloads from finder.el
(autoload (quote finder-list-keywords) "finder" "\
@@ -9944,7 +10173,7 @@ Find packages matching a given keyword.
;;;***
;;;### (autoloads (enable-flow-control-on enable-flow-control) "flow-ctrl"
-;;;;;; "flow-ctrl.el" (17107 37381))
+;;;;;; "flow-ctrl.el" (17178 22144))
;;; Generated autoloads from flow-ctrl.el
(autoload (quote enable-flow-control) "flow-ctrl" "\
@@ -9966,7 +10195,7 @@ to get the effect of a C-q.
;;;***
;;;### (autoloads (fill-flowed fill-flowed-encode) "flow-fill" "gnus/flow-fill.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22145))
;;; Generated autoloads from gnus/flow-fill.el
(autoload (quote fill-flowed-encode) "flow-fill" "\
@@ -9982,7 +10211,7 @@ Not documented
;;;***
;;;### (autoloads (flymake-mode-off flymake-mode-on flymake-mode)
-;;;;;; "flymake" "progmodes/flymake.el" (17107 37398))
+;;;;;; "flymake" "progmodes/flymake.el" (17178 22153))
;;; Generated autoloads from progmodes/flymake.el
(autoload (quote flymake-mode) "flymake" "\
@@ -10006,13 +10235,14 @@ Turn flymake mode off.
;;;### (autoloads (flyspell-buffer flyspell-region flyspell-mode-off
;;;;;; flyspell-mode flyspell-prog-mode) "flyspell" "textmodes/flyspell.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22154))
;;; Generated autoloads from textmodes/flyspell.el
(autoload (quote flyspell-prog-mode) "flyspell" "\
Turn on `flyspell-mode' for comments and strings.
\(fn)" t nil)
+(defvar flyspell-mode nil)
(autoload (quote flyspell-mode) "flyspell" "\
Minor mode performing on-the-fly spelling checking.
@@ -10064,7 +10294,7 @@ Flyspell whole buffer.
;;;### (autoloads (follow-delete-other-windows-and-split follow-mode
;;;;;; turn-off-follow-mode turn-on-follow-mode) "follow" "follow.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22144))
;;; Generated autoloads from follow.el
(autoload (quote turn-on-follow-mode) "follow" "\
@@ -10140,7 +10370,7 @@ in your `~/.emacs' file, replacing [f7] by your favourite key:
;;;### (autoloads (font-lock-fontify-buffer font-lock-remove-keywords
;;;;;; font-lock-add-keywords font-lock-mode-internal) "font-lock"
-;;;;;; "font-lock.el" (17107 37380))
+;;;;;; "font-lock.el" (17178 22144))
;;; Generated autoloads from font-lock.el
(autoload (quote font-lock-mode-internal) "font-lock" "\
@@ -10212,8 +10442,8 @@ Fontify the current buffer the way the function `font-lock-mode' would.
;;;***
-;;;### (autoloads (footnote-mode) "footnote" "mail/footnote.el" (17107
-;;;;;; 37380))
+;;;### (autoloads (footnote-mode) "footnote" "mail/footnote.el" (17178
+;;;;;; 22150))
;;; Generated autoloads from mail/footnote.el
(autoload (quote footnote-mode) "footnote" "\
@@ -10234,7 +10464,7 @@ key binding
;;;***
;;;### (autoloads (forms-find-file-other-window forms-find-file forms-mode)
-;;;;;; "forms" "forms.el" (17107 37380))
+;;;;;; "forms" "forms.el" (17178 22144))
;;; Generated autoloads from forms.el
(autoload (quote forms-mode) "forms" "\
@@ -10271,7 +10501,7 @@ Visit a file in Forms mode in other window.
;;;***
;;;### (autoloads (fortran-mode fortran-tab-mode-default) "fortran"
-;;;;;; "progmodes/fortran.el" (17107 37381))
+;;;;;; "progmodes/fortran.el" (17178 22153))
;;; Generated autoloads from progmodes/fortran.el
(defvar fortran-tab-mode-default nil "\
@@ -10357,7 +10587,7 @@ with no args, if that value is non-nil.
;;;***
;;;### (autoloads (fortune fortune-to-signature fortune-compile fortune-from-region
-;;;;;; fortune-add-fortune) "fortune" "play/fortune.el" (17107 37380))
+;;;;;; fortune-add-fortune) "fortune" "play/fortune.el" (17178 22152))
;;; Generated autoloads from play/fortune.el
(autoload (quote fortune-add-fortune) "fortune" "\
@@ -10406,8 +10636,8 @@ and choose the directory as the fortune-file.
;;;***
-;;;### (autoloads (fringe-indicators set-fringe-style fringe-mode
-;;;;;; fringe-mode) "fringe" "fringe.el" (17107 37380))
+;;;### (autoloads (set-fringe-style fringe-mode fringe-mode) "fringe"
+;;;;;; "fringe.el" (17178 22144))
;;; Generated autoloads from fringe.el
(defvar fringe-mode nil "\
@@ -10422,7 +10652,7 @@ To set this variable in a Lisp program, use `set-fringe-mode' to make
it take real effect.
Setting the variable with a customization buffer also takes effect.
If you only want to modify the appearance of the fringe in one frame,
-you can use the interactive function `toggle-fringe'")
+you can use the interactive function `set-fringe-style'.")
(custom-autoload (quote fringe-mode) "fringe")
@@ -10475,15 +10705,10 @@ default appearance of fringes on all frames, see the command
\(fn &optional MODE)" t nil)
-(defvar fringe-indicators nil "\
-Visually indicate buffer boundaries and scrolling.
-Setting this variable, changes `default-indicate-buffer-boundaries'.")
-
-(custom-autoload (quote fringe-indicators) "fringe")
-
;;;***
-;;;### (autoloads (gdba) "gdb-ui" "progmodes/gdb-ui.el" (17107 37381))
+;;;### (autoloads (gdb-enable-debug-log gdba) "gdb-ui" "progmodes/gdb-ui.el"
+;;;;;; (17178 22153))
;;; Generated autoloads from progmodes/gdb-ui.el
(autoload (quote gdba) "gdb-ui" "\
@@ -10492,7 +10717,7 @@ The directory containing FILE becomes the initial working directory
and source-file directory for your debugger.
If `gdb-many-windows' is nil (the default value) then gdb just
-pops up the GUD buffer unless `gdb-show-main' is t. In this case
+pops up the GUD buffer unless `gdb-show-main' is t. In this case
it starts with two windows: one displaying the GUD buffer and the
other with the source file with the main routine of the inferior.
@@ -10538,11 +10763,16 @@ detailed description of this mode.
\(fn COMMAND-LINE)" t nil)
+(defvar gdb-enable-debug-log nil "\
+Non-nil means record the process input and output in `gdb-debug-log'.")
+
+(custom-autoload (quote gdb-enable-debug-log) "gdb-ui")
+
;;;***
;;;### (autoloads (generic-make-keywords-list generic-mode generic-mode-internal
-;;;;;; define-generic-mode) "generic" "emacs-lisp/generic.el" (17107
-;;;;;; 37381))
+;;;;;; define-generic-mode) "generic" "emacs-lisp/generic.el" (17178
+;;;;;; 22144))
;;; Generated autoloads from emacs-lisp/generic.el
(defvar generic-mode-list nil "\
@@ -10617,7 +10847,7 @@ regular expression that can be used as an element of
;;;***
;;;### (autoloads (glasses-mode) "glasses" "progmodes/glasses.el"
-;;;;;; (17107 37382))
+;;;;;; (17178 20481))
;;; Generated autoloads from progmodes/glasses.el
(autoload (quote glasses-mode) "glasses" "\
@@ -10630,7 +10860,7 @@ at places they belong to.
;;;***
;;;### (autoloads (gnus gnus-other-frame gnus-slave gnus-no-server
-;;;;;; gnus-slave-no-server) "gnus" "gnus/gnus.el" (17107 37379))
+;;;;;; gnus-slave-no-server) "gnus" "gnus/gnus.el" (17178 22145))
;;; Generated autoloads from gnus/gnus.el
(autoload (quote gnus-slave-no-server) "gnus" "\
@@ -10681,7 +10911,7 @@ prompt the user for the name of an NNTP server to use.
;;;;;; gnus-agent-get-undownloaded-list gnus-agent-delete-group
;;;;;; gnus-agent-rename-group gnus-agent-possibly-save-gcc gnus-agentize
;;;;;; gnus-slave-unplugged gnus-plugged gnus-unplugged) "gnus-agent"
-;;;;;; "gnus/gnus-agent.el" (17107 37379))
+;;;;;; "gnus/gnus-agent.el" (17178 22145))
;;; Generated autoloads from gnus/gnus-agent.el
(autoload (quote gnus-unplugged) "gnus-agent" "\
@@ -10768,7 +10998,7 @@ If CLEAN, obsolete (ignore).
;;;***
;;;### (autoloads (gnus-article-prepare-display) "gnus-art" "gnus/gnus-art.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22145))
;;; Generated autoloads from gnus/gnus-art.el
(autoload (quote gnus-article-prepare-display) "gnus-art" "\
@@ -10779,7 +11009,7 @@ Make the current buffer look like a nice article.
;;;***
;;;### (autoloads (gnus-audio-play) "gnus-audio" "gnus/gnus-audio.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22145))
;;; Generated autoloads from gnus/gnus-audio.el
(autoload (quote gnus-audio-play) "gnus-audio" "\
@@ -10791,8 +11021,8 @@ Play a sound FILE through the speaker.
;;;### (autoloads (gnus-cache-delete-group gnus-cache-rename-group
;;;;;; gnus-cache-generate-nov-databases gnus-cache-generate-active
-;;;;;; gnus-jog-cache) "gnus-cache" "gnus/gnus-cache.el" (17107
-;;;;;; 37379))
+;;;;;; gnus-jog-cache) "gnus-cache" "gnus/gnus-cache.el" (17178
+;;;;;; 22145))
;;; Generated autoloads from gnus/gnus-cache.el
(autoload (quote gnus-jog-cache) "gnus-cache" "\
@@ -10830,7 +11060,7 @@ next enabled. Depends upon the caller to determine whether group deletion is sup
;;;***
;;;### (autoloads (gnus-delay-initialize gnus-delay-send-queue gnus-delay-article)
-;;;;;; "gnus-delay" "gnus/gnus-delay.el" (17107 37379))
+;;;;;; "gnus-delay" "gnus/gnus-delay.el" (17178 22145))
;;; Generated autoloads from gnus/gnus-delay.el
(defgroup gnus-delay nil "Arrange for sending postings later." :version "22.1" :group (quote gnus))
@@ -10868,7 +11098,7 @@ Checking delayed messages is skipped if optional arg NO-CHECK is non-nil.
;;;***
;;;### (autoloads (turn-on-gnus-dired-mode) "gnus-dired" "gnus/gnus-dired.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22145))
;;; Generated autoloads from gnus/gnus-dired.el
(autoload (quote turn-on-gnus-dired-mode) "gnus-dired" "\
@@ -10879,7 +11109,7 @@ Convenience method to turn on gnus-dired-mode.
;;;***
;;;### (autoloads (gnus-draft-reminder) "gnus-draft" "gnus/gnus-draft.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22145))
;;; Generated autoloads from gnus/gnus-draft.el
(autoload (quote gnus-draft-reminder) "gnus-draft" "\
@@ -10891,8 +11121,8 @@ Reminder user if there are unsent drafts.
;;;### (autoloads (gnus-convert-png-to-face gnus-convert-face-to-png
;;;;;; gnus-face-from-file gnus-x-face-from-file gnus-insert-random-x-face-header
-;;;;;; gnus-random-x-face) "gnus-fun" "gnus/gnus-fun.el" (17107
-;;;;;; 37379))
+;;;;;; gnus-random-x-face) "gnus-fun" "gnus/gnus-fun.el" (17178
+;;;;;; 22145))
;;; Generated autoloads from gnus/gnus-fun.el
(autoload (quote gnus-random-x-face) "gnus-fun" "\
@@ -10931,7 +11161,7 @@ FILE should be a PNG file that's 48x48 and smaller than or equal to
;;;***
;;;### (autoloads (gnus-fetch-group-other-frame gnus-fetch-group)
-;;;;;; "gnus-group" "gnus/gnus-group.el" (17107 37379))
+;;;;;; "gnus-group" "gnus/gnus-group.el" (17178 22145))
;;; Generated autoloads from gnus/gnus-group.el
(autoload (quote gnus-fetch-group) "gnus-group" "\
@@ -10948,7 +11178,7 @@ Pop up a frame and enter GROUP.
;;;***
;;;### (autoloads (gnus-batch-score) "gnus-kill" "gnus/gnus-kill.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22145))
;;; Generated autoloads from gnus/gnus-kill.el
(defalias (quote gnus-batch-kill) (quote gnus-batch-score))
@@ -10963,7 +11193,7 @@ Usage: emacs -batch -l ~/.emacs -l gnus -f gnus-batch-score
;;;### (autoloads (gnus-mailing-list-mode gnus-mailing-list-insinuate
;;;;;; turn-on-gnus-mailing-list-mode) "gnus-ml" "gnus/gnus-ml.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22145))
;;; Generated autoloads from gnus/gnus-ml.el
(autoload (quote turn-on-gnus-mailing-list-mode) "gnus-ml" "\
@@ -10988,7 +11218,7 @@ Minor mode for providing mailing-list commands.
;;;### (autoloads (gnus-group-split-fancy gnus-group-split gnus-group-split-update
;;;;;; gnus-group-split-setup) "gnus-mlspl" "gnus/gnus-mlspl.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22145))
;;; Generated autoloads from gnus/gnus-mlspl.el
(autoload (quote gnus-group-split-setup) "gnus-mlspl" "\
@@ -11089,7 +11319,7 @@ Calling (gnus-group-split-fancy nil nil \"mail.others\") returns:
;;;***
;;;### (autoloads (gnus-change-server) "gnus-move" "gnus/gnus-move.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22145))
;;; Generated autoloads from gnus/gnus-move.el
(autoload (quote gnus-change-server) "gnus-move" "\
@@ -11101,7 +11331,7 @@ Update the .newsrc.eld file to reflect the change of nntp server.
;;;***
;;;### (autoloads (gnus-button-reply gnus-button-mailto gnus-msg-mail)
-;;;;;; "gnus-msg" "gnus/gnus-msg.el" (17107 37379))
+;;;;;; "gnus-msg" "gnus/gnus-msg.el" (17178 22145))
;;; Generated autoloads from gnus/gnus-msg.el
(autoload (quote gnus-msg-mail) "gnus-msg" "\
@@ -11127,7 +11357,7 @@ Like `message-reply'.
;;;### (autoloads (gnus-treat-newsgroups-picon gnus-treat-mail-picon
;;;;;; gnus-treat-from-picon) "gnus-picon" "gnus/gnus-picon.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22145))
;;; Generated autoloads from gnus/gnus-picon.el
(autoload (quote gnus-treat-from-picon) "gnus-picon" "\
@@ -11154,7 +11384,7 @@ If picons are already displayed, remove them.
;;;;;; gnus-sorted-nintersection gnus-sorted-range-intersection
;;;;;; gnus-sorted-intersection gnus-intersection gnus-sorted-complement
;;;;;; gnus-sorted-ndifference gnus-sorted-difference) "gnus-range"
-;;;;;; "gnus/gnus-range.el" (17107 37379))
+;;;;;; "gnus/gnus-range.el" (17178 22145))
;;; Generated autoloads from gnus/gnus-range.el
(autoload (quote gnus-sorted-difference) "gnus-range" "\
@@ -11222,7 +11452,7 @@ Add NUM into sorted LIST by side effect.
;;;***
;;;### (autoloads (gnus-registry-install-hooks gnus-registry-initialize)
-;;;;;; "gnus-registry" "gnus/gnus-registry.el" (17107 37379))
+;;;;;; "gnus-registry" "gnus/gnus-registry.el" (17178 22145))
;;; Generated autoloads from gnus/gnus-registry.el
(autoload (quote gnus-registry-initialize) "gnus-registry" "\
@@ -11238,8 +11468,8 @@ Install the registry hooks.
;;;***
;;;### (autoloads (gnus-sieve-article-add-rule gnus-sieve-generate
-;;;;;; gnus-sieve-update) "gnus-sieve" "gnus/gnus-sieve.el" (17107
-;;;;;; 37379))
+;;;;;; gnus-sieve-update) "gnus-sieve" "gnus/gnus-sieve.el" (17178
+;;;;;; 22145))
;;; Generated autoloads from gnus/gnus-sieve.el
(autoload (quote gnus-sieve-update) "gnus-sieve" "\
@@ -11267,7 +11497,7 @@ Not documented
;;;***
;;;### (autoloads (gnus-batch-brew-soup) "gnus-soup" "gnus/gnus-soup.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22145))
;;; Generated autoloads from gnus/gnus-soup.el
(autoload (quote gnus-batch-brew-soup) "gnus-soup" "\
@@ -11287,7 +11517,7 @@ Note -- this function hasn't been implemented yet.
;;;***
;;;### (autoloads (gnus-update-format) "gnus-spec" "gnus/gnus-spec.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22145))
;;; Generated autoloads from gnus/gnus-spec.el
(autoload (quote gnus-update-format) "gnus-spec" "\
@@ -11298,8 +11528,8 @@ Update the format specification near point.
;;;***
;;;### (autoloads (gnus-fixup-nnimap-unread-after-getting-new-news
-;;;;;; gnus-declare-backend) "gnus-start" "gnus/gnus-start.el" (17107
-;;;;;; 37379))
+;;;;;; gnus-declare-backend) "gnus-start" "gnus/gnus-start.el" (17178
+;;;;;; 22145))
;;; Generated autoloads from gnus/gnus-start.el
(autoload (quote gnus-declare-backend) "gnus-start" "\
@@ -11315,7 +11545,7 @@ Not documented
;;;***
;;;### (autoloads (gnus-add-configuration) "gnus-win" "gnus/gnus-win.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22145))
;;; Generated autoloads from gnus/gnus-win.el
(autoload (quote gnus-add-configuration) "gnus-win" "\
@@ -11325,7 +11555,7 @@ Add the window configuration CONF to `gnus-buffer-configuration'.
;;;***
-;;;### (autoloads (gomoku) "gomoku" "play/gomoku.el" (17107 37380))
+;;;### (autoloads (gomoku) "gomoku" "play/gomoku.el" (17178 22152))
;;; Generated autoloads from play/gomoku.el
(autoload (quote gomoku) "gomoku" "\
@@ -11352,7 +11582,7 @@ Use \\[describe-mode] for more info.
;;;***
;;;### (autoloads (goto-address goto-address-at-point) "goto-addr"
-;;;;;; "net/goto-addr.el" (17107 37379))
+;;;;;; "net/goto-addr.el" (17178 22151))
;;; Generated autoloads from net/goto-addr.el
(define-obsolete-function-alias (quote goto-address-at-mouse) (quote goto-address-at-point) "22.1")
@@ -11378,9 +11608,9 @@ Also fontifies the buffer appropriately (see `goto-address-fontify-p' and
;;;***
-;;;### (autoloads (grep-tree grep-find grep grep-compute-defaults
+;;;### (autoloads (grep-tree grep-find grep-mode grep grep-compute-defaults
;;;;;; grep-process-setup grep-setup-hook grep-find-command grep-command
-;;;;;; grep-window-height) "grep" "progmodes/grep.el" (17107 37381))
+;;;;;; grep-window-height) "grep" "progmodes/grep.el" (17178 22153))
;;; Generated autoloads from progmodes/grep.el
(defvar grep-window-height nil "\
@@ -11411,7 +11641,7 @@ List of hook functions run by `grep-process-setup' (see `run-hooks').")
(custom-autoload (quote grep-setup-hook) "grep")
-(defvar grep-regexp-alist (quote (("^\\(.+?\\)\\([: ]\\)+\\([0-9]+\\)\\([.:]?\\)\\([0-9]+\\)?\\(?:-\\(?:\\([0-9]+\\)\\4\\)?\\.?\\([0-9]+\\)?\\)?\\2" 1 (3 . 6) (5 . 7)) ("^\\(\\(.+?\\):\\([0-9]+\\):\\).*?\\(\\[01;41m\\)\\(.*?\\)\\(\\[00m\\(?:\\[K\\)?\\)" 2 3 ((lambda nil (setq compilation-error-screen-columns nil) (- (match-beginning 5) (match-end 1) 8)) lambda nil (- (match-end 5) (match-end 1) 8)) nil 1) ("^Binary file \\(.+\\) matches$" 1 nil nil 1))) "\
+(defvar grep-regexp-alist (quote (("^\\(.+?\\)\\(:[ ]*\\)\\([0-9]+\\)\\2" 1 3) ("^\\(\\(.+?\\):\\([0-9]+\\):\\).*?\\(\\[01;31m\\(?:\\[K\\)?\\)\\(.*?\\)\\(\\[[0-9]*m\\)" 2 3 ((lambda nil (setq compilation-error-screen-columns nil) (- (match-beginning 4) (match-end 1))) lambda nil (- (match-end 5) (match-end 1) (- (match-end 4) (match-beginning 4)))) nil 1) ("^Binary file \\(.+\\) matches$" 1 nil nil 0 1))) "\
Regexp used to match grep hits. See `compilation-error-regexp-alist'.")
(defvar grep-program "grep" "\
@@ -11464,6 +11694,11 @@ temporarily highlight in visited source lines.
\(fn COMMAND-ARGS &optional HIGHLIGHT-REGEXP)" t nil)
+(autoload (quote grep-mode) "grep" "\
+Sets `grep-last-buffer' and `compilation-window-height'.
+
+\(fn)" nil nil)
+
(autoload (quote grep-find) "grep" "\
Run grep via find, with user-specified args COMMAND-ARGS.
Collect output in a buffer.
@@ -11499,7 +11734,7 @@ those sub directories of DIR.
;;;***
-;;;### (autoloads (gs-load-image) "gs" "gs.el" (17107 37380))
+;;;### (autoloads (gs-load-image) "gs" "gs.el" (17178 22146))
;;; Generated autoloads from gs.el
(autoload (quote gs-load-image) "gs" "\
@@ -11512,8 +11747,8 @@ the form \"WINDOW-ID PIXMAP-ID\". Value is non-nil if successful.
;;;***
-;;;### (autoloads (gdb-script-mode bashdb jdb pdb perldb xdb dbx
-;;;;;; sdb gdb) "gud" "progmodes/gud.el" (17107 37398))
+;;;### (autoloads (gud-tooltip-mode gdb-script-mode bashdb jdb pdb
+;;;;;; perldb xdb dbx sdb gdb) "gud" "progmodes/gud.el" (17178 22153))
;;; Generated autoloads from progmodes/gud.el
(autoload (quote gdb) "gud" "\
@@ -11592,10 +11827,25 @@ Major mode for editing GDB scripts
\(fn)" t nil)
+(defvar gud-tooltip-mode nil "\
+Non-nil if Gud-Tooltip mode is enabled.
+See the command `gud-tooltip-mode' for a description of this minor-mode.
+Setting this variable directly does not take effect;
+use either \\[customize] or the function `gud-tooltip-mode'.")
+
+(custom-autoload (quote gud-tooltip-mode) "gud")
+
+(put (quote gud-tooltip-mode) (quote custom-set) (quote custom-set-minor-mode))
+
+(autoload (quote gud-tooltip-mode) "gud" "\
+Toggle the display of GUD tooltips.
+
+\(fn &optional ARG)" t nil)
+
;;;***
-;;;### (autoloads (handwrite) "handwrite" "play/handwrite.el" (17107
-;;;;;; 37380))
+;;;### (autoloads (handwrite) "handwrite" "play/handwrite.el" (17178
+;;;;;; 22152))
;;; Generated autoloads from play/handwrite.el
(autoload (quote handwrite) "handwrite" "\
@@ -11613,7 +11863,7 @@ Variables: handwrite-linespace (default 12)
;;;***
;;;### (autoloads (hanoi-unix-64 hanoi-unix hanoi) "hanoi" "play/hanoi.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 20480))
;;; Generated autoloads from play/hanoi.el
(autoload (quote hanoi) "hanoi" "\
@@ -11643,7 +11893,7 @@ to be updated.
;;;### (autoloads (scan-buf-previous-region scan-buf-next-region
;;;;;; scan-buf-move-to-region help-at-pt-display-when-idle help-at-pt-set-timer
;;;;;; help-at-pt-cancel-timer display-local-help help-at-pt-kbd-string
-;;;;;; help-at-pt-string) "help-at-pt" "help-at-pt.el" (17107 37380))
+;;;;;; help-at-pt-string) "help-at-pt" "help-at-pt.el" (17178 22146))
;;; Generated autoloads from help-at-pt.el
(autoload (quote help-at-pt-string) "help-at-pt" "\
@@ -11773,7 +12023,7 @@ different regions. With numeric argument ARG, behaves like
;;;### (autoloads (describe-categories describe-syntax describe-variable
;;;;;; variable-at-point describe-function-1 help-C-file-name describe-function
;;;;;; locate-library help-with-tutorial) "help-fns" "help-fns.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22146))
;;; Generated autoloads from help-fns.el
(autoload (quote help-with-tutorial) "help-fns" "\
@@ -11853,7 +12103,7 @@ BUFFER should be a buffer or a buffer name.
;;;***
;;;### (autoloads (three-step-help) "help-macro" "help-macro.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22146))
;;; Generated autoloads from help-macro.el
(defvar three-step-help nil "\
@@ -11869,7 +12119,7 @@ A value of nil means skip the middle step, so that
;;;### (autoloads (help-xref-on-pp help-insert-xref-button help-xref-button
;;;;;; help-make-xrefs help-setup-xref help-mode-finish help-mode-setup
-;;;;;; help-mode) "help-mode" "help-mode.el" (17107 37380))
+;;;;;; help-mode) "help-mode" "help-mode.el" (17178 22146))
;;; Generated autoloads from help-mode.el
(autoload (quote help-mode) "help-mode" "\
@@ -11952,7 +12202,7 @@ Add xrefs for symbols in `pp's output between FROM and TO.
;;;***
;;;### (autoloads (Helper-help Helper-describe-bindings) "helper"
-;;;;;; "emacs-lisp/helper.el" (17107 37381))
+;;;;;; "emacs-lisp/helper.el" (17178 22144))
;;; Generated autoloads from emacs-lisp/helper.el
(autoload (quote Helper-describe-bindings) "helper" "\
@@ -11968,7 +12218,7 @@ Provide help for current mode.
;;;***
;;;### (autoloads (hexlify-buffer hexl-find-file hexl-mode) "hexl"
-;;;;;; "hexl.el" (17107 37381))
+;;;;;; "hexl.el" (17178 22146))
;;; Generated autoloads from hexl.el
(autoload (quote hexl-mode) "hexl" "\
@@ -12063,8 +12313,8 @@ This discards the buffer's undo information.
;;;### (autoloads (hi-lock-write-interactive-patterns hi-lock-unface-buffer
;;;;;; hi-lock-face-phrase-buffer hi-lock-face-buffer hi-lock-line-face-buffer
-;;;;;; hi-lock-mode hi-lock-mode) "hi-lock" "hi-lock.el" (17107
-;;;;;; 37398))
+;;;;;; hi-lock-mode hi-lock-mode) "hi-lock" "hi-lock.el" (17178
+;;;;;; 22146))
;;; Generated autoloads from hi-lock.el
(defvar hi-lock-mode nil "\
@@ -12175,7 +12425,7 @@ be found in variable `hi-lock-interactive-patterns'.
;;;***
;;;### (autoloads (hide-ifdef-lines hide-ifdef-read-only hide-ifdef-initially
-;;;;;; hide-ifdef-mode) "hideif" "progmodes/hideif.el" (17107 37398))
+;;;;;; hide-ifdef-mode) "hideif" "progmodes/hideif.el" (17178 22153))
;;; Generated autoloads from progmodes/hideif.el
(autoload (quote hide-ifdef-mode) "hideif" "\
@@ -12230,7 +12480,7 @@ how the hiding is done:
;;;***
;;;### (autoloads (hs-minor-mode hs-hide-comments-when-hiding-all)
-;;;;;; "hideshow" "progmodes/hideshow.el" (17107 37381))
+;;;;;; "hideshow" "progmodes/hideshow.el" (17178 22153))
;;; Generated autoloads from progmodes/hideshow.el
(defvar hs-hide-comments-when-hiding-all t "\
@@ -12293,7 +12543,7 @@ Key bindings:
;;;;;; highlight-compare-buffers highlight-changes-rotate-faces
;;;;;; highlight-changes-previous-change highlight-changes-next-change
;;;;;; highlight-changes-mode highlight-changes-remove-highlight)
-;;;;;; "hilit-chg" "hilit-chg.el" (17107 37380))
+;;;;;; "hilit-chg" "hilit-chg.el" (17178 22146))
;;; Generated autoloads from hilit-chg.el
(autoload (quote highlight-changes-remove-highlight) "hilit-chg" "\
@@ -12327,12 +12577,12 @@ Functions:
buffer with the contents of a file
\\[highlight-changes-remove-highlight] - remove the change face from the region
\\[highlight-changes-rotate-faces] - rotate different \"ages\" of changes through
- various faces.
+ various faces
Hook variables:
-`highlight-changes-enable-hook' - when enabling Highlight Changes mode.
+`highlight-changes-enable-hook' - when enabling Highlight Changes mode
`highlight-changes-toggle-hook' - when entering active or passive state
-`highlight-changes-disable-hook' - when turning off Highlight Changes mode.
+`highlight-changes-disable-hook' - when turning off Highlight Changes mode
\(fn &optional ARG)" t nil)
@@ -12354,11 +12604,11 @@ of `highlight-changes-face-list', one level older changes are shown in
face described by the second element, and so on. Very old changes remain
shown in the last face in the list.
-You can automatically rotate colors when the buffer is saved
-by adding the following to `local-write-file-hooks', by evaling it in the
-buffer to be saved):
+You can automatically rotate colors when the buffer is saved by adding
+this function to `write-file-functions' as a buffer-local value. To do
+this, eval the following in the buffer to be saved:
- (add-hook 'local-write-file-hooks 'highlight-changes-rotate-faces)
+ (add-hook 'write-file-functions 'highlight-changes-rotate-faces nil t)
\(fn)" t nil)
@@ -12370,7 +12620,7 @@ The default is the current buffer and the one in the next window.
If either buffer is modified and is visiting a file, you are prompted
to save the file.
-Unless the buffer is unmodified and visiting a file, the buffer is
+Unless the buffer is unmodified and visiting a file, the buffer is
written to a temporary file for comparison.
If a buffer is read-only, differences will be highlighted but no property
@@ -12423,7 +12673,7 @@ variable `highlight-changes-global-changes-existing-buffers' is non-nil).
;;;;;; hippie-expand-ignore-buffers hippie-expand-max-buffers hippie-expand-no-restriction
;;;;;; hippie-expand-dabbrev-as-symbol hippie-expand-dabbrev-skip-space
;;;;;; hippie-expand-verbose hippie-expand-try-functions-list) "hippie-exp"
-;;;;;; "hippie-exp.el" (17107 37380))
+;;;;;; "hippie-exp.el" (17178 22146))
;;; Generated autoloads from hippie-exp.el
(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)) "\
@@ -12496,7 +12746,7 @@ argument VERBOSE non-nil makes the function verbose.
;;;***
;;;### (autoloads (global-hl-line-mode hl-line-mode) "hl-line" "hl-line.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22146))
;;; Generated autoloads from hl-line.el
(autoload (quote hl-line-mode) "hl-line" "\
@@ -12538,7 +12788,7 @@ Global-Hl-Line mode uses the functions `global-hl-line-unhighlight' and
;;;***
;;;### (autoloads (list-holidays holidays) "holidays" "calendar/holidays.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 20480))
;;; Generated autoloads from calendar/holidays.el
(autoload (quote holidays) "holidays" "\
@@ -12562,7 +12812,7 @@ The optional LABEL is used to label the buffer created.
;;;***
;;;### (autoloads (hscroll-global-mode hscroll-mode turn-on-hscroll)
-;;;;;; "hscroll" "obsolete/hscroll.el" (17107 37382))
+;;;;;; "hscroll" "obsolete/hscroll.el" (17178 22152))
;;; Generated autoloads from obsolete/hscroll.el
(autoload (quote turn-on-hscroll) "hscroll" "\
@@ -12588,8 +12838,8 @@ Also see `automatic-hscrolling'.
;;;***
-;;;### (autoloads (html2text) "html2text" "gnus/html2text.el" (17107
-;;;;;; 37379))
+;;;### (autoloads (html2text) "html2text" "gnus/html2text.el" (17178
+;;;;;; 22145))
;;; Generated autoloads from gnus/html2text.el
(autoload (quote html2text) "html2text" "\
@@ -12620,7 +12870,7 @@ Convert HTML to plain text in the current buffer.
;;;;;; ibuffer-backward-filter-group ibuffer-forward-filter-group
;;;;;; ibuffer-toggle-filter-group ibuffer-mouse-toggle-filter-group
;;;;;; ibuffer-interactive-filter-by-mode ibuffer-mouse-filter-by-mode
-;;;;;; ibuffer-auto-mode) "ibuf-ext" "ibuf-ext.el" (17107 37380))
+;;;;;; ibuffer-auto-mode) "ibuf-ext" "ibuf-ext.el" (17178 22146))
;;; Generated autoloads from ibuf-ext.el
(autoload (quote ibuffer-auto-mode) "ibuf-ext" "\
@@ -12981,8 +13231,8 @@ defaults to one.
;;;***
;;;### (autoloads (define-ibuffer-filter define-ibuffer-op define-ibuffer-sorter
-;;;;;; define-ibuffer-column) "ibuf-macs" "ibuf-macs.el" (17107
-;;;;;; 37380))
+;;;;;; define-ibuffer-column) "ibuf-macs" "ibuf-macs.el" (17178
+;;;;;; 22146))
;;; Generated autoloads from ibuf-macs.el
(autoload (quote define-ibuffer-column) "ibuf-macs" "\
@@ -13068,7 +13318,7 @@ bound to the current value of the filter.
;;;***
;;;### (autoloads (ibuffer ibuffer-other-window ibuffer-list-buffers)
-;;;;;; "ibuffer" "ibuffer.el" (17107 37382))
+;;;;;; "ibuffer" "ibuffer.el" (17178 22146))
;;; Generated autoloads from ibuffer.el
(autoload (quote ibuffer-list-buffers) "ibuffer" "\
@@ -13086,22 +13336,22 @@ buffers which are visiting a file.
\(fn &optional FILES-ONLY)" t nil)
(autoload (quote ibuffer) "ibuffer" "\
-Begin using `ibuffer' to edit a list of buffers.
+Begin using Ibuffer to edit a list of buffers.
Type 'h' after entering ibuffer for more information.
-Optional argument OTHER-WINDOW-P says to use another window.
-Optional argument NAME specifies the name of the buffer; it defaults
-to \"*Ibuffer*\".
-Optional argument QUALIFIERS is an initial set of filtering qualifiers
-to use; see `ibuffer-filtering-qualifiers'.
-Optional argument NOSELECT means don't select the Ibuffer buffer.
-Optional argument SHRINK means shrink the buffer to minimal size. The
-special value `onewindow' means always use another window.
-Optional argument FILTER-GROUPS is an initial set of filtering
-groups to use; see `ibuffer-filter-groups'.
-Optional argument FORMATS is the value to use for `ibuffer-formats'.
-If specified, then the variable `ibuffer-formats' will have that value
-locally in this buffer.
+All arguments are optional.
+OTHER-WINDOW-P says to use another window.
+NAME specifies the name of the buffer (defaults to \"*Ibuffer*\").
+QUALIFIERS is an initial set of filtering qualifiers to use;
+ see `ibuffer-filtering-qualifiers'.
+NOSELECT means don't select the Ibuffer buffer.
+SHRINK means shrink the buffer to minimal size. The special
+ value `onewindow' means always use another window.
+FILTER-GROUPS is an initial set of filtering groups to use;
+ see `ibuffer-filter-groups'.
+FORMATS is the value to use for `ibuffer-formats'.
+ If specified, then the variable `ibuffer-formats' will have
+ that value locally in this buffer.
\(fn &optional OTHER-WINDOW-P NAME QUALIFIERS NOSELECT SHRINK FILTER-GROUPS FORMATS)" t nil)
@@ -13109,7 +13359,7 @@ locally in this buffer.
;;;### (autoloads (icalendar-import-buffer icalendar-import-file
;;;;;; icalendar-export-region icalendar-export-file) "icalendar"
-;;;;;; "calendar/icalendar.el" (17107 37380))
+;;;;;; "calendar/icalendar.el" (17178 22143))
;;; Generated autoloads from calendar/icalendar.el
(autoload (quote icalendar-export-file) "icalendar" "\
@@ -13161,8 +13411,8 @@ buffer `*icalendar-errors*'.
;;;***
-;;;### (autoloads (icomplete-mode) "icomplete" "icomplete.el" (17107
-;;;;;; 37380))
+;;;### (autoloads (icomplete-mode) "icomplete" "icomplete.el" (17178
+;;;;;; 22146))
;;; Generated autoloads from icomplete.el
(defvar icomplete-mode nil "\
@@ -13183,7 +13433,7 @@ With a numeric argument, turn Icomplete mode on iff ARG is positive.
;;;***
-;;;### (autoloads (icon-mode) "icon" "progmodes/icon.el" (17107 37381))
+;;;### (autoloads (icon-mode) "icon" "progmodes/icon.el" (17178 22153))
;;; Generated autoloads from progmodes/icon.el
(autoload (quote icon-mode) "icon" "\
@@ -13224,7 +13474,7 @@ with no args, if that value is non-nil.
;;;***
;;;### (autoloads (idlwave-shell) "idlw-shell" "progmodes/idlw-shell.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22153))
;;; Generated autoloads from progmodes/idlw-shell.el
(autoload (quote idlwave-shell) "idlw-shell" "\
@@ -13250,7 +13500,7 @@ See also the variable `idlwave-shell-prompt-pattern'.
;;;***
;;;### (autoloads (idlwave-mode) "idlwave" "progmodes/idlwave.el"
-;;;;;; (17107 37382))
+;;;;;; (17178 20481))
;;; Generated autoloads from progmodes/idlwave.el
(autoload (quote idlwave-mode) "idlwave" "\
@@ -13386,8 +13636,8 @@ The main features of this mode are
;;;;;; ido-find-alternate-file ido-find-file-other-window ido-find-file
;;;;;; ido-find-file-in-dir ido-switch-buffer-other-frame ido-insert-buffer
;;;;;; ido-kill-buffer ido-display-buffer ido-switch-buffer-other-window
-;;;;;; ido-switch-buffer ido-mode ido-mode) "ido" "ido.el" (17107
-;;;;;; 37380))
+;;;;;; ido-switch-buffer ido-mode ido-mode) "ido" "ido.el" (17178
+;;;;;; 22146))
;;; Generated autoloads from ido.el
(defvar ido-mode nil "\
@@ -13648,7 +13898,7 @@ DEF, if non-nil, is the default value.
;;;***
-;;;### (autoloads (ielm) "ielm" "ielm.el" (17107 37382))
+;;;### (autoloads (ielm) "ielm" "ielm.el" (17178 22146))
;;; Generated autoloads from ielm.el
(add-hook 'same-window-buffer-names "*ielm*")
@@ -13661,7 +13911,7 @@ Switches to the buffer `*ielm*', or creates it if it does not exist.
;;;***
;;;### (autoloads (iimage-mode turn-on-iimage-mode) "iimage" "iimage.el"
-;;;;;; (17107 37382))
+;;;;;; (17178 22146))
;;; Generated autoloads from iimage.el
(autoload (quote turn-on-iimage-mode) "iimage" "\
@@ -13679,7 +13929,7 @@ Toggle inline image minor mode.
;;;### (autoloads (defimage find-image remove-images insert-sliced-image
;;;;;; insert-image put-image create-image image-type-available-p
;;;;;; image-type-from-file-header image-type-from-data) "image"
-;;;;;; "image.el" (17107 37380))
+;;;;;; "image.el" (17178 22146))
;;; Generated autoloads from image.el
(autoload (quote image-type-from-data) "image" "\
@@ -13812,7 +14062,7 @@ Example:
;;;### (autoloads (auto-image-file-mode insert-image-file image-file-name-regexp
;;;;;; image-file-name-regexps image-file-name-extensions) "image-file"
-;;;;;; "image-file.el" (17107 37382))
+;;;;;; "image-file.el" (17178 22146))
;;; Generated autoloads from image-file.el
(defvar image-file-name-extensions (quote ("png" "jpeg" "jpg" "gif" "tiff" "tif" "xbm" "xpm" "pbm" "pgm" "ppm" "pnm")) "\
@@ -13875,7 +14125,7 @@ Image files are those whose name has an extension in
;;;***
;;;### (autoloads (image-mode-maybe image-minor-mode image-mode)
-;;;;;; "image-mode" "image-mode.el" (17107 37382))
+;;;;;; "image-mode" "image-mode.el" (17178 20481))
;;; Generated autoloads from image-mode.el
(push '("\\.jpe?g\\'" . image-mode) auto-mode-alist)
(push '("\\.png\\'" . image-mode) auto-mode-alist)
@@ -13913,7 +14163,7 @@ information on these modes.
;;;***
;;;### (autoloads (imenu imenu-add-menubar-index imenu-add-to-menubar
-;;;;;; imenu-sort-function) "imenu" "imenu.el" (17107 37381))
+;;;;;; imenu-sort-function) "imenu" "imenu.el" (17178 22146))
;;; Generated autoloads from imenu.el
(defvar imenu-sort-function nil "\
@@ -14033,7 +14283,7 @@ for more information.
;;;### (autoloads (indian-char-glyph indian-glyph-char in-is13194-pre-write-conversion
;;;;;; in-is13194-post-read-conversion indian-compose-string indian-compose-region)
-;;;;;; "ind-util" "language/ind-util.el" (17107 37382))
+;;;;;; "ind-util" "language/ind-util.el" (17178 20481))
;;; Generated autoloads from language/ind-util.el
(autoload (quote indian-compose-region) "ind-util" "\
@@ -14076,7 +14326,7 @@ See also the function `indian-glyph-char'.
;;;### (autoloads (inferior-lisp inferior-lisp-prompt inferior-lisp-load-command
;;;;;; inferior-lisp-program inferior-lisp-filter-regexp) "inf-lisp"
-;;;;;; "progmodes/inf-lisp.el" (17107 37381))
+;;;;;; "progmodes/inf-lisp.el" (17178 22153))
;;; Generated autoloads from progmodes/inf-lisp.el
(defvar inferior-lisp-filter-regexp "\\`\\s *\\(:\\(\\w\\|\\s_\\)\\)?\\s *\\'" "\
@@ -14140,10 +14390,10 @@ of `inferior-lisp-program'). Runs the hooks from
;;;***
-;;;### (autoloads (Info-restore-desktop-buffer Info-speedbar-browser
-;;;;;; Info-goto-emacs-key-command-node Info-goto-emacs-command-node
-;;;;;; info-apropos Info-index Info-directory info-standalone info-emacs-manual
-;;;;;; info info-other-window) "info" "info.el" (17107 37382))
+;;;### (autoloads (Info-speedbar-browser Info-goto-emacs-key-command-node
+;;;;;; Info-goto-emacs-command-node Info-mode info-apropos Info-index
+;;;;;; Info-directory info-standalone info-emacs-manual info info-other-window)
+;;;;;; "info" "info.el" (17178 22146))
;;; Generated autoloads from info.el
(autoload (quote info-other-window) "info" "\
@@ -14206,6 +14456,71 @@ Grovel indices of all known Info files on your system for STRING.
Build a menu of the possible matches.
\(fn STRING)" t nil)
+
+(autoload (quote Info-mode) "info" "\
+Info mode provides commands for browsing through the Info documentation tree.
+Documentation in Info is divided into \"nodes\", each of which discusses
+one topic and contains references to other nodes which discuss related
+topics. Info has commands to follow the references and show you other nodes.
+
+\\<Info-mode-map>\\[Info-help] Invoke the Info tutorial.
+\\[Info-exit] Quit Info: reselect previously selected buffer.
+
+Selecting other nodes:
+\\[Info-mouse-follow-nearest-node]
+ Follow a node reference you click on.
+ This works with menu items, cross references, and
+ the \"next\", \"previous\" and \"up\", depending on where you click.
+\\[Info-follow-nearest-node] Follow a node reference near point, like \\[Info-mouse-follow-nearest-node].
+\\[Info-next] Move to the \"next\" node of this node.
+\\[Info-prev] Move to the \"previous\" node of this node.
+\\[Info-up] Move \"up\" from this node.
+\\[Info-menu] Pick menu item specified by name (or abbreviation).
+ Picking a menu item causes another node to be selected.
+\\[Info-directory] Go to the Info directory node.
+\\[Info-follow-reference] Follow a cross reference. Reads name of reference.
+\\[Info-history-back] Move back in history to the last node you were at.
+\\[Info-history-forward] Move forward in history to the node you returned from after using \\[Info-history-back].
+\\[Info-history] Go to menu of visited nodes.
+\\[Info-toc] Go to table of contents of the current Info file.
+\\[Info-top-node] Go to the Top node of this file.
+\\[Info-final-node] Go to the final node in this file.
+\\[Info-backward-node] Go backward one node, considering all nodes as forming one sequence.
+\\[Info-forward-node] Go forward one node, considering all nodes as forming one sequence.
+\\[Info-index] Look up a topic in this file's Index and move to that node.
+\\[Info-index-next] (comma) Move to the next match from a previous \\<Info-mode-map>\\[Info-index] command.
+\\[info-apropos] Look for a string in the indices of all manuals.
+
+Moving within a node:
+\\[Info-scroll-up] Normally, scroll forward a full screen.
+ Once you scroll far enough in a node that its menu appears on the
+ screen but after point, the next scroll moves into its first
+ subnode. When after all menu items (or if there is no menu),
+ move up to the parent node.
+\\[Info-scroll-down] Normally, scroll backward. If the beginning of the buffer is
+ already visible, try to go to the previous menu entry, or up
+ if there is none.
+\\[beginning-of-buffer] Go to beginning of node.
+
+Advanced commands:
+\\[Info-copy-current-node-name] Put name of current Info node in the kill ring.
+\\[clone-buffer] Select a new cloned Info buffer in another window.
+\\[Info-edit] Edit contents of selected node.
+1 .. 9 Pick first ... ninth item in node's menu.
+ Every third `*' is highlighted to help pick the right number.
+\\[Info-goto-node] Move to node specified by name.
+ You may include a filename as well, as (FILENAME)NODENAME.
+\\[universal-argument] \\[info] Move to new Info file with completion.
+\\[universal-argument] N \\[info] Select Info buffer with prefix number in the name *info*<N>.
+\\[Info-search] Search through this Info file for specified regexp,
+ and select the node in which the next occurrence is found.
+\\[Info-search-case-sensitively] Search through this Info file for specified regexp case-sensitively.
+\\[Info-search-next] Search for another occurrence of regexp
+ from a previous \\<Info-mode-map>\\[Info-search] command.
+\\[Info-next-reference] Move cursor to next cross-reference or menu item.
+\\[Info-prev-reference] Move cursor to previous cross-reference or menu item.
+
+\(fn)" nil nil)
(put 'Info-goto-emacs-command-node 'info-file "emacs")
(autoload (quote Info-goto-emacs-command-node) "info" "\
@@ -14229,21 +14544,16 @@ the variable `Info-file-list-for-emacs'.
\(fn KEY)" t nil)
(autoload (quote Info-speedbar-browser) "info" "\
-Initialize speedbar to display an info node browser.
+Initialize speedbar to display an Info node browser.
This will add a speedbar major display mode.
\(fn)" t nil)
-(autoload (quote Info-restore-desktop-buffer) "info" "\
-Restore an info buffer specified in a desktop file.
-
-\(fn DESKTOP-BUFFER-FILE-NAME DESKTOP-BUFFER-NAME DESKTOP-BUFFER-MISC)" nil nil)
-
;;;***
;;;### (autoloads (info-complete-file info-complete-symbol info-lookup-file
;;;;;; info-lookup-symbol info-lookup-reset) "info-look" "info-look.el"
-;;;;;; (17107 37382))
+;;;;;; (17178 22146))
;;; Generated autoloads from info-look.el
(autoload (quote info-lookup-reset) "info-look" "\
@@ -14291,7 +14601,7 @@ Perform completion on file preceding point.
;;;***
;;;### (autoloads (info-xref-check-all-custom info-xref-check-all
-;;;;;; info-xref-check) "info-xref" "info-xref.el" (17107 37380))
+;;;;;; info-xref-check) "info-xref" "info-xref.el" (17178 22146))
;;; Generated autoloads from info-xref.el
(autoload (quote info-xref-check) "info-xref" "\
@@ -14318,7 +14628,7 @@ quite a while.
;;;***
;;;### (autoloads (batch-info-validate Info-validate Info-split Info-tagify)
-;;;;;; "informat" "informat.el" (17107 37380))
+;;;;;; "informat" "informat.el" (17178 22146))
;;; Generated autoloads from informat.el
(autoload (quote Info-tagify) "informat" "\
@@ -14359,7 +14669,7 @@ For example, invoke \"emacs -batch -f batch-info-validate $info/ ~/*.info\"
;;;### (autoloads (isearch-process-search-multibyte-characters isearch-toggle-input-method
;;;;;; isearch-toggle-specified-input-method) "isearch-x" "international/isearch-x.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22146))
;;; Generated autoloads from international/isearch-x.el
(autoload (quote isearch-toggle-specified-input-method) "isearch-x" "\
@@ -14379,8 +14689,8 @@ Not documented
;;;***
-;;;### (autoloads (isearchb-activate) "isearchb" "isearchb.el" (17107
-;;;;;; 37380))
+;;;### (autoloads (isearchb-activate) "isearchb" "isearchb.el" (17178
+;;;;;; 22147))
;;; Generated autoloads from isearchb.el
(autoload (quote isearchb-activate) "isearchb" "\
@@ -14394,7 +14704,7 @@ accessed via isearchb.
;;;***
;;;### (autoloads (iso-accents-mode) "iso-acc" "obsolete/iso-acc.el"
-;;;;;; (17107 37228))
+;;;;;; (17178 22152))
;;; Generated autoloads from obsolete/iso-acc.el
(autoload (quote iso-accents-mode) "iso-acc" "\
@@ -14427,7 +14737,7 @@ and a negative argument disables it.
;;;### (autoloads (iso-cvt-define-menu iso-cvt-write-only iso-cvt-read-only
;;;;;; iso-sgml2iso iso-iso2sgml iso-iso2duden iso-iso2gtex iso-gtex2iso
;;;;;; iso-tex2iso iso-iso2tex iso-german iso-spanish) "iso-cvt"
-;;;;;; "international/iso-cvt.el" (17107 37380))
+;;;;;; "international/iso-cvt.el" (17178 20480))
;;; Generated autoloads from international/iso-cvt.el
(autoload (quote iso-spanish) "iso-cvt" "\
@@ -14511,7 +14821,7 @@ Add submenus to the File menu, to convert to and from various formats.
;;;***
;;;### (autoloads nil "iso-transl" "international/iso-transl.el"
-;;;;;; (17107 37228))
+;;;;;; (17178 20504))
;;; Generated autoloads from international/iso-transl.el
(or key-translation-map (setq key-translation-map (make-sparse-keymap)))
(define-key key-translation-map "\C-x8" 'iso-transl-ctl-x-8-map)
@@ -14524,7 +14834,7 @@ Add submenus to the File menu, to convert to and from various formats.
;;;;;; ispell-region ispell-change-dictionary ispell-kill-ispell
;;;;;; ispell-help ispell-pdict-save ispell-word ispell-local-dictionary-alist
;;;;;; ispell-personal-dictionary) "ispell" "textmodes/ispell.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22154))
;;; Generated autoloads from textmodes/ispell.el
(defvar ispell-personal-dictionary nil "\
@@ -14620,9 +14930,7 @@ and added as a submenu of the \"Edit\" menu.")
(defvar ispell-menu-map-needed (and (not ispell-menu-map) (not (featurep (quote xemacs))) (quote reload)))
-(if ispell-menu-map-needed (let ((dicts (if (fboundp (quote ispell-valid-dictionary-list)) (ispell-valid-dictionary-list) (mapcar (lambda (x) (or (car x) "default")) ispell-dictionary-alist))) (dict-map (make-sparse-keymap "Dictionaries"))) (setq ispell-menu-map (make-sparse-keymap "Spell")) (if (not dicts) (define-key ispell-menu-map [default] (quote ("Select Default Dict" "Dictionary for which Ispell was configured" lambda nil (interactive) (ispell-change-dictionary "default"))))) (fset (quote ispell-dict-map) dict-map) (define-key ispell-menu-map [dictionaries] (\` (menu-item "Select Dict" ispell-dict-map))) (dolist (name dicts) (define-key dict-map (vector (intern name)) (cons (concat "Select " (capitalize name) " Dict") (\` (lambda nil (interactive) (ispell-change-dictionary (\, name)))))))))
-
-(if ispell-menu-map-needed (progn (define-key ispell-menu-map [ispell-change-dictionary] (quote (menu-item "Change Dictionary..." ispell-change-dictionary :help "Supply explicit dictionary file name"))) (define-key ispell-menu-map [ispell-kill-ispell] (quote (menu-item "Kill Process" ispell-kill-ispell :enable (and (boundp (quote ispell-process)) ispell-process (eq (ispell-process-status) (quote run))) :help "Terminate Ispell subprocess"))) (define-key ispell-menu-map [ispell-pdict-save] (quote (menu-item "Save Dictionary" (lambda nil (interactive) (ispell-pdict-save t t)) :help "Save personal dictionary"))) (define-key ispell-menu-map [ispell-customize] (quote (menu-item "Customize..." (lambda nil (interactive) (customize-group (quote ispell))) :help "Customize spell checking options"))) (define-key ispell-menu-map [ispell-help] (quote (menu-item "Help" (lambda nil (interactive) (describe-function (quote ispell-help))) :help "Show standard Ispell keybindings and commands"))) (define-key ispell-menu-map [flyspell-mode] (quote (menu-item "Automatic spell checking (Flyspell)" flyspell-mode :help "Check spelling while you edit the text" :button (:toggle bound-and-true-p flyspell-mode)))) (define-key ispell-menu-map [ispell-complete-word] (quote (menu-item "Complete Word" ispell-complete-word :help "Complete word at cursor using dictionary"))) (define-key ispell-menu-map [ispell-complete-word-interior-frag] (quote (menu-item "Complete Word Fragment" ispell-complete-word-interior-frag :help "Complete word fragment at cursor")))))
+(if ispell-menu-map-needed (progn (setq ispell-menu-map (make-sparse-keymap "Spell")) (define-key ispell-menu-map [ispell-change-dictionary] (quote (menu-item "Change Dictionary..." ispell-change-dictionary :help "Supply explicit dictionary file name"))) (define-key ispell-menu-map [ispell-kill-ispell] (quote (menu-item "Kill Process" ispell-kill-ispell :enable (and (boundp (quote ispell-process)) ispell-process (eq (ispell-process-status) (quote run))) :help "Terminate Ispell subprocess"))) (define-key ispell-menu-map [ispell-pdict-save] (quote (menu-item "Save Dictionary" (lambda nil (interactive) (ispell-pdict-save t t)) :help "Save personal dictionary"))) (define-key ispell-menu-map [ispell-customize] (quote (menu-item "Customize..." (lambda nil (interactive) (customize-group (quote ispell))) :help "Customize spell checking options"))) (define-key ispell-menu-map [ispell-help] (quote (menu-item "Help" (lambda nil (interactive) (describe-function (quote ispell-help))) :help "Show standard Ispell keybindings and commands"))) (define-key ispell-menu-map [flyspell-mode] (quote (menu-item "Automatic spell checking (Flyspell)" flyspell-mode :help "Check spelling while you edit the text" :button (:toggle bound-and-true-p flyspell-mode)))) (define-key ispell-menu-map [ispell-complete-word] (quote (menu-item "Complete Word" ispell-complete-word :help "Complete word at cursor using dictionary"))) (define-key ispell-menu-map [ispell-complete-word-interior-frag] (quote (menu-item "Complete Word Fragment" ispell-complete-word-interior-frag :help "Complete word fragment at cursor")))))
(if ispell-menu-map-needed (progn (define-key ispell-menu-map [ispell-continue] (quote (menu-item "Continue Spell-Checking" ispell-continue :enable (and (boundp (quote ispell-region-end)) (marker-position ispell-region-end) (equal (marker-buffer ispell-region-end) (current-buffer))) :help "Continue spell checking last region"))) (define-key ispell-menu-map [ispell-word] (quote (menu-item "Spell-Check Word" ispell-word :help "Spell-check word at cursor"))) (define-key ispell-menu-map [ispell-comments-and-strings] (quote (menu-item "Spell-Check Comments" ispell-comments-and-strings :help "Spell-check only comments and strings")))))
@@ -14812,8 +15120,8 @@ You can bind this to the key C-c i in GNUS or mail by adding to
;;;***
-;;;### (autoloads (iswitchb-mode) "iswitchb" "iswitchb.el" (17107
-;;;;;; 37381))
+;;;### (autoloads (iswitchb-mode) "iswitchb" "iswitchb.el" (17178
+;;;;;; 22147))
;;; Generated autoloads from iswitchb.el
(defvar iswitchb-mode nil "\
@@ -14839,7 +15147,7 @@ This mode enables switching between buffers using substrings. See
;;;### (autoloads (read-hiragana-string japanese-zenkaku-region japanese-hankaku-region
;;;;;; japanese-hiragana-region japanese-katakana-region japanese-zenkaku
;;;;;; japanese-hankaku japanese-hiragana japanese-katakana setup-japanese-environment-internal)
-;;;;;; "japan-util" "language/japan-util.el" (17107 37382))
+;;;;;; "japan-util" "language/japan-util.el" (17178 20481))
;;; Generated autoloads from language/japan-util.el
(autoload (quote setup-japanese-environment-internal) "japan-util" "\
@@ -14916,8 +15224,8 @@ If non-nil, second arg INITIAL-INPUT is a string to insert before reading.
;;;***
-;;;### (autoloads (jit-lock-register) "jit-lock" "jit-lock.el" (17107
-;;;;;; 37383))
+;;;### (autoloads (jit-lock-register) "jit-lock" "jit-lock.el" (17178
+;;;;;; 22147))
;;; Generated autoloads from jit-lock.el
(autoload (quote jit-lock-register) "jit-lock" "\
@@ -14931,7 +15239,7 @@ If non-nil, CONTEXTUAL means that a contextual fontification would be useful.
;;;***
;;;### (autoloads (jka-compr-uninstall jka-compr-handler) "jka-compr"
-;;;;;; "jka-compr.el" (17107 37380))
+;;;;;; "jka-compr.el" (17178 22147))
;;; Generated autoloads from jka-compr.el
(defvar jka-compr-inhibit nil "\
@@ -14956,7 +15264,7 @@ by `jka-compr-installed'.
;;;### (autoloads (keypad-setup keypad-numlock-shifted-setup keypad-shifted-setup
;;;;;; keypad-numlock-setup keypad-setup) "keypad" "emulation/keypad.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22144))
;;; Generated autoloads from emulation/keypad.el
(defvar keypad-setup nil "\
@@ -15012,7 +15320,7 @@ the decimal key on the keypad is mapped to DECIMAL instead of `.'
;;;***
;;;### (autoloads (kinsoku) "kinsoku" "international/kinsoku.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 20480))
;;; Generated autoloads from international/kinsoku.el
(autoload (quote kinsoku) "kinsoku" "\
@@ -15033,8 +15341,8 @@ the context of text formatting.
;;;***
-;;;### (autoloads (kkc-region) "kkc" "international/kkc.el" (17107
-;;;;;; 37380))
+;;;### (autoloads (kkc-region) "kkc" "international/kkc.el" (17178
+;;;;;; 20480))
;;; Generated autoloads from international/kkc.el
(defvar kkc-after-update-conversion-functions nil "\
@@ -15059,7 +15367,7 @@ and the return value is the length of the conversion.
;;;### (autoloads (kmacro-end-call-mouse kmacro-end-and-call-macro
;;;;;; kmacro-end-or-call-macro kmacro-start-macro-or-insert-counter
;;;;;; kmacro-call-macro kmacro-end-macro kmacro-start-macro) "kmacro"
-;;;;;; "kmacro.el" (17107 37381))
+;;;;;; "kmacro.el" (17178 22147))
;;; Generated autoloads from kmacro.el
(global-set-key "\C-x(" 'kmacro-start-macro)
(global-set-key "\C-x)" 'kmacro-end-macro)
@@ -15166,7 +15474,7 @@ If kbd macro currently being defined end it before activating it.
;;;### (autoloads (kannada-post-read-conversion kannada-compose-string
;;;;;; kannada-compose-region) "knd-util" "language/knd-util.el"
-;;;;;; (17107 37382))
+;;;;;; (17178 20481))
;;; Generated autoloads from language/knd-util.el
(defconst kannada-consonant "[\x51f75-\x51fb9]")
@@ -15189,7 +15497,7 @@ Not documented
;;;***
;;;### (autoloads (setup-korean-environment-internal) "korea-util"
-;;;;;; "language/korea-util.el" (17107 37382))
+;;;;;; "language/korea-util.el" (17178 20481))
;;; Generated autoloads from language/korea-util.el
(defvar default-korean-keyboard (if (string-match "3" (or (getenv "HANGUL_KEYBOARD_TYPE") "")) "3" "") "\
@@ -15204,7 +15512,7 @@ Not documented
;;;***
;;;### (autoloads (lm lm-test-run) "landmark" "play/landmark.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22152))
;;; Generated autoloads from play/landmark.el
(defalias (quote landmark-repeat) (quote lm-test-run))
@@ -15238,8 +15546,8 @@ Use \\[describe-mode] for more info.
;;;### (autoloads (lao-compose-region lao-composition-function lao-post-read-conversion
;;;;;; lao-transcribe-roman-to-lao-string lao-transcribe-single-roman-syllable-to-lao
-;;;;;; lao-compose-string) "lao-util" "language/lao-util.el" (17107
-;;;;;; 37382))
+;;;;;; lao-compose-string) "lao-util" "language/lao-util.el" (17178
+;;;;;; 20481))
;;; Generated autoloads from language/lao-util.el
(autoload (quote lao-compose-string) "lao-util" "\
@@ -15288,7 +15596,7 @@ Not documented
;;;### (autoloads (latexenc-find-file-coding-system latexenc-coding-system-to-inputenc
;;;;;; latexenc-inputenc-to-coding-system latex-inputenc-coding-alist)
-;;;;;; "latexenc" "international/latexenc.el" (17107 37380))
+;;;;;; "latexenc" "international/latexenc.el" (17178 20480))
;;; Generated autoloads from international/latexenc.el
(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) ("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))) "\
@@ -15319,7 +15627,7 @@ coding system names is determined from `latex-inputenc-coding-alist'.
;;;***
;;;### (autoloads (latin1-display-ucs-per-lynx latin1-display latin1-display)
-;;;;;; "latin1-disp" "international/latin1-disp.el" (17107 37380))
+;;;;;; "latin1-disp" "international/latin1-disp.el" (17178 20480))
;;; Generated autoloads from international/latin1-disp.el
(defvar latin1-display nil "\
@@ -15363,7 +15671,7 @@ use either \\[customize] or the function `latin1-display'.")
;;;***
;;;### (autoloads (turn-on-lazy-lock lazy-lock-mode) "lazy-lock"
-;;;;;; "obsolete/lazy-lock.el" (17107 37382))
+;;;;;; "obsolete/lazy-lock.el" (17178 22152))
;;; Generated autoloads from obsolete/lazy-lock.el
(autoload (quote lazy-lock-mode) "lazy-lock" "\
@@ -15431,7 +15739,7 @@ Unconditionally turn on Lazy Lock mode.
;;;***
;;;### (autoloads (ld-script-mode) "ld-script" "progmodes/ld-script.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22153))
;;; Generated autoloads from progmodes/ld-script.el
(add-to-list (quote auto-mode-alist) (quote ("\\.lds" . ld-script-mode)))
@@ -15444,7 +15752,7 @@ A major mode to edit GNU ld script files
;;;***
;;;### (autoloads (ledit-from-lisp-mode ledit-mode) "ledit" "ledit.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22149))
;;; Generated autoloads from ledit.el
(defconst ledit-save-files t "\
@@ -15478,7 +15786,7 @@ Not documented
;;;***
-;;;### (autoloads (life) "life" "play/life.el" (17107 37380))
+;;;### (autoloads (life) "life" "play/life.el" (17178 22152))
;;; Generated autoloads from play/life.el
(autoload (quote life) "life" "\
@@ -15491,8 +15799,8 @@ generations (this defaults to 1).
;;;***
-;;;### (autoloads (unload-feature) "loadhist" "loadhist.el" (17107
-;;;;;; 37380))
+;;;### (autoloads (unload-feature) "loadhist" "loadhist.el" (17178
+;;;;;; 22150))
;;; Generated autoloads from loadhist.el
(autoload (quote unload-feature) "loadhist" "\
@@ -15515,7 +15823,7 @@ such as redefining an Emacs function.
;;;***
;;;### (autoloads (locate-with-filter locate locate-ls-subdir-switches)
-;;;;;; "locate" "locate.el" (17107 37381))
+;;;;;; "locate" "locate.el" (17178 22150))
;;; Generated autoloads from locate.el
(defvar locate-ls-subdir-switches "-al" "\
@@ -15540,7 +15848,7 @@ shown; this is often useful to constrain a big search.
;;;***
-;;;### (autoloads (log-edit) "log-edit" "log-edit.el" (17107 37380))
+;;;### (autoloads (log-edit) "log-edit" "log-edit.el" (17178 22150))
;;; Generated autoloads from log-edit.el
(autoload (quote log-edit) "log-edit" "\
@@ -15561,8 +15869,8 @@ If BUFFER is non-nil `log-edit' will jump to that buffer, use it to edit the
;;;***
-;;;### (autoloads (log-view-mode) "log-view" "log-view.el" (17107
-;;;;;; 37382))
+;;;### (autoloads (log-view-mode) "log-view" "log-view.el" (17178
+;;;;;; 22150))
;;; Generated autoloads from log-view.el
(autoload (quote log-view-mode) "log-view" "\
@@ -15572,8 +15880,8 @@ Major mode for browsing CVS log output.
;;;***
-;;;### (autoloads (longlines-mode) "longlines" "longlines.el" (17107
-;;;;;; 37382))
+;;;### (autoloads (longlines-mode) "longlines" "longlines.el" (17178
+;;;;;; 22150))
;;; Generated autoloads from longlines.el
(autoload (quote longlines-mode) "longlines" "\
@@ -15594,8 +15902,8 @@ are indicated with a symbol.
;;;***
;;;### (autoloads (print-region lpr-region print-buffer lpr-buffer
-;;;;;; lpr-command lpr-switches printer-name) "lpr" "lpr.el" (17107
-;;;;;; 37380))
+;;;;;; lpr-command lpr-switches printer-name) "lpr" "lpr.el" (17178
+;;;;;; 22150))
;;; Generated autoloads from lpr.el
(defvar lpr-windows-system (memq system-type (quote (emx win32 w32 mswindows ms-dos windows-nt))))
@@ -15689,7 +15997,7 @@ for further customization of the printer command.
;;;***
;;;### (autoloads (ls-lisp-support-shell-wildcards) "ls-lisp" "ls-lisp.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22150))
;;; Generated autoloads from ls-lisp.el
(defvar ls-lisp-support-shell-wildcards t "\
@@ -15700,8 +16008,8 @@ Otherwise they are treated as Emacs regexps (for backward compatibility).")
;;;***
-;;;### (autoloads (phases-of-moon) "lunar" "calendar/lunar.el" (17107
-;;;;;; 37380))
+;;;### (autoloads (phases-of-moon) "lunar" "calendar/lunar.el" (17178
+;;;;;; 22143))
;;; Generated autoloads from calendar/lunar.el
(autoload (quote phases-of-moon) "lunar" "\
@@ -15714,8 +16022,8 @@ This function is suitable for execution in a .emacs file.
;;;***
-;;;### (autoloads (m4-mode) "m4-mode" "progmodes/m4-mode.el" (17107
-;;;;;; 37382))
+;;;### (autoloads (m4-mode) "m4-mode" "progmodes/m4-mode.el" (17178
+;;;;;; 22153))
;;; Generated autoloads from progmodes/m4-mode.el
(autoload (quote m4-mode) "m4-mode" "\
@@ -15727,7 +16035,7 @@ A major mode to edit m4 macro files.
;;;***
;;;### (autoloads (macroexpand-all) "macroexp" "emacs-lisp/macroexp.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22144))
;;; Generated autoloads from emacs-lisp/macroexp.el
(autoload (quote macroexpand-all) "macroexp" "\
@@ -15741,7 +16049,7 @@ definitions to shadow the loaded ones for use in file byte-compilation.
;;;***
;;;### (autoloads (apply-macro-to-region-lines kbd-macro-query insert-kbd-macro
-;;;;;; name-last-kbd-macro) "macros" "macros.el" (17107 37380))
+;;;;;; name-last-kbd-macro) "macros" "macros.el" (17178 22150))
;;; Generated autoloads from macros.el
(autoload (quote name-last-kbd-macro) "macros" "\
@@ -15830,7 +16138,7 @@ and then select the region of un-tablified names and use
;;;***
;;;### (autoloads (what-domain mail-extract-address-components) "mail-extr"
-;;;;;; "mail/mail-extr.el" (17107 37380))
+;;;;;; "mail/mail-extr.el" (17178 22150))
;;; Generated autoloads from mail/mail-extr.el
(autoload (quote mail-extract-address-components) "mail-extr" "\
@@ -15861,7 +16169,7 @@ Convert mail domain DOMAIN to the country it corresponds to.
;;;### (autoloads (mail-hist-put-headers-into-history mail-hist-keep-history
;;;;;; mail-hist-enable mail-hist-define-keys) "mail-hist" "mail/mail-hist.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22150))
;;; Generated autoloads from mail/mail-hist.el
(autoload (quote mail-hist-define-keys) "mail-hist" "\
@@ -15892,8 +16200,8 @@ This function normally would be called when the message is sent.
;;;### (autoloads (mail-fetch-field mail-unquote-printable-region
;;;;;; mail-unquote-printable mail-quote-printable mail-file-babyl-p
-;;;;;; mail-use-rfc822) "mail-utils" "mail/mail-utils.el" (17107
-;;;;;; 37380))
+;;;;;; mail-use-rfc822) "mail-utils" "mail/mail-utils.el" (17178
+;;;;;; 22150))
;;; Generated autoloads from mail/mail-utils.el
(defvar mail-use-rfc822 nil "\
@@ -15945,7 +16253,7 @@ If 4th arg LIST is non-nil, return a list of all such fields.
;;;***
;;;### (autoloads (define-mail-abbrev build-mail-abbrevs mail-abbrevs-setup)
-;;;;;; "mailabbrev" "mail/mailabbrev.el" (17107 37380))
+;;;;;; "mailabbrev" "mail/mailabbrev.el" (17178 22150))
;;; Generated autoloads from mail/mailabbrev.el
(autoload (quote mail-abbrevs-setup) "mailabbrev" "\
@@ -15968,8 +16276,8 @@ If DEFINITION contains multiple addresses, separate them with commas.
;;;***
;;;### (autoloads (mail-complete define-mail-alias expand-mail-aliases
-;;;;;; mail-complete-style) "mailalias" "mail/mailalias.el" (17107
-;;;;;; 37379))
+;;;;;; mail-complete-style) "mailalias" "mail/mailalias.el" (17178
+;;;;;; 22150))
;;; Generated autoloads from mail/mailalias.el
(defvar mail-complete-style (quote angles) "\
@@ -16016,7 +16324,7 @@ current header, calls `mail-complete-function' and passes prefix arg if any.
;;;### (autoloads (makefile-bsdmake-mode makefile-makepp-mode makefile-gmake-mode
;;;;;; makefile-automake-mode makefile-mode) "make-mode" "progmodes/make-mode.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22153))
;;; Generated autoloads from progmodes/make-mode.el
(autoload (quote makefile-mode) "make-mode" "\
@@ -16128,8 +16436,8 @@ An adapted `makefile-mode' that knows about BSD make.
;;;***
-;;;### (autoloads (make-command-summary) "makesum" "makesum.el" (17107
-;;;;;; 37380))
+;;;### (autoloads (make-command-summary) "makesum" "makesum.el" (17178
+;;;;;; 22151))
;;; Generated autoloads from makesum.el
(autoload (quote make-command-summary) "makesum" "\
@@ -16140,7 +16448,7 @@ Previous contents of that buffer are killed first.
;;;***
-;;;### (autoloads (man-follow man) "man" "man.el" (17107 37380))
+;;;### (autoloads (man-follow man) "man" "man.el" (17178 22151))
;;; Generated autoloads from man.el
(defalias (quote manual-entry) (quote man))
@@ -16167,7 +16475,7 @@ Get a Un*x manual page of the item under point and put it in a buffer.
;;;***
-;;;### (autoloads (master-mode) "master" "master.el" (17107 37380))
+;;;### (autoloads (master-mode) "master" "master.el" (17178 22151))
;;; Generated autoloads from master.el
(autoload (quote master-mode) "master" "\
@@ -16189,8 +16497,8 @@ yourself the value of `master-of' by calling `master-show-slave'.
;;;***
-;;;### (autoloads (menu-bar-mode) "menu-bar" "menu-bar.el" (17107
-;;;;;; 37382))
+;;;### (autoloads (menu-bar-mode) "menu-bar" "menu-bar.el" (17178
+;;;;;; 22151))
;;; Generated autoloads from menu-bar.el
(put (quote menu-bar-mode) (quote standard-value) (quote (t)))
@@ -16229,7 +16537,7 @@ turn on menu bars; otherwise, turn off menu bars.
;;;;;; message-signature message-indent-citation-function message-cite-function
;;;;;; message-yank-prefix message-citation-line-function message-send-mail-function
;;;;;; message-user-organization-file message-signature-separator
-;;;;;; message-from-style) "message" "gnus/message.el" (17107 37379))
+;;;;;; message-from-style) "message" "gnus/message.el" (17178 22145))
;;; Generated autoloads from gnus/message.el
(defvar message-from-style (quote default) "\
@@ -16535,7 +16843,7 @@ which specify the range to operate on.
;;;***
;;;### (autoloads (metapost-mode metafont-mode) "meta-mode" "progmodes/meta-mode.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22153))
;;; Generated autoloads from progmodes/meta-mode.el
(autoload (quote metafont-mode) "meta-mode" "\
@@ -16562,7 +16870,7 @@ Turning on MetaPost mode calls the value of the variable
;;;### (autoloads (metamail-region metamail-buffer metamail-interpret-body
;;;;;; metamail-interpret-header) "metamail" "mail/metamail.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22150))
;;; Generated autoloads from mail/metamail.el
(autoload (quote metamail-interpret-header) "metamail" "\
@@ -16606,8 +16914,8 @@ redisplayed as output is inserted.
;;;***
;;;### (autoloads (mh-letter-mode mh-smail-other-window mh-user-agent-compose
-;;;;;; mh-smail-batch mh-smail) "mh-comp" "mh-e/mh-comp.el" (17107
-;;;;;; 37380))
+;;;;;; mh-smail-batch mh-smail) "mh-comp" "mh-e/mh-comp.el" (17178
+;;;;;; 20480))
;;; Generated autoloads from mh-e/mh-comp.el
(autoload (quote mh-smail) "mh-comp" "\
@@ -16681,8 +16989,8 @@ When a message is composed, the hooks `text-mode-hook' and
;;;***
-;;;### (autoloads (mh-restore-desktop-buffer mh-version mh-nmail
-;;;;;; mh-rmail) "mh-e" "mh-e/mh-e.el" (17107 37380))
+;;;### (autoloads (mh-folder-mode mh-version mh-nmail mh-rmail) "mh-e"
+;;;;;; "mh-e/mh-e.el" (17178 22151))
;;; Generated autoloads from mh-e/mh-e.el
(autoload (quote mh-rmail) "mh-e" "\
@@ -16704,18 +17012,63 @@ Display version information about MH-E and the MH mail handling system.
\(fn)" t nil)
-(autoload (quote mh-restore-desktop-buffer) "mh-e" "\
-Restore an MH folder buffer specified in a desktop file.
-When desktop creates a buffer, DESKTOP-BUFFER-FILE-NAME holds the file name to
-visit, DESKTOP-BUFFER-NAME holds the desired buffer name, and
-DESKTOP-BUFFER-MISC holds a list of miscellaneous info used by the
-`desktop-buffer-handlers' functions.
+(autoload (quote mh-folder-mode) "mh-e" "\
+Major MH-E mode for \"editing\" an MH folder scan listing.\\<mh-folder-mode-map>
+
+You can show the message the cursor is pointing to, and step through the
+messages. Messages can be marked for deletion or refiling into another
+folder; these commands are executed all at once with a separate command.
+
+Options that control this mode can be changed with \\[customize-group];
+specify the \"mh\" group. In particular, please see the `mh-scan-format-file'
+option if you wish to modify scan's format.
+
+When a folder is visited, the hook `mh-folder-mode-hook' is run.
+
+Ranges
+======
+Many commands that operate on individual messages, such as `mh-forward' or
+`mh-refile-msg' take a RANGE argument. This argument can be used in several
+ways.
+
+If you provide the prefix argument (\\[universal-argument]) to these commands,
+then you will be prompted for the message range. This can be any valid MH
+range which can include messages, sequences, and the abbreviations (described
+in the mh(1) man page):
+
+<num1>-<num2>
+ Indicates all messages in the range <num1> to <num2>, inclusive. The range
+ must be nonempty.
+
+`<num>:N'
+`<num>:+N'
+`<num>:-N'
+ Up to N messages beginning with (or ending with) message num. Num may be
+ any of the pre-defined symbols: first, prev, cur, next or last.
-\(fn DESKTOP-BUFFER-FILE-NAME DESKTOP-BUFFER-NAME DESKTOP-BUFFER-MISC)" nil nil)
+`first:N'
+`prev:N'
+`next:N'
+`last:N'
+ The first, previous, next or last messages, if they exist.
+
+`all'
+ All of the messages.
+
+For example, a range that shows all of these things is `1 2 3 5-10 last:5
+unseen'.
+
+If the option `transient-mark-mode' is set to t and you set a region in the
+MH-Folder buffer, then the MH-E command will perform the operation on all
+messages in that region.
+
+\\{mh-folder-mode-map}
+
+\(fn)" t nil)
;;;***
-;;;### (autoloads nil "mh-init" "mh-e/mh-init.el" (17107 37380))
+;;;### (autoloads nil "mh-init" "mh-e/mh-init.el" (17178 20480))
;;; Generated autoloads from mh-e/mh-init.el
(put (quote mh-progs) (quote risky-local-variable) t)
@@ -16727,7 +17080,7 @@ DESKTOP-BUFFER-MISC holds a list of miscellaneous info used by the
;;;***
;;;### (autoloads (midnight-delay-set clean-buffer-list) "midnight"
-;;;;;; "midnight.el" (17107 37380))
+;;;;;; "midnight.el" (17178 22151))
;;; Generated autoloads from midnight.el
(autoload (quote clean-buffer-list) "midnight" "\
@@ -16754,7 +17107,7 @@ to its second argument TM.
;;;***
;;;### (autoloads (minibuffer-electric-default-mode) "minibuf-eldef"
-;;;;;; "minibuf-eldef.el" (17107 37380))
+;;;;;; "minibuf-eldef.el" (17178 22151))
;;; Generated autoloads from minibuf-eldef.el
(defvar minibuffer-electric-default-mode nil "\
@@ -16783,7 +17136,7 @@ Returns non-nil if the new state is enabled.
;;;***
;;;### (autoloads (mixal-mode) "mixal-mode" "progmodes/mixal-mode.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22153))
;;; Generated autoloads from progmodes/mixal-mode.el
(autoload (quote mixal-mode) "mixal-mode" "\
@@ -16798,7 +17151,7 @@ Major mode for the mixal asm language.
;;;### (autoloads (malayalam-composition-function malayalam-post-read-conversion
;;;;;; malayalam-compose-region) "mlm-util" "language/mlm-util.el"
-;;;;;; (17107 37382))
+;;;;;; (17178 20481))
;;; Generated autoloads from language/mlm-util.el
(autoload (quote malayalam-compose-region) "mlm-util" "\
@@ -16821,7 +17174,7 @@ PATTERN regexp.
;;;***
;;;### (autoloads (mm-inline-external-body) "mm-extern" "gnus/mm-extern.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22146))
;;; Generated autoloads from gnus/mm-extern.el
(autoload (quote mm-inline-external-body) "mm-extern" "\
@@ -16835,7 +17188,7 @@ If NO-DISPLAY is nil, display it. Otherwise, do nothing after replacing.
;;;***
;;;### (autoloads (mm-inline-partial) "mm-partial" "gnus/mm-partial.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22146))
;;; Generated autoloads from gnus/mm-partial.el
(autoload (quote mm-inline-partial) "mm-partial" "\
@@ -16849,7 +17202,7 @@ If NO-DISPLAY is nil, display it. Otherwise, do nothing after replacing.
;;;***
;;;### (autoloads (mm-url-insert-file-contents-external mm-url-insert-file-contents)
-;;;;;; "mm-url" "gnus/mm-url.el" (17107 37379))
+;;;;;; "mm-url" "gnus/mm-url.el" (17178 22146))
;;; Generated autoloads from gnus/mm-url.el
(autoload (quote mm-url-insert-file-contents) "mm-url" "\
@@ -16865,8 +17218,8 @@ Insert file contents of URL using `mm-url-program'.
;;;***
-;;;### (autoloads (mm-uu-dissect) "mm-uu" "gnus/mm-uu.el" (17107
-;;;;;; 37379))
+;;;### (autoloads (mm-uu-dissect) "mm-uu" "gnus/mm-uu.el" (17178
+;;;;;; 22146))
;;; Generated autoloads from gnus/mm-uu.el
(autoload (quote mm-uu-dissect) "mm-uu" "\
@@ -16877,7 +17230,7 @@ Dissect the current buffer and return a list of uu handles.
;;;***
;;;### (autoloads (mml1991-sign mml1991-encrypt) "mml1991" "gnus/mml1991.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22146))
;;; Generated autoloads from gnus/mml1991.el
(autoload (quote mml1991-encrypt) "mml1991" "\
@@ -16894,7 +17247,7 @@ Not documented
;;;### (autoloads (mml2015-self-encrypt mml2015-sign mml2015-encrypt
;;;;;; mml2015-verify-test mml2015-verify mml2015-decrypt-test mml2015-decrypt)
-;;;;;; "mml2015" "gnus/mml2015.el" (17107 37379))
+;;;;;; "mml2015" "gnus/mml2015.el" (17178 22146))
;;; Generated autoloads from gnus/mml2015.el
(autoload (quote mml2015-decrypt) "mml2015" "\
@@ -16935,7 +17288,7 @@ Not documented
;;;***
;;;### (autoloads (modula-2-mode) "modula2" "progmodes/modula2.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 20481))
;;; Generated autoloads from progmodes/modula2.el
(autoload (quote modula-2-mode) "modula2" "\
@@ -16967,7 +17320,7 @@ followed by the first character of the construct.
;;;***
;;;### (autoloads (unmorse-region morse-region) "morse" "play/morse.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22152))
;;; Generated autoloads from play/morse.el
(autoload (quote morse-region) "morse" "\
@@ -16982,8 +17335,8 @@ Convert morse coded text in region to ordinary ASCII text.
;;;***
-;;;### (autoloads (mouse-sel-mode) "mouse-sel" "mouse-sel.el" (17107
-;;;;;; 37382))
+;;;### (autoloads (mouse-sel-mode) "mouse-sel" "mouse-sel.el" (17178
+;;;;;; 22151))
;;; Generated autoloads from mouse-sel.el
(defvar mouse-sel-mode nil "\
@@ -17036,7 +17389,7 @@ primary selection and region.
;;;***
-;;;### (autoloads (mpuz) "mpuz" "play/mpuz.el" (17107 37380))
+;;;### (autoloads (mpuz) "mpuz" "play/mpuz.el" (17178 22152))
;;; Generated autoloads from play/mpuz.el
(autoload (quote mpuz) "mpuz" "\
@@ -17046,7 +17399,7 @@ Multiplication puzzle with GNU Emacs.
;;;***
-;;;### (autoloads (msb-mode) "msb" "msb.el" (17107 37380))
+;;;### (autoloads (msb-mode) "msb" "msb.el" (17178 22151))
;;; Generated autoloads from msb.el
(defvar msb-mode nil "\
@@ -17074,7 +17427,7 @@ different buffer menu using the function `msb'.
;;;;;; describe-current-coding-system describe-current-coding-system-briefly
;;;;;; describe-coding-system describe-character-set list-charset-chars
;;;;;; read-charset list-character-sets) "mule-diag" "international/mule-diag.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 20480))
;;; Generated autoloads from international/mule-diag.el
(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))))) "\
@@ -17247,7 +17600,7 @@ system which uses fontsets).
;;;;;; coding-system-translation-table-for-decode coding-system-pre-write-conversion
;;;;;; coding-system-post-read-conversion lookup-nested-alist set-nested-alist
;;;;;; truncate-string-to-width store-substring string-to-sequence)
-;;;;;; "mule-util" "international/mule-util.el" (17107 37380))
+;;;;;; "mule-util" "international/mule-util.el" (17178 20480))
;;; Generated autoloads from international/mule-util.el
(autoload (quote string-to-sequence) "mule-util" "\
@@ -17376,7 +17729,7 @@ basis, this may not be accurate.
;;;***
;;;### (autoloads (mwheel-install mouse-wheel-mode) "mwheel" "mwheel.el"
-;;;;;; (17107 37382))
+;;;;;; (17178 22151))
;;; Generated autoloads from mwheel.el
(defvar mouse-wheel-mode nil "\
@@ -17404,9 +17757,9 @@ Enable mouse wheel support.
;;;***
;;;### (autoloads (network-connection network-connection-to-service
-;;;;;; whois-reverse-lookup whois finger ftp dig dns-lookup-host
+;;;;;; whois-reverse-lookup whois finger ftp run-dig dns-lookup-host
;;;;;; nslookup nslookup-host route arp netstat ipconfig ping traceroute)
-;;;;;; "net-utils" "net/net-utils.el" (17107 37379))
+;;;;;; "net-utils" "net/net-utils.el" (17178 22151))
;;; Generated autoloads from net/net-utils.el
(autoload (quote traceroute) "net-utils" "\
@@ -17458,7 +17811,7 @@ Lookup the DNS information for HOST (name or IP address).
\(fn HOST)" t nil)
-(autoload (quote dig) "net-utils" "\
+(autoload (quote run-dig) "net-utils" "\
Run dig program.
\(fn HOST)" t nil)
@@ -17502,7 +17855,7 @@ Open a network connection to HOST on PORT.
;;;;;; comment-kill comment-set-column comment-indent comment-indent-default
;;;;;; comment-normalize-vars comment-multi-line comment-padding
;;;;;; comment-style comment-column) "newcomment" "newcomment.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22151))
;;; Generated autoloads from newcomment.el
(defalias (quote indent-for-comment) (quote comment-indent))
@@ -17684,7 +18037,7 @@ unless optional argument SOFT is non-nil.
;;;***
;;;### (autoloads (nndiary-generate-nov-databases) "nndiary" "gnus/nndiary.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22146))
;;; Generated autoloads from gnus/nndiary.el
(autoload (quote nndiary-generate-nov-databases) "nndiary" "\
@@ -17694,8 +18047,8 @@ Generate NOV databases in all nndiary directories.
;;;***
-;;;### (autoloads (nndoc-add-type) "nndoc" "gnus/nndoc.el" (17107
-;;;;;; 37379))
+;;;### (autoloads (nndoc-add-type) "nndoc" "gnus/nndoc.el" (17178
+;;;;;; 22146))
;;; Generated autoloads from gnus/nndoc.el
(autoload (quote nndoc-add-type) "nndoc" "\
@@ -17710,7 +18063,7 @@ symbol in the alist.
;;;***
;;;### (autoloads (nnfolder-generate-active-file) "nnfolder" "gnus/nnfolder.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22146))
;;; Generated autoloads from gnus/nnfolder.el
(autoload (quote nnfolder-generate-active-file) "nnfolder" "\
@@ -17722,7 +18075,7 @@ This command does not work if you use short group names.
;;;***
;;;### (autoloads (nnkiboze-generate-groups) "nnkiboze" "gnus/nnkiboze.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22146))
;;; Generated autoloads from gnus/nnkiboze.el
(autoload (quote nnkiboze-generate-groups) "nnkiboze" "\
@@ -17734,7 +18087,7 @@ Finds out what articles are to be part of the nnkiboze groups.
;;;***
;;;### (autoloads (nnml-generate-nov-databases) "nnml" "gnus/nnml.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22146))
;;; Generated autoloads from gnus/nnml.el
(autoload (quote nnml-generate-nov-databases) "nnml" "\
@@ -17745,7 +18098,7 @@ Generate NOV databases in all nnml directories.
;;;***
;;;### (autoloads (nnsoup-revert-variables nnsoup-set-variables nnsoup-pack-replies)
-;;;;;; "nnsoup" "gnus/nnsoup.el" (17107 37379))
+;;;;;; "nnsoup" "gnus/nnsoup.el" (17178 22146))
;;; Generated autoloads from gnus/nnsoup.el
(autoload (quote nnsoup-pack-replies) "nnsoup" "\
@@ -17766,15 +18119,14 @@ Revert posting and mailing methods to the standard Emacs methods.
;;;***
;;;### (autoloads (disable-command enable-command disabled-command-function)
-;;;;;; "novice" "novice.el" (17107 37381))
+;;;;;; "novice" "novice.el" (17178 22151))
;;; Generated autoloads from novice.el
(defvar disabled-command-function (quote disabled-command-function) "\
Function to call to handle disabled commands.
If nil, the feature is disabled, i.e., all commands work normally.")
-(defvaralias (quote disabled-command-hook) (quote disabled-command-function))
- (make-obsolete-variable 'disabled-command-hook 'disabled-command-function "22.1")
+(define-obsolete-variable-alias (quote disabled-command-hook) (quote disabled-command-function) "22.1")
(autoload (quote disabled-command-function) "novice" "\
Not documented
@@ -17800,7 +18152,7 @@ to future sessions.
;;;***
;;;### (autoloads (nroff-mode) "nroff-mode" "textmodes/nroff-mode.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22154))
;;; Generated autoloads from textmodes/nroff-mode.el
(autoload (quote nroff-mode) "nroff-mode" "\
@@ -17815,7 +18167,7 @@ closing requests for requests that are used in matched pairs.
;;;***
;;;### (autoloads (octave-help) "octave-hlp" "progmodes/octave-hlp.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22153))
;;; Generated autoloads from progmodes/octave-hlp.el
(autoload (quote octave-help) "octave-hlp" "\
@@ -17829,7 +18181,7 @@ If KEY is not a string, prompt for it with completion.
;;;***
;;;### (autoloads (inferior-octave) "octave-inf" "progmodes/octave-inf.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22153))
;;; Generated autoloads from progmodes/octave-inf.el
(autoload (quote inferior-octave) "octave-inf" "\
@@ -17852,7 +18204,7 @@ startup file, `~/.emacs-octave'.
;;;***
;;;### (autoloads (octave-mode) "octave-mod" "progmodes/octave-mod.el"
-;;;;;; (17107 37382))
+;;;;;; (17178 22153))
;;; Generated autoloads from progmodes/octave-mod.el
(autoload (quote octave-mode) "octave-mod" "\
@@ -17951,7 +18303,7 @@ including a reproducible test case and send the message.
;;;***
;;;### (autoloads (edit-options list-options) "options" "obsolete/options.el"
-;;;;;; (17107 37382))
+;;;;;; (17178 22152))
;;; Generated autoloads from obsolete/options.el
(autoload (quote list-options) "options" "\
@@ -17974,8 +18326,8 @@ The Custom feature is intended to make this obsolete.
;;;### (autoloads (orgtbl-mode turn-on-orgtbl org-remember-handler
;;;;;; org-remember-annotation org-store-link org-diary org-agenda
-;;;;;; org-agenda-mode org-mode) "org" "textmodes/org.el" (17107
-;;;;;; 37381))
+;;;;;; org-agenda-mode org-mode) "org" "textmodes/org.el" (17178
+;;;;;; 22154))
;;; Generated autoloads from textmodes/org.el
(autoload (quote org-mode) "org" "\
@@ -18133,7 +18485,7 @@ The `org-mode' table editor as a minor mode for use in other modes.
;;;***
;;;### (autoloads (outline-minor-mode outline-mode) "outline" "outline.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22152))
;;; Generated autoloads from outline.el
(autoload (quote outline-mode) "outline" "\
@@ -18188,7 +18540,7 @@ See the command `outline-mode' for more information on this mode.
;;;***
-;;;### (autoloads (show-paren-mode) "paren" "paren.el" (17107 37380))
+;;;### (autoloads (show-paren-mode) "paren" "paren.el" (17178 22152))
;;; Generated autoloads from paren.el
(defvar show-paren-mode nil "\
@@ -18214,7 +18566,7 @@ in `show-paren-style' after `show-paren-delay' seconds of Emacs idle time.
;;;***
;;;### (autoloads (parse-time-string) "parse-time" "calendar/parse-time.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 20480))
;;; Generated autoloads from calendar/parse-time.el
(autoload (quote parse-time-string) "parse-time" "\
@@ -18226,8 +18578,8 @@ unknown are returned as nil.
;;;***
-;;;### (autoloads (pascal-mode) "pascal" "progmodes/pascal.el" (17107
-;;;;;; 37381))
+;;;### (autoloads (pascal-mode) "pascal" "progmodes/pascal.el" (17178
+;;;;;; 22153))
;;; Generated autoloads from progmodes/pascal.el
(autoload (quote pascal-mode) "pascal" "\
@@ -18280,7 +18632,7 @@ no args, if that value is non-nil.
;;;***
;;;### (autoloads (pc-bindings-mode) "pc-mode" "emulation/pc-mode.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22144))
;;; Generated autoloads from emulation/pc-mode.el
(autoload (quote pc-bindings-mode) "pc-mode" "\
@@ -18298,7 +18650,7 @@ C-Escape does list-buffers.
;;;***
;;;### (autoloads (pc-selection-mode pc-selection-mode) "pc-select"
-;;;;;; "emulation/pc-select.el" (17107 37380))
+;;;;;; "emulation/pc-select.el" (17178 22144))
;;; Generated autoloads from emulation/pc-select.el
(defvar pc-selection-mode nil "\
@@ -18375,8 +18727,8 @@ you must modify it using \\[customize] or \\[pc-selection-mode].")
;;;***
-;;;### (autoloads (pcomplete/cvs) "pcmpl-cvs" "pcmpl-cvs.el" (17107
-;;;;;; 37380))
+;;;### (autoloads (pcomplete/cvs) "pcmpl-cvs" "pcmpl-cvs.el" (17178
+;;;;;; 22152))
;;; Generated autoloads from pcmpl-cvs.el
(autoload (quote pcomplete/cvs) "pcmpl-cvs" "\
@@ -18387,7 +18739,7 @@ Completion rules for the `cvs' command.
;;;***
;;;### (autoloads (pcomplete/tar pcomplete/make pcomplete/bzip2 pcomplete/gzip)
-;;;;;; "pcmpl-gnu" "pcmpl-gnu.el" (17107 37380))
+;;;;;; "pcmpl-gnu" "pcmpl-gnu.el" (17178 22152))
;;; Generated autoloads from pcmpl-gnu.el
(autoload (quote pcomplete/gzip) "pcmpl-gnu" "\
@@ -18415,7 +18767,7 @@ Completion for the GNU tar utility.
;;;***
;;;### (autoloads (pcomplete/mount pcomplete/umount pcomplete/kill)
-;;;;;; "pcmpl-linux" "pcmpl-linux.el" (17107 37380))
+;;;;;; "pcmpl-linux" "pcmpl-linux.el" (17178 22152))
;;; Generated autoloads from pcmpl-linux.el
(autoload (quote pcomplete/kill) "pcmpl-linux" "\
@@ -18435,8 +18787,8 @@ Completion for GNU/Linux `mount'.
;;;***
-;;;### (autoloads (pcomplete/rpm) "pcmpl-rpm" "pcmpl-rpm.el" (17107
-;;;;;; 37380))
+;;;### (autoloads (pcomplete/rpm) "pcmpl-rpm" "pcmpl-rpm.el" (17178
+;;;;;; 22152))
;;; Generated autoloads from pcmpl-rpm.el
(autoload (quote pcomplete/rpm) "pcmpl-rpm" "\
@@ -18452,7 +18804,7 @@ You can use \\[eshell-report-bug] to do so.
;;;### (autoloads (pcomplete/chgrp pcomplete/chown pcomplete/which
;;;;;; pcomplete/xargs pcomplete/rm pcomplete/rmdir pcomplete/cd)
-;;;;;; "pcmpl-unix" "pcmpl-unix.el" (17107 37381))
+;;;;;; "pcmpl-unix" "pcmpl-unix.el" (17178 22152))
;;; Generated autoloads from pcmpl-unix.el
(autoload (quote pcomplete/cd) "pcmpl-unix" "\
@@ -18498,8 +18850,8 @@ Completion for the `chgrp' command.
;;;### (autoloads (pcomplete-shell-setup pcomplete-comint-setup pcomplete-list
;;;;;; pcomplete-help pcomplete-expand pcomplete-continue pcomplete-expand-and-complete
-;;;;;; pcomplete-reverse pcomplete) "pcomplete" "pcomplete.el" (17107
-;;;;;; 37380))
+;;;;;; pcomplete-reverse pcomplete) "pcomplete" "pcomplete.el" (17178
+;;;;;; 22152))
;;; Generated autoloads from pcomplete.el
(autoload (quote pcomplete) "pcomplete" "\
@@ -18558,7 +18910,7 @@ Setup shell-mode to use pcomplete.
;;;### (autoloads (cvs-dired-use-hook cvs-dired-action cvs-status
;;;;;; cvs-update cvs-examine cvs-quickdir cvs-checkout) "pcvs"
-;;;;;; "pcvs.el" (17107 37382))
+;;;;;; "pcvs.el" (17178 22152))
;;; Generated autoloads from pcvs.el
(autoload (quote cvs-checkout) "pcvs" "\
@@ -18635,7 +18987,7 @@ The exact behavior is determined also by `cvs-dired-use-hook'." (when (stringp d
;;;***
-;;;### (autoloads nil "pcvs-defs" "pcvs-defs.el" (17107 37380))
+;;;### (autoloads nil "pcvs-defs" "pcvs-defs.el" (17178 22152))
;;; Generated autoloads from pcvs-defs.el
(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)))
@@ -18643,7 +18995,7 @@ The exact behavior is determined also by `cvs-dired-use-hook'." (when (stringp d
;;;***
;;;### (autoloads (perl-mode) "perl-mode" "progmodes/perl-mode.el"
-;;;;;; (17107 37382))
+;;;;;; (17178 22153))
;;; Generated autoloads from progmodes/perl-mode.el
(autoload (quote perl-mode) "perl-mode" "\
@@ -18701,7 +19053,7 @@ Turning on Perl mode runs the normal hook `perl-mode-hook'.
;;;### (autoloads (pgg-snarf-keys pgg-snarf-keys-region pgg-insert-key
;;;;;; pgg-verify pgg-verify-region pgg-sign pgg-sign-region pgg-decrypt
;;;;;; pgg-decrypt-region pgg-encrypt pgg-encrypt-region) "pgg"
-;;;;;; "gnus/pgg.el" (17107 37379))
+;;;;;; "gnus/pgg.el" (17178 22146))
;;; Generated autoloads from gnus/pgg.el
(autoload (quote pgg-encrypt-region) "pgg" "\
@@ -18789,7 +19141,7 @@ Import public keys in the current buffer.
;;;***
;;;### (autoloads (picture-mode) "picture" "textmodes/picture.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22154))
;;; Generated autoloads from textmodes/picture.el
(autoload (quote picture-mode) "picture" "\
@@ -18844,7 +19196,7 @@ You can manipulate rectangles with these commands:
C-c C-r Draw a rectangular box around mark and point.
\\[copy-rectangle-to-register] Copies a rectangle to a register.
\\[advertised-undo] Can undo effects of rectangle overlay commands
- commands if invoked soon enough.
+ if invoked soon enough.
You can return to the previous mode with:
C-c C-c Which also strips trailing whitespace from every line.
Stripping is suppressed by supplying an argument.
@@ -18861,7 +19213,7 @@ they are not defaultly assigned to keys.
;;;***
;;;### (autoloads (po-find-file-coding-system) "po" "textmodes/po.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22154))
;;; Generated autoloads from textmodes/po.el
(autoload (quote po-find-file-coding-system) "po" "\
@@ -18872,7 +19224,7 @@ Called through `file-coding-system-alist', before the file is visited for real.
;;;***
-;;;### (autoloads (pong) "pong" "play/pong.el" (17107 37380))
+;;;### (autoloads (pong) "pong" "play/pong.el" (17178 22152))
;;; Generated autoloads from play/pong.el
(autoload (quote pong) "pong" "\
@@ -18889,7 +19241,7 @@ pong-mode keybindings:\\<pong-mode-map>
;;;***
;;;### (autoloads (pp-eval-last-sexp pp-eval-expression pp pp-buffer
-;;;;;; pp-to-string) "pp" "emacs-lisp/pp.el" (17107 37381))
+;;;;;; pp-to-string) "pp" "emacs-lisp/pp.el" (17178 22144))
;;; Generated autoloads from emacs-lisp/pp.el
(autoload (quote pp-to-string) "pp" "\
@@ -18947,7 +19299,7 @@ Ignores leading comment characters.
;;;;;; pr-ps-buffer-print pr-ps-buffer-using-ghostscript pr-ps-buffer-preview
;;;;;; pr-ps-directory-ps-print pr-ps-directory-print pr-ps-directory-using-ghostscript
;;;;;; pr-ps-directory-preview pr-interface) "printing" "printing.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22152))
;;; Generated autoloads from printing.el
(autoload (quote pr-interface) "printing" "\
@@ -19535,7 +19887,7 @@ are both set to t.
;;;***
;;;### (autoloads (run-prolog prolog-mode) "prolog" "progmodes/prolog.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22153))
;;; Generated autoloads from progmodes/prolog.el
(autoload (quote prolog-mode) "prolog" "\
@@ -19555,7 +19907,7 @@ Run an inferior Prolog process, input and output via buffer *prolog*.
;;;***
-;;;### (autoloads nil "ps-bdf" "ps-bdf.el" (17107 37381))
+;;;### (autoloads nil "ps-bdf" "ps-bdf.el" (17178 22153))
;;; Generated autoloads from ps-bdf.el
(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"))) "\
@@ -19564,8 +19916,8 @@ The default value is '(\"/usr/local/share/emacs/fonts/bdf\").")
;;;***
-;;;### (autoloads (ps-mode) "ps-mode" "progmodes/ps-mode.el" (17107
-;;;;;; 37382))
+;;;### (autoloads (ps-mode) "ps-mode" "progmodes/ps-mode.el" (17178
+;;;;;; 22153))
;;; Generated autoloads from progmodes/ps-mode.el
(autoload (quote ps-mode) "ps-mode" "\
@@ -19614,7 +19966,7 @@ Typing \\<ps-run-mode-map>\\[ps-run-goto-error] when the cursor is at the number
;;;### (autoloads (ps-mule-begin-page ps-mule-begin-job ps-mule-encode-header-string
;;;;;; ps-mule-initialize ps-mule-plot-composition ps-mule-plot-string
;;;;;; ps-mule-set-ascii-font ps-mule-prepare-ascii-font ps-multibyte-buffer)
-;;;;;; "ps-mule" "ps-mule.el" (17107 37380))
+;;;;;; "ps-mule" "ps-mule.el" (17178 22153))
;;; Generated autoloads from ps-mule.el
(defvar ps-multibyte-buffer nil "\
@@ -19735,8 +20087,8 @@ Not documented
;;;;;; ps-spool-region ps-spool-buffer-with-faces ps-spool-buffer
;;;;;; ps-print-region-with-faces ps-print-region ps-print-buffer-with-faces
;;;;;; ps-print-buffer ps-print-customize ps-print-color-p ps-paper-type
-;;;;;; ps-page-dimensions-database) "ps-print" "ps-print.el" (17107
-;;;;;; 37380))
+;;;;;; ps-page-dimensions-database) "ps-print" "ps-print.el" (17178
+;;;;;; 22153))
;;; Generated autoloads from ps-print.el
(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")) "\
@@ -19889,10 +20241,10 @@ Extend face in ALIST-SYM.
If optional MERGE-P is non-nil, extensions in FACE-EXTENSION-LIST are merged
with face extension in ALIST-SYM; otherwise, overrides.
-If optional ALIST-SYM is nil, it's used `ps-print-face-extension-alist';
+If optional ALIST-SYM is nil, `ps-print-face-extension-alist' is used;
otherwise, it should be an alist symbol.
-The elements in FACE-EXTENSION-LIST is like those for `ps-extend-face'.
+The elements in FACE-EXTENSION-LIST are like those for `ps-extend-face'.
See `ps-extend-face' for documentation.
@@ -19904,7 +20256,7 @@ Extend face in ALIST-SYM.
If optional MERGE-P is non-nil, extensions in FACE-EXTENSION list are merged
with face extensions in ALIST-SYM; otherwise, overrides.
-If optional ALIST-SYM is nil, it's used `ps-print-face-extension-alist';
+If optional ALIST-SYM is nil, `ps-print-face-extension-alist' is used;
otherwise, it should be an alist symbol.
The elements of FACE-EXTENSION list have the form:
@@ -19933,7 +20285,7 @@ If EXTENSION is any other symbol, it is ignored.
;;;***
;;;### (autoloads (jython-mode python-mode run-python) "python" "progmodes/python.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22153))
;;; Generated autoloads from progmodes/python.el
(add-to-list (quote interpreter-mode-alist) (quote ("jython" . jython-mode)))
@@ -19997,7 +20349,7 @@ Runs `jython-mode-hook' after `python-mode-hook'.
;;;***
;;;### (autoloads (quoted-printable-decode-region) "qp" "gnus/qp.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22146))
;;; Generated autoloads from gnus/qp.el
(autoload (quote quoted-printable-decode-region) "qp" "\
@@ -20020,7 +20372,7 @@ them into characters should be done separately.
;;;;;; quail-defrule quail-install-decode-map quail-install-map
;;;;;; quail-define-rules quail-show-keyboard-layout quail-set-keyboard-layout
;;;;;; quail-define-package quail-use-package quail-title) "quail"
-;;;;;; "international/quail.el" (17107 37380))
+;;;;;; "international/quail.el" (17178 20480))
;;; Generated autoloads from international/quail.el
(autoload (quote quail-title) "quail" "\
@@ -20251,8 +20603,8 @@ of each directory.
;;;### (autoloads (quickurl-list quickurl-list-mode quickurl-edit-urls
;;;;;; quickurl-browse-url-ask quickurl-browse-url quickurl-add-url
-;;;;;; quickurl-ask quickurl) "quickurl" "net/quickurl.el" (17107
-;;;;;; 37379))
+;;;;;; quickurl-ask quickurl) "quickurl" "net/quickurl.el" (17178
+;;;;;; 22151))
;;; Generated autoloads from net/quickurl.el
(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" "\
@@ -20323,8 +20675,8 @@ Display `quickurl-list' as a formatted list using `quickurl-list-mode'.
;;;***
-;;;### (autoloads (remote-compile) "rcompile" "net/rcompile.el" (17107
-;;;;;; 37379))
+;;;### (autoloads (remote-compile) "rcompile" "net/rcompile.el" (17178
+;;;;;; 22151))
;;; Generated autoloads from net/rcompile.el
(autoload (quote remote-compile) "rcompile" "\
@@ -20335,14 +20687,11 @@ See \\[compile].
;;;***
-;;;### (autoloads (re-builder regexp-builder) "re-builder" "emacs-lisp/re-builder.el"
-;;;;;; (17107 37381))
+;;;### (autoloads (re-builder) "re-builder" "emacs-lisp/re-builder.el"
+;;;;;; (17178 22144))
;;; Generated autoloads from emacs-lisp/re-builder.el
-(autoload (quote regexp-builder) "re-builder" "\
-Alias for `re-builder': Construct a regexp interactively.
-
-\(fn)" t nil)
+(defalias (quote regexp-builder) (quote re-builder))
(autoload (quote re-builder) "re-builder" "\
Construct a regexp interactively.
@@ -20351,7 +20700,7 @@ Construct a regexp interactively.
;;;***
-;;;### (autoloads (recentf-mode) "recentf" "recentf.el" (17107 37383))
+;;;### (autoloads (recentf-mode) "recentf" "recentf.el" (17178 22153))
;;; Generated autoloads from recentf.el
(defvar recentf-mode nil "\
@@ -20379,8 +20728,8 @@ that were operated on recently.
;;;### (autoloads (clear-rectangle string-insert-rectangle string-rectangle
;;;;;; delete-whitespace-rectangle open-rectangle insert-rectangle
;;;;;; yank-rectangle kill-rectangle extract-rectangle delete-extract-rectangle
-;;;;;; delete-rectangle move-to-column-force) "rect" "rect.el" (17107
-;;;;;; 37380))
+;;;;;; delete-rectangle move-to-column-force) "rect" "rect.el" (17178
+;;;;;; 22153))
;;; Generated autoloads from rect.el
(autoload (quote move-to-column-force) "rect" "\
@@ -20502,8 +20851,8 @@ rectangle which were empty.
;;;***
-;;;### (autoloads (refill-mode) "refill" "textmodes/refill.el" (17107
-;;;;;; 37381))
+;;;### (autoloads (refill-mode) "refill" "textmodes/refill.el" (17178
+;;;;;; 22154))
;;; Generated autoloads from textmodes/refill.el
(autoload (quote refill-mode) "refill" "\
@@ -20519,7 +20868,7 @@ refilling if they would cause auto-filling.
;;;***
;;;### (autoloads (reftex-reset-scanning-information reftex-mode
-;;;;;; turn-on-reftex) "reftex" "textmodes/reftex.el" (17107 37381))
+;;;;;; turn-on-reftex) "reftex" "textmodes/reftex.el" (17178 22154))
;;; Generated autoloads from textmodes/reftex.el
(autoload (quote turn-on-reftex) "reftex" "\
@@ -20569,7 +20918,7 @@ This enforces rescanning the buffer on next use.
;;;***
;;;### (autoloads (reftex-citation) "reftex-cite" "textmodes/reftex-cite.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22154))
;;; Generated autoloads from textmodes/reftex-cite.el
(autoload (quote reftex-citation) "reftex-cite" "\
@@ -20599,7 +20948,7 @@ While entering the regexp, completion on knows citation keys is possible.
;;;***
;;;### (autoloads (reftex-isearch-minor-mode) "reftex-global" "textmodes/reftex-global.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22154))
;;; Generated autoloads from textmodes/reftex-global.el
(autoload (quote reftex-isearch-minor-mode) "reftex-global" "\
@@ -20616,7 +20965,7 @@ With no argument, this command toggles
;;;***
;;;### (autoloads (reftex-index-phrases-mode) "reftex-index" "textmodes/reftex-index.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22154))
;;; Generated autoloads from textmodes/reftex-index.el
(autoload (quote reftex-index-phrases-mode) "reftex-index" "\
@@ -20649,7 +20998,7 @@ Here are all local bindings.
;;;***
;;;### (autoloads (reftex-all-document-files) "reftex-parse" "textmodes/reftex-parse.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22154))
;;; Generated autoloads from textmodes/reftex-parse.el
(autoload (quote reftex-all-document-files) "reftex-parse" "\
@@ -20662,7 +21011,7 @@ of master file.
;;;***
;;;### (autoloads (regexp-opt-depth regexp-opt) "regexp-opt" "emacs-lisp/regexp-opt.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22144))
;;; Generated autoloads from emacs-lisp/regexp-opt.el
(autoload (quote regexp-opt) "regexp-opt" "\
@@ -20689,7 +21038,7 @@ This means the number of non-shy regexp grouping constructs
;;;***
-;;;### (autoloads (repeat) "repeat" "repeat.el" (17107 37380))
+;;;### (autoloads (repeat) "repeat" "repeat.el" (17178 22153))
;;; Generated autoloads from repeat.el
(autoload (quote repeat) "repeat" "\
@@ -20707,7 +21056,7 @@ can be modified by the global variable `repeat-on-final-keystroke'.
;;;***
;;;### (autoloads (reporter-submit-bug-report) "reporter" "mail/reporter.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22150))
;;; Generated autoloads from mail/reporter.el
(autoload (quote reporter-submit-bug-report) "reporter" "\
@@ -20739,7 +21088,7 @@ mail-sending package is used for editing and sending the message.
;;;***
;;;### (autoloads (reposition-window) "reposition" "reposition.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22153))
;;; Generated autoloads from reposition.el
(autoload (quote reposition-window) "reposition" "\
@@ -20766,8 +21115,8 @@ first comment line visible (if point is in a comment).
;;;***
-;;;### (autoloads (resume-suspend-hook) "resume" "resume.el" (17107
-;;;;;; 37382))
+;;;### (autoloads (resume-suspend-hook) "resume" "resume.el" (17178
+;;;;;; 22153))
;;; Generated autoloads from resume.el
(autoload (quote resume-suspend-hook) "resume" "\
@@ -20778,7 +21127,7 @@ Clear out the file used for transmitting args when Emacs resumes.
;;;***
;;;### (autoloads (global-reveal-mode reveal-mode) "reveal" "reveal.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22153))
;;; Generated autoloads from reveal.el
(autoload (quote reveal-mode) "reveal" "\
@@ -20815,7 +21164,7 @@ With zero or negative ARG turn mode off.
;;;### (autoloads (file-name-shadow-mode file-name-shadow-tty-properties
;;;;;; file-name-shadow-properties) "rfn-eshadow" "rfn-eshadow.el"
-;;;;;; (17107 37382))
+;;;;;; (17178 22153))
;;; Generated autoloads from rfn-eshadow.el
(defvar file-name-shadow-properties (quote (face file-name-shadow field shadow)) "\
@@ -20860,7 +21209,7 @@ Returns non-nil if the new state is enabled.
;;;***
;;;### (autoloads (make-ring ring-p) "ring" "emacs-lisp/ring.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22144))
;;; Generated autoloads from emacs-lisp/ring.el
(autoload (quote ring-p) "ring" "\
@@ -20875,7 +21224,7 @@ Make a ring that can contain SIZE elements.
;;;***
-;;;### (autoloads (rlogin) "rlogin" "net/rlogin.el" (17107 37379))
+;;;### (autoloads (rlogin) "rlogin" "net/rlogin.el" (17178 22151))
;;; Generated autoloads from net/rlogin.el
(add-hook 'same-window-regexps "^\\*rlogin-.*\\*\\(\\|<[0-9]+>\\)")
@@ -20920,14 +21269,14 @@ variable.
;;;***
-;;;### (autoloads (rmail-restore-desktop-buffer rmail-set-remote-password
-;;;;;; rmail-input rmail-mode rmail rmail-enable-mime rmail-show-message-hook
-;;;;;; rmail-confirm-expunge rmail-secondary-file-regexp rmail-secondary-file-directory
+;;;### (autoloads (rmail-set-remote-password rmail-input rmail-mode
+;;;;;; rmail rmail-enable-mime rmail-show-message-hook rmail-confirm-expunge
+;;;;;; rmail-secondary-file-regexp rmail-secondary-file-directory
;;;;;; rmail-mail-new-frame rmail-primary-inbox-list rmail-delete-after-output
;;;;;; rmail-highlight-face rmail-highlighted-headers rmail-retry-ignored-headers
;;;;;; rmail-displayed-headers rmail-ignored-headers rmail-dont-reply-to-names
-;;;;;; rmail-movemail-variant-p) "rmail" "mail/rmail.el" (17107
-;;;;;; 37379))
+;;;;;; rmail-movemail-variant-p) "rmail" "mail/rmail.el" (17178
+;;;;;; 22151))
;;; Generated autoloads from mail/rmail.el
(autoload (quote rmail-movemail-variant-p) "rmail" "\
@@ -20950,8 +21299,9 @@ variable `rmail-dont-reply-to-names', for when the user does not set
value is the user's email address and name.)
It is useful to set this variable in the site customization file.")
-(defvar rmail-ignored-headers (concat "^via:\\|^mail-from:\\|^origin:\\|^references:\\|^sender:" "\\|^status:\\|^received:\\|^x400-originator:\\|^x400-recipients:" "\\|^x400-received:\\|^x400-mts-identifier:\\|^x400-content-type:" "\\|^\\(resent-\\|\\)message-id:\\|^summary-line:\\|^resent-date:" "\\|^nntp-posting-host:\\|^path:\\|^x-char.*:\\|^x-face:\\|^face:" "\\|^x-mailer:\\|^delivered-to:\\|^lines:\\|^mime-version:" "\\|^content-transfer-encoding:\\|^x-coding-system:" "\\|^return-path:\\|^errors-to:\\|^return-receipt-to:" "\\|^x-sign:\\|^x-beenthere:\\|^x-mailman-version:\\|^x-mailman-copy:" "\\|^precedence:\\|^list-help:\\|^list-post:\\|^list-subscribe:" "\\|^list-id:\\|^list-unsubscribe:\\|^list-archive:" "\\|^content-type:\\|^content-length:" "\\|^x-attribution:\\|^x-disclaimer:\\|^x-trace:" "\\|^x-complaints-to:\\|^nntp-posting-date:\\|^user-agent" "\\|^importance:\\|^envelope-to:\\|^delivery-date" "\\|^x.*-priority:\\|^x-mimeole:\\|^x-archive:" "\\|^resent-face:\\|^resent-x.*:\\|^resent-organization\\|^resent-openpgp" "\\|^openpgp:\\|^x-request-pgp:\\|^x-original.*:" "\\|^x-virus-scanned:\\|^x-spam-[^s].*:") "\
+(defvar rmail-ignored-headers (concat "^via:\\|^mail-from:\\|^origin:\\|^references:\\|^sender:" "\\|^status:\\|^received:\\|^x400-originator:\\|^x400-recipients:" "\\|^x400-received:\\|^x400-mts-identifier:\\|^x400-content-type:" "\\|^\\(resent-\\|\\)message-id:\\|^summary-line:\\|^resent-date:" "\\|^nntp-posting-host:\\|^path:\\|^x-char.*:\\|^x-face:\\|^face:" "\\|^x-mailer:\\|^delivered-to:\\|^lines:" "\\|^content-transfer-encoding:\\|^x-coding-system:" "\\|^return-path:\\|^errors-to:\\|^return-receipt-to:" "\\|^precedence:\\|^list-help:\\|^list-post:\\|^list-subscribe:" "\\|^list-id:\\|^list-unsubscribe:\\|^list-archive:" "\\|^content-length:\\|^nntp-posting-date:\\|^user-agent" "\\|^importance:\\|^envelope-to:\\|^delivery-date\\|^openpgp:" "\\|^mbox-line:\\|^cancel-lock:" "\\|^resent-face:\\|^resent-x.*:\\|^resent-organization:\\|^resent-openpgp:" "\\|^x-.*:") "\
*Regexp to match header fields that Rmail should normally hide.
+\(See also `rmail-nonignored-headers', which overrides this regexp.)
This variable is used for reformatting the message header,
which normally happens once for each message,
when you view the message for the first time in Rmail.
@@ -21124,7 +21474,8 @@ Rmail Mode is used by \\<rmail-mode-map>\\[rmail] for editing Rmail files.
All normal editing commands are turned off.
Instead, these commands are available:
-\\[rmail-beginning-of-message] Move point to front of this message (same as \\[beginning-of-buffer]).
+\\[rmail-beginning-of-message] Move point to front of this message.
+\\[rmail-end-of-message] Move point to bottom of this message.
\\[scroll-up] Scroll to next screen of this message.
\\[scroll-down] Scroll to previous screen of this message.
\\[rmail-next-undeleted-message] Move to Next non-deleted message.
@@ -21180,15 +21531,10 @@ Set PASSWORD to be used for retrieving mail from a POP or IMAP server.
\(fn PASSWORD)" t nil)
-(autoload (quote rmail-restore-desktop-buffer) "rmail" "\
-Restore an rmail buffer specified in a desktop file.
-
-\(fn DESKTOP-BUFFER-FILE-NAME DESKTOP-BUFFER-NAME DESKTOP-BUFFER-MISC)" nil nil)
-
;;;***
;;;### (autoloads (rmail-edit-current-message) "rmailedit" "mail/rmailedit.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22151))
;;; Generated autoloads from mail/rmailedit.el
(autoload (quote rmail-edit-current-message) "rmailedit" "\
@@ -21200,7 +21546,7 @@ Edit the contents of this message.
;;;### (autoloads (rmail-next-labeled-message rmail-previous-labeled-message
;;;;;; rmail-read-label rmail-kill-label rmail-add-label) "rmailkwd"
-;;;;;; "mail/rmailkwd.el" (17107 37380))
+;;;;;; "mail/rmailkwd.el" (17178 22151))
;;; Generated autoloads from mail/rmailkwd.el
(autoload (quote rmail-add-label) "rmailkwd" "\
@@ -21239,7 +21585,7 @@ With prefix argument N moves forward N messages with these labels.
;;;***
;;;### (autoloads (set-rmail-inbox-list) "rmailmsc" "mail/rmailmsc.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22151))
;;; Generated autoloads from mail/rmailmsc.el
(autoload (quote set-rmail-inbox-list) "rmailmsc" "\
@@ -21253,7 +21599,7 @@ If FILE-NAME is empty, remove any existing inbox list.
;;;### (autoloads (rmail-output-body-to-file rmail-output rmail-fields-not-to-output
;;;;;; rmail-output-to-rmail-file rmail-output-file-alist) "rmailout"
-;;;;;; "mail/rmailout.el" (17107 37379))
+;;;;;; "mail/rmailout.el" (17178 22151))
;;; Generated autoloads from mail/rmailout.el
(defvar rmail-output-file-alist nil "\
@@ -21320,8 +21666,8 @@ FILE-NAME defaults, interactively, from the Subject field of the message.
;;;### (autoloads (rmail-sort-by-labels rmail-sort-by-lines rmail-sort-by-correspondent
;;;;;; rmail-sort-by-recipient rmail-sort-by-author rmail-sort-by-subject
-;;;;;; rmail-sort-by-date) "rmailsort" "mail/rmailsort.el" (17107
-;;;;;; 37380))
+;;;;;; rmail-sort-by-date) "rmailsort" "mail/rmailsort.el" (17178
+;;;;;; 22151))
;;; Generated autoloads from mail/rmailsort.el
(autoload (quote rmail-sort-by-date) "rmailsort" "\
@@ -21373,7 +21719,7 @@ KEYWORDS is a comma-separated list of labels.
;;;;;; rmail-summary-by-senders rmail-summary-by-topic rmail-summary-by-regexp
;;;;;; rmail-summary-by-recipients rmail-summary-by-labels rmail-summary
;;;;;; rmail-summary-line-count-flag rmail-summary-scroll-between-messages)
-;;;;;; "rmailsum" "mail/rmailsum.el" (17107 37379))
+;;;;;; "rmailsum" "mail/rmailsum.el" (17178 22151))
;;; Generated autoloads from mail/rmailsum.el
(defvar rmail-summary-scroll-between-messages t "\
@@ -21455,7 +21801,7 @@ Setting this variable has an effect only before reading a mail.")
;;;***
;;;### (autoloads (news-post-news) "rnewspost" "obsolete/rnewspost.el"
-;;;;;; (17107 37382))
+;;;;;; (17178 22152))
;;; Generated autoloads from obsolete/rnewspost.el
(autoload (quote news-post-news) "rnewspost" "\
@@ -21468,7 +21814,7 @@ If NOQUERY is non-nil, we do not query before doing the work.
;;;***
;;;### (autoloads (toggle-rot13-mode rot13-other-window rot13-region
-;;;;;; rot13-string rot13) "rot13" "rot13.el" (17107 37380))
+;;;;;; rot13-string rot13) "rot13" "rot13.el" (17178 22153))
;;; Generated autoloads from rot13.el
(autoload (quote rot13) "rot13" "\
@@ -21509,7 +21855,7 @@ Toggle the use of rot 13 encoding for the current window.
;;;;;; resize-minibuffer-frame-max-height resize-minibuffer-frame
;;;;;; resize-minibuffer-window-exactly resize-minibuffer-window-max-height
;;;;;; resize-minibuffer-mode) "rsz-mini" "obsolete/rsz-mini.el"
-;;;;;; (17107 37382))
+;;;;;; (17178 22152))
;;; Generated autoloads from obsolete/rsz-mini.el
(defvar resize-minibuffer-mode nil "\
@@ -21549,8 +21895,8 @@ This function is obsolete.
;;;***
-;;;### (autoloads (ruler-mode) "ruler-mode" "ruler-mode.el" (17107
-;;;;;; 37380))
+;;;### (autoloads (ruler-mode) "ruler-mode" "ruler-mode.el" (17178
+;;;;;; 22153))
;;; Generated autoloads from ruler-mode.el
(autoload (quote ruler-mode) "ruler-mode" "\
@@ -21560,8 +21906,8 @@ Display a ruler in the header line if ARG > 0.
;;;***
-;;;### (autoloads (rx rx-to-string) "rx" "emacs-lisp/rx.el" (17107
-;;;;;; 37381))
+;;;### (autoloads (rx rx-to-string) "rx" "emacs-lisp/rx.el" (17178
+;;;;;; 22144))
;;; Generated autoloads from emacs-lisp/rx.el
(autoload (quote rx-to-string) "rx" "\
@@ -21869,7 +22215,7 @@ enclosed in `(and ...)'.
;;;***
;;;### (autoloads (dsssl-mode scheme-mode) "scheme" "progmodes/scheme.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22153))
;;; Generated autoloads from progmodes/scheme.el
(autoload (quote scheme-mode) "scheme" "\
@@ -21911,7 +22257,7 @@ that variable's value is a string.
;;;***
;;;### (autoloads (gnus-score-mode) "score-mode" "gnus/score-mode.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22146))
;;; Generated autoloads from gnus/score-mode.el
(autoload (quote gnus-score-mode) "score-mode" "\
@@ -21924,8 +22270,8 @@ This mode is an extended emacs-lisp mode.
;;;***
-;;;### (autoloads (scribe-mode) "scribe" "obsolete/scribe.el" (17107
-;;;;;; 37382))
+;;;### (autoloads (scribe-mode) "scribe" "obsolete/scribe.el" (17178
+;;;;;; 22152))
;;; Generated autoloads from obsolete/scribe.el
(autoload (quote scribe-mode) "scribe" "\
@@ -21950,7 +22296,7 @@ Interesting variables:
;;;***
;;;### (autoloads (scroll-all-mode) "scroll-all" "scroll-all.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22153))
;;; Generated autoloads from scroll-all.el
(defvar scroll-all-mode nil "\
@@ -21973,13 +22319,28 @@ apply to all visible windows in the same frame.
;;;***
+;;;### (autoloads (scroll-lock-mode) "scroll-lock" "scroll-lock.el"
+;;;;;; (17178 22134))
+;;; Generated autoloads from scroll-lock.el
+
+(autoload (quote scroll-lock-mode) "scroll-lock" "\
+Minor mode for pager-like scrolling.
+Keys which normally move point by line or paragraph will scroll
+the buffer by the respective amount of lines instead and point
+will be kept vertically fixed relative to window boundaries
+during scrolling.
+
+\(fn &optional ARG)" t nil)
+
+;;;***
+
;;;### (autoloads (mail-other-frame mail-other-window mail mail-mailing-lists
;;;;;; mail-mode mail-default-directory mail-signature mail-citation-hook
;;;;;; mail-personal-alias-file mail-alias-file mail-default-reply-to
;;;;;; mail-archive-file-name mail-header-separator send-mail-function
;;;;;; mail-yank-ignored-headers mail-interactive mail-self-blind
;;;;;; mail-specify-envelope-from mail-from-style) "sendmail" "mail/sendmail.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22151))
;;; Generated autoloads from mail/sendmail.el
(defvar mail-from-style (quote angles) "\
@@ -22210,7 +22571,7 @@ Like `mail' command, but display mail buffer in another frame.
;;;***
;;;### (autoloads (server-mode server-start server-getenv) "server"
-;;;;;; "server.el" (17107 37404))
+;;;;;; "server.el" (17178 22153))
;;; Generated autoloads from server.el
(autoload (quote server-getenv) "server" "\
@@ -22258,7 +22619,7 @@ Server mode runs a process that accepts commands from the
;;;***
-;;;### (autoloads (ses-mode) "ses" "ses.el" (17107 37381))
+;;;### (autoloads (ses-mode) "ses" "ses.el" (17178 22153))
;;; Generated autoloads from ses.el
(autoload (quote ses-mode) "ses" "\
@@ -22277,7 +22638,7 @@ These are active only in the minibuffer, when entering or editing a formula:
;;;***
;;;### (autoloads (html-mode sgml-mode) "sgml-mode" "textmodes/sgml-mode.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22154))
;;; Generated autoloads from textmodes/sgml-mode.el
(autoload (quote sgml-mode) "sgml-mode" "\
@@ -22345,7 +22706,7 @@ To work around that, do:
;;;***
;;;### (autoloads (sh-mode) "sh-script" "progmodes/sh-script.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22153))
;;; Generated autoloads from progmodes/sh-script.el
(autoload (quote sh-mode) "sh-script" "\
@@ -22408,7 +22769,7 @@ with your script for an edit-interpret-debug cycle.
;;;***
-;;;### (autoloads (sha1) "sha1" "gnus/sha1.el" (17107 37379))
+;;;### (autoloads (sha1) "sha1" "gnus/sha1.el" (17178 22146))
;;; Generated autoloads from gnus/sha1.el
(autoload (quote sha1) "sha1" "\
@@ -22423,7 +22784,7 @@ If BINARY is non-nil, return a string in binary form.
;;;***
;;;### (autoloads (list-load-path-shadows) "shadow" "emacs-lisp/shadow.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22144))
;;; Generated autoloads from emacs-lisp/shadow.el
(autoload (quote list-load-path-shadows) "shadow" "\
@@ -22470,8 +22831,8 @@ buffer called `*Shadows*'. Shadowings are located by calling the
;;;***
;;;### (autoloads (shadow-initialize shadow-define-regexp-group shadow-define-literal-group
-;;;;;; shadow-define-cluster) "shadowfile" "shadowfile.el" (17107
-;;;;;; 37380))
+;;;;;; shadow-define-cluster) "shadowfile" "shadowfile.el" (17178
+;;;;;; 22153))
;;; Generated autoloads from shadowfile.el
(autoload (quote shadow-define-cluster) "shadowfile" "\
@@ -22510,7 +22871,7 @@ Set up file shadowing.
;;;***
;;;### (autoloads (shell shell-dumb-shell-regexp) "shell" "shell.el"
-;;;;;; (17107 37383))
+;;;;;; (17178 22153))
;;; Generated autoloads from shell.el
(defvar shell-dumb-shell-regexp "cmd\\(proxy\\)?\\.exe" "\
@@ -22557,7 +22918,7 @@ Otherwise, one argument `-i' is passed to the shell.
;;;***
;;;### (autoloads (sieve-upload-and-bury sieve-upload sieve-manage)
-;;;;;; "sieve" "gnus/sieve.el" (17107 37379))
+;;;;;; "sieve" "gnus/sieve.el" (17178 22146))
;;; Generated autoloads from gnus/sieve.el
(autoload (quote sieve-manage) "sieve" "\
@@ -22578,7 +22939,7 @@ Not documented
;;;***
;;;### (autoloads (sieve-mode) "sieve-mode" "gnus/sieve-mode.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22146))
;;; Generated autoloads from gnus/sieve-mode.el
(autoload (quote sieve-mode) "sieve-mode" "\
@@ -22593,8 +22954,8 @@ Turning on Sieve mode runs `sieve-mode-hook'.
;;;***
-;;;### (autoloads (simula-mode) "simula" "progmodes/simula.el" (17107
-;;;;;; 37382))
+;;;### (autoloads (simula-mode) "simula" "progmodes/simula.el" (17178
+;;;;;; 22153))
;;; Generated autoloads from progmodes/simula.el
(autoload (quote simula-mode) "simula" "\
@@ -22643,7 +23004,7 @@ with no arguments, if that value is non-nil.
;;;***
;;;### (autoloads (skeleton-pair-insert-maybe skeleton-insert skeleton-proxy-new
-;;;;;; define-skeleton) "skeleton" "skeleton.el" (17107 37380))
+;;;;;; define-skeleton) "skeleton" "skeleton.el" (17178 22153))
;;; Generated autoloads from skeleton.el
(defvar skeleton-filter (quote identity) "\
@@ -22664,7 +23025,7 @@ on `skeleton-autowrap'. An ARG of M-0 will prevent this just for once.
This command can also be an abbrev expansion (3rd and 4th columns in
\\[edit-abbrevs] buffer: \"\" command-name).
-Optional first argument STR may also be a string which will be the value
+Optional second argument STR may also be a string which will be the value
of `str' whereas the skeleton's interactor is then ignored.
\(fn SKELETON &optional STR ARG)" nil nil)
@@ -22753,7 +23114,7 @@ symmetrical ones, and the same character twice for the others.
;;;***
;;;### (autoloads (smerge-mode smerge-ediff) "smerge-mode" "smerge-mode.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22153))
;;; Generated autoloads from smerge-mode.el
(autoload (quote smerge-ediff) "smerge-mode" "\
@@ -22772,7 +23133,7 @@ Minor mode to simplify editing output from the diff3 program.
;;;***
;;;### (autoloads (smiley-buffer smiley-region) "smiley" "gnus/smiley.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22146))
;;; Generated autoloads from gnus/smiley.el
(autoload (quote smiley-region) "smiley" "\
@@ -22790,7 +23151,7 @@ interactively. If there's no argument, do it at the current buffer
;;;***
;;;### (autoloads (smtpmail-send-queued-mail smtpmail-send-it) "smtpmail"
-;;;;;; "mail/smtpmail.el" (17107 37380))
+;;;;;; "mail/smtpmail.el" (17178 22151))
;;; Generated autoloads from mail/smtpmail.el
(autoload (quote smtpmail-send-it) "smtpmail" "\
@@ -22805,7 +23166,7 @@ Send mail that was queued as a result of setting `smtpmail-queue-mail'.
;;;***
-;;;### (autoloads (snake) "snake" "play/snake.el" (17107 37380))
+;;;### (autoloads (snake) "snake" "play/snake.el" (17178 22152))
;;; Generated autoloads from play/snake.el
(autoload (quote snake) "snake" "\
@@ -22829,7 +23190,7 @@ Snake mode keybindings:
;;;***
;;;### (autoloads (snmpv2-mode snmp-mode) "snmp-mode" "net/snmp-mode.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22151))
;;; Generated autoloads from net/snmp-mode.el
(autoload (quote snmp-mode) "snmp-mode" "\
@@ -22860,7 +23221,7 @@ then `snmpv2-mode-hook'.
;;;### (autoloads (solar-equinoxes-solstices sunrise-sunset calendar-location-name
;;;;;; calendar-longitude calendar-latitude calendar-time-display-form)
-;;;;;; "solar" "calendar/solar.el" (17107 37380))
+;;;;;; "solar" "calendar/solar.el" (17178 22143))
;;; Generated autoloads from calendar/solar.el
(defvar calendar-time-display-form (quote (12-hours ":" minutes am-pm (if time-zone " (") time-zone (if time-zone ")"))) "\
@@ -22931,8 +23292,8 @@ Requires floating point.
;;;***
-;;;### (autoloads (solitaire) "solitaire" "play/solitaire.el" (17107
-;;;;;; 37380))
+;;;### (autoloads (solitaire) "solitaire" "play/solitaire.el" (17178
+;;;;;; 22152))
;;; Generated autoloads from play/solitaire.el
(autoload (quote solitaire) "solitaire" "\
@@ -23009,7 +23370,7 @@ Pick your favourite shortcuts:
;;;### (autoloads (reverse-region sort-columns sort-regexp-fields
;;;;;; sort-fields sort-numeric-fields sort-pages sort-paragraphs
-;;;;;; sort-lines sort-subr) "sort" "sort.el" (17107 37380))
+;;;;;; sort-lines sort-subr) "sort" "sort.el" (17178 22153))
;;; Generated autoloads from sort.el
(autoload (quote sort-subr) "sort" "\
@@ -23151,8 +23512,8 @@ From a program takes two point or marker arguments, BEG and END.
;;;***
-;;;### (autoloads (spam-initialize) "spam" "gnus/spam.el" (17107
-;;;;;; 37379))
+;;;### (autoloads (spam-initialize) "spam" "gnus/spam.el" (17178
+;;;;;; 22146))
;;; Generated autoloads from gnus/spam.el
(autoload (quote spam-initialize) "spam" "\
@@ -23164,7 +23525,7 @@ Install the spam.el hooks and do other initialization
;;;### (autoloads (spam-report-deagentize spam-report-agentize spam-report-url-to-file
;;;;;; spam-report-url-ping-mm-url spam-report-process-queue) "spam-report"
-;;;;;; "gnus/spam-report.el" (17107 37379))
+;;;;;; "gnus/spam-report.el" (17178 22146))
;;; Generated autoloads from gnus/spam-report.el
(autoload (quote spam-report-process-queue) "spam-report" "\
@@ -23207,7 +23568,7 @@ Spam reports will be queued with the method used when
;;;***
;;;### (autoloads (speedbar-get-focus speedbar-frame-mode) "speedbar"
-;;;;;; "speedbar.el" (17107 37380))
+;;;;;; "speedbar.el" (17178 22153))
;;; Generated autoloads from speedbar.el
(defalias (quote speedbar) (quote speedbar-frame-mode))
@@ -23232,7 +23593,7 @@ selected. If the speedbar frame is active, then select the attached frame.
;;;***
;;;### (autoloads (spell-string spell-region spell-word spell-buffer)
-;;;;;; "spell" "textmodes/spell.el" (17107 37381))
+;;;;;; "spell" "textmodes/spell.el" (17178 22154))
;;; Generated autoloads from textmodes/spell.el
(put (quote spell-filter) (quote risky-local-variable) t)
@@ -23268,8 +23629,8 @@ Check spelling of string supplied as argument.
;;;***
-;;;### (autoloads (snarf-spooks spook) "spook" "play/spook.el" (17107
-;;;;;; 37380))
+;;;### (autoloads (snarf-spooks spook) "spook" "play/spook.el" (17178
+;;;;;; 22152))
;;; Generated autoloads from play/spook.el
(autoload (quote spook) "spook" "\
@@ -23287,8 +23648,8 @@ Return a vector containing the lines from `spook-phrases-file'.
;;;### (autoloads (sql-linter sql-db2 sql-interbase sql-postgres
;;;;;; sql-ms sql-ingres sql-solid sql-mysql sql-sqlite sql-informix
;;;;;; sql-sybase sql-oracle sql-product-interactive sql-mode sql-help
-;;;;;; sql-add-product-keywords) "sql" "progmodes/sql.el" (17107
-;;;;;; 37381))
+;;;;;; sql-add-product-keywords) "sql" "progmodes/sql.el" (17178
+;;;;;; 22153))
;;; Generated autoloads from progmodes/sql.el
(autoload (quote sql-add-product-keywords) "sql" "\
@@ -23719,8 +24080,8 @@ input. See `sql-interactive-mode'.
;;;;;; strokes-mode strokes-list-strokes strokes-load-user-strokes
;;;;;; strokes-help strokes-describe-stroke strokes-do-complex-stroke
;;;;;; strokes-do-stroke strokes-read-complex-stroke strokes-read-stroke
-;;;;;; strokes-global-set-stroke) "strokes" "strokes.el" (17107
-;;;;;; 37380))
+;;;;;; strokes-global-set-stroke) "strokes" "strokes.el" (17178
+;;;;;; 22153))
;;; Generated autoloads from strokes.el
(autoload (quote strokes-global-set-stroke) "strokes" "\
@@ -23740,7 +24101,7 @@ Optional PROMPT in minibuffer displays before and during stroke reading.
This function will display the stroke interactively as it is being
entered in the strokes buffer if the variable
`strokes-use-strokes-buffer' is non-nil.
-Optional EVENT is acceptable as the starting event of the stroke
+Optional EVENT is acceptable as the starting event of the stroke.
\(fn &optional PROMPT EVENT)" nil nil)
@@ -23750,7 +24111,7 @@ Optional PROMPT in minibuffer displays before and during stroke reading.
Note that a complex stroke allows the user to pen-up and pen-down. This
is implemented by allowing the user to paint with button 1 or button 2 and
then complete the stroke with button 3.
-Optional EVENT is acceptable as the starting event of the stroke
+Optional EVENT is acceptable as the starting event of the stroke.
\(fn &optional PROMPT EVENT)" nil nil)
@@ -23772,7 +24133,7 @@ Displays the command which STROKE maps to, reading STROKE interactively.
\(fn STROKE)" t nil)
(autoload (quote strokes-help) "strokes" "\
-Get instruction on using the `strokes' package.
+Get instruction on using the Strokes package.
\(fn)" t nil)
@@ -23831,7 +24192,7 @@ Read a complex stroke and insert its glyph into the current buffer.
;;;***
;;;### (autoloads (studlify-buffer studlify-word studlify-region)
-;;;;;; "studly" "play/studly.el" (17107 37380))
+;;;;;; "studly" "play/studly.el" (17178 20480))
;;; Generated autoloads from play/studly.el
(autoload (quote studlify-region) "studly" "\
@@ -23852,7 +24213,7 @@ Studlify-case the current buffer.
;;;***
;;;### (autoloads (sc-cite-original) "supercite" "mail/supercite.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22151))
;;; Generated autoloads from mail/supercite.el
(autoload (quote sc-cite-original) "supercite" "\
@@ -23884,8 +24245,8 @@ before, and `sc-post-hook' is run after the guts of this function.
;;;***
-;;;### (autoloads (syntax-ppss) "syntax" "emacs-lisp/syntax.el" (17107
-;;;;;; 37381))
+;;;### (autoloads (syntax-ppss) "syntax" "emacs-lisp/syntax.el" (17178
+;;;;;; 22144))
;;; Generated autoloads from emacs-lisp/syntax.el
(autoload (quote syntax-ppss) "syntax" "\
@@ -23898,7 +24259,7 @@ Point is at POS when this function returns.
;;;***
-;;;### (autoloads (tabify untabify) "tabify" "tabify.el" (17107 37383))
+;;;### (autoloads (tabify untabify) "tabify" "tabify.el" (17178 22153))
;;; Generated autoloads from tabify.el
(autoload (quote untabify) "tabify" "\
@@ -23933,7 +24294,7 @@ The variable `tab-width' controls the spacing of tab stops.
;;;;;; table-recognize table-insert-row-column table-insert-column
;;;;;; table-insert-row table-insert table-point-left-cell-hook
;;;;;; table-point-entered-cell-hook table-load-hook table-cell-map-hook)
-;;;;;; "table" "textmodes/table.el" (17107 37381))
+;;;;;; "table" "textmodes/table.el" (17178 22154))
;;; Generated autoloads from textmodes/table.el
(defvar table-cell-map-hook nil "\
@@ -24521,7 +24882,7 @@ converts a table into plain text without frames. It is a companion to
;;;***
-;;;### (autoloads (talk talk-connect) "talk" "talk.el" (17107 37380))
+;;;### (autoloads (talk talk-connect) "talk" "talk.el" (17178 22153))
;;; Generated autoloads from talk.el
(autoload (quote talk-connect) "talk" "\
@@ -24536,7 +24897,7 @@ Connect to the Emacs talk group from the current X display or tty frame.
;;;***
-;;;### (autoloads (tar-mode) "tar-mode" "tar-mode.el" (17107 37380))
+;;;### (autoloads (tar-mode) "tar-mode" "tar-mode.el" (17178 22153))
;;; Generated autoloads from tar-mode.el
(autoload (quote tar-mode) "tar-mode" "\
@@ -24560,7 +24921,7 @@ See also: variables `tar-update-datestamp' and `tar-anal-blocksize'.
;;;***
;;;### (autoloads (tcl-help-on-word inferior-tcl tcl-mode) "tcl"
-;;;;;; "progmodes/tcl.el" (17107 37381))
+;;;;;; "progmodes/tcl.el" (17178 20481))
;;; Generated autoloads from progmodes/tcl.el
(autoload (quote tcl-mode) "tcl" "\
@@ -24611,7 +24972,7 @@ Prefix argument means invert sense of `tcl-use-smart-word-finder'.
;;;***
-;;;### (autoloads (rsh telnet) "telnet" "net/telnet.el" (17107 37379))
+;;;### (autoloads (rsh telnet) "telnet" "net/telnet.el" (17178 22151))
;;; Generated autoloads from net/telnet.el
(add-hook 'same-window-regexps "\\*telnet-.*\\*\\(\\|<[0-9]+>\\)")
@@ -24638,8 +24999,8 @@ Normally input is edited in Emacs and sent a line at a time.
;;;***
-;;;### (autoloads (ansi-term term make-term) "term" "term.el" (17107
-;;;;;; 37380))
+;;;### (autoloads (ansi-term term make-term) "term" "term.el" (17178
+;;;;;; 22153))
;;; Generated autoloads from term.el
(autoload (quote make-term) "term" "\
@@ -24667,8 +25028,8 @@ Start a terminal-emulator in a new buffer.
;;;***
-;;;### (autoloads (terminal-emulator) "terminal" "terminal.el" (17107
-;;;;;; 37380))
+;;;### (autoloads (terminal-emulator) "terminal" "terminal.el" (17178
+;;;;;; 22154))
;;; Generated autoloads from terminal.el
(autoload (quote terminal-emulator) "terminal" "\
@@ -24705,7 +25066,7 @@ subprocess started.
;;;***
;;;### (autoloads (testcover-this-defun) "testcover" "emacs-lisp/testcover.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22144))
;;; Generated autoloads from emacs-lisp/testcover.el
(autoload (quote testcover-this-defun) "testcover" "\
@@ -24715,7 +25076,7 @@ Start coverage on function under point.
;;;***
-;;;### (autoloads (tetris) "tetris" "play/tetris.el" (17107 37380))
+;;;### (autoloads (tetris) "tetris" "play/tetris.el" (17178 22152))
;;; Generated autoloads from play/tetris.el
(autoload (quote tetris) "tetris" "\
@@ -24746,7 +25107,7 @@ tetris-mode keybindings:
;;;;;; tex-start-commands tex-start-options slitex-run-command latex-run-command
;;;;;; tex-run-command tex-offer-save tex-main-file tex-first-line-header-regexp
;;;;;; tex-directory tex-shell-file-name) "tex-mode" "textmodes/tex-mode.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22154))
;;; Generated autoloads from textmodes/tex-mode.el
(defvar tex-shell-file-name nil "\
@@ -25048,7 +25409,7 @@ Major mode to edit DocTeX files.
;;;***
;;;### (autoloads (texi2info texinfo-format-region texinfo-format-buffer)
-;;;;;; "texinfmt" "textmodes/texinfmt.el" (17107 37381))
+;;;;;; "texinfmt" "textmodes/texinfmt.el" (17178 22154))
;;; Generated autoloads from textmodes/texinfmt.el
(autoload (quote texinfo-format-buffer) "texinfmt" "\
@@ -25088,7 +25449,7 @@ if large. You can use Info-split to do this manually.
;;;***
;;;### (autoloads (texinfo-mode texinfo-close-quote texinfo-open-quote)
-;;;;;; "texinfo" "textmodes/texinfo.el" (17107 37381))
+;;;;;; "texinfo" "textmodes/texinfo.el" (17178 22154))
;;; Generated autoloads from textmodes/texinfo.el
(defvar texinfo-open-quote "``" "\
@@ -25175,7 +25536,7 @@ value of `texinfo-mode-hook'.
;;;### (autoloads (thai-auto-composition-mode thai-composition-function
;;;;;; thai-post-read-conversion thai-compose-buffer thai-compose-string
;;;;;; thai-compose-region) "thai-util" "language/thai-util.el"
-;;;;;; (17107 37382))
+;;;;;; (17178 22147))
;;; Generated autoloads from language/thai-util.el
(autoload (quote thai-compose-region) "thai-util" "\
@@ -25219,7 +25580,7 @@ Minor mode for automatically correct Thai character composition.
;;;### (autoloads (list-at-point number-at-point symbol-at-point
;;;;;; sexp-at-point thing-at-point bounds-of-thing-at-point forward-thing)
-;;;;;; "thingatpt" "thingatpt.el" (17107 37381))
+;;;;;; "thingatpt" "thingatpt.el" (17178 22154))
;;; Generated autoloads from thingatpt.el
(autoload (quote forward-thing) "thingatpt" "\
@@ -25276,7 +25637,7 @@ Not documented
;;;### (autoloads (thumbs-dired-setroot thumbs-dired-show-all thumbs-dired-show-marked
;;;;;; thumbs-show-all-from-dir thumbs-find-thumb) "thumbs" "thumbs.el"
-;;;;;; (17107 37383))
+;;;;;; (17178 22154))
;;; Generated autoloads from thumbs.el
(autoload (quote thumbs-find-thumb) "thumbs" "\
@@ -25315,7 +25676,7 @@ In dired, call the setroot program on the image at point.
;;;;;; tibetan-composition-function tibetan-decompose-string tibetan-decompose-region
;;;;;; tibetan-compose-region tibetan-compose-string tibetan-transcription-to-tibetan
;;;;;; tibetan-tibetan-to-transcription tibetan-char-p) "tibet-util"
-;;;;;; "language/tibet-util.el" (17107 37382))
+;;;;;; "language/tibet-util.el" (17178 20481))
;;; Generated autoloads from language/tibet-util.el
(autoload (quote tibetan-char-p) "tibet-util" "\
@@ -25394,7 +25755,7 @@ Not documented
;;;***
;;;### (autoloads (tildify-buffer tildify-region) "tildify" "textmodes/tildify.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22154))
;;; Generated autoloads from textmodes/tildify.el
(autoload (quote tildify-region) "tildify" "\
@@ -25418,7 +25779,7 @@ This function performs no refilling of the changed text.
;;;***
;;;### (autoloads (display-time-mode display-time display-time-day-and-date)
-;;;;;; "time" "time.el" (17107 37380))
+;;;;;; "time" "time.el" (17178 22154))
;;; Generated autoloads from time.el
(defvar display-time-day-and-date nil "\
@@ -25461,8 +25822,8 @@ This runs the normal hook `display-time-hook' after each update.
;;;### (autoloads (safe-date-to-time time-to-days time-to-day-in-year
;;;;;; date-leap-year-p days-between date-to-day time-add time-subtract
;;;;;; time-since days-to-time time-less-p seconds-to-time time-to-seconds
-;;;;;; date-to-time) "time-date" "calendar/time-date.el" (17107
-;;;;;; 37380))
+;;;;;; date-to-time) "time-date" "calendar/time-date.el" (17178
+;;;;;; 20480))
;;; Generated autoloads from calendar/time-date.el
(autoload (quote date-to-time) "time-date" "\
@@ -25548,7 +25909,7 @@ If DATE is malformed, return a time value of zeros.
;;;***
;;;### (autoloads (time-stamp-toggle-active time-stamp) "time-stamp"
-;;;;;; "time-stamp.el" (17107 37380))
+;;;;;; "time-stamp.el" (17178 22154))
;;; Generated autoloads from time-stamp.el
(autoload (quote time-stamp) "time-stamp" "\
@@ -25583,7 +25944,7 @@ With ARG, turn time stamping on if and only if arg is positive.
;;;;;; timeclock-workday-remaining-string timeclock-reread-log timeclock-query-out
;;;;;; timeclock-change timeclock-status-string timeclock-out timeclock-in
;;;;;; timeclock-modeline-display) "timeclock" "calendar/timeclock.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 20480))
;;; Generated autoloads from calendar/timeclock.el
(autoload (quote timeclock-modeline-display) "timeclock" "\
@@ -25684,7 +26045,7 @@ relative only to the time worked today, and not to past time.
;;;### (autoloads (with-timeout run-with-idle-timer add-timeout run-with-timer
;;;;;; run-at-time cancel-function-timers cancel-timer) "timer"
-;;;;;; "emacs-lisp/timer.el" (17107 37381))
+;;;;;; "emacs-lisp/timer.el" (17178 22144))
;;; Generated autoloads from emacs-lisp/timer.el
(defalias (quote disable-timeout) (quote cancel-timer))
@@ -25755,7 +26116,7 @@ be detected.
;;;***
;;;### (autoloads (batch-titdic-convert titdic-convert) "titdic-cnv"
-;;;;;; "international/titdic-cnv.el" (17107 37380))
+;;;;;; "international/titdic-cnv.el" (17178 20480))
;;; Generated autoloads from international/titdic-cnv.el
(autoload (quote titdic-convert) "titdic-cnv" "\
@@ -25778,8 +26139,8 @@ To get complete usage, invoke \"emacs -batch -f batch-titdic-convert -h\".
;;;***
;;;### (autoloads (tamil-composition-function tamil-post-read-conversion
-;;;;;; tamil-compose-region) "tml-util" "language/tml-util.el" (17107
-;;;;;; 37382))
+;;;;;; tamil-compose-region) "tml-util" "language/tml-util.el" (17178
+;;;;;; 20481))
;;; Generated autoloads from language/tml-util.el
(autoload (quote tamil-compose-region) "tml-util" "\
@@ -25802,7 +26163,7 @@ PATTERN regexp.
;;;***
;;;### (autoloads (tmm-prompt tmm-menubar-mouse tmm-menubar) "tmm"
-;;;;;; "tmm.el" (17107 37381))
+;;;;;; "tmm.el" (17178 22155))
;;; Generated autoloads from tmm.el
(define-key global-map "\M-`" 'tmm-menubar)
(define-key global-map [f10] 'tmm-menubar)
@@ -25843,7 +26204,7 @@ Its value should be an event that has a binding in MENU.
;;;### (autoloads (todo-show todo-cp todo-mode todo-print todo-top-priorities
;;;;;; todo-insert-item todo-add-item-non-interactively todo-add-category)
-;;;;;; "todo-mode" "calendar/todo-mode.el" (17107 37380))
+;;;;;; "todo-mode" "calendar/todo-mode.el" (17178 20480))
;;; Generated autoloads from calendar/todo-mode.el
(autoload (quote todo-add-category) "todo-mode" "\
@@ -25904,7 +26265,7 @@ Show TODO list.
;;;### (autoloads (tool-bar-local-item-from-menu tool-bar-add-item-from-menu
;;;;;; tool-bar-local-item tool-bar-add-item tool-bar-mode) "tool-bar"
-;;;;;; "toolbar/tool-bar.el" (17107 37380))
+;;;;;; "toolbar/tool-bar.el" (17178 22155))
;;; Generated autoloads from toolbar/tool-bar.el
(defvar tool-bar-mode nil "\
@@ -25988,29 +26349,8 @@ MAP must contain appropriate binding for `[menu-bar]' which holds a keymap.
;;;***
-;;;### (autoloads (tooltip-mode) "tooltip" "tooltip.el" (17107 37380))
-;;; Generated autoloads from tooltip.el
-
-(defvar tooltip-mode (not (or noninteractive (and (boundp (quote emacs-quick-startup)) emacs-quick-startup) (not (and (fboundp (quote display-graphic-p)) (display-graphic-p))) (not (fboundp (quote x-show-tip))))) "\
-Non-nil if Tooltip mode is enabled.
-See the command `tooltip-mode' for a description of this minor-mode.
-Setting this variable directly does not take effect;
-use either \\[customize] or the function `tooltip-mode'.")
-
-(custom-autoload (quote tooltip-mode) "tooltip")
-
-(put (quote tooltip-mode) (quote custom-set) (quote custom-set-minor-mode))
-
-(autoload (quote tooltip-mode) "tooltip" "\
-Toggle Tooltip display.
-With ARG, turn tooltip mode on if and only if ARG is positive.
-
-\(fn &optional ARG)" t nil)
-
-;;;***
-
;;;### (autoloads (tpu-edt-on tpu-edt-mode) "tpu-edt" "emulation/tpu-edt.el"
-;;;;;; (17107 37398))
+;;;;;; (17178 22144))
;;; Generated autoloads from emulation/tpu-edt.el
(defvar tpu-edt-mode nil "\
@@ -26038,7 +26378,7 @@ Turn on TPU/edt emulation.
;;;***
;;;### (autoloads (tpu-set-cursor-bound tpu-set-cursor-free tpu-set-scroll-margins)
-;;;;;; "tpu-extras" "emulation/tpu-extras.el" (17107 37380))
+;;;;;; "tpu-extras" "emulation/tpu-extras.el" (17178 22144))
;;; Generated autoloads from emulation/tpu-extras.el
(autoload (quote tpu-set-scroll-margins) "tpu-extras" "\
@@ -26058,7 +26398,7 @@ Constrain the cursor to the flow of the text.
;;;***
-;;;### (autoloads (tq-create) "tq" "emacs-lisp/tq.el" (17107 37381))
+;;;### (autoloads (tq-create) "tq" "emacs-lisp/tq.el" (17178 22144))
;;; Generated autoloads from emacs-lisp/tq.el
(autoload (quote tq-create) "tq" "\
@@ -26072,7 +26412,7 @@ to a tcp server on another machine.
;;;***
;;;### (autoloads (trace-function-background trace-function trace-buffer)
-;;;;;; "trace" "emacs-lisp/trace.el" (17107 37381))
+;;;;;; "trace" "emacs-lisp/trace.el" (17178 22144))
;;; Generated autoloads from emacs-lisp/trace.el
(defvar trace-buffer "*trace-output*" "\
@@ -26105,7 +26445,7 @@ the window or buffer configuration at all.
;;;### (autoloads (tramp-completion-file-name-handler tramp-file-name-handler
;;;;;; tramp-completion-file-name-regexp tramp-file-name-regexp)
-;;;;;; "tramp" "net/tramp.el" (17107 37379))
+;;;;;; "tramp" "net/tramp.el" (17178 22151))
;;; Generated autoloads from net/tramp.el
(defvar tramp-unified-filenames (not (featurep (quote xemacs))) "\
@@ -26182,7 +26522,7 @@ Falls back to normal file name handler if no tramp file name handler exists.
;;;***
;;;### (autoloads (2C-split 2C-associate-buffer 2C-two-columns) "two-column"
-;;;;;; "textmodes/two-column.el" (17107 37381))
+;;;;;; "textmodes/two-column.el" (17178 22154))
;;; Generated autoloads from textmodes/two-column.el
(autoload '2C-command "two-column" () t 'keymap)
(global-set-key "\C-x6" '2C-command)
@@ -26233,7 +26573,7 @@ First column's text sSs Second column's text
;;;;;; type-break type-break-mode type-break-keystroke-threshold
;;;;;; type-break-good-break-interval type-break-good-rest-interval
;;;;;; type-break-interval type-break-mode) "type-break" "type-break.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22155))
;;; Generated autoloads from type-break.el
(defvar type-break-mode nil "\
@@ -26416,7 +26756,7 @@ FRAC should be the inverse of the fractional value; for example, a value of
;;;***
;;;### (autoloads (ununderline-region underline-region) "underline"
-;;;;;; "textmodes/underline.el" (17107 37381))
+;;;;;; "textmodes/underline.el" (17178 22154))
;;; Generated autoloads from textmodes/underline.el
(autoload (quote underline-region) "underline" "\
@@ -26437,7 +26777,7 @@ which specify the range to operate on.
;;;***
;;;### (autoloads (unforward-rmail-message undigestify-rmail-message)
-;;;;;; "undigest" "mail/undigest.el" (17107 37380))
+;;;;;; "undigest" "mail/undigest.el" (17178 22151))
;;; Generated autoloads from mail/undigest.el
(autoload (quote undigestify-rmail-message) "undigest" "\
@@ -26456,7 +26796,7 @@ following the containing message.
;;;***
;;;### (autoloads (unrmail batch-unrmail) "unrmail" "mail/unrmail.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22151))
;;; Generated autoloads from mail/unrmail.el
(autoload (quote batch-unrmail) "unrmail" "\
@@ -26475,8 +26815,8 @@ Convert Rmail file FILE to system inbox format file TO-FILE.
;;;***
-;;;### (autoloads (unsafep) "unsafep" "emacs-lisp/unsafep.el" (17107
-;;;;;; 37381))
+;;;### (autoloads (unsafep) "unsafep" "emacs-lisp/unsafep.el" (17178
+;;;;;; 22144))
;;; Generated autoloads from emacs-lisp/unsafep.el
(autoload (quote unsafep) "unsafep" "\
@@ -26488,7 +26828,7 @@ of symbols with local bindings.
;;;***
-;;;### (autoloads nil "url" "url/url.el" (17107 37379))
+;;;### (autoloads nil "url" "url/url.el" (17178 22157))
;;; Generated autoloads from url/url.el
(defvar url-configuration-directory "~/.url")
@@ -26496,7 +26836,7 @@ of symbols with local bindings.
;;;***
;;;### (autoloads (url-register-auth-scheme url-get-authentication)
-;;;;;; "url-auth" "url/url-auth.el" (17107 37379))
+;;;;;; "url-auth" "url/url-auth.el" (17178 22155))
;;; Generated autoloads from url/url-auth.el
(autoload (quote url-get-authentication) "url-auth" "\
@@ -26538,8 +26878,8 @@ RATING a rating between 1 and 10 of the strength of the authentication.
;;;***
;;;### (autoloads (url-cache-expired url-cache-extract url-is-cached
-;;;;;; url-store-in-cache) "url-cache" "url/url-cache.el" (17107
-;;;;;; 37379))
+;;;;;; url-store-in-cache) "url-cache" "url/url-cache.el" (17178
+;;;;;; 22156))
;;; Generated autoloads from url/url-cache.el
(autoload (quote url-store-in-cache) "url-cache" "\
@@ -26564,7 +26904,7 @@ Return t iff a cached file has expired.
;;;***
-;;;### (autoloads (url-cid) "url-cid" "url/url-cid.el" (17107 37379))
+;;;### (autoloads (url-cid) "url-cid" "url/url-cid.el" (17178 22156))
;;; Generated autoloads from url/url-cid.el
(autoload (quote url-cid) "url-cid" "\
@@ -26576,8 +26916,8 @@ Not documented
;;;### (autoloads (url-cookie-setup-save-timer url-cookie-handle-set-cookie
;;;;;; url-cookie-generate-header-lines url-cookie-retrieve url-cookie-write-file
-;;;;;; url-cookie-parse-file) "url-cookie" "url/url-cookie.el" (17107
-;;;;;; 37379))
+;;;;;; url-cookie-parse-file) "url-cookie" "url/url-cookie.el" (17178
+;;;;;; 22156))
;;; Generated autoloads from url/url-cookie.el
(autoload (quote url-cookie-parse-file) "url-cookie" "\
@@ -26613,7 +26953,7 @@ Reset the cookie saver timer.
;;;***
;;;### (autoloads (url-dav-vc-registered url-dav-supported-p) "url-dav"
-;;;;;; "url/url-dav.el" (17107 37379))
+;;;;;; "url/url-dav.el" (17178 22156))
;;; Generated autoloads from url/url-dav.el
(autoload (quote url-dav-supported-p) "url-dav" "\
@@ -26628,8 +26968,8 @@ Not documented
;;;***
-;;;### (autoloads (url-file) "url-file" "url/url-file.el" (17107
-;;;;;; 37379))
+;;;### (autoloads (url-file) "url-file" "url/url-file.el" (17178
+;;;;;; 22156))
;;; Generated autoloads from url/url-file.el
(autoload (quote url-file) "url-file" "\
@@ -26640,7 +26980,7 @@ Handle file: and ftp: URLs.
;;;***
;;;### (autoloads (url-open-stream url-gateway-nslookup-host) "url-gw"
-;;;;;; "url/url-gw.el" (17107 37379))
+;;;;;; "url/url-gw.el" (17178 22156))
;;; Generated autoloads from url/url-gw.el
(autoload (quote url-gateway-nslookup-host) "url-gw" "\
@@ -26658,8 +26998,8 @@ Will not make a connection if `url-gateway-unplugged' is non-nil.
;;;***
;;;### (autoloads (url-insert-file-contents url-file-local-copy url-copy-file
-;;;;;; url-handler-mode) "url-handlers" "url/url-handlers.el" (17107
-;;;;;; 37379))
+;;;;;; url-handler-mode) "url-handlers" "url/url-handlers.el" (17178
+;;;;;; 22156))
;;; Generated autoloads from url/url-handlers.el
(defvar url-handler-mode nil "\
@@ -26705,7 +27045,7 @@ Not documented
;;;### (autoloads (url-history-save-history url-history-parse-history
;;;;;; url-history-setup-save-timer) "url-history" "url/url-history.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22156))
;;; Generated autoloads from url/url-history.el
(autoload (quote url-history-setup-save-timer) "url-history" "\
@@ -26729,7 +27069,7 @@ user for what type to save as.
;;;***
;;;### (autoloads (url-http-options url-http-file-attributes url-http-file-exists-p
-;;;;;; url-http) "url-http" "url/url-http.el" (17107 37379))
+;;;;;; url-http) "url-http" "url/url-http.el" (17178 22156))
;;; Generated autoloads from url/url-http.el
(autoload (quote url-http) "url-http" "\
@@ -26782,7 +27122,7 @@ p3p
;;;***
-;;;### (autoloads (url-irc) "url-irc" "url/url-irc.el" (17107 37379))
+;;;### (autoloads (url-irc) "url-irc" "url/url-irc.el" (17178 22156))
;;; Generated autoloads from url/url-irc.el
(autoload (quote url-irc) "url-irc" "\
@@ -26792,8 +27132,8 @@ Not documented
;;;***
-;;;### (autoloads (url-ldap) "url-ldap" "url/url-ldap.el" (17107
-;;;;;; 37379))
+;;;### (autoloads (url-ldap) "url-ldap" "url/url-ldap.el" (17178
+;;;;;; 22156))
;;; Generated autoloads from url/url-ldap.el
(autoload (quote url-ldap) "url-ldap" "\
@@ -26807,7 +27147,7 @@ URL can be a URL string, or a URL vector of the type returned by
;;;***
;;;### (autoloads (url-mailto url-mail) "url-mailto" "url/url-mailto.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22156))
;;; Generated autoloads from url/url-mailto.el
(autoload (quote url-mail) "url-mailto" "\
@@ -26823,7 +27163,7 @@ Handle the mailto: URL syntax.
;;;***
;;;### (autoloads (url-data url-generic-emulator-loader url-info
-;;;;;; url-man) "url-misc" "url/url-misc.el" (17107 37379))
+;;;;;; url-man) "url-misc" "url/url-misc.el" (17178 22156))
;;; Generated autoloads from url/url-misc.el
(autoload (quote url-man) "url-misc" "\
@@ -26855,7 +27195,7 @@ Fetch a data URL (RFC 2397).
;;;***
;;;### (autoloads (url-snews url-news) "url-news" "url/url-news.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22156))
;;; Generated autoloads from url/url-news.el
(autoload (quote url-news) "url-news" "\
@@ -26872,7 +27212,7 @@ Not documented
;;;### (autoloads (url-ns-user-pref url-ns-prefs isInNet isResolvable
;;;;;; dnsResolve dnsDomainIs isPlainHostName) "url-ns" "url/url-ns.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22156))
;;; Generated autoloads from url/url-ns.el
(autoload (quote isPlainHostName) "url-ns" "\
@@ -26913,7 +27253,7 @@ Not documented
;;;***
;;;### (autoloads (url-generic-parse-url url-recreate-url) "url-parse"
-;;;;;; "url/url-parse.el" (17107 37379))
+;;;;;; "url/url-parse.el" (17178 22156))
;;; Generated autoloads from url/url-parse.el
(autoload (quote url-recreate-url) "url-parse" "\
@@ -26931,7 +27271,7 @@ Format is:
;;;***
;;;### (autoloads (url-setup-privacy-info) "url-privacy" "url/url-privacy.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22156))
;;; Generated autoloads from url/url-privacy.el
(autoload (quote url-setup-privacy-info) "url-privacy" "\
@@ -26947,7 +27287,7 @@ Not documented
;;;;;; url-strip-leading-spaces url-eat-trailing-space url-get-normalized-date
;;;;;; url-lazy-message url-normalize-url url-insert-entities-in-string
;;;;;; url-parse-args url-debug url-debug) "url-util" "url/url-util.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22157))
;;; Generated autoloads from url/url-util.el
(defvar url-debug nil "\
@@ -27032,7 +27372,7 @@ Return the base pathname of FILE, or the actual filename if X is true.
(autoload (quote url-parse-query-string) "url-util" "\
Not documented
-\(fn QUERY &optional DOWNCASE)" nil nil)
+\(fn QUERY &optional DOWNCASE ALLOW-NEWLINES)" nil nil)
(autoload (quote url-unhex-string) "url-util" "\
Remove %XX embedded spaces, etc in a url.
@@ -27072,7 +27412,7 @@ This uses `url-current-object', set locally to the buffer.
;;;***
;;;### (autoloads (ask-user-about-supersession-threat ask-user-about-lock)
-;;;;;; "userlock" "userlock.el" (17107 37380))
+;;;;;; "userlock" "userlock.el" (17178 22157))
;;; Generated autoloads from userlock.el
(autoload (quote ask-user-about-lock) "userlock" "\
@@ -27102,7 +27442,7 @@ The buffer in question is current when this function is called.
;;;### (autoloads (uudecode-decode-region uudecode-decode-region-internal
;;;;;; uudecode-decode-region-external) "uudecode" "gnus/uudecode.el"
-;;;;;; (17107 37379))
+;;;;;; (17178 22146))
;;; Generated autoloads from gnus/uudecode.el
(autoload (quote uudecode-decode-region-external) "uudecode" "\
@@ -27132,7 +27472,7 @@ If FILE-NAME is non-nil, save the result to FILE-NAME.
;;;;;; vc-directory vc-merge vc-insert-headers vc-version-other-window
;;;;;; vc-diff vc-register vc-next-action vc-do-command edit-vc-file
;;;;;; with-vc-file vc-branch-part vc-trunk-p vc-before-checkin-hook
-;;;;;; vc-checkin-hook vc-checkout-hook) "vc" "vc.el" (17107 37380))
+;;;;;; vc-checkin-hook vc-checkout-hook) "vc" "vc.el" (17178 22157))
;;; Generated autoloads from vc.el
(defvar vc-checkout-hook nil "\
@@ -27419,7 +27759,7 @@ colors. `vc-annotate-background' specifies the background color.
;;;***
-;;;### (autoloads nil "vc-arch" "vc-arch.el" (17107 37380))
+;;;### (autoloads nil "vc-arch" "vc-arch.el" (17178 22157))
;;; Generated autoloads from vc-arch.el
(defun vc-arch-registered (file)
(if (vc-find-root file "{arch}/=tagging-method")
@@ -27429,7 +27769,7 @@ colors. `vc-annotate-background' specifies the background color.
;;;***
-;;;### (autoloads nil "vc-cvs" "vc-cvs.el" (17107 37380))
+;;;### (autoloads nil "vc-cvs" "vc-cvs.el" (17178 22157))
;;; Generated autoloads from vc-cvs.el
(defun vc-cvs-registered (f)
(when (file-readable-p (expand-file-name
@@ -27439,7 +27779,7 @@ colors. `vc-annotate-background' specifies the background color.
;;;***
-;;;### (autoloads nil "vc-mcvs" "vc-mcvs.el" (17107 37380))
+;;;### (autoloads nil "vc-mcvs" "vc-mcvs.el" (17178 22157))
;;; Generated autoloads from vc-mcvs.el
(defun vc-mcvs-registered (file)
(if (vc-find-root file "MCVS/CVS")
@@ -27450,7 +27790,7 @@ colors. `vc-annotate-background' specifies the background color.
;;;***
;;;### (autoloads (vc-rcs-master-templates) "vc-rcs" "vc-rcs.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22157))
;;; Generated autoloads from vc-rcs.el
(defvar vc-rcs-master-templates (quote ("%sRCS/%s,v" "%s%s,v" "%sRCS/%s")) "\
@@ -27463,7 +27803,7 @@ For a description of possible values, see `vc-check-master-templates'.")
;;;***
;;;### (autoloads (vc-sccs-master-templates) "vc-sccs" "vc-sccs.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22157))
;;; Generated autoloads from vc-sccs.el
(defvar vc-sccs-master-templates (quote ("%sSCCS/s.%s" "%ss.%s" vc-sccs-search-project-dir)) "\
@@ -27480,7 +27820,7 @@ find any project directory." (let ((project-dir (getenv "PROJECTDIR")) dirs dir)
;;;***
-;;;### (autoloads nil "vc-svn" "vc-svn.el" (17107 37381))
+;;;### (autoloads nil "vc-svn" "vc-svn.el" (17178 22157))
;;; Generated autoloads from vc-svn.el
(defun vc-svn-registered (f)
(when (file-readable-p (expand-file-name
@@ -27493,7 +27833,7 @@ find any project directory." (let ((project-dir (getenv "PROJECTDIR")) dirs dir)
;;;***
;;;### (autoloads (vhdl-mode) "vhdl-mode" "progmodes/vhdl-mode.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22153))
;;; Generated autoloads from progmodes/vhdl-mode.el
(autoload (quote vhdl-mode) "vhdl-mode" "\
@@ -27633,13 +27973,13 @@ Usage:
symbols are surrounded by one space, and multiple spaces are eliminated.
-| CODE FILLING:
-| Code filling allows to condens code (e.g. sensitivity lists or port
-| maps) by removing comments and newlines and re-wrapping so that all
-| lines are maximally filled (block filling). `C-c C-f C-f' fills a list
-| enclosed by parenthesis, `C-c C-f C-g' a group of lines separated by
-| blank lines, `C-c C-f C-i' a block of lines with same indent, and
-| `C-c C-f M-f' an entire region.
+ CODE FILLING:
+ Code filling allows to condense code (e.g. sensitivity lists or port
+ maps) by removing comments and newlines and re-wrapping so that all
+ lines are maximally filled (block filling). `C-c C-f C-f' fills a list
+ enclosed by parenthesis, `C-c C-f C-g' a group of lines separated by
+ blank lines, `C-c C-f C-i' a block of lines with same indent, and
+ `C-c C-f M-f' an entire region.
CODE BEAUTIFICATION:
@@ -27664,21 +28004,21 @@ Usage:
A clause with several generic/port names on the same line can be
flattened (`C-c C-p C-f') so that only one name per line exists. The
-| direction of ports can be reversed (`C-c C-p C-r'), i.e., inputs become
-| outputs and vice versa, which can be useful in testbenches. (This
-| reversion is done on the internal data structure and is only reflected
-| in subsequent paste operations.)
+ direction of ports can be reversed (`C-c C-p C-r'), i.e., inputs become
+ outputs and vice versa, which can be useful in testbenches. (This
+ reversion is done on the internal data structure and is only reflected
+ in subsequent paste operations.)
Names for actual ports, instances, testbenches, and
design-under-test instances can be derived from existing names according
to options `vhdl-...-name'. See customization group `vhdl-port'.
-| SUBPROGRAM TRANSLATION:
-| Similar functionality exists for copying/pasting the interface of
-| subprograms (function/procedure). A subprogram interface can be copied
-| and then pasted as a subprogram declaration, body or call (uses
-| association list with formals).
+ SUBPROGRAM TRANSLATION:
+ Similar functionality exists for copying/pasting the interface of
+ subprograms (function/procedure). A subprogram interface can be copied
+ and then pasted as a subprogram declaration, body or call (uses
+ association list with formals).
TESTBENCH GENERATION:
@@ -27734,38 +28074,54 @@ Usage:
required by secondary units.
-| STRUCTURAL COMPOSITION:
-| Enables simple structural composition. `C-c C-c C-n' creates a skeleton
-| for a new component. Subcomponents (i.e. component declaration and
-| instantiation) can be automatically placed from a previously read port
-| (`C-c C-c C-p') or directly from the hierarchy browser (`P'). Finally,
-| all subcomponents can be automatically connected using internal signals
-| and ports (`C-c C-c C-w') following these rules:
-| - subcomponent actual ports with same name are considered to be
-| connected by a signal (internal signal or port)
-| - signals that are only inputs to subcomponents are considered as
-| inputs to this component -> input port created
-| - signals that are only outputs from subcomponents are considered as
-| outputs from this component -> output port created
-| - signals that are inputs to AND outputs from subcomponents are
-| considered as internal connections -> internal signal created
-|
-| Component declarations can be placed in a components package (option
-| `vhdl-use-components-package') which can be automatically generated for
-| an entire directory or project (`C-c C-c M-p'). The VHDL'93 direct
-| component instantiation is also supported (option
-| `vhdl-use-direct-instantiation').
+ STRUCTURAL COMPOSITION:
+ Enables simple structural composition. `C-c C-c C-n' creates a skeleton
+ for a new component. Subcomponents (i.e. component declaration and
+ instantiation) can be automatically placed from a previously read port
+ (`C-c C-c C-p') or directly from the hierarchy browser (`P'). Finally,
+ all subcomponents can be automatically connected using internal signals
+ and ports (`C-c C-c C-w') following these rules:
+ - subcomponent actual ports with same name are considered to be
+ connected by a signal (internal signal or port)
+ - signals that are only inputs to subcomponents are considered as
+ inputs to this component -> input port created
+ - signals that are only outputs from subcomponents are considered as
+ outputs from this component -> output port created
+ - signals that are inputs to AND outputs from subcomponents are
+ considered as internal connections -> internal signal created
+
+ Purpose: With appropriate naming conventions it is possible to
+ create higher design levels with only a few mouse clicks or key
+ strokes. A new design level can be created by simply generating a new
+ component, placing the required subcomponents from the hierarchy
+ browser, and wiring everything automatically.
+
+ Note: Automatic wiring only works reliably on templates of new
+ components and component instantiations that were created by VHDL mode.
+
+ Component declarations can be placed in a components package (option
+ `vhdl-use-components-package') which can be automatically generated for
+ an entire directory or project (`C-c C-c M-p'). The VHDL'93 direct
+ component instantiation is also supported (option
+ `vhdl-use-direct-instantiation').
+
+| Configuration declarations can automatically be generated either from
+| the menu (`C-c C-c C-f') (for the architecture the cursor is in) or from
+| the speedbar menu (for the architecture under the cursor). The
+| configurations can optionally be hierarchical (i.e. include all
+| component levels of a hierarchical design, option
+| `vhdl-compose-configuration-hierarchical') or include subconfigurations
+| (option `vhdl-compose-configuration-use-subconfiguration'). For
+| subcomponents in hierarchical configurations, the most-recently-analyzed
+| (mra) architecture is selected. If another architecture is desired, it
+| can be marked as most-recently-analyzed (speedbar menu) before
+| generating the configuration.
|
-| Purpose: With appropriate naming conventions it is possible to
-| create higher design levels with only a few mouse clicks or key
-| strokes. A new design level can be created by simply generating a new
-| component, placing the required subcomponents from the hierarchy
-| browser, and wiring everything automatically.
-|
-| Note: Automatic wiring only works reliably on templates of new
-| components and component instantiations that were created by VHDL mode.
-|
-| See the options group `vhdl-compose' for all relevant user options.
+| Note: Configurations of subcomponents (i.e. hierarchical configuration
+| declarations) are currently not considered when displaying
+| configurations in speedbar.
+
+ See the options group `vhdl-compose' for all relevant user options.
SOURCE FILE COMPILATION:
@@ -28018,7 +28374,7 @@ Key bindings:
;;;***
-;;;### (autoloads (vi-mode) "vi" "emulation/vi.el" (17107 37380))
+;;;### (autoloads (vi-mode) "vi" "emulation/vi.el" (17178 20480))
;;; Generated autoloads from emulation/vi.el
(autoload (quote vi-mode) "vi" "\
@@ -28073,7 +28429,7 @@ Syntax table and abbrevs while in vi mode remain as they were in Emacs.
;;;### (autoloads (viqr-pre-write-conversion viqr-post-read-conversion
;;;;;; viet-encode-viqr-buffer viet-encode-viqr-region viet-decode-viqr-buffer
;;;;;; viet-decode-viqr-region viet-encode-viscii-char) "viet-util"
-;;;;;; "language/viet-util.el" (17107 37382))
+;;;;;; "language/viet-util.el" (17178 20481))
;;; Generated autoloads from language/viet-util.el
(autoload (quote viet-encode-viscii-char) "viet-util" "\
@@ -28119,8 +28475,8 @@ Not documented
;;;### (autoloads (View-exit-and-edit view-mode-enter view-mode view-buffer-other-frame
;;;;;; view-buffer-other-window view-buffer view-file-other-frame
-;;;;;; view-file-other-window view-file) "view" "view.el" (17107
-;;;;;; 37381))
+;;;;;; view-file-other-window view-file) "view" "view.el" (17178
+;;;;;; 22157))
;;; Generated autoloads from view.el
(defvar view-mode nil "\
@@ -28327,8 +28683,8 @@ Exit View mode and make the current buffer editable.
;;;***
-;;;### (autoloads (vip-mode vip-setup) "vip" "emulation/vip.el" (17107
-;;;;;; 37380))
+;;;### (autoloads (vip-mode vip-setup) "vip" "emulation/vip.el" (17178
+;;;;;; 22144))
;;; Generated autoloads from emulation/vip.el
(autoload (quote vip-setup) "vip" "\
@@ -28344,7 +28700,7 @@ Turn on VIP emulation of VI.
;;;***
;;;### (autoloads (viper-mode toggle-viper-mode) "viper" "emulation/viper.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22144))
;;; Generated autoloads from emulation/viper.el
(autoload (quote toggle-viper-mode) "viper" "\
@@ -28354,14 +28710,14 @@ If Viper is enabled, turn it off. Otherwise, turn it on.
\(fn)" t nil)
(autoload (quote viper-mode) "viper" "\
-Turn on Viper emulation of Vi.
+Turn on Viper emulation of Vi in Emacs. See Info node `(viper)Viper'.
\(fn)" t nil)
;;;***
;;;### (autoloads (warn lwarn display-warning) "warnings" "emacs-lisp/warnings.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22144))
;;; Generated autoloads from emacs-lisp/warnings.el
(defvar warning-prefix-function nil "\
@@ -28449,7 +28805,7 @@ this is equivalent to `display-warning', using
;;;***
;;;### (autoloads (wdired-change-to-wdired-mode) "wdired" "wdired.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22157))
;;; Generated autoloads from wdired.el
(autoload (quote wdired-change-to-wdired-mode) "wdired" "\
@@ -28465,7 +28821,7 @@ See `wdired-mode'.
;;;***
-;;;### (autoloads (webjump) "webjump" "net/webjump.el" (17107 37379))
+;;;### (autoloads (webjump) "webjump" "net/webjump.el" (17178 22151))
;;; Generated autoloads from net/webjump.el
(autoload (quote webjump) "webjump" "\
@@ -28482,7 +28838,7 @@ Please submit bug reports and other feedback to the author, Neil W. Van Dyke
;;;***
;;;### (autoloads (which-function-mode) "which-func" "progmodes/which-func.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22153))
;;; Generated autoloads from progmodes/which-func.el
(put 'which-func-format 'risky-local-variable t)
(put 'which-func-current 'risky-local-variable t)
@@ -28516,7 +28872,7 @@ and off otherwise.
;;;;;; whitespace-buffer whitespace-toggle-ateol-check whitespace-toggle-spacetab-check
;;;;;; whitespace-toggle-indent-check whitespace-toggle-trailing-check
;;;;;; whitespace-toggle-leading-check) "whitespace" "whitespace.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22157))
;;; Generated autoloads from whitespace.el
(autoload (quote whitespace-toggle-leading-check) "whitespace" "\
@@ -28608,7 +28964,7 @@ This is meant to be added buffer-locally to `write-file-functions'.
;;;***
;;;### (autoloads (widget-minor-mode widget-browse-other-window widget-browse
-;;;;;; widget-browse-at) "wid-browse" "wid-browse.el" (17107 37381))
+;;;;;; widget-browse-at) "wid-browse" "wid-browse.el" (17178 22157))
;;; Generated autoloads from wid-browse.el
(autoload (quote widget-browse-at) "wid-browse" "\
@@ -28635,8 +28991,8 @@ With arg, turn widget mode on if and only if arg is positive.
;;;***
;;;### (autoloads (widget-setup widget-insert widget-delete widget-create
-;;;;;; widget-prompt-value widgetp) "wid-edit" "wid-edit.el" (17107
-;;;;;; 37380))
+;;;;;; widget-prompt-value widgetp) "wid-edit" "wid-edit.el" (17178
+;;;;;; 22157))
;;; Generated autoloads from wid-edit.el
(autoload (quote widgetp) "wid-edit" "\
@@ -28678,8 +29034,8 @@ Setup current buffer so editing string widgets works.
;;;***
;;;### (autoloads (windmove-default-keybindings windmove-down windmove-right
-;;;;;; windmove-up windmove-left) "windmove" "windmove.el" (17107
-;;;;;; 37380))
+;;;;;; windmove-up windmove-left) "windmove" "windmove.el" (17178
+;;;;;; 22157))
;;; Generated autoloads from windmove.el
(autoload (quote windmove-left) "windmove" "\
@@ -28732,11 +29088,11 @@ Default MODIFIER is 'shift.
;;;***
;;;### (autoloads (winner-mode winner-mode) "winner" "winner.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22157))
;;; Generated autoloads from winner.el
(defvar winner-mode nil "\
-Toggle winner-mode.
+Toggle Winner mode.
Setting this variable directly does not take effect;
use either \\[customize] or the function `winner-mode'.")
@@ -28751,7 +29107,7 @@ With arg, turn Winner mode on if and only if arg is positive.
;;;***
;;;### (autoloads (woman-find-file woman-dired-find-file woman) "woman"
-;;;;;; "woman.el" (17107 37380))
+;;;;;; "woman.el" (17178 22157))
;;; Generated autoloads from woman.el
(autoload (quote woman) "woman" "\
@@ -28787,7 +29143,7 @@ decompress the file if appropriate. See the documentation for the
;;;***
;;;### (autoloads (wordstar-mode) "ws-mode" "emulation/ws-mode.el"
-;;;;;; (17107 37380))
+;;;;;; (17178 22144))
;;; Generated autoloads from emulation/ws-mode.el
(autoload (quote wordstar-mode) "ws-mode" "\
@@ -28900,7 +29256,7 @@ The key bindings are:
;;;***
;;;### (autoloads (xml-parse-region xml-parse-file) "xml" "xml.el"
-;;;;;; (17107 37381))
+;;;;;; (17178 22157))
;;; Generated autoloads from xml.el
(autoload (quote xml-parse-file) "xml" "\
@@ -28925,8 +29281,8 @@ If PARSE-NS is non-nil, then QNAMES are expanded.
;;;***
-;;;### (autoloads (xterm-mouse-mode) "xt-mouse" "xt-mouse.el" (17107
-;;;;;; 36805))
+;;;### (autoloads (xterm-mouse-mode) "xt-mouse" "xt-mouse.el" (17178
+;;;;;; 22157))
;;; Generated autoloads from xt-mouse.el
(defvar xterm-mouse-mode nil "\
@@ -28955,7 +29311,7 @@ down the SHIFT key while pressing the mouse button.
;;;***
;;;### (autoloads (yenc-extract-filename yenc-decode-region) "yenc"
-;;;;;; "gnus/yenc.el" (17107 37379))
+;;;;;; "gnus/yenc.el" (17178 22146))
;;; Generated autoloads from gnus/yenc.el
(autoload (quote yenc-decode-region) "yenc" "\
@@ -28971,7 +29327,7 @@ Extract file name from an yenc header.
;;;***
;;;### (autoloads (psychoanalyze-pinhead apropos-zippy insert-zippyism
-;;;;;; yow) "yow" "play/yow.el" (17107 37380))
+;;;;;; yow) "yow" "play/yow.el" (17178 22152))
;;; Generated autoloads from play/yow.el
(autoload (quote yow) "yow" "\
@@ -28997,7 +29353,7 @@ Zippy goes to the analyst.
;;;***
-;;;### (autoloads (zone) "zone" "play/zone.el" (17107 37380))
+;;;### (autoloads (zone) "zone" "play/zone.el" (17178 22152))
;;; Generated autoloads from play/zone.el
(autoload (quote zone) "zone" "\
@@ -29008,7 +29364,7 @@ Zone out, completely.
;;;***
;;;### (autoloads (zone-mode zone-mode-update-serial-hook) "zone-mode"
-;;;;;; "net/zone-mode.el" (17107 37379))
+;;;;;; "net/zone-mode.el" (17178 22151))
;;; Generated autoloads from net/zone-mode.el
(autoload (quote zone-mode-update-serial-hook) "zone-mode" "\
@@ -29110,7 +29466,7 @@ Zone-mode does two things:
;;;;;; "international/latin-9.el" "international/mule-cmds.el" "international/mule-conf.el"
;;;;;; "international/mule.el" "international/ogonek.el" "international/subst-big5.el"
;;;;;; "international/subst-gb2312.el" "international/subst-jis.el"
-;;;;;; "international/subst-ksc.el" "international/swedish.el" "international/ucs-tables.el"
+;;;;;; "international/subst-ksc.el" "international/ucs-tables.el"
;;;;;; "international/utf-16.el" "international/utf-7.el" "international/utf-8.el"
;;;;;; "isearch.el" "jka-cmpr-hook.el" "kermit.el" "language/chinese.el"
;;;;;; "language/cyrillic.el" "language/czech.el" "language/devanagari.el"
@@ -29133,44 +29489,45 @@ Zone-mode does two things:
;;;;;; "net/eudcb-ldap.el" "net/eudcb-ph.el" "net/ldap.el" "net/netrc.el"
;;;;;; "net/tls.el" "net/tramp-ftp.el" "net/tramp-smb.el" "net/tramp-util.el"
;;;;;; "net/tramp-uu.el" "net/tramp-vc.el" "net/trampver.el" "obsolete/awk-mode.el"
-;;;;;; "obsolete/float.el" "obsolete/hilit19.el" "obsolete/iso-swed.el"
-;;;;;; "obsolete/keyswap.el" "obsolete/mlsupport.el" "obsolete/ooutline.el"
-;;;;;; "obsolete/profile.el" "obsolete/rnews.el" "obsolete/sc.el"
-;;;;;; "obsolete/sun-curs.el" "obsolete/sun-fns.el" "obsolete/uncompress.el"
-;;;;;; "obsolete/x-apollo.el" "obsolete/x-menu.el" "patcomp.el"
-;;;;;; "paths.el" "pcvs-info.el" "pcvs-parse.el" "pcvs-util.el"
-;;;;;; "play/gamegrid.el" "play/gametree.el" "play/meese.el" "progmodes/ada-prj.el"
-;;;;;; "progmodes/cc-align.el" "progmodes/cc-awk.el" "progmodes/cc-bytecomp.el"
-;;;;;; "progmodes/cc-cmds.el" "progmodes/cc-compat.el" "progmodes/cc-defs.el"
-;;;;;; "progmodes/cc-engine.el" "progmodes/cc-fonts.el" "progmodes/cc-langs.el"
-;;;;;; "progmodes/cc-menus.el" "progmodes/cc-vars.el" "progmodes/ebnf-abn.el"
-;;;;;; "progmodes/ebnf-bnf.el" "progmodes/ebnf-dtd.el" "progmodes/ebnf-ebx.el"
-;;;;;; "progmodes/ebnf-iso.el" "progmodes/ebnf-otz.el" "progmodes/ebnf-yac.el"
-;;;;;; "progmodes/idlw-complete-structtag.el" "progmodes/idlw-help.el"
-;;;;;; "progmodes/idlw-rinfo.el" "progmodes/idlw-toolbar.el" "progmodes/mantemp.el"
-;;;;;; "progmodes/xscheme.el" "register.el" "replace.el" "s-region.el"
-;;;;;; "saveplace.el" "scroll-bar.el" "select.el" "simple.el" "soundex.el"
-;;;;;; "startup.el" "subdirs.el" "subr.el" "tempo.el" "term/AT386.el"
-;;;;;; "term/apollo.el" "term/bg-mouse.el" "term/bobcat.el" "term/internal.el"
-;;;;;; "term/iris-ansi.el" "term/linux.el" "term/lk201.el" "term/mac-win.el"
-;;;;;; "term/news.el" "term/pc-win.el" "term/rxvt.el" "term/sun-mouse.el"
-;;;;;; "term/sun.el" "term/sup-mouse.el" "term/tty-colors.el" "term/tvi970.el"
-;;;;;; "term/vt100.el" "term/vt102.el" "term/vt125.el" "term/vt200.el"
-;;;;;; "term/vt201.el" "term/vt220.el" "term/vt240.el" "term/vt300.el"
-;;;;;; "term/vt320.el" "term/vt400.el" "term/vt420.el" "term/w32-win.el"
-;;;;;; "term/wyse50.el" "term/x-win.el" "term/xterm.el" "textmodes/bib-mode.el"
-;;;;;; "textmodes/fill.el" "textmodes/makeinfo.el" "textmodes/page-ext.el"
-;;;;;; "textmodes/page.el" "textmodes/paragraphs.el" "textmodes/refbib.el"
-;;;;;; "textmodes/refer.el" "textmodes/reftex-auc.el" "textmodes/reftex-dcr.el"
-;;;;;; "textmodes/reftex-ref.el" "textmodes/reftex-sel.el" "textmodes/reftex-toc.el"
-;;;;;; "textmodes/reftex-vars.el" "textmodes/texnfo-upd.el" "textmodes/text-mode.el"
-;;;;;; "timezone.el" "tree-widget.el" "uniquify.el" "url/url-about.el"
-;;;;;; "url/url-dired.el" "url/url-expand.el" "url/url-ftp.el" "url/url-https.el"
-;;;;;; "url/url-imap.el" "url/url-methods.el" "url/url-nfs.el" "url/url-proxy.el"
+;;;;;; "obsolete/bg-mouse.el" "obsolete/float.el" "obsolete/hilit19.el"
+;;;;;; "obsolete/iso-swed.el" "obsolete/keyswap.el" "obsolete/mlsupport.el"
+;;;;;; "obsolete/ooutline.el" "obsolete/profile.el" "obsolete/rnews.el"
+;;;;;; "obsolete/sc.el" "obsolete/sun-curs.el" "obsolete/sun-fns.el"
+;;;;;; "obsolete/swedish.el" "obsolete/uncompress.el" "obsolete/x-apollo.el"
+;;;;;; "obsolete/x-menu.el" "patcomp.el" "paths.el" "pcvs-info.el"
+;;;;;; "pcvs-parse.el" "pcvs-util.el" "play/gamegrid.el" "play/gametree.el"
+;;;;;; "play/meese.el" "progmodes/ada-prj.el" "progmodes/cc-align.el"
+;;;;;; "progmodes/cc-awk.el" "progmodes/cc-bytecomp.el" "progmodes/cc-cmds.el"
+;;;;;; "progmodes/cc-compat.el" "progmodes/cc-defs.el" "progmodes/cc-fonts.el"
+;;;;;; "progmodes/cc-langs.el" "progmodes/cc-menus.el" "progmodes/cc-vars.el"
+;;;;;; "progmodes/ebnf-abn.el" "progmodes/ebnf-bnf.el" "progmodes/ebnf-dtd.el"
+;;;;;; "progmodes/ebnf-ebx.el" "progmodes/ebnf-iso.el" "progmodes/ebnf-otz.el"
+;;;;;; "progmodes/ebnf-yac.el" "progmodes/idlw-complete-structtag.el"
+;;;;;; "progmodes/idlw-help.el" "progmodes/idlw-rinfo.el" "progmodes/idlw-toolbar.el"
+;;;;;; "progmodes/mantemp.el" "progmodes/xscheme.el" "register.el"
+;;;;;; "replace.el" "s-region.el" "saveplace.el" "scroll-bar.el"
+;;;;;; "select.el" "simple.el" "soundex.el" "startup.el" "subdirs.el"
+;;;;;; "subr.el" "tempo.el" "term/AT386.el" "term/apollo.el" "term/bobcat.el"
+;;;;;; "term/cygwin.el" "term/internal.el" "term/iris-ansi.el" "term/linux.el"
+;;;;;; "term/lk201.el" "term/mac-win.el" "term/news.el" "term/pc-win.el"
+;;;;;; "term/rxvt.el" "term/sun-mouse.el" "term/sun.el" "term/sup-mouse.el"
+;;;;;; "term/tty-colors.el" "term/tvi970.el" "term/vt100.el" "term/vt102.el"
+;;;;;; "term/vt125.el" "term/vt200.el" "term/vt201.el" "term/vt220.el"
+;;;;;; "term/vt240.el" "term/vt300.el" "term/vt320.el" "term/vt400.el"
+;;;;;; "term/vt420.el" "term/w32-win.el" "term/wyse50.el" "term/x-win.el"
+;;;;;; "term/xterm.el" "textmodes/bib-mode.el" "textmodes/fill.el"
+;;;;;; "textmodes/makeinfo.el" "textmodes/page-ext.el" "textmodes/page.el"
+;;;;;; "textmodes/paragraphs.el" "textmodes/refbib.el" "textmodes/refer.el"
+;;;;;; "textmodes/reftex-auc.el" "textmodes/reftex-dcr.el" "textmodes/reftex-ref.el"
+;;;;;; "textmodes/reftex-sel.el" "textmodes/reftex-toc.el" "textmodes/reftex-vars.el"
+;;;;;; "textmodes/texnfo-upd.el" "textmodes/text-mode.el" "timezone.el"
+;;;;;; "tree-widget.el" "uniquify.el" "url/url-about.el" "url/url-dired.el"
+;;;;;; "url/url-expand.el" "url/url-ftp.el" "url/url-https.el" "url/url-imap.el"
+;;;;;; "url/url-methods.el" "url/url-nfs.el" "url/url-proxy.el"
;;;;;; "url/url-vars.el" "url/vc-dav.el" "vc-hooks.el" "vcursor.el"
;;;;;; "version.el" "vms-patch.el" "vmsproc.el" "vt-control.el"
;;;;;; "vt100-led.el" "w32-fns.el" "w32-vars.el" "widget.el" "window.el"
-;;;;;; "x-dnd.el") (17107 40722 172960))
+;;;;;; "x-dnd.el") (17178 25595 473948))
;;;***
diff --git a/lisp/ledit.el b/lisp/ledit.el
index cab3c6c7d6..bf17f3cad4 100644
--- a/lisp/ledit.el
+++ b/lisp/ledit.el
@@ -1,6 +1,6 @@
;;; ledit.el --- Emacs side of ledit interface
-;; Copyright (C) 1985 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: languages
diff --git a/lisp/loadhist.el b/lisp/loadhist.el
index bcdf47387d..61c4192387 100644
--- a/lisp/loadhist.el
+++ b/lisp/loadhist.el
@@ -1,6 +1,7 @@
;;; loadhist.el --- lisp functions for working with feature groups
-;; Copyright (C) 1995, 1998, 2000, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1998, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Eric S. Raymond <esr@snark.thyrsus.com>
;; Maintainer: FSF
diff --git a/lisp/loadup.el b/lisp/loadup.el
index 36ed511f58..e1d5e56e2a 100644
--- a/lisp/loadup.el
+++ b/lisp/loadup.el
@@ -1,6 +1,7 @@
;;; loadup.el --- load up standardly loaded Lisp files for Emacs
-;; Copyright (C) 1985, 1986, 1992, 1994, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1992, 1994, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: internal
diff --git a/lisp/locate.el b/lisp/locate.el
index 4289d3e975..cbf2e4866a 100644
--- a/lisp/locate.el
+++ b/lisp/locate.el
@@ -1,6 +1,7 @@
;;; locate.el --- interface to the locate command
-;; Copyright (C) 1996, 1998, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1998, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Peter Breton <pbreton@cs.umb.edu>
;; Keywords: unix files
diff --git a/lisp/log-edit.el b/lisp/log-edit.el
index a3876df8cc..2b38dcadf5 100644
--- a/lisp/log-edit.el
+++ b/lisp/log-edit.el
@@ -1,6 +1,7 @@
;;; log-edit.el --- Major mode for editing CVS commit messages
-;; Copyright (C) 1999,2000,2003,2004 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Stefan Monnier <monnier@cs.yale.edu>
;; Keywords: pcl-cvs cvs commit log
diff --git a/lisp/log-view.el b/lisp/log-view.el
index 66e8b27c0f..cd403a8314 100644
--- a/lisp/log-view.el
+++ b/lisp/log-view.el
@@ -1,6 +1,7 @@
;;; log-view.el --- Major mode for browsing RCS/CVS/SCCS log output
-;; Copyright (C) 1999, 2000, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Stefan Monnier <monnier@cs.yale.edu>
;; Keywords: rcs sccs cvs log version-control
@@ -36,6 +37,8 @@
(require 'pcvs-util)
(autoload 'vc-version-diff "vc")
+(defvar cvs-minor-wrap-function)
+
(defgroup log-view nil
"Major mode for browsing log output of RCS/CVS/SCCS."
:group 'pcl-cvs
diff --git a/lisp/longlines.el b/lisp/longlines.el
index 5d68c0a06a..6ce5dfaebc 100644
--- a/lisp/longlines.el
+++ b/lisp/longlines.el
@@ -1,6 +1,6 @@
;;; longlines.el --- automatically wrap long lines
-;; Copyright (C) 2000, 2001, 2004, 2005 by Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001, 2005 Free Software Foundation, Inc.
;; Authors: Kai Grossjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
;; Alex Schroeder <alex@gnu.org>
@@ -116,6 +116,7 @@ are indicated with a symbol."
(add-hook 'window-configuration-change-hook
'longlines-window-change-function nil t))
(let ((buffer-undo-list t)
+ (inhibit-read-only t)
(mod (buffer-modified-p)))
;; Turning off undo is OK since (spaces + newlines) is
;; conserved, except for a corner case in
@@ -136,7 +137,8 @@ are indicated with a symbol."
(setq buffer-file-format (delete 'longlines buffer-file-format))
(if longlines-showing
(longlines-unshow-hard-newlines))
- (let ((buffer-undo-list t))
+ (let ((buffer-undo-list t)
+ (inhibit-read-only t))
(longlines-encode-region (point-min) (point-max)))
(remove-hook 'change-major-mode-hook 'longlines-mode-off t)
(remove-hook 'before-kill-functions 'longlines-encode-region t)
@@ -144,7 +146,11 @@ are indicated with a symbol."
(remove-hook 'post-command-hook 'longlines-post-command-function t)
(remove-hook 'window-configuration-change-hook
'longlines-window-change-function t)
- (kill-local-variable 'fill-column)))
+ (when longlines-wrap-follows-window-size
+ (kill-local-variable 'fill-column))
+ (kill-local-variable 'require-final-newline)
+ (kill-local-variable 'buffer-substring-filters)
+ (kill-local-variable 'use-hard-newlines)))
(defun longlines-mode-off ()
"Turn off longlines mode.
@@ -170,20 +176,20 @@ With optional argument ARG, make the hard newlines invisible again."
"Make hard newlines between BEG and END visible."
(let* ((pmin (min beg end))
(pmax (max beg end))
- (pos (text-property-any pmin pmax 'hard t)))
+ (pos (text-property-not-all pmin pmax 'hard nil)))
(while pos
(put-text-property pos (1+ pos) 'display
(copy-sequence longlines-show-effect))
- (setq pos (text-property-any (1+ pos) pmax 'hard t)))))
+ (setq pos (text-property-not-all (1+ pos) pmax 'hard nil)))))
(defun longlines-unshow-hard-newlines ()
"Make hard newlines invisible again."
(interactive)
(setq longlines-showing nil)
- (let ((pos (text-property-any (point-min) (point-max) 'hard t)))
+ (let ((pos (text-property-not-all (point-min) (point-max) 'hard nil)))
(while pos
(remove-text-properties pos (1+ pos) '(display))
- (setq pos (text-property-any (1+ pos) (point-max) 'hard t)))))
+ (setq pos (text-property-not-all (1+ pos) (point-max) 'hard nil)))))
;; Wrapping the paragraphs.
diff --git a/lisp/lpr.el b/lisp/lpr.el
index 5714c74663..c44971e4f3 100644
--- a/lisp/lpr.el
+++ b/lisp/lpr.el
@@ -1,7 +1,7 @@
;;; lpr.el --- print Emacs buffer on line printer
-;; Copyright (C) 1985, 1988, 1992, 1994, 2001, 2003
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1988, 1992, 1994, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: unix
diff --git a/lisp/ls-lisp.el b/lisp/ls-lisp.el
index dee98a8782..feadbb5e2b 100644
--- a/lisp/ls-lisp.el
+++ b/lisp/ls-lisp.el
@@ -1,6 +1,7 @@
;;; ls-lisp.el --- emulate insert-directory completely in Emacs Lisp
-;; Copyright (C) 1992, 1994, 2000 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1994, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Sebastian Kremer <sk@thp.uni-koeln.de>
;; Modified by: Francis J. Wright <F.J.Wright@maths.qmw.ac.uk>
diff --git a/lisp/macros.el b/lisp/macros.el
index 79471ed905..7075300ba1 100644
--- a/lisp/macros.el
+++ b/lisp/macros.el
@@ -1,6 +1,7 @@
;;; macros.el --- non-primitive commands for keyboard macros
-;; Copyright (C) 1985, 86, 87, 92, 94, 95, 04 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1987, 1992, 1994, 1995, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: abbrev
diff --git a/lisp/mail/blessmail.el b/lisp/mail/blessmail.el
index c8bb2e729d..01c52f8204 100644
--- a/lisp/mail/blessmail.el
+++ b/lisp/mail/blessmail.el
@@ -1,6 +1,6 @@
;;; blessmail.el --- decide whether movemail needs special privileges -*- no-byte-compile: t -*-
-;; Copyright (C) 1994 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: internal
diff --git a/lisp/mail/emacsbug.el b/lisp/mail/emacsbug.el
index bc6060f40c..bb88c44732 100644
--- a/lisp/mail/emacsbug.el
+++ b/lisp/mail/emacsbug.el
@@ -1,7 +1,7 @@
;;; emacsbug.el --- command to report Emacs bugs to appropriate mailing list
-;; Copyright (C) 1985, 1994, 1997, 1998, 2000, 2001, 2002
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1994, 1997, 1998, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: K. Shane Hartman
;; Maintainer: FSF
@@ -125,9 +125,18 @@ usually do not have translators to read other languages for them.\n\n")
(insert "\n\n")
(setq user-point (point))
- (insert "\n\n\n")
+ (insert "\n\n")
+
+ (insert "If emacs crashed, and you have the emacs process in the gdb debugger,\n"
+ "please include the output from the following gdb commands:\n"
+ " `bt full' and `xbacktrace'.\n")
+
+ (let ((debug-file (expand-file-name "DEBUG" data-directory)))
+ (if (file-readable-p debug-file)
+ (insert "If you would like to further debug the crash, please read the file\n"
+ debug-file " for instructions.\n")))
- (insert "In " (emacs-version) "\n")
+ (insert "\n\nIn " (emacs-version) "\n")
(if (fboundp 'x-server-vendor)
(condition-case nil
(insert "X server distributor `" (x-server-vendor) "', version "
diff --git a/lisp/mail/footnote.el b/lisp/mail/footnote.el
index e4c0cd10c1..58b6be4f5f 100644
--- a/lisp/mail/footnote.el
+++ b/lisp/mail/footnote.el
@@ -1,6 +1,7 @@
;;; footnote.el --- footnote support for message mode -*- coding: iso-latin-1;-*-
-;; Copyright (C) 1997, 2000 by Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Steven L Baur <steve@xemacs.org>
;; Keywords: mail, news
diff --git a/lisp/mail/mail-extr.el b/lisp/mail/mail-extr.el
index 15b8dd466a..da5ec4bfda 100644
--- a/lisp/mail/mail-extr.el
+++ b/lisp/mail/mail-extr.el
@@ -1,7 +1,7 @@
;;; mail-extr.el --- extract full name and address from RFC 822 mail header -*- coding: utf-8 -*-
-;; Copyright (C) 1991, 1992, 1993, 1994, 1997, 2001
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1991, 1992, 1993, 1994, 1997, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Joe Wells <jbw@cs.bu.edu>
;; Maintainer: FSF
diff --git a/lisp/mail/mail-hist.el b/lisp/mail/mail-hist.el
index 0540c484a8..3010e85d31 100644
--- a/lisp/mail/mail-hist.el
+++ b/lisp/mail/mail-hist.el
@@ -1,6 +1,6 @@
;;; mail-hist.el --- headers and message body history for outgoing mail
-;; Copyright (C) 1994 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Karl Fogel <kfogel@red-bean.com>
;; Created: March, 1994
diff --git a/lisp/mail/mail-utils.el b/lisp/mail/mail-utils.el
index 3b68506b48..e76da171fb 100644
--- a/lisp/mail/mail-utils.el
+++ b/lisp/mail/mail-utils.el
@@ -1,6 +1,7 @@
;;; mail-utils.el --- utility functions used both by rmail and rnews
-;; Copyright (C) 1985, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: mail, news
diff --git a/lisp/mail/mailabbrev.el b/lisp/mail/mailabbrev.el
index 941dff7ca1..270d2cd638 100644
--- a/lisp/mail/mailabbrev.el
+++ b/lisp/mail/mailabbrev.el
@@ -1,7 +1,7 @@
;;; mailabbrev.el --- abbrev-expansion of mail aliases
-;; Copyright (C) 1985, 86, 87, 92, 93, 96, 1997, 2000, 2002, 2003
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1987, 1992, 1993, 1996, 1997, 2000, 2002,
+;; 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Jamie Zawinski <jwz@lucid.com>, now <jwz@jwz.org>
;; Maintainer: FSF
diff --git a/lisp/mail/mailalias.el b/lisp/mail/mailalias.el
index 55c284dda7..48f3494a0e 100644
--- a/lisp/mail/mailalias.el
+++ b/lisp/mail/mailalias.el
@@ -1,6 +1,7 @@
;;; mailalias.el --- expand and complete mailing address aliases
-;; Copyright (C) 1985, 1987, 1995, 1996, 1997 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1987, 1995, 1996, 1997, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: mail
@@ -261,6 +262,12 @@ By default, this is the file specified by `mail-personal-alias-file'."
((file-exists-p (setq file (concat "~/" file)))
(insert-file-contents file))
(t (setq file nil)))
+ (goto-char (point-min))
+ ;; Delete comments from the contents.
+ (while (search-forward "# " nil t)
+ (let ((p (- (point) 2)))
+ (end-of-line)
+ (delete-region p (point))))
;; Don't lose if no final newline.
(goto-char (point-max))
(or (eq (preceding-char) ?\n) (newline))
diff --git a/lisp/mail/mailheader.el b/lisp/mail/mailheader.el
index e7c4320cc4..1e9a24da34 100644
--- a/lisp/mail/mailheader.el
+++ b/lisp/mail/mailheader.el
@@ -1,6 +1,6 @@
;;; mailheader.el --- mail header parsing, merging, formatting
-;; Copyright (C) 1996 by Free Software Foundation, Inc.
+;; Copyright (C) 1996, 2002, 2003, 2004, 2005 by Free Software Foundation, Inc.
;; Author: Erik Naggum <erik@naggum.no>
;; Keywords: tools, mail, news
diff --git a/lisp/mail/metamail.el b/lisp/mail/metamail.el
index 0c5189e53e..6d13bda982 100644
--- a/lisp/mail/metamail.el
+++ b/lisp/mail/metamail.el
@@ -1,6 +1,7 @@
;;; metamail.el --- Metamail interface for GNU Emacs
-;; Copyright (C) 1993, 1996 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1996, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Masanobu UMEDA <umerin@mse.kyutech.ac.jp>
;; Keywords: mail, news, mime, multimedia
@@ -35,6 +36,9 @@
;;; Code:
+(defvar rmail-current-message)
+(defvar rmail-message-vector)
+
(defgroup metamail nil
"Metamail interface for Emacs."
:group 'mail
diff --git a/lisp/mail/mspools.el b/lisp/mail/mspools.el
index d1a3072eee..7a01a5e536 100644
--- a/lisp/mail/mspools.el
+++ b/lisp/mail/mspools.el
@@ -1,6 +1,6 @@
;;; mspools.el --- show mail spools waiting to be read
-;; Copyright (C) 1997 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Stephen Eglen <stephen@gnu.org>
;; Maintainer: Stephen Eglen <stephen@gnu.org>
@@ -110,6 +110,14 @@
;;; Code:
+(defvar rmail-inbox-list)
+(defvar vm-crash-box)
+(defvar vm-folder-directory)
+(defvar vm-init-file)
+(defvar vm-init-file-loaded)
+(defvar vm-primary-inbox)
+(defvar vm-spool-files)
+
;;; User Variables
(defgroup mspools nil
diff --git a/lisp/mail/reporter.el b/lisp/mail/reporter.el
index 673cb14e25..058d0a83f2 100644
--- a/lisp/mail/reporter.el
+++ b/lisp/mail/reporter.el
@@ -1,6 +1,7 @@
;;; reporter.el --- customizable bug reporting of lisp programs
-;; Copyright (C) 1993,1994,1995,1996,1997,1998 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: 1993-1998 Barry A. Warsaw
;; Maintainer: FSF
@@ -263,7 +264,7 @@ dumped."
varlist)
(lisp-indent-line)
(insert ")\n"))
- (insert-buffer elbuf))
+ (insert-buffer-substring elbuf))
(error
(insert "State could not be dumped due to the following error:\n\n"
(format "%s" fault)
diff --git a/lisp/mail/rfc2368.el b/lisp/mail/rfc2368.el
index d6864b664e..a21deb394c 100644
--- a/lisp/mail/rfc2368.el
+++ b/lisp/mail/rfc2368.el
@@ -3,7 +3,8 @@
;; Author: Sen Nagata <sen@eccosys.com>
;; Keywords: mail
-;; Copyright (C) 1998, 2000 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
diff --git a/lisp/mail/rfc822.el b/lisp/mail/rfc822.el
index 4c7cfeeaa6..9e57226d7c 100644
--- a/lisp/mail/rfc822.el
+++ b/lisp/mail/rfc822.el
@@ -1,6 +1,7 @@
;;; rfc822.el --- hairy rfc822 parser for mail and news and suchlike
-;; Copyright (C) 1986, 87, 1990 Free Software Foundation, Inc.
+;; Copyright (C) 1986, 1987, 1990, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Richard Mlynarik <mly@eddie.mit.edu>
;; Maintainer: FSF
diff --git a/lisp/mail/rmail-spam-filter.el b/lisp/mail/rmail-spam-filter.el
index 9cd2123e3c..7be5146f72 100644
--- a/lisp/mail/rmail-spam-filter.el
+++ b/lisp/mail/rmail-spam-filter.el
@@ -1,7 +1,6 @@
;;; rmail-spam-filter.el --- spam filter for rmail, the emacs mail reader.
-;; Copyright (C) 2002
-;; Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Keywords: email, spam, filter, rmail
;; Author: Eli Tziperman <eli AT deas.harvard.edu>
@@ -87,6 +86,9 @@
(require 'rmailsum)
(if (not (fboundp 'rmail-make-summary-line)) (load-library "rmailsum")))
+(defvar bbdb/mail_auto_create_p)
+(defvar rmail-summary-mode-map)
+
;; For find-if and other cool common lisp functions we may want to use.
(eval-when-compile
(require 'cl))
@@ -183,7 +185,7 @@ may be either 'this is spam' or 'another spam', use the regexp: 'this
is spam\\|another spam' (without the single quotes). To specify that
if the contents contain both this and that the message is spam,
specify 'this\\&that' in the appropriate spam definition field."
- :type '(repeat
+ :type '(repeat
(list :format "%v"
(cons :format "%v" :value (from . "")
(const :format "" from)
@@ -202,7 +204,7 @@ specify 'this\\&that' in the appropriate spam definition field."
(string :tag "Contents" ""))
(cons :format "%v" :value (action . output-and-delete)
(const :format "" action)
- (choice :tag "Action selection"
+ (choice :tag "Action selection"
(const :tag "output to spam folder and delete" output-and-delete)
(const :tag "delete spam" delete-spam)
))
@@ -218,7 +220,7 @@ for interaction with `rsf-bbdb-auto-delete-spam-entries'")
(defun check-field (field-symbol message-data definition result)
"Check if field-symbol is in `rsf-definitions-alist'.
Capture maybe-spam and this-is-a-spam-email in a cons in result,
-where maybe-spam is in first and this-is-a-spam-email is in rest.
+where maybe-spam is in first and this-is-a-spam-email is in rest.
The values are returned by destructively changing result.
If FIELD-SYMBOL field does not exist AND is not specified,
this may still be spam due to another element...
@@ -259,7 +261,7 @@ it from rmail file. Called for each new message retrieved by
(save-current-msg)
(rsf-saved-bbdb/mail_auto_create_p nil)
)
-
+
;; make sure bbdb does not create entries for messages while spam
;; filter is scanning the rmail file:
(setq rsf-saved-bbdb/mail_auto_create_p 'bbdb/mail_auto_create_p)
@@ -291,7 +293,7 @@ it from rmail file. Called for each new message retrieved by
;;; do we want to ignore case in spam definitions:
(setq case-fold-search rsf-ignore-case)
-
+
;; Check for blind CC condition. Set vars such that while
;; loop will be bypassed and spam condition will trigger
(if (and rsf-no-blind-cc
@@ -339,7 +341,7 @@ it from rmail file. Called for each new message retrieved by
;; start scanning incoming message:
;;---------------------------------
-
+
;; Maybe the different fields should also be done in a
;; loop to make the whole thing more flexible
;; if sender field is not specified in message being
@@ -352,16 +354,16 @@ it from rmail file. Called for each new message retrieved by
;; next, if spam was not ruled out already, check subject:
(check-field 'subject message-subject definition maybe-spam)
;; next, if spam was not ruled out already, check content-type:
- (check-field 'content-type message-content-type
+ (check-field 'content-type message-content-type
definition maybe-spam)
;; next, if spam was not ruled out already, check
;; contents: if contents field is not specified, this may
;; still be spam due to another element...
- (check-field 'contents
+ (check-field 'contents
(buffer-substring
(rmail-msgbeg msg) (rmail-msgend msg))
definition maybe-spam)
-
+
;; if the search in rsf-definitions-alist found
;; that this email is spam, output the email to the spam
;; rmail file, mark the email for deletion, leave the
@@ -378,7 +380,7 @@ it from rmail file. Called for each new message retrieved by
(setq num-element (+ num-element 1)))
)
)
-
+
;; (BK) re-set originally used variables
(setq this-is-a-spam-email (rest maybe-spam)
maybe-spam (first maybe-spam))
@@ -610,9 +612,9 @@ automatically, no user input is required."
(while definitions
(setq current (car definitions))
(setq definitions (cdr definitions))
- (setq result
+ (setq result
(append result
- (list
+ (list
(list (assoc 'from current)
(assoc 'to current)
(assoc 'subject current)
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el
index 4b10c93749..b84ea1f34d 100644
--- a/lisp/mail/rmail.el
+++ b/lisp/mail/rmail.el
@@ -1,7 +1,7 @@
;;; rmail.el --- main code of "RMAIL" mail reader for Emacs
-;; Copyright (C) 1985,86,87,88,93,94,95,96,97,98,2000,01,2004,2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1996, 1997, 1998,
+;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: mail
@@ -42,6 +42,16 @@
(require 'mail-utils)
(eval-when-compile (require 'mule-util)) ; for detect-coding-with-priority
+(defvar deleted-head)
+(defvar font-lock-fontified)
+(defvar mail-abbrev-syntax-table)
+(defvar mail-abbrevs)
+(defvar messages-head)
+(defvar rmail-use-spam-filter)
+(defvar rsf-beep)
+(defvar rsf-sleep-after-message)
+(defvar total-messages)
+
; These variables now declared in paths.el.
;(defvar rmail-spool-directory "/usr/spool/mail/"
; "This is the name of the directory used by the system mailer for\n\
@@ -108,7 +118,7 @@ Please use `rmail-remote-password' instead."
:group 'rmail-obsolete)
(defcustom rmail-pop-password-required nil
- "*Non-nil if a password is required when reading mail from a POP server.
+ "*Non-nil if a password is required when reading mail from a POP server.
Please use rmail-remote-password-required instead."
:type 'boolean
:group 'rmail-obsolete)
@@ -251,21 +261,33 @@ It is useful to set this variable in the site customization file.")
"\\|^x400-received:\\|^x400-mts-identifier:\\|^x400-content-type:"
"\\|^\\(resent-\\|\\)message-id:\\|^summary-line:\\|^resent-date:"
"\\|^nntp-posting-host:\\|^path:\\|^x-char.*:\\|^x-face:\\|^face:"
- "\\|^x-mailer:\\|^delivered-to:\\|^lines:\\|^mime-version:"
+ "\\|^x-mailer:\\|^delivered-to:\\|^lines:"
"\\|^content-transfer-encoding:\\|^x-coding-system:"
"\\|^return-path:\\|^errors-to:\\|^return-receipt-to:"
- "\\|^x-sign:\\|^x-beenthere:\\|^x-mailman-version:\\|^x-mailman-copy:"
"\\|^precedence:\\|^list-help:\\|^list-post:\\|^list-subscribe:"
"\\|^list-id:\\|^list-unsubscribe:\\|^list-archive:"
- "\\|^content-type:\\|^content-length:"
- "\\|^x-attribution:\\|^x-disclaimer:\\|^x-trace:"
- "\\|^x-complaints-to:\\|^nntp-posting-date:\\|^user-agent"
- "\\|^importance:\\|^envelope-to:\\|^delivery-date"
- "\\|^x.*-priority:\\|^x-mimeole:\\|^x-archive:"
- "\\|^resent-face:\\|^resent-x.*:\\|^resent-organization\\|^resent-openpgp"
- "\\|^openpgp:\\|^x-request-pgp:\\|^x-original.*:"
- "\\|^x-virus-scanned:\\|^x-spam-[^s].*:")
+ "\\|^content-length:\\|^nntp-posting-date:\\|^user-agent"
+ "\\|^importance:\\|^envelope-to:\\|^delivery-date\\|^openpgp:"
+ "\\|^mbox-line:\\|^cancel-lock:"
+ "\\|^resent-face:\\|^resent-x.*:\\|^resent-organization:\\|^resent-openpgp:"
+
+ "\\|^x-.*:")
"*Regexp to match header fields that Rmail should normally hide.
+\(See also `rmail-nonignored-headers', which overrides this regexp.)
+This variable is used for reformatting the message header,
+which normally happens once for each message,
+when you view the message for the first time in Rmail.
+To make a change in this variable take effect
+for a message that you have already viewed,
+go to that message and type \\[rmail-toggle-header] twice."
+ :type 'regexp
+ :group 'rmail-headers)
+
+(defcustom rmail-nonignored-headers "^x-spam-status:"
+ "*Regexp to match X header fields that Rmail should show.
+This regexp overrides `rmail-ignored-headers'; if both this regexp
+and that one match a certain header field, Rmail shows the field.
+
This variable is used for reformatting the message header,
which normally happens once for each message,
when you view the message for the first time in Rmail.
@@ -952,6 +974,7 @@ Note: it means the file has no messages in it.\n\^_")))
(define-key rmail-mode-map "w" 'rmail-output-body-to-file)
(define-key rmail-mode-map "x" 'rmail-expunge)
(define-key rmail-mode-map "." 'rmail-beginning-of-message)
+ (define-key rmail-mode-map "/" 'rmail-end-of-message)
(define-key rmail-mode-map "<" 'rmail-first-message)
(define-key rmail-mode-map ">" 'rmail-last-message)
(define-key rmail-mode-map " " 'scroll-up)
@@ -1096,7 +1119,8 @@ Note: it means the file has no messages in it.\n\^_")))
All normal editing commands are turned off.
Instead, these commands are available:
-\\[rmail-beginning-of-message] Move point to front of this message (same as \\[beginning-of-buffer]).
+\\[rmail-beginning-of-message] Move point to front of this message.
+\\[rmail-end-of-message] Move point to bottom of this message.
\\[scroll-up] Scroll to next screen of this message.
\\[scroll-down] Scroll to previous screen of this message.
\\[rmail-next-undeleted-message] Move to Next non-deleted message.
@@ -1634,7 +1658,7 @@ is non-nil if the user has supplied the password interactively.
(pass (match-string 5 file))
(host (substring file (or (match-end 2)
(+ 3 (match-end 1))))))
-
+
(if (not pass)
(when rmail-remote-password-required
(setq got-password (not (rmail-have-password)))
@@ -1652,19 +1676,19 @@ is non-nil if the user has supplied the password interactively.
(or (string-equal proto "pop") (string-equal proto "imap"))
supplied-password
got-password))))
-
+
((string-match "^po:\\([^:]+\\)\\(:\\(.*\\)\\)?" file)
(let (got-password supplied-password
(proto "pop")
(user (match-string 1 file))
(host (match-string 3 file)))
-
+
(when rmail-remote-password-required
(setq got-password (not (rmail-have-password)))
(setq supplied-password (rmail-get-remote-password nil)))
(list file "pop" supplied-password got-password)))
-
+
(t
(list file nil nil nil))))
@@ -2181,7 +2205,8 @@ If the optional argument IGNORED-HEADERS is non-nil,
delete all header fields whose names match that regexp.
Otherwise, if `rmail-displayed-headers' is non-nil,
delete all header fields *except* those whose names match that regexp.
-Otherwise, delete all header fields whose names match `rmail-ignored-headers'."
+Otherwise, delete all header fields whose names match `rmail-ignored-headers'
+unless they also match `rmail-nonignored-headers'."
(when (search-forward "\n\n" nil t)
(forward-char -1)
(let ((case-fold-search t)
@@ -2205,15 +2230,17 @@ Otherwise, delete all header fields whose names match `rmail-ignored-headers'."
(or ignored-headers (setq ignored-headers rmail-ignored-headers))
(save-restriction
(narrow-to-region (point-min) (point))
+ (goto-char (point-min))
(while (and ignored-headers
- (progn
- (goto-char (point-min))
- (re-search-forward ignored-headers nil t)))
+ (re-search-forward ignored-headers nil t))
(beginning-of-line)
- (delete-region (point)
- (if (re-search-forward "\n[^ \t]" nil t)
- (1- (point))
- (point-max)))))))))
+ (if (looking-at rmail-nonignored-headers)
+ (forward-line 1)
+ (delete-region (point)
+ (save-excursion
+ (if (re-search-forward "\n[^ \t]" nil t)
+ (1- (point))
+ (point-max)))))))))))
(defun rmail-msg-is-pruned ()
(rmail-maybe-set-message-counters)
@@ -2604,7 +2631,19 @@ change the invisible header text."
(defun rmail-beginning-of-message ()
"Show current message starting from the beginning."
(interactive)
- (rmail-show-message rmail-current-message))
+ (let ((rmail-show-message-hook
+ (list (function (lambda ()
+ (goto-char (point-min)))))))
+ (rmail-show-message rmail-current-message)))
+
+(defun rmail-end-of-message ()
+ "Show bottom of current message."
+ (interactive)
+ (let ((rmail-show-message-hook
+ (list (function (lambda ()
+ (goto-char (point-max))
+ (recenter (1- (window-height))))))))
+ (rmail-show-message rmail-current-message)))
(defun rmail-unknown-mail-followup-to ()
"Handle a \"Mail-Followup-To\" header field with an unknown mailing list.
@@ -2614,7 +2653,7 @@ Ask the user whether to add that list name to `mail-mailing-lists'."
(let ((mail-followup-to (mail-fetch-field "mail-followup-to" nil t)))
(when mail-followup-to
(let ((addresses
- (split-string
+ (split-string
(mail-strip-quoted-names mail-followup-to)
",[[:space:]]+" t)))
(dolist (addr addresses)
@@ -3316,10 +3355,10 @@ See also user-option `rmail-confirm-expunge'."
(narrow-to-region (- (buffer-size) omin) (- (buffer-size) omax)))
(if (not dont-show)
(rmail-show-message
- (if (zerop rmail-current-message) 1 nil)
- (if rmail-enable-mime
- (goto-char (+ (point-min) opoint))
- (goto-char (+ (point) opoint))))))))
+ (if (zerop rmail-current-message) 1 nil)))
+ (if rmail-enable-mime
+ (goto-char (+ (point-min) opoint))
+ (goto-char (+ (point) opoint))))))
(defun rmail-expunge ()
"Erase deleted messages from Rmail file and summary buffer."
@@ -3398,18 +3437,11 @@ use \\[mail-yank-original] to yank the original message into it."
(progn (search-forward "\n*** EOOH ***\n")
(beginning-of-line) (point)))))
(setq from (mail-fetch-field "from")
- reply-to (or (if just-sender
- (mail-fetch-field "mail-reply-to" nil t)
- (mail-fetch-field "mail-followup-to" nil t))
+ reply-to (or (mail-fetch-field "mail-reply-to" nil t)
(mail-fetch-field "reply-to" nil t)
from)
- cc (and (not just-sender)
- ;; mail-followup-to, if given, overrides cc.
- (not (mail-fetch-field "mail-followup-to" nil t))
- (mail-fetch-field "cc" nil t))
subject (mail-fetch-field "subject")
date (mail-fetch-field "date")
- to (or (mail-fetch-field "to" nil t) "")
message-id (mail-fetch-field "message-id")
references (mail-fetch-field "references" nil nil t)
resent-reply-to (mail-fetch-field "resent-reply-to" nil t)
@@ -3419,7 +3451,16 @@ use \\[mail-yank-original] to yank the original message into it."
;;; resent-subject (mail-fetch-field "resent-subject")
;;; resent-date (mail-fetch-field "resent-date")
;;; resent-message-id (mail-fetch-field "resent-message-id")
- )))
+ )
+ (unless just-sender
+ (if (mail-fetch-field "mail-followup-to" nil t)
+ ;; If this header field is present, use it instead of the To and CC fields.
+ (setq to (mail-fetch-field "mail-followup-to" nil t))
+ (setq cc (or (mail-fetch-field "cc" nil t) "")
+ to (or (mail-fetch-field "to" nil t) ""))))
+
+ ))
+
;; Merge the resent-to and resent-cc into the to and cc.
(if (and resent-to (not (equal resent-to "")))
(if (not (equal to ""))
@@ -4058,7 +4099,6 @@ encoded string (and the same mask) will decode the string."
;;;; Desktop support
-;;;###autoload
(defun rmail-restore-desktop-buffer (desktop-buffer-file-name
desktop-buffer-name
desktop-buffer-misc)
@@ -4073,6 +4113,9 @@ encoded string (and the same mask) will decode the string."
(kill-buffer (current-buffer))
nil)))
+(add-to-list 'desktop-buffer-mode-handlers
+ '(rmail-mode . rmail-restore-desktop-buffer))
+
(provide 'rmail)
;;; arch-tag: cff0a950-57fe-4f73-a86e-91ff75afd06c
diff --git a/lisp/mail/rmailedit.el b/lisp/mail/rmailedit.el
index 40dba181d5..75de9810a3 100644
--- a/lisp/mail/rmailedit.el
+++ b/lisp/mail/rmailedit.el
@@ -1,6 +1,7 @@
;;; rmailedit.el --- "RMAIL edit mode" Edit the current message
-;; Copyright (C) 1985, 1994, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1994, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: mail
diff --git a/lisp/mail/rmailkwd.el b/lisp/mail/rmailkwd.el
index fc57b2a4d5..843c6fc80a 100644
--- a/lisp/mail/rmailkwd.el
+++ b/lisp/mail/rmailkwd.el
@@ -1,6 +1,7 @@
;;; rmailkwd.el --- part of the "RMAIL" mail reader for Emacs
-;; Copyright (C) 1985, 1988, 1994, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1988, 1994, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: mail
@@ -26,6 +27,13 @@
;;; Code:
+(defvar rmail-buffer)
+(defvar rmail-current-message)
+(defvar rmail-last-label)
+(defvar rmail-last-multi-labels)
+(defvar rmail-summary-vector)
+(defvar rmail-total-messages)
+
;; Global to all RMAIL buffers. It exists primarily for the sake of
;; completion. It is better to use strings with the label functions
;; and let them worry about making the label.
diff --git a/lisp/mail/rmailmsc.el b/lisp/mail/rmailmsc.el
index 50626d714c..26d61b5683 100644
--- a/lisp/mail/rmailmsc.el
+++ b/lisp/mail/rmailmsc.el
@@ -1,6 +1,6 @@
;;; rmailmsc.el --- miscellaneous support functions for the RMAIL mail reader
-;; Copyright (C) 1985 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: mail
@@ -26,6 +26,9 @@
;;; Code:
+(defvar rmail-current-message)
+(defvar rmail-inbox-list)
+
;;;###autoload
(defun set-rmail-inbox-list (file-name)
"Set the inbox list of the current RMAIL file to FILE-NAME.
diff --git a/lisp/mail/rmailout.el b/lisp/mail/rmailout.el
index d3baf08c26..a3b46ddaed 100644
--- a/lisp/mail/rmailout.el
+++ b/lisp/mail/rmailout.el
@@ -1,6 +1,7 @@
;;; rmailout.el --- "RMAIL" mail reader for Emacs: output message to a file
-;; Copyright (C) 1985, 1987, 1993, 1994, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1987, 1993, 1994, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: mail
diff --git a/lisp/mail/rmailsort.el b/lisp/mail/rmailsort.el
index 32188657c4..8bb8ab6927 100644
--- a/lisp/mail/rmailsort.el
+++ b/lisp/mail/rmailsort.el
@@ -1,6 +1,7 @@
;;; rmailsort.el --- Rmail: sort messages
-;; Copyright (C) 1990, 1993, 1994, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1993, 1994, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Masanobu UMEDA <umerin@mse.kyutech.ac.jp>
;; Maintainer: FSF
diff --git a/lisp/mail/rmailsum.el b/lisp/mail/rmailsum.el
index e3cb4ce1eb..ad2c275a67 100644
--- a/lisp/mail/rmailsum.el
+++ b/lisp/mail/rmailsum.el
@@ -1,7 +1,7 @@
;;; rmailsum.el --- make summary buffers for the mail reader
-;; Copyright (C) 1985, 1993, 1994, 1995, 1996, 2000, 2001
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1993, 1994, 1995, 1996, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: mail
@@ -31,6 +31,8 @@
;;; Code:
+(defvar msgnum)
+
;; For rmail-select-summary
(require 'rmail)
@@ -898,6 +900,7 @@ Search, the `unseen' attribute is restored.")
(define-key rmail-summary-mode-map "x" 'rmail-summary-expunge)
(define-key rmail-summary-mode-map "w" 'rmail-summary-output-body)
(define-key rmail-summary-mode-map "." 'rmail-summary-beginning-of-message)
+ (define-key rmail-summary-mode-map "/" 'rmail-summary-end-of-message)
(define-key rmail-summary-mode-map "<" 'rmail-summary-first-message)
(define-key rmail-summary-mode-map ">" 'rmail-summary-last-message)
(define-key rmail-summary-mode-map " " 'rmail-summary-scroll-msg-up)
@@ -1185,6 +1188,16 @@ move to the previous message."
(defun rmail-summary-beginning-of-message ()
"Show current message from the beginning."
(interactive)
+ (rmail-summary-show-message 'BEG))
+
+(defun rmail-summary-end-of-message ()
+ "Show bottom of current message."
+ (interactive)
+ (rmail-summary-show-message 'END))
+
+(defun rmail-summary-show-message (where)
+ "Show current mail message.
+Position it according to WHERE which can be BEG or END"
(if (and (one-window-p) (not pop-up-frames))
;; If there is just one window, put the summary on the top.
(let ((buffer rmail-view-buffer))
@@ -1196,8 +1209,14 @@ move to the previous message."
(or (eq buffer (window-buffer (next-window (frame-first-window))))
(delete-other-windows)))
(pop-to-buffer rmail-view-buffer))
- (with-no-warnings
- (beginning-of-buffer))
+ (cond
+ ((eq where 'BEG)
+ (goto-char (point-min))
+ (search-forward "\n\n"))
+ ((eq where 'END)
+ (goto-char (point-max))
+ (recenter (1- (window-height))))
+ )
(pop-to-buffer rmail-summary-buffer))
(defun rmail-summary-bury ()
diff --git a/lisp/mail/sendmail.el b/lisp/mail/sendmail.el
index 337301ebcf..f2dec75752 100644
--- a/lisp/mail/sendmail.el
+++ b/lisp/mail/sendmail.el
@@ -1,7 +1,7 @@
;;; sendmail.el --- mail sending commands for Emacs. -*- byte-compile-dynamic: t -*-
-;; Copyright (C) 1985, 86, 92, 93, 94, 95, 96, 98, 2000, 2001, 2002, 03, 2004
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1992, 1993, 1994, 1995, 1996, 1998, 2000,
+;; 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: mail
@@ -1432,7 +1432,9 @@ and don't delete any header fields."
;; delete that window to save screen space.
;; t means don't alter other frames.
(delete-windows-on original t)
- (insert-buffer original)
+ (with-no-warnings
+ ;; We really want this to set mark.
+ (insert-buffer original))
(set-text-properties (point) (mark t) nil))
(if (consp arg)
nil
diff --git a/lisp/mail/smtpmail.el b/lisp/mail/smtpmail.el
index 0c07601104..55a4d060fa 100644
--- a/lisp/mail/smtpmail.el
+++ b/lisp/mail/smtpmail.el
@@ -1,6 +1,6 @@
;;; smtpmail.el --- simple SMTP protocol (RFC 821) for sending mail
-;; Copyright (C) 1995, 1996, 2001, 2002, 2003, 2004
+;; Copyright (C) 1995, 1996, 2001, 2002, 2003, 2004, 2005
;; Free Software Foundation, Inc.
;; Author: Tomoji Kagatani <kagatani@rbc.ncl.omron.co.jp>
@@ -207,7 +207,7 @@ This is relative to `smtpmail-queue-dir'.")
(defvar smtpmail-queue-index (concat smtpmail-queue-dir
smtpmail-queue-index-file))
-(defconst smtpmail-auth-supported '(cram-md5 login)
+(defconst smtpmail-auth-supported '(cram-md5 plain login)
"List of supported SMTP AUTH mechanisms.")
;;;
@@ -559,8 +559,24 @@ This is relative to `smtpmail-queue-dir'.")
(not (integerp (car ret)))
(>= (car ret) 400))
(throw 'done nil)))
+ ((eq mech 'plain)
+ (smtpmail-send-command process "AUTH PLAIN")
+ (if (or (null (car (setq ret (smtpmail-read-response process))))
+ (not (integerp (car ret)))
+ (not (equal (car ret) 334)))
+ (throw 'done nil))
+ (smtpmail-send-command process (base64-encode-string
+ (concat "\0"
+ (smtpmail-cred-user cred)
+ "\0"
+ (smtpmail-cred-passwd cred))))
+ (if (or (null (car (setq ret (smtpmail-read-response process))))
+ (not (integerp (car ret)))
+ (not (equal (car ret) 235)))
+ (throw 'done nil)))
+
(t
- (error "Mechanism %s not implemented" mech)))
+ (error "Mechanism %s not implemented" mech)))
;; Remember the password.
(when (and (not (stringp smtpmail-auth-credentials))
(null (smtpmail-cred-passwd cred)))
diff --git a/lisp/mail/supercite.el b/lisp/mail/supercite.el
index 5f219510b2..a180c6c67c 100644
--- a/lisp/mail/supercite.el
+++ b/lisp/mail/supercite.el
@@ -1,6 +1,7 @@
;;; supercite.el --- minor mode for citing mail and news replies
-;; Copyright (C) 1993, 1997, 2003, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1997, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: 1993 Barry A. Warsaw <bwarsaw@python.org>
;; Maintainer: Glenn Morris <gmorris@ast.cam.ac.uk>
@@ -642,8 +643,8 @@ the list should be unique."
(prog1 quit-flag (setq quit-flag nil)))
(progn
(message "%s%s" p (single-key-description event))
- (and (fboundp 'deallocate-event)
- (deallocate-event event))
+ (if (fboundp 'deallocate-event)
+ (deallocate-event event))
(setq quit-flag nil)
(signal 'quit '())))
(let ((char
@@ -658,8 +659,8 @@ the list should be unique."
((setq elt (rassq char alist))
(message "%s%s" p (car elt))
(setq p (cdr elt)))
- ((and (fboundp 'button-release-event-p)
- (button-release-event-p event)) ; ignore them
+ ((if (fboundp 'button-release-event-p)
+ (button-release-event-p event)) ; ignore them
nil)
(t
(message "%s%s" p (single-key-description event))
@@ -669,8 +670,8 @@ the list should be unique."
(discard-input)
(if (eq p prompt)
(setq p (concat "Try again. " prompt)))))))
- (and (fboundp 'deallocate-event)
- (deallocate-event event))
+ (if (fboundp 'deallocate-event)
+ (deallocate-event event))
p))
(defun sc-scan-info-alist (alist)
@@ -1516,7 +1517,8 @@ non-nil."
(progn (forward-line -1)
(or (= (point) (mail-header-end))
(and (eq major-mode 'mh-letter-mode)
- (mh-in-header-p)))))
+ (with-no-warnings
+ (mh-in-header-p))))))
(progn (forward-line)
(let ((kill-lines-magic t))
(kill-line))))))
diff --git a/lisp/mail/uce.el b/lisp/mail/uce.el
index 14e613ac28..07c0976597 100644
--- a/lisp/mail/uce.el
+++ b/lisp/mail/uce.el
@@ -1,6 +1,7 @@
;;; uce.el --- facilitate reply to unsolicited commercial email
-;; Copyright (C) 1996, 1998, 2000 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1998, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: stanislav shalunov <shalunov@mccme.ru>
;; Created: 10 Dec 1996
@@ -114,6 +115,10 @@
;;; Code:
+(defvar gnus-original-article-buffer)
+(defvar mail-reply-buffer)
+(defvar rmail-current-message)
+
(require 'sendmail)
;; Those sections of code which are dependent upon
;; RMAIL are only evaluated if we have received a message with RMAIL...
@@ -283,7 +288,7 @@ address, and postmaster of the mail relay used."
(re-search-forward "^Lines:")
(beginning-of-line))
((eq uce-mail-reader 'rmail)
- (beginning-of-buffer)
+ (goto-char (point-min))
(search-forward "*** EOOH ***\n")
(beginning-of-line)
(forward-line -1)))
@@ -364,11 +369,7 @@ address, and postmaster of the mail relay used."
(if (file-exists-p "~/.signature")
(progn
(insert "\n\n-- \n")
- (insert-file "~/.signature")
- ;; Function insert-file leaves point where it was,
- ;; while we want to place signature in the ``middle''
- ;; of the message.
- (exchange-point-and-mark))))
+ (forward-char (cadr (insert-file-contents "~/.signature"))))))
(uce-signature
(insert "\n\n-- \n" uce-signature)))
;; And text of the original message.
diff --git a/lisp/mail/undigest.el b/lisp/mail/undigest.el
index b19c9a140d..5588ecf910 100644
--- a/lisp/mail/undigest.el
+++ b/lisp/mail/undigest.el
@@ -1,7 +1,7 @@
;;; undigest.el --- digest-cracking support for the RMAIL mail reader
-;; Copyright (C) 1985, 1986, 1994, 1996, 2002
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1994, 1996, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: mail
diff --git a/lisp/mail/unrmail.el b/lisp/mail/unrmail.el
index bcac0cee0d..76764d21ed 100644
--- a/lisp/mail/unrmail.el
+++ b/lisp/mail/unrmail.el
@@ -1,6 +1,6 @@
;;; unrmail.el --- convert Rmail files to mailbox files
-;;; Copyright (C) 1992, 2002 Free Software Foundation, Inc.
+;;; Copyright (C) 1992, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: mail
diff --git a/lisp/mail/vms-pmail.el b/lisp/mail/vms-pmail.el
index 881c4d95a6..b53b32be71 100644
--- a/lisp/mail/vms-pmail.el
+++ b/lisp/mail/vms-pmail.el
@@ -1,6 +1,6 @@
;;; vms-pmail.el --- use Emacs as the editor within VMS mail
-;; Copyright (C) 1992 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Roland B Roberts <roberts@panix.com>
;; Maintainer: FSF
diff --git a/lisp/makefile.w32-in b/lisp/makefile.w32-in
index 8c6007af55..6d3cacecc6 100644
--- a/lisp/makefile.w32-in
+++ b/lisp/makefile.w32-in
@@ -1,5 +1,6 @@
# -*- Makefile -*- for GNU Emacs on the Microsoft W32 API.
-# Copyright (c) 2000, 2001, 2004, 2005 Free Software Foundation, Inc.
+# Copyright (C) 2000, 2001, 2002, 2003, 2004,
+# 2005 Free Software Foundation, Inc.
#
# This file is part of GNU Emacs.
#
diff --git a/lisp/makesum.el b/lisp/makesum.el
index 985012f90d..41ecb630f9 100644
--- a/lisp/makesum.el
+++ b/lisp/makesum.el
@@ -1,6 +1,6 @@
;;; makesum.el --- generate key binding summary for Emacs
-;; Copyright (C) 1985 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: help
diff --git a/lisp/man.el b/lisp/man.el
index cb62aa65e9..60fc7c009e 100644
--- a/lisp/man.el
+++ b/lisp/man.el
@@ -1,7 +1,7 @@
;;; man.el --- browse UNIX manual pages -*- coding: iso-8859-1 -*-
-;; Copyright (C) 1993, 1994, 1996, 1997, 2001, 2003, 2004
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 1996, 1997, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Barry A. Warsaw <bwarsaw@cen.com>
;; Maintainer: FSF
@@ -352,6 +352,7 @@ Otherwise, the value is whatever the function
(make-variable-buffer-local 'Man-page-mode-string)
(make-variable-buffer-local 'Man-original-frame)
(make-variable-buffer-local 'Man-arguments)
+(put 'Man-arguments 'permanent-local t)
(setq-default Man-sections-alist nil)
(setq-default Man-refpages-alist nil)
@@ -444,7 +445,7 @@ Otherwise, the value is whatever the function
;; utilities
(defun Man-init-defvars ()
- "Used for initialising variables based on display's color support.
+ "Used for initializing variables based on display's color support.
This is necessary if one wants to dump man.el with Emacs."
;; Avoid possible error in call-process by using a directory that must exist.
@@ -552,8 +553,8 @@ This is necessary if one wants to dump man.el with Emacs."
(defun Man-translate-references (ref)
"Translates REF from \"chmod(2V)\" to \"2v chmod\" style.
Leave it as is if already in that style. Possibly downcase and
-translate the section (see the Man-downcase-section-letters-flag
-and the Man-section-translations-alist variables)."
+translate the section (see the `Man-downcase-section-letters-flag'
+and the `Man-section-translations-alist' variables)."
(let ((name "")
(section "")
(slist Man-section-translations-alist))
@@ -591,7 +592,7 @@ This option allows `man' to interpret command line arguments
as local filenames.
Return the value of the variable `Man-support-local-filenames'
if it was set to nil or t before the call of this function.
-If t, the man command supports `-l' option. If nil, it don't.
+If t, the man command supports `-l' option. If nil, it doesn't.
Otherwise, if the value of `Man-support-local-filenames'
is neither t nor nil, then determine a new value, set it
to the variable `Man-support-local-filenames' and return
@@ -904,8 +905,8 @@ Same for the ANSI bold and normal escape sequences."
(defun Man-highlight-references ()
"Highlight the references on mouse-over.
-references include items in the SEE ALSO section,
-header file(#include <foo.h>) and files in FILES"
+References include items in the SEE ALSO section,
+header file (#include <foo.h>) and files in FILES."
(let ((dummy 0))
(Man-highlight-references0
Man-see-also-regexp Man-reference-regexp 1 dummy
@@ -1005,8 +1006,15 @@ manpage command."
(if Man-fontify-manpage-flag
(Man-fontify-manpage)
(Man-cleanup-manpage))
+
(run-hooks 'Man-cooked-hook)
- (Man-mode)
+ (Man-mode)
+
+ (if (not Man-page-list)
+ (let ((args Man-arguments))
+ (kill-buffer (current-buffer))
+ (error "Can't find the %s manpage" args)))
+
(set-buffer-modified-p nil)
))
;; Restore case-fold-search before calling
@@ -1082,7 +1090,7 @@ The following key bindings are currently in effect in the buffer:
(Man-build-page-list)
(Man-strip-page-headers)
(Man-unindent)
- (Man-goto-page 1)
+ (Man-goto-page 1 t)
(run-mode-hooks 'Man-mode-hook))
(defsubst Man-build-section-alist ()
@@ -1342,35 +1350,32 @@ Specify which REFERENCE to use; default is based on word at point."
(interactive)
(quit-window))
-(defun Man-goto-page (page)
+(defun Man-goto-page (page &optional noerror)
"Go to the manual page on page PAGE."
(interactive
(if (not Man-page-list)
- (let ((args Man-arguments))
- (kill-buffer (current-buffer))
- (error "Can't find the %s manpage" args))
+ (error "Not a man page buffer")
(if (= (length Man-page-list) 1)
(error "You're looking at the only manpage in the buffer")
(list (read-minibuffer (format "Go to manpage [1-%d]: "
(length Man-page-list)))))))
- (if (not Man-page-list)
- (let ((args Man-arguments))
- (kill-buffer (current-buffer))
- (error "Can't find the %s manpage" args)))
- (if (or (< page 1)
- (> page (length Man-page-list)))
- (error "No manpage %d found" page))
- (let* ((page-range (nth (1- page) Man-page-list))
- (page-start (car page-range))
- (page-end (car (cdr page-range))))
- (setq Man-current-page page
- Man-page-mode-string (Man-make-page-mode-string))
- (widen)
- (goto-char page-start)
- (narrow-to-region page-start page-end)
- (Man-build-section-alist)
- (Man-build-references-alist)
- (goto-char (point-min))))
+ (if (and (not Man-page-list) (not noerror))
+ (error "Not a man page buffer"))
+ (when Man-page-list
+ (if (or (< page 1)
+ (> page (length Man-page-list)))
+ (error "No manpage %d found" page))
+ (let* ((page-range (nth (1- page) Man-page-list))
+ (page-start (car page-range))
+ (page-end (car (cdr page-range))))
+ (setq Man-current-page page
+ Man-page-mode-string (Man-make-page-mode-string))
+ (widen)
+ (goto-char page-start)
+ (narrow-to-region page-start page-end)
+ (Man-build-section-alist)
+ (Man-build-references-alist)
+ (goto-char (point-min)))))
(defun Man-next-manpage ()
diff --git a/lisp/master.el b/lisp/master.el
index bdc5144d63..adf3e92dcb 100644
--- a/lisp/master.el
+++ b/lisp/master.el
@@ -1,6 +1,6 @@
;;; master.el --- make a buffer the master over another buffer
-;; Copyright (C) 1999, 2000, 2001, 2005 Alexander Schroeder
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 Alexander Schroeder
;; Author: Alex Schroeder <alex@gnu.org>
;; Maintainer: Alex Schroeder <alex@gnu.org>
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el
index b6230189cc..302ede8c8f 100644
--- a/lisp/menu-bar.el
+++ b/lisp/menu-bar.el
@@ -1,7 +1,7 @@
;;; menu-bar.el --- define a default menu bar
-;; Copyright (C) 1993, 1994, 1995, 2000, 2001, 2002, 2003, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 1995, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: RMS
;; Maintainer: FSF
@@ -99,13 +99,17 @@ A large number or nil slows down menu responsiveness."
:help "Open a new frame"))
(define-key menu-bar-file-menu [one-window]
- '(menu-item "Unsplit Windows" delete-other-windows
+ '(menu-item "Remove Splits" delete-other-windows
:enable (not (one-window-p t nil))
- :help "Make selected window fill its frame"))
+ :help "Selected window grows to fill the whole frame"))
(define-key menu-bar-file-menu [split-window]
'(menu-item "Split Window" split-window-vertically
- :help "Split selected window in two"))
+ :enable (and (frame-live-p menu-updating-frame)
+ (frame-visible-p menu-updating-frame )
+ (not (window-minibuffer-p
+ (frame-selected-window menu-updating-frame))))
+ :help "Split selected window in two windows"))
(define-key menu-bar-file-menu [separator-window]
'(menu-item "--"))
@@ -116,6 +120,8 @@ A large number or nil slows down menu responsiveness."
:help "Pretty-print marked region in black and white to PostScript printer"))
(define-key menu-bar-file-menu [ps-print-buffer]
'(menu-item "Postscript Print Buffer (B+W)" ps-print-buffer
+ :enable (and (frame-live-p menu-updating-frame)
+ (frame-visible-p menu-updating-frame ))
:help "Pretty-print current buffer in black and white to PostScript printer"))
(define-key menu-bar-file-menu [ps-print-region-faces]
'(menu-item "Postscript Print Region" ps-print-region-with-faces
@@ -123,6 +129,8 @@ A large number or nil slows down menu responsiveness."
:help "Pretty-print marked region to PostScript printer"))
(define-key menu-bar-file-menu [ps-print-buffer-faces]
'(menu-item "Postscript Print Buffer" ps-print-buffer-with-faces
+ :enable (and (frame-live-p menu-updating-frame)
+ (frame-visible-p menu-updating-frame ))
:help "Pretty-print current buffer to PostScript printer"))
(define-key menu-bar-file-menu [print-region]
'(menu-item "Print Region" print-region
@@ -130,6 +138,8 @@ A large number or nil slows down menu responsiveness."
:help "Print region between mark and current position"))
(define-key menu-bar-file-menu [print-buffer]
'(menu-item "Print Buffer" print-buffer
+ :enable (and (frame-live-p menu-updating-frame)
+ (frame-visible-p menu-updating-frame ))
:help "Print current buffer with page headings"))
(define-key menu-bar-file-menu [separator-print]
@@ -159,12 +169,14 @@ A large number or nil slows down menu responsiveness."
(current-buffer))))))
:help "Re-read current buffer from its file"))
(define-key menu-bar-file-menu [write-file]
- '(menu-item "Save Buffer As..." write-file
- :enable (not (window-minibuffer-p
- (frame-selected-window menu-updating-frame)))
+ '(menu-item "Save As..." write-file
+ :enable (and (frame-live-p menu-updating-frame)
+ (frame-visible-p menu-updating-frame )
+ (not (window-minibuffer-p
+ (frame-selected-window menu-updating-frame))))
:help "Write current buffer to another file"))
(define-key menu-bar-file-menu [save-buffer]
- '(menu-item "Save (current buffer)" save-buffer
+ '(menu-item "Save" save-buffer
:enable (and (buffer-modified-p)
(buffer-file-name)
(not (window-minibuffer-p
@@ -175,9 +187,9 @@ A large number or nil slows down menu responsiveness."
'(menu-item "--"))
(define-key menu-bar-file-menu [kill-buffer]
- '(menu-item "Close (current buffer)" kill-this-buffer
+ '(menu-item "Close" kill-this-buffer
:enable (kill-this-buffer-enabled-p)
- :help "Discard current buffer"))
+ :help "Discard (kill) current buffer"))
(define-key menu-bar-file-menu [insert-file]
'(menu-item "Insert File..." insert-file
:enable (not (window-minibuffer-p
@@ -194,7 +206,7 @@ A large number or nil slows down menu responsiveness."
(frame-selected-window menu-updating-frame)))
:help "Read an existing file into an Emacs buffer"))
(define-key menu-bar-file-menu [new-file]
- '(menu-item "New File..." find-file
+ '(menu-item "Visit New File..." find-file
:enable (not (window-minibuffer-p
(frame-selected-window menu-updating-frame)))
:help "Read or create a file and edit it"))
@@ -641,7 +653,8 @@ by \"Save Options\" in Custom buffers.")
;; put on a customized-value property.
(dolist (elt '(line-number-mode column-number-mode size-indication-mode
cua-mode show-paren-mode transient-mark-mode
- global-font-lock-mode blink-cursor-mode))
+ global-font-lock-mode blink-cursor-mode
+ display-time-mode display-battery-mode))
(and (customize-mark-to-save elt)
(setq need-save t)))
;; These are set with `customize-set-variable'.
@@ -649,8 +662,8 @@ by \"Save Options\" in Custom buffers.")
debug-on-quit debug-on-error
tooltip-mode menu-bar-mode tool-bar-mode
save-place uniquify-buffer-name-style fringe-mode
- fringe-indicators case-fold-search
- display-time-mode auto-compression-mode
+ indicate-empty-lines indicate-buffer-boundaries
+ case-fold-search
current-language-environment default-input-method
;; Saving `text-mode-hook' is somewhat questionable,
;; as we might get more than we bargain for, if
@@ -700,10 +713,16 @@ by \"Save Options\" in Custom buffers.")
(define-key menu-bar-showhide-menu [linecolumn-separator]
'("--"))
+(define-key menu-bar-showhide-menu [showhide-battery]
+ (menu-bar-make-mm-toggle display-battery-mode
+ "Battery Status"
+ "Display battery status information in mode line"))
+
(define-key menu-bar-showhide-menu [showhide-date-time]
(menu-bar-make-mm-toggle display-time-mode
- "Date, Time and Mail"
- "Display date, time, mail status in mode line"))
+ "Time, Load and Mail"
+ "Display time, system load averages and \
+mail status in mode line"))
(define-key menu-bar-showhide-menu [datetime-separator]
'("--"))
@@ -717,88 +736,92 @@ by \"Save Options\" in Custom buffers.")
(frame-visible-p
(symbol-value 'speedbar-frame))))))
+(defvar menu-bar-showhide-fringe-menu (make-sparse-keymap "Fringe"))
-(defvar menu-bar-showhide-fringe-ind-menu (make-sparse-keymap "Indicators"))
-
-;; The real definition is in fringe.el.
-;; This is to prevent errors in the :radio conditions below.
-(setq fringe-indicators nil)
+(defvar menu-bar-showhide-fringe-ind-menu
+ (make-sparse-keymap "Buffer boundaries"))
-(defun menu-bar-showhide-fringe-ind-empty ()
- "Display empty line indicators in the left or right fringe."
+(defun menu-bar-showhide-fringe-ind-customize ()
+ "Show customization buffer for `indicate-buffer-boundaries'."
(interactive)
- (require 'fringe)
- (customize-set-variable 'fringe-indicators 'empty))
+ (customize-variable 'indicate-buffer-boundaries))
-(define-key menu-bar-showhide-fringe-ind-menu [empty]
- '(menu-item "Empty lines only" menu-bar-showhide-fringe-ind-empty
- :help "Show empty line indicators in fringe"
- :visible (display-graphic-p)
- :button (:radio . (eq fringe-indicators 'empty))))
+(define-key menu-bar-showhide-fringe-ind-menu [customize]
+ '(menu-item "Other (Customize)"
+ menu-bar-showhide-fringe-ind-customize
+ :help "Additional choices available through Custom buffer"
+ :visible (display-graphic-p)))
(defun menu-bar-showhide-fringe-ind-mixed ()
- "Display top and bottom indicators in opposite fringes, arrow in right."
+ "Display top and bottom indicators in opposite fringes, arrows in right."
(interactive)
- (require 'fringe)
- (customize-set-variable 'fringe-indicators 'mixed))
+ (customize-set-variable 'indicate-buffer-boundaries
+ '((t . right) (top . left))))
(define-key menu-bar-showhide-fringe-ind-menu [mixed]
- '(menu-item "Opposite, arrows right" menu-bar-showhide-fringe-ind-mixed
- :help "Show top/bottom indicators in opposite fringes, arrows in right"
+ '(menu-item "Opposite, Arrows Right" menu-bar-showhide-fringe-ind-mixed
+ :help
+ "Show top/bottom indicators in opposite fringes, arrows in right"
:visible (display-graphic-p)
- :button (:radio . (eq fringe-indicators 'mixed))))
+ :button (:radio . (eq indicate-buffer-boundaries
+ '((t . right) (top . left))))))
(defun menu-bar-showhide-fringe-ind-box ()
"Display top and bottom indicators in opposite fringes."
(interactive)
- (require 'fringe)
- (customize-set-variable 'fringe-indicators 'box))
+ (customize-set-variable 'indicate-buffer-boundaries
+ '((top . left) (bottom . right))))
(define-key menu-bar-showhide-fringe-ind-menu [box]
- '(menu-item "Opposite, no arrows" menu-bar-showhide-fringe-ind-box
+ '(menu-item "Opposite, No Arrows" menu-bar-showhide-fringe-ind-box
:help "Show top/bottom indicators in opposite fringes, no arrows"
:visible (display-graphic-p)
- :button (:radio . (eq fringe-indicators 'box))))
+ :button (:radio . (eq indicate-buffer-boundaries
+ '((top . left) (bottom . right))))))
(defun menu-bar-showhide-fringe-ind-right ()
- "Display fringe indicators in the right fringe."
+ "Display buffer boundaries and arrows in the right fringe."
(interactive)
- (require 'fringe)
- (customize-set-variable 'fringe-indicators 'right))
+ (customize-set-variable 'indicate-buffer-boundaries 'right))
(define-key menu-bar-showhide-fringe-ind-menu [right]
- '(menu-item "In right fringe" menu-bar-showhide-fringe-ind-right
- :help "Show indicators in right fringe"
+ '(menu-item "In Right Fringe" menu-bar-showhide-fringe-ind-right
+ :help "Show buffer boundaries and arrows in right fringe"
:visible (display-graphic-p)
- :button (:radio . (eq fringe-indicators 'right))))
+ :button (:radio . (eq indicate-buffer-boundaries 'right))))
(defun menu-bar-showhide-fringe-ind-left ()
- "Display fringe indicators in the left fringe."
+ "Display buffer boundaries and arrows in the left fringe."
(interactive)
- (require 'fringe)
- (customize-set-variable 'fringe-indicators 'left))
+ (customize-set-variable 'indicate-buffer-boundaries 'left))
(define-key menu-bar-showhide-fringe-ind-menu [left]
- '(menu-item "In left fringe" menu-bar-showhide-fringe-ind-left
- :help "Show indicators in left fringe"
+ '(menu-item "In Left Fringe" menu-bar-showhide-fringe-ind-left
+ :help "Show buffer boundaries and arrows in left fringe"
:visible (display-graphic-p)
- :button (:radio . (eq fringe-indicators 'left))))
+ :button (:radio . (eq indicate-buffer-boundaries 'left))))
(defun menu-bar-showhide-fringe-ind-none ()
- "Do not display any fringe indicators."
+ "Do not display any buffer boundary indicators."
(interactive)
- (require 'fringe)
- (customize-set-variable 'fringe-indicators nil))
+ (customize-set-variable 'indicate-buffer-boundaries nil))
(define-key menu-bar-showhide-fringe-ind-menu [none]
- '(menu-item "No indicators" menu-bar-showhide-fringe-ind-none
- :help "Hide all fringe indicators"
+ '(menu-item "No Indicators" menu-bar-showhide-fringe-ind-none
+ :help "Hide all buffer boundary indicators and arrows"
:visible (display-graphic-p)
- :button (:radio . (eq fringe-indicators nil))))
-
+ :button (:radio . (eq indicate-buffer-boundaries nil))))
+(define-key menu-bar-showhide-fringe-menu [showhide-fringe-ind]
+ (list 'menu-item "Buffer Boundaries" menu-bar-showhide-fringe-ind-menu
+ :visible `(display-graphic-p)
+ :help "Indicate buffer boundaries in fringe"))
-(defvar menu-bar-showhide-fringe-menu (make-sparse-keymap "Fringe"))
+(define-key menu-bar-showhide-fringe-menu [indicate-empty-lines]
+ (menu-bar-make-toggle toggle-indicate-empty-lines indicate-empty-lines
+ "Empty Line Indicators"
+ "Indicating of empty lines %s"
+ "Indicate trailing empty lines in fringe"))
(defun menu-bar-showhide-fringe-menu-customize ()
"Show customization buffer for `fringe-mode'."
@@ -806,7 +829,7 @@ by \"Save Options\" in Custom buffers.")
(customize-variable 'fringe-mode))
(define-key menu-bar-showhide-fringe-menu [customize]
- '(menu-item "Customize" menu-bar-showhide-fringe-menu-customize
+ '(menu-item "Customize Fringe" menu-bar-showhide-fringe-menu-customize
:help "Detailed customization of fringe"
:visible (display-graphic-p)))
@@ -815,15 +838,6 @@ by \"Save Options\" in Custom buffers.")
(interactive)
(customize-set-variable 'fringe-mode nil))
-(define-key menu-bar-showhide-fringe-menu [showhide-fringe-ind]
- (list 'menu-item "Indicators" menu-bar-showhide-fringe-ind-menu
- :visible `(display-graphic-p)
- :help "Select fringe mode"))
-
-;; The real definition is in fringe.el.
-;; This is to prevent errors in the :radio conditions below.
-(setq fringe-mode nil)
-
(define-key menu-bar-showhide-fringe-menu [default]
'(menu-item "Default" menu-bar-showhide-fringe-menu-customize-reset
:help "Default width fringe on both left and right side"
@@ -975,13 +989,6 @@ by \"Save Options\" in Custom buffers.")
(define-key menu-bar-options-menu [cursor-separator]
'("--"))
-(define-key menu-bar-options-menu [toggle-auto-compression]
- '(menu-item "Automatic File De/compression"
- auto-compression-mode
- :help "Transparently decompress compressed files"
- :button (:toggle . (rassq 'jka-compr-handler
- file-name-handler-alist))))
-
(define-key menu-bar-options-menu [save-place]
(menu-bar-make-toggle toggle-save-place-globally save-place
"Save Place in Files between Sessions"
@@ -1007,7 +1014,7 @@ by \"Save Options\" in Custom buffers.")
'("--"))
(define-key menu-bar-options-menu [cua-mode]
(menu-bar-make-mm-toggle cua-mode
- "C-x/C-c/C-v cut and paste (CUA)"
+ "C-x/C-c/C-v Cut and Paste (CUA)"
"Use C-z/C-x/C-c/C-v keys for undo/cut/copy/paste"))
(define-key menu-bar-options-menu [case-fold-search]
@@ -1035,7 +1042,9 @@ by \"Save Options\" in Custom buffers.")
'(menu-item "Truncate Long Lines in this Buffer"
toggle-truncate-lines
:help "Truncate long lines on the screen"
- :button (:toggle . truncate-lines)))
+ :button (:toggle . truncate-lines)
+ :enable (and (frame-live-p menu-updating-frame)
+ (frame-visible-p menu-updating-frame))))
(define-key menu-bar-options-menu [highlight-separator]
'("--"))
@@ -1253,15 +1262,10 @@ by \"Save Options\" in Custom buffers.")
'(menu-item "Describe Function..." describe-function
:help "Display documentation of function/command"))
(define-key menu-bar-describe-menu [describe-key-1]
- '(menu-item "Describe Key..." describe-key
- ;; Users typically don't identify keys and menu items...
- :help "Display documentation of command bound to a \
-key (or menu-item)"))
-(define-key menu-bar-describe-menu [describe-key]
- '(menu-item "What's This? " describe-key
+ '(menu-item "Describe Key or Mouse Operation..." describe-key
;; Users typically don't identify keys and menu items...
:help "Display documentation of command bound to a \
-key (or menu-item)"))
+key, a click, or a menu-item"))
(define-key menu-bar-describe-menu [describe-mode]
'(menu-item "Describe Buffer Modes" describe-mode
:help "Describe this buffer's major and minor mode"))
diff --git a/lisp/mh-e/ChangeLog b/lisp/mh-e/ChangeLog
index db3de56d8b..82bedd7c2a 100644
--- a/lisp/mh-e/ChangeLog
+++ b/lisp/mh-e/ChangeLog
@@ -1,3 +1,13 @@
+2005-08-15 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * mh-customize.el: Do not use face-alias compatibility for
+ faces that did not appear in the previous Emacs release.
+
+2005-08-10 Lars Hansen <larsh@soem.dk>
+ * mh-e.el: Add handler to desktop-buffer-mode-handlers.
+ (mh-restore-desktop-buffer): Remove autoload cookie.
+ (mh-folder-mode): Add autoload cookie.
+
2005-07-04 Lute Kamstra <lute@gnu.org>
Update FSF's address in GPL notices.
diff --git a/lisp/mh-e/mh-customize.el b/lisp/mh-e/mh-customize.el
index c2a86d4a73..4a9882b566 100644
--- a/lisp/mh-e/mh-customize.el
+++ b/lisp/mh-e/mh-customize.el
@@ -2155,8 +2155,6 @@ will be removed from the unseen sequence."
(t (:italic t)))
"Face used to highlight body text in MH-Folder buffers."
:group 'mh-folder-faces)
-;; backward-compatibility alias
-(put 'mh-folder-body-face 'face-alias 'mh-folder-body)
(defvar mh-folder-cur-msg-face 'mh-folder-cur-msg
"Face used for the current message line in MH-Folder buffers.")
@@ -2172,8 +2170,6 @@ will be removed from the unseen sequence."
(t (:underline t)))
"Face used for the current message line in MH-Folder buffers."
:group 'mh-folder-faces)
-;; backward-compatibility alias
-(put 'mh-folder-cur-msg-face 'face-alias 'mh-folder-cur-msg)
(defvar mh-folder-cur-msg-number-face 'mh-folder-cur-msg-number
"Face used to highlight the current message in MH-Folder buffers.")
@@ -2186,8 +2182,6 @@ will be removed from the unseen sequence."
(t (:bold t)))
"Face used to highlight the current message in MH-Folder buffers."
:group 'mh-folder-faces)
-;; backward-compatibility alias
-(put 'mh-folder-cur-msg-number-face 'face-alias 'mh-folder-cur-msg-number)
(defvar mh-folder-date-face 'mh-folder-date
"Face used to highlight the date in MH-Folder buffers.")
@@ -2200,8 +2194,6 @@ will be removed from the unseen sequence."
(:bold t)))
"Face used to highlight the date in MH-Folder buffers."
:group 'mh-folder-faces)
-;; backward-compatibility alias
-(put 'mh-folder-date-face 'face-alias 'mh-folder-date)
(defvar mh-folder-followup-face 'mh-folder-followup
"Face used to highlight Re: subject text in MH-Folder buffers.")
@@ -2214,8 +2206,6 @@ will be removed from the unseen sequence."
(:bold t)))
"Face used to highlight Re: subject text in MH-Folder buffers."
:group 'mh-folder-faces)
-;; backward-compatibility alias
-(put 'mh-folder-followup-face 'face-alias 'mh-folder-followup)
(defvar mh-folder-msg-number-face 'mh-folder-msg-number
"Face used to highlight the message number in MH-Folder buffers.")
@@ -2228,8 +2218,6 @@ will be removed from the unseen sequence."
(:bold t)))
"Face used to highlight the message number in MH-Folder buffers."
:group 'mh-folder-faces)
-;; backward-compatibility alias
-(put 'mh-folder-msg-number-face 'face-alias 'mh-folder-msg-number)
(defvar mh-folder-deleted-face 'mh-folder-deleted
"Face used to highlight deleted messages in MH-Folder buffers.")
@@ -2248,8 +2236,6 @@ will be removed from the unseen sequence."
(t (:bold t :italic t)))
"Face used to highlight refiled messages in MH-Folder buffers."
:group 'mh-folder-faces)
-;; backward-compatibility alias
-(put 'mh-folder-refiled-face 'face-alias 'mh-folder-refiled)
(defvar mh-folder-subject-face 'mh-folder-subject
"Face used to highlight subject text in MH-Folder buffers.")
@@ -2264,8 +2250,6 @@ will be removed from the unseen sequence."
(:bold t)))
"Face used to highlight subject text in MH-Folder buffers."
:group 'mh-folder-faces)
-;; backward-compatibility alias
-(put 'mh-folder-subject-face 'face-alias 'mh-folder-subject)
(defface mh-folder-tick
'((((class color) (background dark)) (:background "#dddf7e"))
@@ -2273,8 +2257,6 @@ will be removed from the unseen sequence."
(t (:underline t)))
"Face used to show ticked messages."
:group 'mh-folder-faces)
-;; backward-compatibility alias
-(put 'mh-folder-tick-face 'face-alias 'mh-folder-tick)
(defvar mh-folder-address-face 'mh-folder-address
"Face used to highlight the address in MH-Folder buffers.")
@@ -2295,8 +2277,6 @@ will be removed from the unseen sequence."
(t (:italic t)))
"Face used to highlight the To: string in MH-Folder buffers."
:group 'mh-folder-faces)
-;; backward-compatibility alias
-(put 'mh-folder-to-face 'face-alias 'mh-folder-to)
@@ -2313,8 +2293,6 @@ will be removed from the unseen sequence."
(:bold t)))
"Face used to highlight folders in MH-Index buffers."
:group 'mh-index-faces)
-;; backward-compatibility alias
-(put 'mh-index-folder-face 'face-alias 'mh-index-folder)
@@ -2328,8 +2306,6 @@ will be removed from the unseen sequence."
(t (:bold t)))
"Face used to display header fields in draft buffers."
:group 'mh-letter-faces)
-;; backward-compatibility alias
-(put 'mh-letter-header-field-face 'face-alias 'mh-letter-header-field)
@@ -2348,8 +2324,6 @@ will be removed from the unseen sequence."
(t (:bold t :italic t)))
"Face used to highlight cc: header fields."
:group 'mh-show-faces)
-;; backward-compatibility alias
-(put 'mh-show-cc-face 'face-alias 'mh-show-cc)
(defvar mh-show-date-face 'mh-show-date
"Face used to highlight the Date: header field.")
@@ -2362,8 +2336,6 @@ will be removed from the unseen sequence."
(t (:bold t :underline t)))
"Face used to highlight the Date: header field."
:group 'mh-show-faces)
-;; backward-compatibility alias
-(put 'mh-show-date-face 'face-alias 'mh-show-date)
(defvar mh-show-header-face 'mh-show-header
"Face used to deemphasize unspecified header fields.")
@@ -2376,8 +2348,6 @@ will be removed from the unseen sequence."
(t (:italic t)))
"Face used to deemphasize unspecified header fields."
:group 'mh-show-faces)
-;; backward-compatibility alias
-(put 'mh-show-header-face 'face-alias 'mh-show-header)
(defvar mh-show-pgg-good-face 'mh-show-pgg-good
"Face used to highlight a good PGG signature.")
@@ -2385,8 +2355,6 @@ will be removed from the unseen sequence."
'((t (:bold t :foreground "LimeGreen")))
"Face used to highlight a good PGG signature."
:group 'mh-show-faces)
-;; backward-compatibility alias
-(put 'mh-show-pgg-good-face 'face-alias 'mh-show-pgg-good)
(defvar mh-show-pgg-unknown-face 'mh-show-pgg-unknown
"Face used to highlight a PGG signature whose status is unknown.
@@ -2396,8 +2364,6 @@ This face is also used for a signature when the signer is untrusted.")
"Face used to highlight a PGG signature whose status is unknown.
This face is also used for a signature when the signer is untrusted."
:group 'mh-show-faces)
-;; backward-compatibility alias
-(put 'mh-show-pgg-unknown-face 'face-alias 'mh-show-pgg-unknown)
(defvar mh-show-pgg-bad-face 'mh-show-pgg-bad
"Face used to highlight a bad PGG signature.")
@@ -2405,15 +2371,11 @@ This face is also used for a signature when the signer is untrusted."
'((t (:bold t :foreground "DeepPink1")))
"Face used to highlight a bad PGG signature."
:group 'mh-show-faces)
-;; backward-compatibility alias
-(put 'mh-show-pgg-bad-face 'face-alias 'mh-show-pgg-bad)
(defface mh-show-signature
'((t (:italic t)))
"Face used to highlight the message signature."
:group 'mh-show-faces)
-;; backward-compatibility alias
-(put 'mh-show-signature-face 'face-alias 'mh-show-signature)
(defvar mh-show-to-face 'mh-show-to
"Face used to highlight the To: header field.")
@@ -2429,8 +2391,6 @@ This face is also used for a signature when the signer is untrusted."
(t (:underline t)))
"Face used to highlight the To: header field."
:group 'mh-show-faces)
-;; backward-compatibility alias
-(put 'mh-show-to-face 'face-alias 'mh-show-to)
(defvar mh-show-from-face 'mh-show-from
"Face used to highlight the From: header field.")
@@ -2443,16 +2403,12 @@ This face is also used for a signature when the signer is untrusted."
(:bold t)))
"Face used to highlight the From: header field."
:group 'mh-show-faces)
-;; backward-compatibility alias
-(put 'mh-show-from-face 'face-alias 'mh-show-from)
(defface mh-show-xface
'((t (:foreground "black" :background "white")))
"Face used to display the X-Face image.
The background and foreground is used in the image."
:group 'mh-show-faces)
-;; backward-compatibility alias
-(put 'mh-show-xface-face 'face-alias 'mh-show-xface)
(defvar mh-show-subject-face 'mh-show-subject
"Face used to highlight the Subject: header field.")
@@ -2469,8 +2425,6 @@ The background and foreground is used in the image."
(:foreground "light blue")))
"Face used for folders in the speedbar buffer."
:group 'mh-speed-faces)
-;; backward-compatibility alias
-(put 'mh-speedbar-folder-face 'face-alias 'mh-speedbar-folder)
(defface mh-speedbar-selected-folder
'((((class color) (background light))
@@ -2480,22 +2434,16 @@ The background and foreground is used in the image."
(t (:underline t)))
"Face used for the current folder."
:group 'mh-speed-faces)
-;; backward-compatibility alias
-(put 'mh-speedbar-selected-folder-face 'face-alias 'mh-speedbar-selected-folder)
(defface mh-speedbar-folder-with-unseen-messages
'((t (:inherit mh-speedbar-folder :bold t)))
"Face used for folders in the speedbar buffer which have unread messages."
:group 'mh-speed-faces)
-;; backward-compatibility alias
-(put 'mh-speedbar-folder-with-unseen-messages-face 'face-alias 'mh-speedbar-folder-with-unseen-messages)
(defface mh-speedbar-selected-folder-with-unseen-messages
'((t (:inherit mh-speedbar-selected-folder :bold t)))
"Face used for the current folder when it has unread messages."
:group 'mh-speed-faces)
-;; backward-compatibility alias
-(put 'mh-speedbar-selected-folder-with-unseen-messages-face 'face-alias 'mh-speedbar-selected-folder-with-unseen-messages)
;;; Local Variables:
;;; indent-tabs-mode: nil
diff --git a/lisp/mh-e/mh-e.el b/lisp/mh-e/mh-e.el
index 12e77c6c83..3d917c1693 100644
--- a/lisp/mh-e/mh-e.el
+++ b/lisp/mh-e/mh-e.el
@@ -1507,6 +1507,8 @@ is used in previous versions and XEmacs."
(not (member 'mh-folder-mode which-func-modes)))
(push 'mh-folder-mode which-func-modes))
+;; Autoload cookie needed by desktop.el
+;;;###autoload
(define-derived-mode mh-folder-mode fundamental-mode "MH-Folder"
"Major MH-E mode for \"editing\" an MH folder scan listing.\\<mh-folder-mode-map>
@@ -1653,7 +1655,6 @@ messages in that region.
(set (make-local-variable (car pairs)) (car (cdr pairs)))
(setq pairs (cdr (cdr pairs)))))
-;;;###autoload
(defun mh-restore-desktop-buffer (desktop-buffer-file-name
desktop-buffer-name
desktop-buffer-misc)
@@ -1666,6 +1667,9 @@ DESKTOP-BUFFER-MISC holds a list of miscellaneous info used by the
(mh-visit-folder desktop-buffer-name)
(current-buffer))
+(add-to-list 'desktop-buffer-mode-handlers
+ '(mh-folder-mode . mh-restore-desktop-buffer))
+
(defun mh-scan-folder (folder range &optional dont-exec-pending)
"Scan the FOLDER over the RANGE.
If the optional argument DONT-EXEC-PENDING is non-nil then pending deletes and
diff --git a/lisp/midnight.el b/lisp/midnight.el
index 8bc00b8310..aa93c1b5ba 100644
--- a/lisp/midnight.el
+++ b/lisp/midnight.el
@@ -1,6 +1,6 @@
;;; midnight.el --- run something every midnight, e.g., kill old buffers
-;;; Copyright (C) 1998, 2004, 2005 Free Software Foundation, Inc.
+;;; Copyright (C) 1998, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Sam Steingold <sds@usa.net>
;; Maintainer: Sam Steingold <sds@usa.net>
diff --git a/lisp/minibuf-eldef.el b/lisp/minibuf-eldef.el
index f3b08be702..0657baedd5 100644
--- a/lisp/minibuf-eldef.el
+++ b/lisp/minibuf-eldef.el
@@ -1,6 +1,7 @@
;;; minibuf-eldef.el --- Only show defaults in prompts when applicable
;;
-;; Copyright (C) 2000, 2001, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;;
;; Author: Miles Bader <miles@gnu.org>
;; Keywords: convenience
diff --git a/lisp/misc.el b/lisp/misc.el
index c081a8cd8c..f906fb0db7 100644
--- a/lisp/misc.el
+++ b/lisp/misc.el
@@ -1,6 +1,6 @@
;;; misc.el --- some nonstandard basic editing commands for Emacs
-;; Copyright (C) 1989, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 1989, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: convenience
diff --git a/lisp/mouse-copy.el b/lisp/mouse-copy.el
index 6279d4e1f4..f5034a1dac 100644
--- a/lisp/mouse-copy.el
+++ b/lisp/mouse-copy.el
@@ -1,6 +1,6 @@
;;; mouse-copy.el --- one-click text copy and move
-;; Copyright (C) 1996 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: John Heidemann <johnh@ISI.EDU>
;; Keywords: mouse
diff --git a/lisp/mouse-drag.el b/lisp/mouse-drag.el
index 6971bdb9a8..11bacd6b8a 100644
--- a/lisp/mouse-drag.el
+++ b/lisp/mouse-drag.el
@@ -1,6 +1,7 @@
;;; mouse-drag.el --- use mouse-2 to do a new style of scrolling
-;; Copyright (C) 1996, 1997, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: John Heidemann <johnh@ISI.EDU>
;; Keywords: mouse
diff --git a/lisp/mouse-sel.el b/lisp/mouse-sel.el
index 1a271a5ab7..ccd469200b 100644
--- a/lisp/mouse-sel.el
+++ b/lisp/mouse-sel.el
@@ -1,7 +1,7 @@
;;; mouse-sel.el --- multi-click selection support for Emacs 19
-;; Copyright (C) 1993, 1994, 1995, 2001, 2002, 2004
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 1995, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Mike Williams <mdub@bigfoot.com>
;; Keywords: mouse
diff --git a/lisp/mouse.el b/lisp/mouse.el
index 4fd81ced99..c928e04f8e 100644
--- a/lisp/mouse.el
+++ b/lisp/mouse.el
@@ -1,7 +1,7 @@
;;; mouse.el --- window system-independent mouse support
-;; Copyright (C) 1993, 94, 95, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 1995, 1999, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: hardware, mouse
diff --git a/lisp/msb.el b/lisp/msb.el
index 945535267f..8fa63d9805 100644
--- a/lisp/msb.el
+++ b/lisp/msb.el
@@ -1,7 +1,7 @@
;;; msb.el --- customizable buffer-selection with multiple menus
-;; Copyright (C) 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2003,
-;; 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002,
+;; 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Lars Lindberg <lars.lindberg@home.se>
;; Maintainer: FSF
diff --git a/lisp/mwheel.el b/lisp/mwheel.el
index 27116c75e9..391ce3a5e0 100644
--- a/lisp/mwheel.el
+++ b/lisp/mwheel.el
@@ -1,6 +1,7 @@
;;; mwheel.el --- Wheel mouse support
-;; Copyright (C) 1998, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2000, 2001, 2002, 2002, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: William M. Perry <wmperry@gnu.org>
;; Keywords: mouse
diff --git a/lisp/net/ange-ftp.el b/lisp/net/ange-ftp.el
index e8647dfc22..5d205f575b 100644
--- a/lisp/net/ange-ftp.el
+++ b/lisp/net/ange-ftp.el
@@ -1,7 +1,7 @@
;;; ange-ftp.el --- transparent FTP support for GNU Emacs
-;; Copyright (C) 1989,90,91,92,93,94,95,96,98, 2000, 2001, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998,
+;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Andy Norman (ange@hplb.hpl.hp.com)
;; Maintainer: FSF
@@ -686,7 +686,7 @@
:prefix "ange-ftp-")
(defcustom ange-ftp-name-format
- '("^/\\(\\([^/:]*\\)@\\)?\\([^@/:]*[^@/:.]\\):\\(.*\\)" . (3 2 4))
+ '("\\`/\\(\\([^/:]*\\)@\\)?\\([^@/:]*[^@/:.]\\):\\(.*\\)" . (3 2 4))
"*Format of a fully expanded remote file name.
This is a list of the form \(REGEXP HOST USER NAME\),
@@ -743,6 +743,21 @@ These mean that the FTP process should (or already has) been killed."
:group 'ange-ftp
:type 'regexp)
+(defcustom ange-ftp-potential-error-msgs
+ ;; On Mac OS X we sometimes get things like:
+ ;;
+ ;; ftp> open ftp.nluug.nl
+ ;; Trying 2001:610:1:80aa:192:87:102:36...
+ ;; ftp: connect to address 2001:610:1:80aa:192:87:102:36: No route to host
+ ;; Trying 192.87.102.36...
+ ;; Connected to ftp.nluug.nl.
+ "^ftp: connect to address .*: No route to host"
+ "*Regular expression matching ftp messages that can indicate serious errors.
+These mean that something went wrong, but they may be followed by more
+messages indicating that the error was somehow corrected."
+ :group 'ange-ftp
+ :type 'regexp)
+
(defcustom ange-ftp-gateway-fatal-msgs
"No route to host\\|Connection closed\\|No such host\\|Login incorrect"
"*Regular expression matching login failure messages from rlogin/telnet."
@@ -848,10 +863,11 @@ If nil, prompt the user for a password."
string))
(defcustom ange-ftp-binary-file-name-regexp
- (concat "\\.[zZ]$\\|\\.lzh$\\|\\.arc$\\|\\.zip$\\|\\.zoo$\\|\\.tar$\\|"
- "\\.dvi$\\|\\.ps$\\|\\.elc$\\|TAGS$\\|\\.gif$\\|"
- "\\.EXE\\(;[0-9]+\\)?$\\|\\.[zZ]-part-..$\\|\\.gz$\\|"
- "\\.taz$\\|\\.tgz$")
+ (concat "TAGS\\'\\|\\.\\(?:"
+ (eval-when-compile
+ (regexp-opt '("z" "Z" "lzh" "arc" "zip" "zoo" "tar" "dvi"
+ "ps" "elc" "gif" "gz" "taz" "tgz")))
+ "\\|EXE\\(;[0-9]+\\)?\\|[zZ]-part-..\\)\\'")
"*If a file matches this regexp then it is transferred in binary mode."
:group 'ange-ftp
:type 'regexp)
@@ -1071,6 +1087,7 @@ All HOST values should be in lower case.")
(defvar ange-ftp-xfer-size nil)
(defvar ange-ftp-process-string nil)
(defvar ange-ftp-process-result-line nil)
+(defvar ange-ftp-pending-error-line nil)
(defvar ange-ftp-process-busy nil)
(defvar ange-ftp-process-result nil)
(defvar ange-ftp-process-multi-skip nil)
@@ -1114,7 +1131,7 @@ If the optional parameter NEW is given and the non-directory parts match,
only return the directory part of FILE."
(save-match-data
(if (and default-directory
- (string-match (concat "^"
+ (string-match (concat "\\`"
(regexp-quote default-directory)
".") file))
(setq file (substring file (1- (match-end 0)))))
@@ -1184,7 +1201,7 @@ only return the directory part of FILE."
(save-match-data
(maphash
(lambda (key value)
- (if (string-match "^[^/]*\\(/\\).*$" key)
+ (if (string-match "\\`[^/]*\\(/\\).*\\'" key)
(let ((host (substring key 0 (match-beginning 1))))
(if (and (string-equal user (substring key (match-end 1)))
value)
@@ -1399,7 +1416,7 @@ only return the directory part of FILE."
(let (res)
(maphash
(lambda (key value)
- (if (string-match "^[^/]*\\(/\\).*$" key)
+ (if (string-match "\\`[^/]*\\(/\\).*\\'" key)
(let ((host (substring key 0 (match-beginning 1)))
(user (substring key (match-end 1))))
(push (concat user "@" host ":") res))))
@@ -1544,6 +1561,7 @@ good, skip, fatal, or unknown."
((string-match ange-ftp-good-msgs line)
(setq ange-ftp-process-busy nil
ange-ftp-process-result t
+ ange-ftp-pending-error-line nil
ange-ftp-process-result-line line))
;; Check this before checking for errors.
;; Otherwise the last line of these three seems to be an error:
@@ -1552,11 +1570,17 @@ good, skip, fatal, or unknown."
;; 230-"ftp.stsci.edu: unknown host", the new IP address will be...
((string-match ange-ftp-multi-msgs line)
(setq ange-ftp-process-multi-skip t))
+ ((string-match ange-ftp-potential-error-msgs line)
+ ;; This looks like an error, but we have to keep reading the output
+ ;; to see if it was fixed or not. E.g. it may indicate that IPv6
+ ;; failed, but maybe a subsequent IPv4 fallback succeeded.
+ (set (make-local-variable 'ange-ftp-pending-error-line) line)
+ t)
((string-match ange-ftp-fatal-msgs line)
(delete-process proc)
(setq ange-ftp-process-busy nil
ange-ftp-process-result-line line))
- (ange-ftp-process-multi-skip
+ (ange-ftp-process-multi-skip
t)
(t
(setq ange-ftp-process-busy nil
@@ -1632,7 +1656,7 @@ good, skip, fatal, or unknown."
;; handle hash mark printing
(and ange-ftp-process-busy
- (string-match "^#+$" str)
+ (string-match "\\`#+\\'" str)
(setq str (ange-ftp-process-handle-hash str)))
(comint-output-filter proc str)
;; Replace STR by the result of the comint processing.
@@ -1651,12 +1675,21 @@ good, skip, fatal, or unknown."
(string-match "\n" ange-ftp-process-string))
(let ((line (substring ange-ftp-process-string
0
- (match-beginning 0))))
+ (match-beginning 0)))
+ (seen-prompt nil))
(setq ange-ftp-process-string (substring ange-ftp-process-string
(match-end 0)))
- (while (string-match "^ftp> *" line)
+ (while (string-match "\\`ftp> *" line)
+ (setq seen-prompt t)
(setq line (substring line (match-end 0))))
- (ange-ftp-process-handle-line line proc)))
+ (if (not (and seen-prompt ange-ftp-pending-error-line))
+ (ange-ftp-process-handle-line line proc)
+ ;; If we've seen a potential error message and it
+ ;; hasn't been cancelled by a good message before
+ ;; seeing a propt, then the error was real.
+ (delete-process proc)
+ (setq ange-ftp-process-busy nil
+ ange-ftp-process-result-line ange-ftp-pending-error-line))))
;; has the ftp client finished? if so then do some clean-up
;; actions.
@@ -1831,7 +1864,7 @@ been queued with no result. CONT will still be called, however."
(move-marker comint-last-input-start (point))
;; don't insert the password into the buffer on the USER command.
(save-match-data
- (if (string-match "^user \"[^\"]*\"" cmd)
+ (if (string-match "\\`user \"[^\"]*\"" cmd)
(insert (substring cmd 0 (match-end 0)) " Turtle Power!\n")
(insert cmd)))
(move-marker comint-last-input-end (point))
@@ -1988,7 +2021,7 @@ on the gateway machine to do the ftp instead."
(make-local-variable 'comint-password-prompt-regexp)
;; This is a regexp that can't match anything.
;; ange-ftp has its own ways of handling passwords.
- (setq comint-password-prompt-regexp "^a\\'z")
+ (setq comint-password-prompt-regexp "\\`a\\`")
(make-local-variable 'paragraph-start)
(setq paragraph-start comint-prompt-regexp)
(run-mode-hooks 'internal-ange-ftp-mode-hook))
@@ -2037,7 +2070,7 @@ host specified in `ange-ftp-gateway-host'."
PROC is the process to the FTP-client. HOST may have an optional
suffix of the form #PORT to specify a non-default port"
(save-match-data
- (string-match "^\\([^#]+\\)\\(#\\([0-9]+\\)\\)?\\'" host)
+ (string-match "\\`\\([^#]+\\)\\(#\\([0-9]+\\)\\)?\\'" host)
(let* ((nshost (ange-ftp-nslookup-host (match-string 1 host)))
(port (match-string 3 host))
(result (ange-ftp-raw-send-cmd
@@ -2116,6 +2149,8 @@ suffix of the form #PORT to specify a non-default port"
(or ange-ftp-binary-hash-mark-size
(setq ange-ftp-binary-hash-mark-size size)))))))))
+(defvar ange-ftp-process-startup-hook nil)
+
(defun ange-ftp-get-process (host user)
"Return an FTP subprocess connected to HOST and logged in as USER.
Create a new process if needed."
@@ -2277,7 +2312,7 @@ and NOWAIT."
;; resolve symlinks to directories on SysV machines. (Sebastian will
;; be happy.)
(and (eq host-type 'unix)
- (string-match "/$" cmd1)
+ (string-match "/\\'" cmd1)
(not (string-match "R" cmd3))
(setq cmd1 (concat cmd1 ".")))
@@ -2294,7 +2329,19 @@ and NOWAIT."
(unless (memq host-type ange-ftp-dumb-host-types)
(setq cmd0 'ls)
;; We cd and then use `ls' with no directory argument.
- ;; This works around a misfeature of some versions of netbsd ftpd.
+ ;; This works around a misfeature of some versions of netbsd ftpd
+ ;; where `ls' can only take one argument: either one set of flags
+ ;; or a file/directory name.
+ ;; FIXME: if we're trying to `ls' a single file, this fails since we
+ ;; can't cd to a file. We can't fix this problem here, tho, because
+ ;; at this point we don't know whether the argument is a file or
+ ;; a directory. Such an `ls' is only every used (apparently) from
+ ;; `insert-directory' when the `full-directory-p' argument is nil
+ ;; (which seems to only be used by dired when updating its display
+ ;; after operating on a set of files). We should change
+ ;; ange-ftp-insert-directory so that this case is handled by getting
+ ;; a full listing of the directory and extracting the line
+ ;; corresponding to the requested file.
(unless (equal cmd1 ".")
(setq result (ange-ftp-cd host user (nth 1 cmd) 'noerror)))
(setq cmd1 cmd3)))
@@ -2733,10 +2780,10 @@ The main reason for this alist is to deal with file versions in VMS.")
;; Some ls's with the F switch mark symlinks with an @ (ULTRIX)
;; and others don't. (sigh...) Beware, that some Unix's don't
;; seem to believe in the F-switch
- (if (or (and symlink (string-match "@$" file))
- (and directory (string-match "/$" file))
- (and executable (string-match "*$" file))
- (and socket (string-match "=$" file)))
+ (if (or (and symlink (string-match "@\\'" file))
+ (and directory (string-match "/\\'" file))
+ (and executable (string-match "*\\'" file))
+ (and socket (string-match "=\\'" file)))
(setq file (substring file 0 -1)))))
(puthash file (or symlink directory) tbl)
(forward-line 1))
@@ -3080,18 +3127,24 @@ logged in as user USER and cd'd to directory DIR."
;; See if remote name is absolute. If so then just expand it and
;; replace the name component of the overall name.
- (cond ((string-match "^/" name)
+ (cond ((string-match "\\`/" name)
name)
;; Name starts with ~ or ~user. Resolve that part of the name
;; making it absolute then re-expand it.
- ((string-match "^~[^/]*" name)
+ ((string-match "\\`~[^/]*" name)
(let* ((tilda (match-string 0 name))
(rest (substring name (match-end 0)))
(dir (ange-ftp-expand-dir host user tilda)))
(if dir
- (setq name (if (string-equal dir "/")
- rest (concat dir rest)))
+ ;; C-x d /ftp:anonymous@ftp.gnu.org:~/ RET
+ ;; seems to cause `rest' to sometimes be empty.
+ ;; Maybe it's an error for `rest' to be empty here,
+ ;; but until we figure this out, this quick fix
+ ;; seems to do the trick.
+ (setq name (cond ((string-equal rest "") dir)
+ ((string-equal dir "/") rest)
+ (t (concat dir rest))))
(error "User \"%s\" is not known"
(substring tilda 1)))))
@@ -3105,19 +3158,18 @@ logged in as user USER and cd'd to directory DIR."
(error "Unable to obtain CWD")))))
;; If name starts with //, preserve that, for apollo system.
- (if (not (string-match "^//" name))
- (progn
- (if (not (eq system-type 'windows-nt))
- (setq name (ange-ftp-real-expand-file-name name))
- ;; Windows UNC default dirs do not make sense for ftp.
- (if (string-match "^//" default-directory)
- (setq name (ange-ftp-real-expand-file-name name "c:/"))
- (setq name (ange-ftp-real-expand-file-name name)))
- ;; Strip off possible drive specifier.
- (if (string-match "^[a-zA-Z]:" name)
- (setq name (substring name 2))))
- (if (string-match "^//" name)
- (setq name (substring name 1)))))
+ (unless (string-match "\\`//" name)
+ (if (not (eq system-type 'windows-nt))
+ (setq name (ange-ftp-real-expand-file-name name))
+ ;; Windows UNC default dirs do not make sense for ftp.
+ (setq name (if (string-match "\\`//" default-directory)
+ (ange-ftp-real-expand-file-name name "c:/")
+ (ange-ftp-real-expand-file-name name)))
+ ;; Strip off possible drive specifier.
+ (if (string-match "\\`[a-zA-Z]:" name)
+ (setq name (substring name 2))))
+ (if (string-match "\\`//" name)
+ (setq name (substring name 1))))
;; Now substitute the expanded name back into the overall filename.
(ange-ftp-replace-name-component n name))
@@ -3141,8 +3193,8 @@ logged in as user USER and cd'd to directory DIR."
(eq (string-to-char name) ?\\))
(ange-ftp-canonize-filename name))
((and (eq system-type 'windows-nt)
- (or (string-match "^[a-zA-Z]:" name)
- (string-match "^[a-zA-Z]:" default)))
+ (or (string-match "\\`[a-zA-Z]:" name)
+ (string-match "\\`[a-zA-Z]:" default)))
(ange-ftp-real-expand-file-name name default))
((zerop (length name))
(ange-ftp-canonize-filename default))
@@ -3175,7 +3227,7 @@ system TYPE.")
(if parsed
(let ((filename (nth 2 parsed)))
(if (save-match-data
- (string-match "^~[^/]*$" filename))
+ (string-match "\\`~[^/]*\\'" filename))
name
(ange-ftp-replace-name-component
name
@@ -3188,7 +3240,7 @@ system TYPE.")
(if parsed
(let ((filename (nth 2 parsed)))
(if (save-match-data
- (string-match "^~[^/]*$" filename))
+ (string-match "\\`~[^/]*\\'" filename))
""
(ange-ftp-real-file-name-nondirectory filename)))
(ange-ftp-real-file-name-nondirectory name))))
@@ -3930,7 +3982,7 @@ E.g.,
;; Maybe we should use something more like
;; (equal dir (file-name-directory (directory-file-name dir))) -stef
(or (and (eq system-type 'windows-nt)
- (string-match "^[a-zA-Z]:[/\\]$" dir))
+ (string-match "\\`[a-zA-Z]:[/\\]\\'" dir))
(string-equal "/" dir)))
(defun ange-ftp-file-name-all-completions (file dir)
@@ -3974,8 +4026,8 @@ E.g.,
(let* ((tbl (ange-ftp-get-files ange-ftp-this-dir))
(ange-ftp-completion-ignored-pattern
(mapconcat (lambda (s) (if (stringp s)
- (concat (regexp-quote s) "$")
- "/")) ; / never in filename
+ (concat (regexp-quote s) "$")
+ "/")) ; / never in filename
completion-ignored-extensions
"\\|")))
(save-match-data
@@ -4543,9 +4595,9 @@ NEWNAME should be the name to give the new compressed or uncompressed file.")
(setq ange-ftp-ls-cache-file nil) ;Stop confusing Dired.
0)
-;;; This is turned off because it has nothing properly to do
-;;; with dired. It could be reasonable to adapt this to
-;;; replace ange-ftp-copy-file.
+;; This is turned off because it has nothing properly to do
+;; with dired. It could be reasonable to adapt this to
+;; replace ange-ftp-copy-file.
;;;;; ------------------------------------------------------------
;;;;; Noddy support for async copy-file within dired.
@@ -4898,7 +4950,7 @@ NEWNAME should be the name to give the new compressed or uncompressed file.")
(defun ange-ftp-fix-name-for-vms (name &optional reverse)
(save-match-data
(if reverse
- (if (string-match "^\\([^:]+:\\)?\\(\\[.*\\]\\)?\\([^][]*\\)$" name)
+ (if (string-match "\\`\\([^:]+:\\)?\\(\\[.*\\]\\)?\\([^][]*\\)\\'" name)
(let (drive dir file)
(setq drive (match-string 1 name))
(setq dir (match-string 2 name))
@@ -4912,7 +4964,7 @@ NEWNAME should be the name to give the new compressed or uncompressed file.")
file))
(error "name %s didn't match" name))
(let (drive dir file tmp)
- (if (string-match "^/[^:]+:/" name)
+ (if (string-match "\\`/[^:]+:/" name)
(setq drive (substring name 1
(1- (match-end 0)))
name (substring name (match-end 0))))
@@ -4950,7 +5002,7 @@ NEWNAME should be the name to give the new compressed or uncompressed file.")
;; them.
(cond ((string-equal dir-name "/")
(error "Cannot get listing for fictitious \"/\" directory"))
- ((string-match "^/[-A-Z0-9_$]+:/$" dir-name)
+ ((string-match "\\`/[-A-Z0-9_$]+:/\\'" dir-name)
(error "Cannot get listing for device"))
((ange-ftp-fix-name-for-vms dir-name))))
@@ -5004,7 +5056,7 @@ Other orders of $ and _ seem to all work just fine.")
;; deal with directories
(puthash (substring file 0 (match-beginning 0)) t tbl)
(puthash file nil tbl)
- (if (string-match ";[0-9]+$" file) ; deal with extension
+ (if (string-match ";[0-9]+\\'" file) ; deal with extension
;; sans extension
(puthash (substring file 0 (match-beginning 0)) nil tbl)))
(forward-line 1))
@@ -5030,7 +5082,7 @@ Other orders of $ and _ seem to all work just fine.")
(ange-ftp-internal-delete-file-entry name t)
(save-match-data
(let ((file (ange-ftp-get-file-part name)))
- (if (string-match ";[0-9]+$" file)
+ (if (string-match ";[0-9]+\\'" file)
;; In VMS you can't delete a file without an explicit
;; version number, or wild-card (e.g. FOO;*)
;; For now, we give up on wildcards.
@@ -5068,7 +5120,7 @@ Other orders of $ and _ seem to all work just fine.")
(if files
(let ((file (ange-ftp-get-file-part name)))
(save-match-data
- (if (string-match ";[0-9]+$" file)
+ (if (string-match ";[0-9]+\\'" file)
(puthash (substring file 0 (match-beginning 0)) nil files)
;; Need to figure out what version of the file
;; is being added.
@@ -5111,7 +5163,7 @@ Other orders of $ and _ seem to all work just fine.")
(defun ange-ftp-vms-file-name-as-directory (name)
(save-match-data
- (if (string-match "\\.\\(DIR\\|dir\\)\\(;[0-9]+\\)?$" name)
+ (if (string-match "\\.\\(DIR\\|dir\\)\\(;[0-9]+\\)?\\'" name)
(setq name (substring name 0 (match-beginning 0))))
(ange-ftp-real-file-name-as-directory name)))
@@ -5232,15 +5284,15 @@ Other orders of $ and _ seem to all work just fine.")
(defun ange-ftp-vms-make-compressed-filename (name &optional reverse)
(cond
- ((string-match "-Z;[0-9]+$" name)
+ ((string-match "-Z;[0-9]+\\'" name)
(list nil (substring name 0 (match-beginning 0))))
- ((string-match ";[0-9]+$" name)
+ ((string-match ";[0-9]+\\'" name)
(list nil (substring name 0 (match-beginning 0))))
- ((string-match "-Z$" name)
+ ((string-match "-Z\\'" name)
(list nil (substring name 0 -2)))
(t
(list t
- (if (string-match ";[0-9]+$" name)
+ (if (string-match ";[0-9]+\\'" name)
(concat (substring name 0 (match-beginning 0))
"-Z")
(concat name "-Z"))))))
@@ -5273,7 +5325,7 @@ Other orders of $ and _ seem to all work just fine.")
(defun ange-ftp-vms-sans-version (name &rest args)
(save-match-data
- (if (string-match ";[0-9]+$" name)
+ (if (string-match ";[0-9]+\\'" name)
(substring name 0 (match-beginning 0))
name)))
@@ -5429,14 +5481,14 @@ Other orders of $ and _ seem to all work just fine.")
(defun ange-ftp-fix-name-for-mts (name &optional reverse)
(save-match-data
(if reverse
- (if (string-match "^\\([^:]+:\\)?\\(.*\\)$" name)
+ (if (string-match "\\`\\([^:]+:\\)?\\(.*\\)\\'" name)
(let (acct file)
(setq acct (match-string 1 name))
(setq file (match-string 2 name))
(concat (and acct (concat "/" acct "/"))
file))
(error "name %s didn't match" name))
- (if (string-match "^/\\([^:]+:\\)/\\(.*\\)$" name)
+ (if (string-match "\\`/\\([^:]+:\\)/\\(.*\\)\\'" name)
(concat (match-string 1 name) (match-string 2 name))
;; Let's hope that mts will recognize it anyway.
name))))
@@ -5455,7 +5507,7 @@ Other orders of $ and _ seem to all work just fine.")
(cond
((string-equal dir-name "")
"?")
- ((string-match ":$" dir-name)
+ ((string-match ":\\'" dir-name)
(concat dir-name "?"))
(dir-name))))) ; It's just a single file.
@@ -5592,7 +5644,7 @@ Other orders of $ and _ seem to all work just fine.")
;; stores directories without the trailing /. Is this
;; consistent?
(concat "/" name)
- (if (string-match "^/\\([-A-Z0-9$*._]+\\)/\\([-A-Z0-9$._]+\\)?$"
+ (if (string-match "\\`/\\([-A-Z0-9$*._]+\\)/\\([-A-Z0-9$._]+\\)?\\'"
name)
(let ((minidisk (match-string 1 name)))
(if (match-beginning 2)
@@ -5637,7 +5689,7 @@ Other orders of $ and _ seem to all work just fine.")
(cond
((string-equal "/" dir-name)
(error "Cannot get listing for fictitious \"/\" directory"))
- ((string-match "^/\\([-A-Z0-9$*._]+\\)/\\([-A-Z0-9$._]+\\)?$" dir-name)
+ ((string-match "\\`/\\([-A-Z0-9$*._]+\\)/\\([-A-Z0-9$._]+\\)?\\'" dir-name)
(let* ((minidisk (match-string 1 dir-name))
;; host and user are bound in the call to ange-ftp-send-cmd
(proc (ange-ftp-get-process ange-ftp-this-host ange-ftp-this-user))
@@ -5795,7 +5847,7 @@ Other orders of $ and _ seem to all work just fine.")
;; ange-ftp-dired-move-to-end-of-filename-alist)))
(defun ange-ftp-cms-make-compressed-filename (name &optional reverse)
- (if (string-match "-Z$" name)
+ (if (string-match "-Z\\'" name)
(list nil (substring name 0 -2))
(list t (concat name "-Z"))))
@@ -6046,5 +6098,5 @@ be recognized automatically (they are all valid BS2000 hosts too)."
(provide 'ange-ftp)
-;;; arch-tag: 2987ef88-cb56-4ec1-87a9-79132572e316
+;; arch-tag: 2987ef88-cb56-4ec1-87a9-79132572e316
;;; ange-ftp.el ends here
diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el
index 3b6cc279a1..74bace5895 100644
--- a/lisp/net/browse-url.el
+++ b/lisp/net/browse-url.el
@@ -1,7 +1,7 @@
;;; browse-url.el --- pass a URL to a WWW browser
-;; Copyright (C) 1995, 96, 97, 98, 99, 2000, 2001, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+;; 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Denis Howe <dbh@doc.ic.ac.uk>
;; Maintainer: FSF
diff --git a/lisp/net/eudc-bob.el b/lisp/net/eudc-bob.el
index a4ad3044f4..668b9edfcd 100644
--- a/lisp/net/eudc-bob.el
+++ b/lisp/net/eudc-bob.el
@@ -1,6 +1,7 @@
;;; eudc-bob.el --- Binary Objects Support for EUDC
-;; Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Oscar Figueiredo <oscar@cpe.fr>
;; Maintainer: Pavel Janík <Pavel@Janik.cz>
@@ -69,7 +70,7 @@
(defun eudc-jump-to-event (event)
"Jump to the window and point where EVENT occurred."
- (if eudc-xemacs-p
+ (if (fboundp 'event-closest-point)
(goto-char (event-closest-point event))
(set-buffer (window-buffer (posn-window (event-start event))))
(goto-char (posn-point (event-start event)))))
@@ -89,7 +90,7 @@
(defun eudc-bob-can-display-inline-images ()
"Return non-nil if we can display images inline."
- (if eudc-xemacs-p
+ (if (fboundp 'console-type)
(and (memq (console-type) '(x mswindows))
(fboundp 'make-glyph))
(and (fboundp 'display-graphic-p)
@@ -120,7 +121,7 @@ LABEL."
"Display the JPEG DATA at point.
If INLINE is non-nil, try to inline the image otherwise simply
display a button."
- (cond (eudc-xemacs-p
+ (cond ((fboundp 'make-glyph)
(let ((glyph (if (eudc-bob-can-display-inline-images)
(make-glyph (list (vector 'jpeg :data data)
[string :data "[JPEG Picture]"])))))
diff --git a/lisp/net/eudc-export.el b/lisp/net/eudc-export.el
index 52e09433a2..214481ce7f 100644
--- a/lisp/net/eudc-export.el
+++ b/lisp/net/eudc-export.el
@@ -1,6 +1,7 @@
;;; eudc-export.el --- functions to export EUDC query results
-;; Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Oscar Figueiredo <oscar@cpe.fr>
;; Maintainer: Pavel Janík <Pavel@Janik.cz>
diff --git a/lisp/net/eudc-hotlist.el b/lisp/net/eudc-hotlist.el
index f892bd6058..a8e7f6e328 100644
--- a/lisp/net/eudc-hotlist.el
+++ b/lisp/net/eudc-hotlist.el
@@ -1,6 +1,7 @@
;;; eudc-hotlist.el --- hotlist management for EUDC
-;; Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Oscar Figueiredo <oscar@cpe.fr>
;; Maintainer: Pavel Janík <Pavel@Janik.cz>
@@ -51,11 +52,11 @@ These are the special commands of this mode:
(setq major-mode 'eudc-hotlist-mode)
(setq mode-name "EUDC-Servers")
(use-local-map eudc-hotlist-mode-map)
- (setq mode-popup-menu eudc-hotlist-menu)
- (when (and eudc-xemacs-p
- (featurep 'menubar))
- (set-buffer-menubar current-menubar)
- (add-submenu nil (cons "EUDC-Hotlist" (cdr (cdr eudc-hotlist-menu)))))
+ (when (featurep 'xemacs)
+ (setq mode-popup-menu eudc-hotlist-menu)
+ (when (featurep 'menubar)
+ (set-buffer-menubar current-menubar)
+ (add-submenu nil (cons "EUDC-Hotlist" (cdr (cdr eudc-hotlist-menu))))))
(setq buffer-read-only t)
(run-mode-hooks 'eudc-hotlist-mode-hook))
diff --git a/lisp/net/eudc-vars.el b/lisp/net/eudc-vars.el
index 281daa3ac9..ecff056419 100644
--- a/lisp/net/eudc-vars.el
+++ b/lisp/net/eudc-vars.el
@@ -1,6 +1,7 @@
;;; eudc-vars.el --- Emacs Unified Directory Client
-;; Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Oscar Figueiredo <oscar@cpe.fr>
;; Maintainer: Pavel Janík <Pavel@Janik.cz>
diff --git a/lisp/net/eudc.el b/lisp/net/eudc.el
index 96289922cc..1c5fb7fbbc 100644
--- a/lisp/net/eudc.el
+++ b/lisp/net/eudc.el
@@ -1,6 +1,7 @@
;;; eudc.el --- Emacs Unified Directory Client
-;; Copyright (C) 1998, 1999, 2000, 2002, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Oscar Figueiredo <oscar@cpe.fr>
;; Maintainer: Pavel Janík <Pavel@Janik.cz>
@@ -75,6 +76,8 @@
(defvar eudc-form-widget-list nil)
(defvar eudc-mode-map nil)
+(defvar mode-popup-menu)
+
;; List of known servers
;; Alist of (SERVER . PROTOCOL)
(defvar eudc-server-hotlist nil)
diff --git a/lisp/net/eudcb-bbdb.el b/lisp/net/eudcb-bbdb.el
index 2d3db7f74c..8081cb1aac 100644
--- a/lisp/net/eudcb-bbdb.el
+++ b/lisp/net/eudcb-bbdb.el
@@ -1,6 +1,7 @@
;;; eudcb-bbdb.el --- Emacs Unified Directory Client - BBDB Backend
-;; Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Oscar Figueiredo <oscar@cpe.fr>
;; Maintainer: Pavel Janík <Pavel@Janik.cz>
diff --git a/lisp/net/eudcb-ldap.el b/lisp/net/eudcb-ldap.el
index 1890f34597..e28a044ba5 100644
--- a/lisp/net/eudcb-ldap.el
+++ b/lisp/net/eudcb-ldap.el
@@ -1,6 +1,7 @@
;;; eudcb-ldap.el --- Emacs Unified Directory Client - LDAP Backend
-;; Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Oscar Figueiredo <oscar@cpe.fr>
;; Maintainer: Pavel Janík <Pavel@Janik.cz>
diff --git a/lisp/net/eudcb-ph.el b/lisp/net/eudcb-ph.el
index ab9965efc1..3aea603025 100644
--- a/lisp/net/eudcb-ph.el
+++ b/lisp/net/eudcb-ph.el
@@ -1,6 +1,7 @@
;;; eudcb-ph.el --- Emacs Unified Directory Client - CCSO PH/QI Backend
-;; Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Oscar Figueiredo <oscar@cpe.fr>
;; Maintainer: Pavel Janík <Pavel@Janik.cz>
diff --git a/lisp/net/goto-addr.el b/lisp/net/goto-addr.el
index 9ce73dba47..98a8b0a29e 100644
--- a/lisp/net/goto-addr.el
+++ b/lisp/net/goto-addr.el
@@ -1,6 +1,7 @@
;;; goto-addr.el --- click to browse URL or to send to e-mail address
-;; Copyright (C) 1995, 2000, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Eric Ding <ericding@alum.mit.edu>
;; Maintainer: FSF
diff --git a/lisp/net/ldap.el b/lisp/net/ldap.el
index fc86688f56..f8e99abd18 100644
--- a/lisp/net/ldap.el
+++ b/lisp/net/ldap.el
@@ -1,6 +1,7 @@
;;; ldap.el --- client interface to LDAP for Emacs
-;; Copyright (C) 1998, 1999, 2000, 2002, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Oscar Figueiredo <oscar@cpe.fr>
;; Maintainer: FSF
diff --git a/lisp/net/net-utils.el b/lisp/net/net-utils.el
index 16bc93b612..043c18fc0d 100644
--- a/lisp/net/net-utils.el
+++ b/lisp/net/net-utils.el
@@ -1,6 +1,7 @@
;;; net-utils.el --- network functions
-;; Copyright (C) 1998, 1999, 2000, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Peter Breton <pbreton@cs.umb.edu>
;; Created: Sun Mar 16 1997
@@ -460,7 +461,7 @@ If your system's ping continues until interrupted, you can try setting
)))
;;;###autoload
-(defun dig (host)
+(defun run-dig (host)
"Run dig program."
(interactive
(list
diff --git a/lisp/net/netrc.el b/lisp/net/netrc.el
index 963fea444f..228e02bf3a 100644
--- a/lisp/net/netrc.el
+++ b/lisp/net/netrc.el
@@ -1,6 +1,6 @@
;;; netrc.el --- .netrc parsing functionality
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
diff --git a/lisp/net/quickurl.el b/lisp/net/quickurl.el
index a030275f73..81a2e8a09a 100644
--- a/lisp/net/quickurl.el
+++ b/lisp/net/quickurl.el
@@ -1,6 +1,7 @@
;;; quickurl.el --- insert an URL based on text at point in buffer
-;; Copyright (C) 1999,2000,2001,2005 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Dave Pearson <davep@davep.org>
;; Maintainer: Dave Pearson <davep@davep.org>
diff --git a/lisp/net/rcompile.el b/lisp/net/rcompile.el
index 6693f90257..47ee84d42b 100644
--- a/lisp/net/rcompile.el
+++ b/lisp/net/rcompile.el
@@ -1,6 +1,7 @@
;;; rcompile.el --- run a compilation on a remote machine
-;; Copyright (C) 1993, 1994 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Albert <alon@milcse.rtsg.mot.com>
;; Maintainer: FSF
diff --git a/lisp/net/rlogin.el b/lisp/net/rlogin.el
index 46a1847a7c..693113203b 100644
--- a/lisp/net/rlogin.el
+++ b/lisp/net/rlogin.el
@@ -1,6 +1,7 @@
;;; rlogin.el --- remote login interface
-;; Copyright (C) 1992, 93, 94, 95, 97, 1998, 2002, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1993, 1994, 1995, 1997, 1998, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Noah Friedman
;; Maintainer: Noah Friedman <friedman@splode.com>
diff --git a/lisp/net/snmp-mode.el b/lisp/net/snmp-mode.el
index 723b73cd77..31c600a280 100644
--- a/lisp/net/snmp-mode.el
+++ b/lisp/net/snmp-mode.el
@@ -1,6 +1,7 @@
;;; snmp-mode.el --- SNMP & SNMPv2 MIB major mode
-;; Copyright (C) 1995, 1998, 2002, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1998, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Paul D. Smith <psmith@BayNetworks.com>
;; Keywords: data
diff --git a/lisp/net/telnet.el b/lisp/net/telnet.el
index a28a74cc2b..e4f91351c2 100644
--- a/lisp/net/telnet.el
+++ b/lisp/net/telnet.el
@@ -1,6 +1,7 @@
;;; telnet.el --- run a telnet session from within an Emacs buffer
-;; Copyright (C) 1985, 88, 1992, 94, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1988, 1992, 1994, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: William F. Schelter
;; Maintainer: FSF
diff --git a/lisp/net/tls.el b/lisp/net/tls.el
index f0b21383d6..ceebe4b33d 100644
--- a/lisp/net/tls.el
+++ b/lisp/net/tls.el
@@ -1,6 +1,7 @@
;;; tls.el --- TLS/SSL support via wrapper around GnuTLS
-;; Copyright (C) 1996-1999, 2003, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Simon Josefsson <simon@josefsson.org>
;; Keywords: comm, tls, gnutls, ssl
diff --git a/lisp/net/tramp-ftp.el b/lisp/net/tramp-ftp.el
index 05beeb246e..53cc392ad7 100644
--- a/lisp/net/tramp-ftp.el
+++ b/lisp/net/tramp-ftp.el
@@ -1,8 +1,8 @@
-;;; tramp-ftp.el --- Tramp convenience functions for Ange-FTP and EFS -*- coding: iso-8859-1; -*-
+;;; tramp-ftp.el --- Tramp convenience functions for Ange-FTP -*- coding: iso-8859-1; -*-
;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-;; Author: Michael Albinus <Michael.Albinus@alcatel.de>
+;; Author: Michael Albinus <michael.albinus@gmx.de>
;; Keywords: comm, processes
;; This file is part of GNU Emacs.
diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el
index 74e2796fde..5644e081e6 100644
--- a/lisp/net/tramp-smb.el
+++ b/lisp/net/tramp-smb.el
@@ -46,11 +46,6 @@
(defalias 'warnings 'identity) ; Pacify Emacs byte-compiler
(byte-compiler-options (warnings (- unused-vars))))))
-;; XEmacs byte-compiler raises warning abouts `last-coding-system-used'.
-(eval-when-compile
- (unless (boundp 'last-coding-system-used)
- (defvar last-coding-system-used nil)))
-
;; Define SMB method ...
(defcustom tramp-smb-method "smb"
"*Method to connect SAMBA and M$ SMB servers."
@@ -598,13 +593,6 @@ Catches errors for shares like \"C$/\", which are common in Microsoft Windows."
(let ((share (tramp-smb-get-share localname))
(file (tramp-smb-get-localname localname t))
(curbuf (current-buffer))
- ;; We use this to save the value of `last-coding-system-used'
- ;; after writing the tmp file. At the end of the function,
- ;; we set `last-coding-system-used' to this saved value.
- ;; This way, any intermediary coding systems used while
- ;; talking to the remote shell or suchlike won't hose this
- ;; variable. This approach was snarfed from ange-ftp.el.
- coding-system-used
tmpfil)
;; Write region into a tmp file.
(setq tmpfil (tramp-make-temp-file))
@@ -616,9 +604,6 @@ Catches errors for shares like \"C$/\", which are common in Microsoft Windows."
(if confirm ; don't pass this arg unless defined for backward compat.
(list start end tmpfil append 'no-message lockname confirm)
(list start end tmpfil append 'no-message lockname)))
- ;; Now, `last-coding-system-used' has the right value. Remember it.
- (when (boundp 'last-coding-system-used)
- (setq coding-system-used last-coding-system-used))
(tramp-smb-maybe-open-connection user host share)
(tramp-message-for-buffer
@@ -636,10 +621,7 @@ Catches errors for shares like \"C$/\", which are common in Microsoft Windows."
(error "Buffer has changed from `%s' to `%s'"
curbuf (current-buffer)))
(when (eq visit t)
- (set-visited-file-modtime))
- ;; Make `last-coding-system-used' have the right value.
- (when (boundp 'last-coding-system-used)
- (setq last-coding-system-used coding-system-used))))))
+ (set-visited-file-modtime))))))
;; Internal file name functions
@@ -1000,7 +982,7 @@ Returns nil if an error message has appeared."
(while (and (not found) (not err))
;; Accept pending output.
- (accept-process-output proc)
+ (tramp-accept-process-output proc)
;; Search for prompt.
(goto-char (point-min))
diff --git a/lisp/net/tramp-uu.el b/lisp/net/tramp-uu.el
index 0b8e83080f..e1e22af3ca 100644
--- a/lisp/net/tramp-uu.el
+++ b/lisp/net/tramp-uu.el
@@ -1,9 +1,9 @@
;;; -*- coding: iso-2022-7bit; -*-
;;; tramp-uu.el --- uuencode in Lisp
-;; Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-;; Author: Kai Gro,A_(Bjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+;; Author: Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net>
;; Keywords: comm, terminals
;; This file is free software; you can redistribute it and/or modify
diff --git a/lisp/net/tramp-vc.el b/lisp/net/tramp-vc.el
index 76563c3316..c1806a4be2 100644
--- a/lisp/net/tramp-vc.el
+++ b/lisp/net/tramp-vc.el
@@ -1,6 +1,7 @@
;;; tramp-vc.el --- Version control integration for TRAMP.el
-;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 by Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Daniel Pittman <daniel@danann.net>
;; Keywords: comm, processes
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 6d6e606e5e..e721f3fb01 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -1,9 +1,11 @@
;;; -*- mode: Emacs-Lisp; coding: iso-2022-7bit; -*-
;;; tramp.el --- Transparent Remote Access, Multiple Protocol
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
-;; Author: kai.grossjohann@gmx.net
+;; Author: Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net>
+;; Michael Albinus <michael.albinus@gmx.de>
;; Keywords: comm, processes
;; This file is part of GNU Emacs.
@@ -146,11 +148,6 @@ Nil means to use a separate filename syntax for Tramp.")
(when (boundp 'byte-compile-not-obsolete-var)
(setq byte-compile-not-obsolete-var 'directory-sep-char)))
-;; XEmacs byte-compiler raises warning abouts `last-coding-system-used'.
-(eval-when-compile
- (unless (boundp 'last-coding-system-used)
- (defvar last-coding-system-used nil)))
-
;;; User Customizable Internal Variables:
(defgroup tramp nil
@@ -1030,7 +1027,7 @@ Derived from `tramp-postfix-multi-hop-format'."
:type 'regexp)
(defcustom tramp-user-regexp
- "[^:@/ \t]*"
+ "[^:/ \t]*"
"*Regexp matching user names."
:group 'tramp
:type 'regexp)
@@ -1859,6 +1856,7 @@ on the FILENAME argument, even if VISIT was a string.")
(insert-file-contents . tramp-handle-insert-file-contents)
(write-region . tramp-handle-write-region)
(find-backup-file-name . tramp-handle-find-backup-file-name)
+ (make-auto-save-file-name . tramp-handle-make-auto-save-file-name)
(unhandled-file-name-directory . tramp-handle-unhandled-file-name-directory)
(dired-compress-file . tramp-handle-dired-compress-file)
(dired-call-process . tramp-handle-dired-call-process)
@@ -1866,7 +1864,7 @@ on the FILENAME argument, even if VISIT was a string.")
. tramp-handle-dired-recursive-delete-directory)
(set-visited-file-modtime . tramp-handle-set-visited-file-modtime)
(verify-visited-file-modtime . tramp-handle-verify-visited-file-modtime))
- "Alist of handler functions.
+ "Alist of handler functions.
Operations not mentioned here will be handled by the normal Emacs functions.")
;; Handlers for partial tramp file names. For GNU Emacs just
@@ -1913,7 +1911,9 @@ This function expects to be called from the tramp buffer only!"
tramp-current-multi-method tramp-current-method
tramp-current-user tramp-current-host))
(goto-char (point-max))
- (tramp-insert-with-face
+ (unless (bolp)
+ (insert "\n"))
+ (tramp-insert-with-face
'italic
(concat "# " (apply #'format fmt-string args) "\n"))))))
@@ -2095,7 +2095,7 @@ target of the symlink differ."
file)))
(unless noerror
(when (not (file-exists-p file))
- (error "Cannot load nonexistant file `%s'" file)))
+ (error "Cannot load nonexistent file `%s'" file)))
(if (not (file-exists-p file))
nil
(unless nomessage
@@ -2369,16 +2369,13 @@ target of the symlink differ."
(buffer-name)))
(if time-list
(tramp-run-real-handler 'set-visited-file-modtime (list time-list))
- (let ((f (buffer-file-name))
- (coding-system-used nil))
+ (let ((f (buffer-file-name)))
(with-parsed-tramp-file-name f nil
(let* ((attr (file-attributes f))
;; '(-1 65535) means file doesn't exists yet.
(modtime (or (nth 5 attr) '(-1 65535))))
;; We use '(0 0) as a don't-know value. See also
;; `tramp-handle-file-attributes-with-ls'.
- (when (boundp 'last-coding-system-used)
- (setq coding-system-used last-coding-system-used))
(if (not (equal modtime '(0 0)))
(tramp-run-real-handler 'set-visited-file-modtime (list modtime))
(save-excursion
@@ -2391,9 +2388,7 @@ target of the symlink differ."
(setq attr (buffer-substring (point)
(progn (end-of-line) (point)))))
(setq tramp-buffer-file-attributes attr))
- (when (boundp 'last-coding-system-used)
- (setq last-coding-system-used coding-system-used))
- nil)))))
+ nil)))))
;; CCC continue here
@@ -2411,7 +2406,7 @@ of."
;; recorded last modification time.
(if (or (not (buffer-file-name))
(eq (visited-file-modtime) 0))
- t
+ t
(let ((f (buffer-file-name)))
(with-parsed-tramp-file-name f nil
(let* ((attr (file-attributes f))
@@ -2446,12 +2441,6 @@ of."
;; if and only if that agrees with the buffer's record.
(t (equal mt '(-1 65535))))))))))
-(defadvice clear-visited-file-modtime (after tramp activate)
- "Set `tramp-buffer-file-attributes' back to nil.
-Tramp uses this variable as an emulation for the actual modtime of the file,
-if the remote host can't provide the modtime."
- (setq tramp-buffer-file-attributes nil))
-
(defun tramp-handle-set-file-modes (filename mode)
"Like `set-file-modes' for tramp files."
(with-parsed-tramp-file-name filename nil
@@ -3136,8 +3125,7 @@ be a local filename. The method used must be an out-of-band method."
tramp-current-method method
tramp-current-user user
tramp-current-host host)
- (tramp-message
- 5 "Transferring %s to file %s..." filename newname)
+ (message "Transferring %s to %s..." filename newname)
;; Use rcp-like program for file transfer.
(let ((p (apply 'start-process (buffer-name trampbuf) trampbuf
@@ -3146,8 +3134,7 @@ be a local filename. The method used must be an out-of-band method."
(tramp-process-actions p multi-method method user host
tramp-actions-copy-out-of-band))
(kill-buffer trampbuf)
- (tramp-message
- 5 "Transferring %s to file %s...done" filename newname)
+ (message "Transferring %s to %s...done" filename newname)
;; Set the mode.
(unless keep-date
@@ -3318,7 +3305,7 @@ This is like `dired-recursive-delete-directory' for tramp files."
(filename switches &optional wildcard full-directory-p)
"Like `insert-directory' for tramp files."
(if (and (boundp 'ls-lisp-use-insert-directory-program)
- (not ls-lisp-use-insert-directory-program))
+ (not (symbol-value 'ls-lisp-use-insert-directory-program)))
(tramp-run-real-handler 'insert-directory
(list filename switches wildcard full-directory-p))
;; For the moment, we assume that the remote "ls" program does not
@@ -3504,7 +3491,7 @@ the result will be a local, non-Tramp, filename."
;; Remote commands.
(defvar tramp-async-proc nil
- "Global variable keeping asyncronous process object.
+ "Global variable keeping asynchronous process object.
Used in `tramp-handle-shell-command'")
(defun tramp-handle-shell-command (command &optional output-buffer error-buffer)
@@ -3761,7 +3748,6 @@ This will break if COMMAND prints a newline, followed by the value of
'insert-file-contents)
'file-local-copy)))
(file-local-copy filename)))
- (coding-system-used nil)
(result nil))
(when visit
(setq buffer-file-name filename)
@@ -3771,15 +3757,10 @@ This will break if COMMAND prints a newline, followed by the value of
multi-method method user host
9 "Inserting local temp file `%s'..." local-copy)
(setq result (insert-file-contents local-copy nil beg end replace))
- ;; Now `last-coding-system-used' has right value. Remember it.
- (when (boundp 'last-coding-system-used)
- (setq coding-system-used last-coding-system-used))
(tramp-message-for-buffer
multi-method method user host
9 "Inserting local temp file `%s'...done" local-copy)
(delete-file local-copy)
- (when (boundp 'last-coding-system-used)
- (setq last-coding-system-used coding-system-used))
(list (expand-file-name filename)
(second result))))))
@@ -3827,6 +3808,41 @@ This will break if COMMAND prints a newline, followed by the value of
(tramp-run-real-handler 'find-backup-file-name (list filename)))))
+(defun tramp-handle-make-auto-save-file-name ()
+ "Like `make-auto-save-file-name' for tramp files.
+Returns a file name in `tramp-auto-save-directory' for autosaving this file."
+ (when tramp-auto-save-directory
+ (unless (file-exists-p tramp-auto-save-directory)
+ (make-directory tramp-auto-save-directory t)))
+ ;; jka-compr doesn't like auto-saving, so by appending "~" to the
+ ;; file name we make sure that jka-compr isn't used for the
+ ;; auto-save file.
+ (let ((buffer-file-name
+ (if tramp-auto-save-directory
+ (expand-file-name
+ (tramp-subst-strs-in-string
+ '(("_" . "|")
+ ("/" . "_a")
+ (":" . "_b")
+ ("|" . "__")
+ ("[" . "_l")
+ ("]" . "_r"))
+ (buffer-file-name))
+ tramp-auto-save-directory)
+ (buffer-file-name))))
+ ;; Run plain `make-auto-save-file-name'. There might be an advice when
+ ;; it is not a magic file name operation (since Emacs 22).
+ ;; We must deactivate it temporarily.
+ (if (not (ad-is-active 'make-auto-save-file-name))
+ (tramp-run-real-handler
+ 'make-auto-save-file-name nil)
+ ;; else
+ (ad-deactivate 'make-auto-save-file-name)
+ (prog1
+ (tramp-run-real-handler
+ 'make-auto-save-file-name nil)
+ (ad-activate 'make-auto-save-file-name)))))
+
;; CCC grok APPEND, LOCKNAME, CONFIRM
(defun tramp-handle-write-region
@@ -3844,7 +3860,7 @@ This will break if COMMAND prints a newline, followed by the value of
;; (string= lockname filename))
;; (error
;; "tramp-handle-write-region: LOCKNAME must be nil or equal FILENAME"))
- ;; XEmacs takes a coding system as the sevent argument, not `confirm'
+ ;; XEmacs takes a coding system as the seventh argument, not `confirm'
(when (and (not (featurep 'xemacs))
confirm (file-exists-p filename))
(unless (y-or-n-p (format "File %s exists; overwrite anyway? "
@@ -3858,13 +3874,6 @@ This will break if COMMAND prints a newline, followed by the value of
(loc-dec (tramp-get-local-decoding multi-method method user host))
(trampbuf (get-buffer-create "*tramp output*"))
(modes (file-modes filename))
- ;; We use this to save the value of `last-coding-system-used'
- ;; after writing the tmp file. At the end of the function,
- ;; we set `last-coding-system-used' to this saved value.
- ;; This way, any intermediary coding systems used while
- ;; talking to the remote shell or suchlike won't hose this
- ;; variable. This approach was snarfed from ange-ftp.el.
- coding-system-used
tmpfil)
;; Write region into a tmp file. This isn't really needed if we
;; use an encoding function, but currently we use it always
@@ -3886,9 +3895,6 @@ This will break if COMMAND prints a newline, followed by the value of
;; the backup file. This case `save-buffer' handles
;; permissions.
(when modes (set-file-modes tmpfil modes))
- ;; Now, `last-coding-system-used' has the right value. Remember it.
- (when (boundp 'last-coding-system-used)
- (setq coding-system-used last-coding-system-used))
;; This is a bit lengthy due to the different methods possible for
;; file transfer. First, we check whether the method uses an rcp
;; program. If so, we call it. Otherwise, both encoding and
@@ -3990,9 +3996,6 @@ This will break if COMMAND prints a newline, followed by the value of
;; We must pass modtime explicitely, because filename can be different
;; from (buffer-file-name), f.e. if `file-precious-flag' is set.
(nth 5 (file-attributes filename))))
- ;; Make `last-coding-system-used' have the right value.
- (when (boundp 'last-coding-system-used)
- (setq last-coding-system-used coding-system-used))
(when (or (eq visit t)
(eq visit nil)
(stringp visit))
@@ -4119,8 +4122,9 @@ ARGS are the arguments OPERATION has been called with."
(nth 2 args))
; BUF
((member operation
- (list 'set-visited-file-modtime 'verify-visited-file-modtime
- ; XEmacs only
+ (list 'make-auto-save-file-name
+ 'set-visited-file-modtime 'verify-visited-file-modtime
+ ; XEmacs only
'backup-buffer))
(buffer-file-name
(if (bufferp (nth 0 args)) (nth 0 args) (current-buffer))))
@@ -4300,7 +4304,7 @@ necessary anymore."
(symbol-function 'PC-expand-many-files))
(defun PC-expand-many-files (name)
(if (tramp-tramp-file-p name)
- (expand-many-files name)
+ (funcall (symbol-function 'expand-many-files) name)
(tramp-save-PC-expand-many-files name))))
;; Why isn't eval-after-load sufficient?
@@ -4824,12 +4828,11 @@ User may be nil."
(defun tramp-completion-handle-expand-file-name (name &optional dir)
"Like `expand-file-name' for tramp files."
(let ((fullname (concat (or dir default-directory) name)))
- (tramp-drop-volume-letter
- (if (tramp-completion-mode fullname)
- (tramp-run-real-handler
- 'expand-file-name (list name dir))
- (tramp-completion-run-real-handler
- 'expand-file-name (list name dir))))))
+ (if (tramp-completion-mode fullname)
+ (tramp-run-real-handler
+ 'expand-file-name (list name dir))
+ (tramp-completion-run-real-handler
+ 'expand-file-name (list name dir)))))
;;; Internal Functions:
@@ -5126,12 +5129,9 @@ file exists and nonzero exit status otherwise."
(tramp-send-command
multi-method method user host
(concat "PS1='$ ' exec " shell)) ;
- (unless (tramp-wait-for-regexp
- (get-buffer-process (current-buffer))
- 60 (format "\\(\\(%s\\)\\|\\(%s\\)\\)\\'"
- tramp-shell-prompt-pattern shell-prompt-pattern))
- (pop-to-buffer (buffer-name))
- (error "Couldn't find remote `%s' prompt" shell))
+ (tramp-barf-if-no-shell-prompt
+ (get-buffer-process (current-buffer))
+ 60 "Couldn't find remote `%s' prompt" shell)
(tramp-message
9 "Setting remote shell prompt...")
;; Douglas Gray Stephens <DGrayStephens@slb.com> says that we
@@ -5330,7 +5330,7 @@ The terminal type can be configured with `tramp-terminal-type'."
(tramp-message 9 "Waiting 60s for prompt from remote shell")
(with-timeout (60 (throw 'tramp-action 'timeout))
(while (not found)
- (accept-process-output p 1)
+ (tramp-accept-process-output p 1)
(goto-char (point-min))
(setq todo actions)
(while todo
@@ -5367,7 +5367,7 @@ The terminal type can be configured with `tramp-terminal-type'."
(tramp-message 9 "Waiting 60s for prompt from remote shell")
(with-timeout (60 (throw 'tramp-action 'timeout))
(while (not found)
- (accept-process-output p 1)
+ (tramp-accept-process-output p 1)
(setq todo actions)
(goto-char (point-min))
(while todo
@@ -5756,6 +5756,14 @@ character."
;; Utility functions.
+(defun tramp-accept-process-output
+ (&optional process timeout timeout-msecs)
+ "Like `accept-process-output' for Tramp processes.
+This is needed in order to hide `last-coding-system-used', which is set
+for process communication also."
+ (let (last-coding-system-used)
+ (accept-process-output process timeout timeout-msecs)))
+
(defun tramp-wait-for-regexp (proc timeout regexp)
"Wait for a REGEXP to appear from process PROC within TIMEOUT seconds.
Expects the output of PROC to be sent to the current buffer. Returns
@@ -5772,20 +5780,18 @@ nil."
timeout))
(with-timeout (timeout)
(while (not found)
- (accept-process-output proc 1)
+ (tramp-accept-process-output proc 1)
(unless (memq (process-status proc) '(run open))
(error "Process has died"))
(goto-char (point-min))
- (setq found (when (re-search-forward regexp nil t)
- (tramp-match-string-list)))))))
+ (setq found (re-search-forward regexp nil t))))))
(t
(while (not found)
- (accept-process-output proc 1)
+ (tramp-accept-process-output proc 1)
(unless (memq (process-status proc) '(run open))
(error "Process has died"))
(goto-char (point-min))
- (setq found (when (re-search-forward regexp nil t)
- (tramp-match-string-list))))))
+ (setq found (re-search-forward regexp nil t)))))
(when tramp-debug-buffer
(append-to-buffer
(tramp-get-debug-buffer tramp-current-multi-method tramp-current-method
@@ -6398,7 +6404,7 @@ Sends COMMAND, then waits 30 seconds for shell prompt."
timeout))
(with-timeout (timeout)
(while (not found)
- (accept-process-output proc 1)
+ (tramp-accept-process-output proc 1)
(unless (memq (process-status proc) '(run open))
(error "Process has died"))
(goto-char (point-max))
@@ -6406,7 +6412,7 @@ Sends COMMAND, then waits 30 seconds for shell prompt."
(setq found (looking-at end-of-output))))))
(t
(while (not found)
- (accept-process-output proc 1)
+ (tramp-accept-process-output proc 1)
(unless (memq (process-status proc) '(run open))
(error "Process has died"))
(goto-char (point-max))
@@ -6443,18 +6449,6 @@ Sends COMMAND, then waits 30 seconds for shell prompt."
;; Return value is whether end-of-output sentinel was found.
found))
-(defun tramp-match-string-list (&optional string)
- "Returns list of all match strings.
-That is, (list (match-string 0) (match-string 1) ...), according to the
-number of matches."
- (let* ((nmatches (/ (length (match-data)) 2))
- (i (- nmatches 1))
- (res nil))
- (while (>= i 0)
- (setq res (cons (match-string i string) res))
- (setq i (- i 1)))
- res))
-
(defun tramp-send-command-and-check (multi-method method user host command
&optional subshell)
"Run COMMAND and check its exit status.
@@ -6555,7 +6549,7 @@ MULTI-METHOD, METHOD, USER, and HOST specify the connection."
If `tramp-discard-garbage' is nil, just erase buffer."
(if (not tramp-discard-garbage)
(erase-buffer)
- (while (prog1 (erase-buffer) (accept-process-output p 0.25))
+ (while (prog1 (erase-buffer) (tramp-accept-process-output p 0.25))
(when tramp-debug-buffer
(save-excursion
(set-buffer (tramp-get-debug-buffer multi-method method user host))
@@ -6948,33 +6942,28 @@ as default."
;; Auto saving to a special directory.
-(defun tramp-make-auto-save-file-name (fn)
- "Returns a file name in `tramp-auto-save-directory' for autosaving this file."
- (when tramp-auto-save-directory
- (unless (file-exists-p tramp-auto-save-directory)
- (make-directory tramp-auto-save-directory t)))
- ;; jka-compr doesn't like auto-saving, so by appending "~" to the
- ;; file name we make sure that jka-compr isn't used for the
- ;; auto-save file.
- (let ((buffer-file-name (expand-file-name
- (tramp-subst-strs-in-string '(("_" . "|")
- ("/" . "_a")
- (":" . "_b")
- ("|" . "__")
- ("[" . "_l")
- ("]" . "_r"))
- fn)
- tramp-auto-save-directory)))
- (make-auto-save-file-name)))
-
-(defadvice make-auto-save-file-name
- (around tramp-advice-make-auto-save-file-name () activate)
- "Invoke `tramp-make-auto-save-file-name' for tramp files."
- (if (and (buffer-file-name) (tramp-tramp-file-p (buffer-file-name))
- tramp-auto-save-directory)
- (setq ad-return-value
- (tramp-make-auto-save-file-name (buffer-file-name)))
- ad-do-it))
+(defun tramp-exists-file-name-handler (operation &rest args)
+ (let ((buffer-file-name "/")
+ (fnha file-name-handler-alist)
+ (check-file-name-operation operation)
+ (file-name-handler-alist
+ (list
+ (cons "/"
+ '(lambda (operation &rest args)
+ "Returns OPERATION if it is the one to be checked"
+ (if (equal check-file-name-operation operation)
+ operation
+ (let ((file-name-handler-alist fnha))
+ (apply operation args))))))))
+ (eq (apply operation args) operation)))
+
+(unless (tramp-exists-file-name-handler 'make-auto-save-file-name)
+ (defadvice make-auto-save-file-name
+ (around tramp-advice-make-auto-save-file-name () activate)
+ "Invoke `tramp-handle-make-auto-save-file-name' for tramp files."
+ (if (and (buffer-file-name) (tramp-tramp-file-p (buffer-file-name)))
+ (setq ad-return-value (tramp-handle-make-auto-save-file-name))
+ ad-do-it)))
;; In Emacs < 22 and XEmacs < 21.5 autosaved remote files have
;; permission 0666 minus umask. This is a security threat.
@@ -6992,7 +6981,7 @@ as default."
;; auto-saved file belonging to another original file. This could
;; be a security threat.
(set-file-modes buffer-auto-save-file-name
- (or (file-modes bfn) ?\600)))))
+ (or (file-modes bfn) #o600)))))
(unless (or (> emacs-major-version 21)
(and (featurep 'xemacs)
@@ -7129,10 +7118,11 @@ it does the right thing."
"Specify if query is needed for process when Emacs is exited.
If the second argument flag is non-nil, Emacs will query the user before
exiting if process is running."
+ (funcall
(if (fboundp 'set-process-query-on-exit-flag)
- (set-process-query-on-exit-flag process flag)
- (funcall (symbol-function 'process-kill-without-query)
- process flag)))
+ (symbol-function 'set-process-query-on-exit-flag)
+ (symbol-function 'process-kill-without-query))
+ process flag))
;; ------------------------------------------------------------
@@ -7212,20 +7202,19 @@ Only works for Bourne-like shells."
;; CCC: This check is now also really awful; we should search all
;; of the filename format, not just the prefix.
(when (string-match "\\[" tramp-prefix-format)
-(defadvice file-expand-wildcards (around tramp-fix activate)
- (let ((name (ad-get-arg 0)))
- (if (tramp-tramp-file-p name)
- ;; If it's a Tramp file, dissect it and look if wildcards
- ;; need to be expanded at all.
- (let ((v (tramp-dissect-file-name name)))
- (if (string-match "[[*?]" (tramp-file-name-localname v))
- (let ((res ad-do-it))
- (setq ad-return-value (or res (list name))))
- (setq ad-return-value (list name))))
- ;; If it is not a Tramp file, just run the original function.
- (let ((res ad-do-it))
- (setq ad-return-value (or res (list name)))))))
-)
+ (defadvice file-expand-wildcards (around tramp-fix activate)
+ (let ((name (ad-get-arg 0)))
+ (if (tramp-tramp-file-p name)
+ ;; If it's a Tramp file, dissect it and look if wildcards
+ ;; need to be expanded at all.
+ (let ((v (tramp-dissect-file-name name)))
+ (if (string-match "[[*?]" (tramp-file-name-localname v))
+ (let ((res ad-do-it))
+ (setq ad-return-value (or res (list name))))
+ (setq ad-return-value (list name))))
+ ;; If it is not a Tramp file, just run the original function.
+ (let ((res ad-do-it))
+ (setq ad-return-value (or res (list name))))))))
;; Tramp version is useful in a number of situations.
@@ -7245,69 +7234,74 @@ Only works for Bourne-like shells."
(interactive)
(require 'reporter)
(catch 'dont-send
- (let ((reporter-prompt-for-summary-p t))
+ (let ((reporter-prompt-for-summary-p t))
(reporter-submit-bug-report
tramp-bug-report-address ; to-address
(format "tramp (%s)" tramp-version) ; package name and version
- `(;; Current state
- tramp-ls-command
- tramp-test-groks-nt
- tramp-file-exists-command
- tramp-current-multi-method
- tramp-current-method
- tramp-current-user
- tramp-current-host
-
- ;; System defaults
- tramp-auto-save-directory ; vars to dump
- tramp-default-method
- tramp-rsh-end-of-line
- tramp-default-password-end-of-line
- tramp-remote-path
- tramp-login-prompt-regexp
- tramp-password-prompt-regexp
- tramp-wrong-passwd-regexp
- tramp-yesno-prompt-regexp
- tramp-yn-prompt-regexp
- tramp-terminal-prompt-regexp
- tramp-temp-name-prefix
- tramp-file-name-structure
- tramp-file-name-regexp
- tramp-multi-file-name-structure
- tramp-multi-file-name-hop-structure
- tramp-multi-methods
- tramp-multi-connection-function-alist
- tramp-methods
- tramp-end-of-output
- tramp-coding-commands
- tramp-actions-before-shell
- tramp-actions-copy-out-of-band
- tramp-multi-actions
- tramp-terminal-type
- tramp-shell-prompt-pattern
- tramp-chunksize
- ,(when (boundp 'tramp-backup-directory-alist)
- 'tramp-backup-directory-alist)
- ,(when (boundp 'tramp-bkup-backup-directory-info)
- 'tramp-bkup-backup-directory-info)
-
- ;; Non-tramp variables of interest
- shell-prompt-pattern
- backup-by-copying
- backup-by-copying-when-linked
- backup-by-copying-when-mismatch
- ,(when (boundp 'backup-by-copying-when-privileged-mismatch)
- 'backup-by-copying-when-privileged-mismatch)
- ,(when (boundp 'password-cache)
- 'password-cache)
- ,(when (boundp 'password-cache-expiry)
- 'password-cache-expiry)
- ,(when (boundp 'backup-directory-alist)
- 'backup-directory-alist)
- ,(when (boundp 'bkup-backup-directory-info)
- 'bkup-backup-directory-info)
- file-name-handler-alist)
- nil ; pre-hook
+ (delq nil
+ `(;; Current state
+ tramp-ls-command
+ tramp-test-groks-nt
+ tramp-file-exists-command
+ tramp-current-multi-method
+ tramp-current-method
+ tramp-current-user
+ tramp-current-host
+
+ ;; System defaults
+ tramp-auto-save-directory ; vars to dump
+ tramp-default-method
+ tramp-rsh-end-of-line
+ tramp-default-password-end-of-line
+ tramp-remote-path
+ tramp-login-prompt-regexp
+ ;; Mask non-7bit characters
+ (tramp-password-prompt-regexp . tramp-reporter-dump-variable)
+ tramp-wrong-passwd-regexp
+ tramp-yesno-prompt-regexp
+ tramp-yn-prompt-regexp
+ tramp-terminal-prompt-regexp
+ tramp-temp-name-prefix
+ tramp-file-name-structure
+ tramp-file-name-regexp
+ tramp-multi-file-name-structure
+ tramp-multi-file-name-hop-structure
+ tramp-multi-methods
+ tramp-multi-connection-function-alist
+ tramp-methods
+ tramp-end-of-output
+ tramp-coding-commands
+ tramp-actions-before-shell
+ tramp-actions-copy-out-of-band
+ tramp-multi-actions
+ tramp-terminal-type
+ ;; Mask non-7bit characters
+ (tramp-shell-prompt-pattern . tramp-reporter-dump-variable)
+ tramp-chunksize
+ ,(when (boundp 'tramp-backup-directory-alist)
+ 'tramp-backup-directory-alist)
+ ,(when (boundp 'tramp-bkup-backup-directory-info)
+ 'tramp-bkup-backup-directory-info)
+
+ ;; Non-tramp variables of interest
+ ;; Mask non-7bit characters
+ (shell-prompt-pattern . tramp-reporter-dump-variable)
+ backup-by-copying
+ backup-by-copying-when-linked
+ backup-by-copying-when-mismatch
+ ,(when (boundp 'backup-by-copying-when-privileged-mismatch)
+ 'backup-by-copying-when-privileged-mismatch)
+ ,(when (boundp 'password-cache)
+ 'password-cache)
+ ,(when (boundp 'password-cache-expiry)
+ 'password-cache-expiry)
+ ,(when (boundp 'backup-directory-alist)
+ 'backup-directory-alist)
+ ,(when (boundp 'bkup-backup-directory-info)
+ 'bkup-backup-directory-info)
+ file-name-handler-alist))
+
+ 'tramp-load-report-modules ; pre-hook
'tramp-append-tramp-buffers ; post-hook
"\
Enter your bug report in this message, including as much detail as you
@@ -7326,8 +7320,43 @@ report.
--bug report follows this line--
"))))
-(defun tramp-append-tramp-buffers ()
- "Append Tramp buffers into the bug report."
+(defun tramp-reporter-dump-variable (varsym mailbuf)
+ "Pretty-print the value of the variable in symbol VARSYM.
+Used for non-7bit chars in strings."
+ (let* ((reporter-eval-buffer (symbol-value 'reporter-eval-buffer))
+ (val (with-current-buffer reporter-eval-buffer
+ (symbol-value varsym))))
+
+ ;; There are characters to be masked.
+ (when (and (boundp 'mm-7bit-chars)
+ (string-match
+ (concat "[^" (symbol-value 'mm-7bit-chars) "]") val))
+ (with-current-buffer reporter-eval-buffer
+ (set varsym (concat "(base64-decode-string \""
+ (base64-encode-string val)
+ "\")"))))
+
+ ;; Dump variable.
+ (funcall (symbol-function 'reporter-dump-variable) varsym mailbuf)
+
+ ;; Remove string quotation.
+ (forward-line -1)
+ (when (looking-at
+ (concat "\\(^.*\\)" "\"" ;; \1 "
+ "\\((base64-decode-string \\)" "\\\\" ;; \2 \
+ "\\(\".*\\)" "\\\\" ;; \3 \
+ "\\(\")\\)" "\"$")) ;; \4 "
+ (replace-match "\\1\\2\\3\\4")
+ (beginning-of-line)
+ (insert " ;; variable encoded due to non-printable characters\n"))
+ (forward-line 1)
+
+ ;; Reset VARSYM to old value.
+ (with-current-buffer reporter-eval-buffer
+ (set varsym val))))
+
+(defun tramp-load-report-modules ()
+ "Load needed modules for reporting."
;; We load message.el and mml.el from Gnus.
(if (featurep 'xemacs)
@@ -7337,9 +7366,12 @@ report.
(require 'message nil 'noerror)
(require 'mml nil 'noerror))
(when (functionp 'message-mode)
- (funcall 'message-mode))
+ (funcall (symbol-function 'message-mode)))
(when (functionp 'mml-mode)
- (funcall 'mml-mode t))
+ (funcall (symbol-function 'mml-mode) t)))
+
+(defun tramp-append-tramp-buffers ()
+ "Append Tramp buffers into the bug report."
(when (and
(eq major-mode 'message-mode)
@@ -7393,10 +7425,10 @@ Therefore, the contents of files might be included in the debug buffer(s).")
(goto-char (point-max))
(insert "\n\n")
(dolist (buffer buffer-list)
- (mml-insert-empty-tag
- 'part 'type "text/plain" 'encoding "base64"
- 'disposition "attachment" 'buffer (buffer-name buffer)
- 'description (buffer-name buffer)))
+ (funcall (symbol-function 'mml-insert-empty-tag)
+ 'part 'type "text/plain" 'encoding "base64"
+ 'disposition "attachment" 'buffer (buffer-name buffer)
+ 'description (buffer-name buffer)))
(set-buffer-modified-p nil))
;; Don't send. Delete the message buffer.
diff --git a/lisp/net/trampver.el b/lisp/net/trampver.el
index d928380b86..2ba9f7b324 100644
--- a/lisp/net/trampver.el
+++ b/lisp/net/trampver.el
@@ -2,9 +2,9 @@
;;; trampver.el --- Transparent Remote Access, Multiple Protocol
;;; lisp/trampver.el. Generated from trampver.el.in by configure.
-;; Copyright (C) 2003, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
-;; Author: Kai.Grossjohann@CS.Uni-Dortmund.DE
+;; Author: Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net>
;; Keywords: comm, processes
;; This file is part of GNU Emacs.
@@ -30,7 +30,7 @@
;; are auto-frobbed from configure.ac, so you should edit that file and run
;; "autoconf && ./configure" to change them.
-(defconst tramp-version "2.0.49"
+(defconst tramp-version "2.0.50"
"This version of Tramp.")
(defconst tramp-bug-report-address "tramp-devel@gnu.org"
diff --git a/lisp/net/webjump.el b/lisp/net/webjump.el
index 36625b4b0e..fc7b23ae1b 100644
--- a/lisp/net/webjump.el
+++ b/lisp/net/webjump.el
@@ -1,6 +1,7 @@
;;; webjump.el --- programmable Web hotlist
-;; Copyright (C) 1996, 1997, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Neil W. Van Dyke <nwv@acm.org>
;; Created: 09-Aug-1996
diff --git a/lisp/net/zone-mode.el b/lisp/net/zone-mode.el
index ab00c0ce5a..9f6c9d1c77 100644
--- a/lisp/net/zone-mode.el
+++ b/lisp/net/zone-mode.el
@@ -1,6 +1,6 @@
;;; zone-mode.el --- major mode for editing DNS zone files
-;; Copyright (C) 1998, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: John Heidemann <johnh@isi.edu>
;; Keywords: DNS, languages
diff --git a/lisp/newcomment.el b/lisp/newcomment.el
index c0ad722c15..6d95d3ee16 100644
--- a/lisp/newcomment.el
+++ b/lisp/newcomment.el
@@ -1,9 +1,10 @@
;;; newcomment.el --- (un)comment regions of buffers
-;; Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation Inc.
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: code extracted from Emacs-20's simple.el
-;; Maintainer: Stefan Monnier <monnier@cs.yale.edu>
+;; Maintainer: Stefan Monnier <monnier@iro.umontreal.ca>
;; Keywords: comment uncomment
;; This file is part of GNU Emacs.
diff --git a/lisp/novice.el b/lisp/novice.el
index 6fd67d4ac1..dfaf0b6c6d 100644
--- a/lisp/novice.el
+++ b/lisp/novice.el
@@ -1,7 +1,7 @@
;;; novice.el --- handling of disabled commands ("novice mode") for Emacs
-;; Copyright (C) 1985, 1986, 1987, 1994, 2002, 2004, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1987, 1994, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: internal, help
@@ -42,8 +42,7 @@
If nil, the feature is disabled, i.e., all commands work normally.")
;;;###autoload
-(defvaralias 'disabled-command-hook 'disabled-command-function)
-;;;###autoload (make-obsolete-variable 'disabled-command-hook 'disabled-command-function "22.1")
+(define-obsolete-variable-alias 'disabled-command-hook 'disabled-command-function "22.1")
;;;###autoload
(defun disabled-command-function (&rest ignore)
diff --git a/lisp/obsolete/awk-mode.el b/lisp/obsolete/awk-mode.el
index 9603d768c7..166986fd34 100644
--- a/lisp/obsolete/awk-mode.el
+++ b/lisp/obsolete/awk-mode.el
@@ -1,6 +1,7 @@
;;; awk-mode.el --- AWK code editing commands for Emacs
-;; Copyright (C) 1988,94,96,2000 Free Software Foundation, Inc.
+;; Copyright (C) 1988, 1994, 1996, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: unix, languages
diff --git a/lisp/term/bg-mouse.el b/lisp/obsolete/bg-mouse.el
index 017a92d577..687619a051 100644
--- a/lisp/term/bg-mouse.el
+++ b/lisp/obsolete/bg-mouse.el
@@ -1,6 +1,6 @@
;;; bg-mouse.el --- GNU Emacs code for BBN Bitgraph mouse
-;; Copyright (C) 2001 Free Software Foundation, Inc. Oct 1985.
+;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: John Robinson <jr@bbn-unix.arpa>
;; Stephen Gildea <gildea@bbn.com>
@@ -50,6 +50,13 @@
;;; semicolon screws up indenting, so use this instead
(defconst semicolon ?\;)
+(defvar bg-mouse-x)
+(defvar bg-mouse-y)
+(defvar bg-cursor-window)
+;; This variable does not exist since 1991, so it's a safe bet
+;; this package is not really used anymore. Still...
+(defvar mouse-map)
+
;;; Defuns:
(defun bg-mouse-report (prefix-arg)
diff --git a/lisp/obsolete/fast-lock.el b/lisp/obsolete/fast-lock.el
index 8975471629..495e95706c 100644
--- a/lisp/obsolete/fast-lock.el
+++ b/lisp/obsolete/fast-lock.el
@@ -1,6 +1,7 @@
;;; fast-lock.el --- automagic text properties caching for fast Font Lock mode
-;; Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Simon Marshall <simon@gnu.org>
;; Maintainer: FSF
@@ -186,6 +187,8 @@
(if (and (eq system-type 'ms-dos) (not (msdos-long-file-names)))
(error "`fast-lock' was written for long file name systems"))
+(defvar font-lock-face-list)
+
(eval-when-compile
;;
;; We don't do this at the top-level as we only use non-autoloaded macros.
@@ -233,22 +236,27 @@
(defmacro defcustom (symbol value doc &rest args)
`(defvar ,symbol ,value ,doc))))
-;(defun fast-lock-submit-bug-report ()
-; "Submit via mail a bug report on fast-lock.el."
-; (interactive)
-; (let ((reporter-prompt-for-summary-p t))
-; (reporter-submit-bug-report "simon@gnu.org" "fast-lock 3.14"
-; '(fast-lock-cache-directories fast-lock-minimum-size
-; fast-lock-save-others fast-lock-save-events fast-lock-save-faces
-; fast-lock-verbose)
-; nil nil
-; (concat "Hi Si.,
-;
-;I want to report a bug. I've read the `Bugs' section of `Info' on Emacs, so I
-;know how to make a clear and unambiguous report. To reproduce the bug:
-;
-;Start a fresh editor via `" invocation-name " -no-init-file -no-site-file'.
-;In the `*scratch*' buffer, evaluate:"))))
+;;(defun fast-lock-submit-bug-report ()
+;; "Submit via mail a bug report on fast-lock.el."
+;; (interactive)
+;; (let ((reporter-prompt-for-summary-p t))
+;; (reporter-submit-bug-report "simon@gnu.org" "fast-lock 3.14"
+;; '(fast-lock-cache-directories fast-lock-minimum-size
+;; fast-lock-save-others fast-lock-save-events fast-lock-save-faces
+;; fast-lock-verbose)
+;; nil nil
+;; (concat "Hi Si.,
+;;
+;;I want to report a bug. I've read the `Bugs' section of `Info' on Emacs, so I
+;;know how to make a clear and unambiguous report. To reproduce the bug:
+;;
+;;Start a fresh editor via `" invocation-name " -no-init-file -no-site-file'.
+;;In the `*scratch*' buffer, evaluate:"))))
+
+(defgroup fast-lock nil
+ "Font Lock support mode to cache fontification."
+ :load 'fast-lock
+ :group 'font-lock)
(defvar fast-lock-mode nil) ; Whether we are turned on.
(defvar fast-lock-cache-timestamp nil) ; For saving/reading.
@@ -371,8 +379,9 @@ For saving, see variables `fast-lock-minimum-size', `fast-lock-save-events',
(if arg (> (prefix-numeric-value arg) 0) (not fast-lock-mode))))
(if (and fast-lock-mode (not font-lock-mode))
;; Turned on `fast-lock-mode' rather than `font-lock-mode'.
- (let ((font-lock-support-mode 'fast-lock-mode))
- (font-lock-mode t))
+ (progn
+ (message "Use font-lock-support-mode rather than calling fast-lock-mode")
+ (sit-for 2))
;; Let's get down to business.
(set (make-local-variable 'fast-lock-cache-timestamp) nil)
(set (make-local-variable 'fast-lock-cache-filename) nil)
@@ -859,5 +868,5 @@ See `fast-lock-get-face-properties'."
(provide 'fast-lock)
-;;; arch-tag: 638c431e-8cae-4538-80a1-963ff97d233e
+;; arch-tag: 638c431e-8cae-4538-80a1-963ff97d233e
;;; fast-lock.el ends here
diff --git a/lisp/obsolete/float.el b/lisp/obsolete/float.el
index eb29f331ce..400956ea23 100644
--- a/lisp/obsolete/float.el
+++ b/lisp/obsolete/float.el
@@ -1,6 +1,6 @@
;;; float.el --- obsolete floating point arithmetic package
-;; Copyright (C) 1986 Free Software Foundation, Inc.
+;; Copyright (C) 1986, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Bill Rosenblatt
;; Maintainer: FSF
diff --git a/lisp/obsolete/hilit19.el b/lisp/obsolete/hilit19.el
index 162d2984eb..666c580098 100644
--- a/lisp/obsolete/hilit19.el
+++ b/lisp/obsolete/hilit19.el
@@ -1,6 +1,7 @@
;;; hilit19.el --- customizable highlighting for Emacs 19
-;; Copyright (c) 1993, 1994, 2001, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Jonathan Stigelman <stig@hackvan.com>
;; Maintainer: FSF
diff --git a/lisp/obsolete/hscroll.el b/lisp/obsolete/hscroll.el
index 1d727eb8d9..5e3d141f73 100644
--- a/lisp/obsolete/hscroll.el
+++ b/lisp/obsolete/hscroll.el
@@ -1,5 +1,7 @@
;;; hscroll.el --- automatically scroll truncated lines horizontally
-;;; Copyright (C) 1992, 1993, 1995, 1996 Free Software Foundation, Inc.
+
+;; Copyright (C) 1992, 1993, 1995, 1996, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Wayne Mesard <wmesard@esd.sgi.com>
;; Keywords: display
diff --git a/lisp/obsolete/iso-acc.el b/lisp/obsolete/iso-acc.el
index 279548b81d..6ff9e31d7f 100644
--- a/lisp/obsolete/iso-acc.el
+++ b/lisp/obsolete/iso-acc.el
@@ -1,7 +1,7 @@
;;; iso-acc.el --- minor mode providing electric accent keys
-;; Copyright (C) 1993, 1994, 1996, 2001, 2002, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 1996, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Johan Vromans
;; Maintainer: FSF
diff --git a/lisp/obsolete/iso-swed.el b/lisp/obsolete/iso-swed.el
index abe9dd9c47..ab5287bc97 100644
--- a/lisp/obsolete/iso-swed.el
+++ b/lisp/obsolete/iso-swed.el
@@ -1,6 +1,6 @@
;;; iso-swed.el --- set up char tables for ISO 8859/1 for Swedish/Finnish ttys
-;; Copyright (C) 1987 Free Software Foundation, Inc.
+;; Copyright (C) 1987, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Howard Gayle
;; Maintainer: FSF
diff --git a/lisp/obsolete/keyswap.el b/lisp/obsolete/keyswap.el
index 9bb0b9c63d..0ed70d61de 100644
--- a/lisp/obsolete/keyswap.el
+++ b/lisp/obsolete/keyswap.el
@@ -1,6 +1,6 @@
;;; keyswap.el --- swap BS and DEL keys -*- no-byte-compile: t -*-
-;; Copyright (C) 1992 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Eric S. Raymond <esr@snark.thyrsus.com>
;; Keywords: terminals
diff --git a/lisp/obsolete/lazy-lock.el b/lisp/obsolete/lazy-lock.el
index 558377289e..eaef84a6ab 100644
--- a/lisp/obsolete/lazy-lock.el
+++ b/lisp/obsolete/lazy-lock.el
@@ -1,7 +1,7 @@
;;; lazy-lock.el --- lazy demand-driven fontification for fast Font Lock mode
-;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 2001
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Simon Marshall <simon@gnu.org>
;; Maintainer: FSF
@@ -299,6 +299,10 @@ until TEST returns nil."
`(while (progn ,@body ,test)))
(put 'do-while 'lisp-indent-function (get 'while 'lisp-indent-function)))
+(defgroup lazy-lock nil
+ "Font Lock support mode to fontify lazily."
+ :group 'font-lock)
+
(defvar lazy-lock-mode nil) ; Whether we are turned on.
(defvar lazy-lock-buffers nil) ; For deferral.
(defvar lazy-lock-timers (cons nil nil)) ; For deferral and stealth.
@@ -522,8 +526,8 @@ verbosity is controlled via the variable `lazy-lock-stealth-verbose'."
(if arg (> (prefix-numeric-value arg) 0) (not was-on)))))
(cond ((and now-on (not font-lock-mode))
;; Turned on `lazy-lock-mode' rather than `font-lock-mode'.
- (let ((font-lock-support-mode 'lazy-lock-mode))
- (font-lock-mode t)))
+ (message "Use font-lock-support-mode rather than calling lazy-lock-mode")
+ (sit-for 2))
(now-on
;; Turn ourselves on.
(set (make-local-variable 'lazy-lock-mode) t)
@@ -1050,5 +1054,5 @@ verbosity is controlled via the variable `lazy-lock-stealth-verbose'."
(provide 'lazy-lock)
-;;; arch-tag: c1776846-f046-4a45-9684-54b951b12fc9
+;; arch-tag: c1776846-f046-4a45-9684-54b951b12fc9
;;; lazy-lock.el ends here
diff --git a/lisp/obsolete/mlsupport.el b/lisp/obsolete/mlsupport.el
index e36eae6694..22356f1df6 100644
--- a/lisp/obsolete/mlsupport.el
+++ b/lisp/obsolete/mlsupport.el
@@ -1,6 +1,6 @@
;;; mlsupport.el --- run-time support for mocklisp code
-;; Copyright (C) 1985 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: extensions
@@ -321,15 +321,15 @@
"Mocklisp compatibility variable; 1 means pass -f when calling csh.")
(defun filter-region (command)
- (let ((shell (if (/= use-users-shell 0) shell-file-name "/bin/sh"))
- (csh (equal (file-name-nondirectory shell) "csh")))
+ (let* ((shell (if (/= use-users-shell 0) shell-file-name "/bin/sh"))
+ (csh (equal (file-name-nondirectory shell) "csh")))
(call-process-region (point) (mark) shell t t nil
(if (and csh use-csh-option-f) "-cf" "-c")
(concat "exec " command))))
(defun execute-monitor-command (command)
- (let ((shell (if (/= use-users-shell 0) shell-file-name "/bin/sh"))
- (csh (equal (file-name-nondirectory shell) "csh")))
+ (let* ((shell (if (/= use-users-shell 0) shell-file-name "/bin/sh"))
+ (csh (equal (file-name-nondirectory shell) "csh")))
(call-process shell nil t t
(if (and csh use-csh-option-f) "-cf" "-c")
(concat "exec " command))))
diff --git a/lisp/obsolete/ooutline.el b/lisp/obsolete/ooutline.el
index fbba7709bb..17374ba178 100644
--- a/lisp/obsolete/ooutline.el
+++ b/lisp/obsolete/ooutline.el
@@ -1,6 +1,7 @@
;;; ooutline.el --- outline mode commands for Emacs
-;; Copyright (C) 1986, 1993, 1994, 1997 Free Software Foundation, Inc.
+;; Copyright (C) 1986, 1993, 1994, 1997, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: outlines
diff --git a/lisp/obsolete/options.el b/lisp/obsolete/options.el
index 4defa96f2c..733e3740dc 100644
--- a/lisp/obsolete/options.el
+++ b/lisp/obsolete/options.el
@@ -1,6 +1,6 @@
;;; options.el --- edit Options command for Emacs
-;; Copyright (C) 1985 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
diff --git a/lisp/obsolete/profile.el b/lisp/obsolete/profile.el
index c4a5b4a035..3d5ea982b8 100644
--- a/lisp/obsolete/profile.el
+++ b/lisp/obsolete/profile.el
@@ -1,6 +1,7 @@
;;; profile.el --- Emacs profiler (OBSOLETE; use elp.el instead)
-;; Copyright (C) 1992, 1994, 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1994, 1998, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Boaz Ben-Zvi <boaz@lcs.mit.edu>
;; Created: 07 Feb 1992
diff --git a/lisp/obsolete/rnews.el b/lisp/obsolete/rnews.el
index 98a52d4f83..e6ab3e8c87 100644
--- a/lisp/obsolete/rnews.el
+++ b/lisp/obsolete/rnews.el
@@ -1,6 +1,7 @@
;;; rnews.el --- USENET news reader for GNU Emacs
-;; Copyright (C) 1985, 1986, 1987 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1987, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: news
@@ -58,6 +59,12 @@
(require 'mail-utils)
(require 'sendmail)
+(defvar caesar-translate-table)
+(defvar minor-modes)
+(defvar news-buffer-save)
+(defvar news-group-name)
+(defvar news-minor-modes)
+
(autoload 'rmail-output "rmailout"
"Append this message to Unix mail file named FILE-NAME."
t)
@@ -886,7 +893,7 @@ Using ls was found to be too slow in a previous version."
(progn
(message
"Added %s to your list of newsgroups." gp)
- (end-of-buffer)
+ (goto-char (point-max))
(insert gp ": 1-1\n")))
(search-backward gp nil t)
(let (start end endofline tem)
diff --git a/lisp/obsolete/rnewspost.el b/lisp/obsolete/rnewspost.el
index 6e08a66b74..221f1a0e67 100644
--- a/lisp/obsolete/rnewspost.el
+++ b/lisp/obsolete/rnewspost.el
@@ -1,6 +1,7 @@
;;; rnewspost.el --- USENET news poster/mailer for GNU Emacs
-;; Copyright (C) 1985, 1986, 1987, 1995 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1987, 1995, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: mail, news
@@ -59,6 +60,8 @@
(require 'sendmail)
(require 'rnews)
+(defvar mail-reply-buffer)
+
(defvar news-reply-mode-map () "Mode map used by news-reply.")
(or news-reply-mode-map
diff --git a/lisp/obsolete/rsz-mini.el b/lisp/obsolete/rsz-mini.el
index 693c298795..94b7e21227 100644
--- a/lisp/obsolete/rsz-mini.el
+++ b/lisp/obsolete/rsz-mini.el
@@ -1,6 +1,7 @@
;;; rsz-mini.el --- dynamically resize minibuffer to display entire contents
-;; Copyright (C) 1990, 1993, 1994, 1995, 1997 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1993, 1994, 1995, 1997, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Noah Friedman <friedman@splode.com>
;; Roland McGrath <roland@gnu.org>
diff --git a/lisp/obsolete/scribe.el b/lisp/obsolete/scribe.el
index 7d627df191..1be01ebc5b 100644
--- a/lisp/obsolete/scribe.el
+++ b/lisp/obsolete/scribe.el
@@ -1,6 +1,6 @@
;;; scribe.el --- scribe mode, and its idiosyncratic commands
-;; Copyright (C) 1985 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: wp
@@ -30,6 +30,8 @@
;;; Code:
+(defvar compile-command)
+
(defgroup scribe nil
"Scribe mode."
:prefix "scribe-"
diff --git a/lisp/obsolete/sun-curs.el b/lisp/obsolete/sun-curs.el
index 5fe18221b0..769d4de868 100644
--- a/lisp/obsolete/sun-curs.el
+++ b/lisp/obsolete/sun-curs.el
@@ -1,6 +1,6 @@
;;; sun-curs.el --- cursor definitions for Sun windows
-;; Copyright (C) 1987 Free Software Foundation, Inc.
+;; Copyright (C) 1987, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Jeff Peck <peck@sun.com>
;; Keywords: hardware
@@ -33,6 +33,15 @@
;;; 9-dec-86 Jeff Peck, Sun Microsystems Inc. <peck@sun.com>
(eval-when-compile (require 'cl))
+
+(defvar *edit-icon*)
+(defvar char)
+;; These are from term/sun-mouse.el
+(defvar *mouse-window*)
+(defvar *mouse-x*)
+(defvar *mouse-y*)
+(defvar menu)
+
(require 'sun-fns)
(eval-and-compile
@@ -79,9 +88,11 @@ Otherwise, ICON should be a vector or the name of a vector of [x y 32-chars]"
(if (symbolp icon) (setq icon (symbol-value icon)))
(sun-change-cursor-icon icon))
+;; This does not make much sense...
(make-local-variable '*edit-icon*)
+
+(defvar icon-edit nil)
(make-variable-buffer-local 'icon-edit)
-(setq-default icon-edit nil)
(or (assq 'icon-edit minor-mode-alist)
(push '(icon-edit " IconEdit") minor-mode-alist))
@@ -109,9 +120,6 @@ Otherwise, ICON should be a vector or the name of a vector of [x y 32-chars]"
(insert char)
(sc::goto-hotspot))
-(defun sc::menu-function (window x y)
- (sun-menu-evaluate window (1+ x) y sc::menu))
-
(defmenu sc::menu
("Cursor Menu")
("Pack & Use" sc::pack-buffer-to-cursor)
@@ -127,6 +135,9 @@ Otherwise, ICON should be a vector or the name of a vector of [x y 32-chars]"
("Quit" sc::quit-edit)
)
+(defun sc::menu-function (window x y)
+ (sun-menu-evaluate window (1+ x) y sc::menu))
+
(defun sc::quit-edit ()
(interactive)
(bury-buffer (current-buffer))
@@ -202,7 +213,7 @@ Otherwise, ICON should be a vector or the name of a vector of [x y 32-chars]"
)
(defun sc::pack-one-line (dummy)
- (let* (char chr1 chr2)
+ (let (char chr1 chr2)
(setq char 0 chr1 (mapconcat 'sc::pack-one-char "12345678" "") chr1 char)
(setq char 0 chr2 (mapconcat 'sc::pack-one-char "12345678" "") chr2 char)
(forward-line 1)
diff --git a/lisp/obsolete/sun-fns.el b/lisp/obsolete/sun-fns.el
index 88241e813e..614b352ad3 100644
--- a/lisp/obsolete/sun-fns.el
+++ b/lisp/obsolete/sun-fns.el
@@ -1,6 +1,6 @@
;;; sun-fns.el --- subroutines of Mouse handling for Sun windows
-;; Copyright (C) 1987 Free Software Foundation, Inc.
+;; Copyright (C) 1987, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Jeff Peck <peck@sun.com>
;; Maintainer: none
@@ -85,7 +85,7 @@
(setq this-command 'mouse-yank-move))
)
-(defun mouse-set-mark (window x y)
+(defun mouse-set-mark (&optional window x y)
"Set mark at mouse cursor."
(eval-in-window window ;; use this to get the unwind protect
(let ((point (point)))
@@ -137,7 +137,7 @@ and put the region in the stuff buffer."
"Select window if not selected, otherwise do mouse-drag-move-point."
(if (eq (selected-window) window)
(mouse-drag-move-point window x y)
- (mouse-select-window window x y)))
+ (mouse-select-window window)))
;;;
;;; esoterica:
@@ -283,15 +283,15 @@ this command is insensitive to mouse location."
"Split the window vertically at the mouse cursor."
(eval-in-window window (split-window-vertically (1+ y))))
-(defun mouse-select-window (window x y)
+(defun mouse-select-window (&optional window x y)
"Selects the window, restoring point."
(select-window window))
-(defun mouse-delete-other-windows (window x y)
+(defun mouse-delete-other-windows (&optional window x y)
"Deletes all windows except the one mouse is in."
(delete-other-windows window))
-(defun mouse-delete-window (window x y)
+(defun mouse-delete-window (window &optional x y)
"Deletes the window mouse is in."
(delete-window window))
diff --git a/lisp/international/swedish.el b/lisp/obsolete/swedish.el
index 0deb1b3425..65e109ec8b 100644
--- a/lisp/international/swedish.el
+++ b/lisp/obsolete/swedish.el
@@ -33,6 +33,10 @@
(require 'latin-1)
+(defvar mail-send-hook)
+(defvar news-group-hook-alist)
+(defvar news-inews-hook)
+
(defvar swedish-re
"[ \t\n]\\(och\\|att\\|en\\|{r\\|\\[R\\|p}\\|P\\]\\|som\\|det\\|av\\|den\\|f|r\\|F\\\\R\\)[ \t\n.,?!:;'\")}]"
"Regular expression for common Swedish words.")
@@ -77,10 +81,9 @@ Leaves point just after the word that looks Swedish."
(setq rmail-show-message-hook 'swascii-to-8859-buffer-maybe)
-(or (boundp 'news-group-hook-alist) (setq news-group-hook-alist nil))
(setq news-group-hook-alist
(append '(("^swnet." . swascii-to-8859-buffer-maybe))
- news-group-hook-alist))
+ (bound-and-true-p news-group-hook-alist)))
(defvar 8859-to-swascii-trans
(let ((string (make-string 256 ? ))
diff --git a/lisp/obsolete/uncompress.el b/lisp/obsolete/uncompress.el
index 22bf08b2dd..7ee2599221 100644
--- a/lisp/obsolete/uncompress.el
+++ b/lisp/obsolete/uncompress.el
@@ -1,6 +1,7 @@
;;; uncompress.el --- auto-decompression hook for visiting .Z files
-;; Copyright (C) 1992, 1994, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1994, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: files
diff --git a/lisp/obsolete/x-apollo.el b/lisp/obsolete/x-apollo.el
index e15516b40e..edf3436aa9 100644
--- a/lisp/obsolete/x-apollo.el
+++ b/lisp/obsolete/x-apollo.el
@@ -1,6 +1,6 @@
;;; x-apollo.el --- Apollo support functions
-;; Copyright (C) 1995 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
diff --git a/lisp/obsolete/x-menu.el b/lisp/obsolete/x-menu.el
index bba20747f5..12427f803c 100644
--- a/lisp/obsolete/x-menu.el
+++ b/lisp/obsolete/x-menu.el
@@ -1,6 +1,6 @@
;;; x-menu.el --- menu support for X
-;; Copyright (C) 1986 Free Software Foundation, Inc.
+;; Copyright (C) 1986, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
@@ -23,6 +23,8 @@
;;; Code:
+(defvar x-process-mouse-hook)
+
(defun x-menu-mode ()
"Major mode for creating permanent menus for use with X.
These menus are implemented entirely in Lisp; popup menus, implemented
diff --git a/lisp/outline.el b/lisp/outline.el
index 6b662664b5..012396c2eb 100644
--- a/lisp/outline.el
+++ b/lisp/outline.el
@@ -1,7 +1,7 @@
;;; outline.el --- outline mode commands for Emacs
-;; Copyright (C) 1986, 1993, 1994, 1995, 1997, 2000, 2001, 2004
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1986, 1993, 1994, 1995, 1997, 2000, 2001, 2002,
+;; 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: outlines
@@ -37,6 +37,9 @@
;;; Code:
+(defvar font-lock-warning-face)
+
+
(defgroup outlines nil
"Support for hierarchical outlining."
:prefix "outline-"
@@ -453,6 +456,20 @@ If INVISIBLE-OK is non-nil, an invisible heading line is ok too."
(save-excursion (newline-and-indent)))
(run-hooks 'outline-insert-heading-hook)))
+(defun outline-invent-heading (head up)
+ (save-match-data
+ ;; Let's try to invent one by repeating or deleting the last char.
+ (let ((new-head (if up (substring head 0 -1)
+ (concat head (substring head -1)))))
+ (if (string-match (concat "\\`\\(?:" outline-regexp "\\)")
+ new-head)
+ ;; Why bother checking that it is indeed higher/lower level ?
+ new-head
+ ;; Didn't work, so ask what to do.
+ (read-string (format "%s heading for `%s': "
+ (if up "Parent" "Demoted") head)
+ head nil nil t)))))
+
(defun outline-promote (&optional children)
"Promote headings higher up the tree.
If prefix argument CHILDREN is given, promote also all the children.
@@ -471,13 +488,18 @@ in the region."
(save-excursion (outline-get-next-sibling) (point))))
(t
(outline-back-to-heading t)
- (let* ((head (match-string 0))
+ (let* ((head (match-string-no-properties 0))
(level (save-match-data (funcall outline-level)))
(up-head (or (outline-head-from-level (1- level) head)
+ ;; Use the parent heading, if it is really
+ ;; one level less.
(save-excursion
(save-match-data
(outline-up-heading 1 t)
- (match-string 0))))))
+ (and (= (1- level) (funcall outline-level))
+ (match-string-no-properties 0))))
+ ;; Bummer!! There is no lower level heading.
+ (outline-invent-heading head 'up))))
(unless (rassoc level outline-heading-alist)
(push (cons head level) outline-heading-alist))
@@ -501,7 +523,7 @@ in the region."
(point)
(save-excursion (outline-get-next-sibling) (point))))
(t
- (let* ((head (match-string 0))
+ (let* ((head (match-string-no-properties 0))
(level (save-match-data (funcall outline-level)))
(down-head
(or (outline-head-from-level (1+ level) head)
@@ -516,21 +538,13 @@ in the region."
(<= (funcall outline-level) level))))
(unless (eobp)
(looking-at outline-regexp)
- (match-string 0))))
- (save-match-data
- ;; Bummer!! There is no lower heading in the buffer.
- ;; Let's try to invent one by repeating the first char.
- (let ((new-head (concat (substring head 0 1) head)))
- (if (string-match (concat "\\`\\(?:" outline-regexp "\\)")
- new-head)
- ;; Why bother checking that it is indeed lower level ?
- new-head
- ;; Didn't work: keep it as is so it's still a heading.
- head))))))
-
- (unless (rassoc level outline-heading-alist)
- (push (cons head level) outline-heading-alist))
- (replace-match down-head nil t)))))
+ (match-string-no-properties 0))))
+ ;; Bummer!! There is no higher-level heading in the buffer.
+ (outline-invent-heading head nil))))
+
+ (unless (rassoc level outline-heading-alist)
+ (push (cons head level) outline-heading-alist))
+ (replace-match down-head nil t)))))
(defun outline-head-from-level (level head &optional alist)
"Get new heading with level LEVEL from ALIST.
@@ -593,12 +607,11 @@ the match data is set appropriately."
(defun outline-move-subtree-down (&optional arg)
"Move the currrent subtree down past ARG headlines of the same level."
(interactive "p")
- (let ((re (concat "^\\(?:" outline-regexp "\\)"))
- (movfunc (if (> arg 0) 'outline-get-next-sibling
+ (let ((movfunc (if (> arg 0) 'outline-get-next-sibling
'outline-get-last-sibling))
(ins-point (make-marker))
(cnt (abs arg))
- beg end txt folded)
+ beg end folded)
;; Select the tree
(outline-back-to-heading)
(setq beg (point))
@@ -739,8 +752,8 @@ If FLAG is nil then text is shown, while if FLAG is t the text is hidden."
(defun hide-entry ()
"Hide the body directly following this heading."
(interactive)
- (outline-back-to-heading)
(save-excursion
+ (outline-back-to-heading)
(outline-end-of-heading)
(outline-flag-region (point) (progn (outline-next-preface) (point)) t)))
@@ -792,8 +805,8 @@ Show the heading too, if it is currently invisible."
(defun hide-leaves ()
"Hide all body after this heading at deeper levels."
(interactive)
- (outline-back-to-heading)
(save-excursion
+ (outline-back-to-heading)
(outline-end-of-heading)
(hide-region-body (point) (progn (outline-end-of-subtree) (point)))))
@@ -850,11 +863,12 @@ Show the heading too, if it is currently invisible."
(defun outline-toggle-children ()
"Show or hide the current subtree depending on its current state."
(interactive)
- (outline-back-to-heading)
- (if (not (outline-invisible-p (line-end-position)))
- (hide-subtree)
- (show-children)
- (show-entry)))
+ (save-excursion
+ (outline-back-to-heading)
+ (if (not (outline-invisible-p (line-end-position)))
+ (hide-subtree)
+ (show-children)
+ (show-entry))))
(defun outline-flag-subtree (flag)
(save-excursion
@@ -866,8 +880,7 @@ Show the heading too, if it is currently invisible."
(defun outline-end-of-subtree ()
(outline-back-to-heading)
- (let ((opoint (point))
- (first t)
+ (let ((first t)
(level (funcall outline-level)))
(while (and (not (eobp))
(or first (> (funcall outline-level) level)))
@@ -1027,5 +1040,5 @@ convenient way to make a table of contents of the buffer."
(provide 'outline)
(provide 'noutline)
-;;; arch-tag: 1724410e-7d4d-4f46-b801-49e18171e874
+;; arch-tag: 1724410e-7d4d-4f46-b801-49e18171e874
;;; outline.el ends here
diff --git a/lisp/paren.el b/lisp/paren.el
index f0bf458a3a..a1cc12712f 100644
--- a/lisp/paren.el
+++ b/lisp/paren.el
@@ -1,6 +1,7 @@
;;; paren.el --- highlight matching paren
-;; Copyright (C) 1993, 1996, 2001, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1996, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: rms@gnu.org
;; Maintainer: FSF
diff --git a/lisp/paths.el b/lisp/paths.el
index b79e925aee..f248eac924 100644
--- a/lisp/paths.el
+++ b/lisp/paths.el
@@ -1,6 +1,7 @@
;;; paths.el --- define pathnames for use by various Emacs commands -*- no-byte-compile: t -*-
-;; Copyright (C) 1986, 1988, 1994, 1999, 2000 Free Software Foundation, Inc.
+;; Copyright (C) 1986, 1988, 1994, 1999, 2000, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: internal
@@ -37,13 +38,13 @@
;; DOC file rather than in memory.
(defun prune-directory-list (dirs &optional keep reject)
- "Returns a copy of DIRS with all non-existant directories removed.
+ "Returns a copy of DIRS with all non-existent directories removed.
The optional argument KEEP is a list of directories to retain even if
they don't exist, and REJECT is a list of directories to remove from
DIRS, even if they exist; REJECT takes precedence over KEEP.
Note that membership in REJECT and KEEP is checked using simple string
-comparision."
+comparison."
(apply #'nconc
(mapcar (lambda (dir)
(and (not (member dir reject))
diff --git a/lisp/pcmpl-cvs.el b/lisp/pcmpl-cvs.el
index 54ab07e6e8..628ad8399c 100644
--- a/lisp/pcmpl-cvs.el
+++ b/lisp/pcmpl-cvs.el
@@ -1,6 +1,7 @@
;;; pcmpl-cvs.el --- functions for dealing with cvs completions
-;; Copyright (C) 1999, 2000, 2002 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
diff --git a/lisp/pcmpl-gnu.el b/lisp/pcmpl-gnu.el
index 3671332307..bf7653618b 100644
--- a/lisp/pcmpl-gnu.el
+++ b/lisp/pcmpl-gnu.el
@@ -1,6 +1,7 @@
;;; pcmpl-gnu.el --- completions for GNU project tools
-;; Copyright (C) 1999, 2000 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
diff --git a/lisp/pcmpl-linux.el b/lisp/pcmpl-linux.el
index bb77bf0023..02f840bee3 100644
--- a/lisp/pcmpl-linux.el
+++ b/lisp/pcmpl-linux.el
@@ -1,6 +1,7 @@
;;; pcmpl-linux.el --- functions for dealing with GNU/Linux completions
-;; Copyright (C) 1999, 2000 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
diff --git a/lisp/pcmpl-rpm.el b/lisp/pcmpl-rpm.el
index 50c4906886..5e9afcf51c 100644
--- a/lisp/pcmpl-rpm.el
+++ b/lisp/pcmpl-rpm.el
@@ -1,6 +1,7 @@
;;; pcmpl-rpm.el --- functions for dealing with rpm completions
-;; Copyright (C) 1999, 2000 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
diff --git a/lisp/pcmpl-unix.el b/lisp/pcmpl-unix.el
index edbc1b2858..de9c143ae6 100644
--- a/lisp/pcmpl-unix.el
+++ b/lisp/pcmpl-unix.el
@@ -1,6 +1,7 @@
;;; pcmpl-unix.el --- standard UNIX completions
-;; Copyright (C) 1999, 2000 Free Software Foundation
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
diff --git a/lisp/pcomplete.el b/lisp/pcomplete.el
index 3f0ffc54ee..785c62290c 100644
--- a/lisp/pcomplete.el
+++ b/lisp/pcomplete.el
@@ -1,6 +1,7 @@
;;; pcomplete.el --- programmable completion
-;; Copyright (C) 1999, 2000,01,02,03,04 Free Sofware Foundation
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
+;; 2005 Free Sofware Foundation, Inc.
;; Author: John Wiegley <johnw@gnu.org>
;; Keywords: processes abbrev
diff --git a/lisp/pcvs-defs.el b/lisp/pcvs-defs.el
index 1e4c29f558..3be6cbd918 100644
--- a/lisp/pcvs-defs.el
+++ b/lisp/pcvs-defs.el
@@ -1,7 +1,7 @@
;;; pcvs-defs.el --- variable definitions for PCL-CVS
;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-;; 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+;; 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Stefan Monnier <monnier@cs.yale.edu>
;; Keywords: pcl-cvs
diff --git a/lisp/pcvs-info.el b/lisp/pcvs-info.el
index 0a48fc7d8e..291e4ae85c 100644
--- a/lisp/pcvs-info.el
+++ b/lisp/pcvs-info.el
@@ -1,7 +1,7 @@
;;; pcvs-info.el --- internal representation of a fileinfo entry
;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-;; 2000, 2004, 2005 Free Software Foundation, Inc.
+;; 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Stefan Monnier <monnier@cs.yale.edu>
;; Keywords: pcl-cvs
diff --git a/lisp/pcvs-parse.el b/lisp/pcvs-parse.el
index 1b08473d30..66c791db51 100644
--- a/lisp/pcvs-parse.el
+++ b/lisp/pcvs-parse.el
@@ -1,7 +1,7 @@
;;; pcvs-parse.el --- the CVS output parser
;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-;; 2000, 2002, 2003, 2004 Free Software Foundation, Inc.
+;; 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Stefan Monnier <monnier@cs.yale.edu>
;; Keywords: pcl-cvs
diff --git a/lisp/pcvs-util.el b/lisp/pcvs-util.el
index 9531f06b3c..1c4896435d 100644
--- a/lisp/pcvs-util.el
+++ b/lisp/pcvs-util.el
@@ -1,7 +1,7 @@
;;; pcvs-util.el --- utility functions for PCL-CVS -*- byte-compile-dynamic: t -*-
;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-;; 2000, 2001, 2004, 2005 Free Software Foundation, Inc.
+;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Stefan Monnier <monnier@cs.yale.edu>
;; Keywords: pcl-cvs
@@ -188,7 +188,7 @@ arguments. If ARGS is not a list, no argument will be passed."
"Concatenate the STRINGS, adding the SEPARATOR (default \" \").
This tries to quote the strings to avoid ambiguity such that
(cvs-string->strings (cvs-strings->string strs)) == strs
-Only some SEPARATOR will work properly."
+Only some SEPARATORs will work properly."
(let ((sep (or separator " ")))
(mapconcat
(lambda (str)
@@ -277,7 +277,7 @@ The SEPARATOR regexp defaults to \"\\s-+\"."
(defun cvs-flags-query (sym &optional desc arg)
"Query flags based on SYM.
-Optional argument DESC will be used for the prompt
+Optional argument DESC will be used for the prompt.
If ARG (or a prefix argument) is nil, just use the 0th default.
If it is a non-negative integer, use the corresponding default.
If it is a negative integer query for a new value of the corresponding
@@ -382,7 +382,7 @@ If ARG is nil toggle the PREFIX's value between its 0th default and nil
(defun cvs-prefix-get (sym &optional read-only)
"Return the current value of the prefix SYM.
-and reset it unless READ-ONLY is non-nil."
+And reset it unless READ-ONLY is non-nil."
(prog1 (symbol-value sym)
(unless (or read-only
(cvs-flags-persist (symbol-value (cvs-prefix-sym sym))))
diff --git a/lisp/pcvs.el b/lisp/pcvs.el
index 34a93a1d65..f5564155ff 100644
--- a/lisp/pcvs.el
+++ b/lisp/pcvs.el
@@ -1,7 +1,7 @@
;;; pcvs.el --- a front-end to CVS
;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-;; 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+;; 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: (The PCL-CVS Trust) pcl-cvs@cyclic.com
;; (Per Cederqvist) ceder@lysator.liu.se
diff --git a/lisp/play/5x5.el b/lisp/play/5x5.el
index f76ad703fe..855de92ffc 100644
--- a/lisp/play/5x5.el
+++ b/lisp/play/5x5.el
@@ -1,6 +1,7 @@
;;; 5x5.el --- simple little puzzle game
-;; Copyright (C) 1999,2000,2005 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Dave Pearson <davep@davep.org>
;; Maintainer: Dave Pearson <davep@davep.org>
diff --git a/lisp/play/animate.el b/lisp/play/animate.el
index 8e45bafc51..662adf119b 100644
--- a/lisp/play/animate.el
+++ b/lisp/play/animate.el
@@ -1,6 +1,6 @@
;;; animate.el --- make text dance
-;; Copyright (C) 2001,2005 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: Richard Stallman <rms@gnu.org>
;; Keywords: games
diff --git a/lisp/play/blackbox.el b/lisp/play/blackbox.el
index ccb90f3b66..ffde5c4602 100644
--- a/lisp/play/blackbox.el
+++ b/lisp/play/blackbox.el
@@ -1,6 +1,7 @@
;;; blackbox.el --- blackbox game in Emacs Lisp
-;; Copyright (C) 1985, 1986, 1987, 1992, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1987, 1992, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: F. Thomas May <uw-nsr!uw-warp!tom@beaver.cs.washington.edu>
;; Adapted-By: ESR
diff --git a/lisp/play/bruce.el b/lisp/play/bruce.el
index f91484d4c2..7774e29f2a 100644
--- a/lisp/play/bruce.el
+++ b/lisp/play/bruce.el
@@ -1,7 +1,8 @@
;;; bruce.el --- bruce phrase utility for overloading the Communications -*- no-byte-compile: t -*-
;;; Decency Act snoops, if any.
-;; Copyright (C) 1988, 1993, 1997 Free Software Foundation, Inc.
+;; Copyright (C) 1988, 1993, 1997, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: games
diff --git a/lisp/play/cookie1.el b/lisp/play/cookie1.el
index 3ff307562e..7f17274a68 100644
--- a/lisp/play/cookie1.el
+++ b/lisp/play/cookie1.el
@@ -1,6 +1,6 @@
;;; cookie1.el --- retrieve random phrases from fortune cookie files
-;; Copyright (C) 1993 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Eric S. Raymond <esr@snark.thyrsus.com>
;; Maintainer: FSF
diff --git a/lisp/play/decipher.el b/lisp/play/decipher.el
index 263ee14652..6471e23b5f 100644
--- a/lisp/play/decipher.el
+++ b/lisp/play/decipher.el
@@ -1,6 +1,7 @@
;;; decipher.el --- cryptanalyze monoalphabetic substitution ciphers
;;
-;; Copyright (C) 1995, 1996, 2003, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;;
;; Author: Christopher J. Madsen <chris_madsen@geocities.com>
;; Keywords: games
diff --git a/lisp/play/dissociate.el b/lisp/play/dissociate.el
index e2ed98ec73..cd19a71686 100644
--- a/lisp/play/dissociate.el
+++ b/lisp/play/dissociate.el
@@ -1,6 +1,6 @@
;;; dissociate.el --- scramble text amusingly for Emacs
-;; Copyright (C) 1985 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: games
diff --git a/lisp/play/doctor.el b/lisp/play/doctor.el
index d2b8156b15..ea502646e6 100644
--- a/lisp/play/doctor.el
+++ b/lisp/play/doctor.el
@@ -1,6 +1,7 @@
;;; doctor.el --- psychological help for frustrated users
-;; Copyright (C) 1985, 1987, 1994, 1996, 2000, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1987, 1994, 1996, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: games
@@ -45,6 +46,36 @@
;;; Code:
+(eval-when-compile
+ (defvar **mad**) (defvar *debug*) (defvar *print-space*)
+ (defvar *print-upcase*) (defvar abuselst) (defvar abusewords)
+ (defvar account) (defvar afraidof) (defvar arerelated)
+ (defvar areyou) (defvar bak) (defvar beclst)
+ (defvar bother) (defvar bye) (defvar canyou)
+ (defvar chatlst) (defvar continue) (defvar deathlst)
+ (defvar describe) (defvar drnk) (defvar drugs)
+ (defvar eliza-flag) (defvar elizalst) (defvar famlst)
+ (defvar feared) (defvar fears) (defvar feelings-about)
+ (defvar foullst) (defvar found) (defvar hello)
+ (defvar history) (defvar howareyoulst) (defvar howdyflag)
+ (defvar huhlst) (defvar ibelieve) (defvar improve)
+ (defvar inter) (defvar isee) (defvar isrelated)
+ (defvar lincount) (defvar longhuhlst) (defvar lover)
+ (defvar machlst) (defvar mathlst) (defvar maybe)
+ (defvar moods) (defvar neglst) (defvar obj)
+ (defvar object) (defvar owner) (defvar please)
+ (defvar problems) (defvar qlist) (defvar random-adjective)
+ (defvar relation) (defvar remlst) (defvar repetitive-shortness)
+ (defvar replist) (defvar rms-flag) (defvar schoollst)
+ (defvar sent) (defvar sexlst) (defvar shortbeclst)
+ (defvar shortlst) (defvar something) (defvar sportslst)
+ (defvar stallmanlst) (defvar states) (defvar subj)
+ (defvar suicide-flag) (defvar sure) (defvar things)
+ (defvar thlst) (defvar toklst) (defvar typos)
+ (defvar verb) (defvar want) (defvar whatwhen)
+ (defvar whereoutp) (defvar whysay) (defvar whywant)
+ (defvar zippy-flag) (defvar zippylst))
+
(defun doc// (x) x)
(defmacro doc$ (what)
@@ -1369,7 +1400,7 @@ Hack on previous word, setting global variable OWNER to correct result."
(cond ((or (string-match "^[.,;:?! ]" word)
(not *print-space*))
(insert word))
- (t (insert ?\ word)))
+ (t (insert ?\s word)))
(and auto-fill-function
(> (current-column) fill-column)
(apply auto-fill-function nil))
diff --git a/lisp/play/dunnet.el b/lisp/play/dunnet.el
index 1d1adb81bf..62a30d3419 100644
--- a/lisp/play/dunnet.el
+++ b/lisp/play/dunnet.el
@@ -1,6 +1,7 @@
;;; dunnet.el --- text adventure for Emacs
-;; Copyright (C) 1992, 1993, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Ron Schnell <ronnie@driver-aces.com>
;; Created: 25 Jul 1992
diff --git a/lisp/play/fortune.el b/lisp/play/fortune.el
index f6c5ec3571..3524eeb529 100644
--- a/lisp/play/fortune.el
+++ b/lisp/play/fortune.el
@@ -1,6 +1,7 @@
;;; fortune.el --- use fortune to create signatures
-;; Copyright (C) 1999, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Holger Schauer <Holger.Schauer@gmx.de>
;; Keywords: games utils mail
diff --git a/lisp/play/gamegrid.el b/lisp/play/gamegrid.el
index df68343ddc..ee64c17841 100644
--- a/lisp/play/gamegrid.el
+++ b/lisp/play/gamegrid.el
@@ -1,6 +1,7 @@
;;; gamegrid.el --- library for implementing grid-based games on Emacs
-;; Copyright (C) 1997, 1998, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Glynn Clements <glynn@sensei.co.uk>
;; Version: 1.02
@@ -179,9 +180,7 @@ static unsigned char gamegrid_bits[] = {
(defun gamegrid-make-mono-tty-face ()
(let ((face (make-face 'gamegrid-mono-tty-face)))
- (condition-case nil
- (set-face-property face 'reverse t)
- (error nil))
+ (set-face-inverse-video-p face t)
face))
(defun gamegrid-make-color-tty-face (color)
@@ -298,7 +297,7 @@ static unsigned char gamegrid_bits[] = {
'emacs-tty)))
(defun gamegrid-set-display-table ()
- (if (fboundp 'specifierp)
+ (if (featurep 'xemacs)
(add-spec-to-specifier current-display-table
gamegrid-display-table
(current-buffer)
@@ -409,7 +408,7 @@ static unsigned char gamegrid_bits[] = {
(defun gamegrid-set-timer (delay)
(if gamegrid-timer
- (if (featurep 'itimer)
+ (if (fboundp 'set-itimer-restart)
(set-itimer-restart gamegrid-timer delay)
(timer-set-time gamegrid-timer
(list (aref gamegrid-timer 1)
@@ -475,25 +474,27 @@ FILE is created there."
;; FILE in the user's home directory. There is presumably no
;; shared game directory.
+(defvar gamegrid-shared-game-dir)
+
(defun gamegrid-add-score-with-update-game-score (file score)
(let* ((result nil) ;; What is this good for? -- os
- (have-shared-game-dir
+ (gamegrid-shared-game-dir
(not (zerop (logand (file-modes
(expand-file-name "update-game-score"
exec-directory))
#o4000)))))
(cond ((file-name-absolute-p file)
(gamegrid-add-score-insecure file score))
- ((and have-shared-game-dir
+ ((and gamegrid-shared-game-dir
(file-exists-p (expand-file-name file shared-game-score-directory)))
;; Use the setuid "update-game-score" program to update a
;; system-wide score file.
- (gamegrid-add-score-with-update-game-score-1
+ (gamegrid-add-score-with-update-game-score-1 file
(expand-file-name file shared-game-score-directory) score))
;; Else: Add the score to a score file in the user's home
;; directory.
- (have-shared-game-dir
- ;; If `have-shared-game-dir' is non-nil, then
+ (gamegrid-shared-game-dir
+ ;; If `gamegrid-shared-game-dir' is non-nil, then
;; "update-gamescore" program is setuid, so don't use it.
(unless (file-exists-p
(directory-file-name gamegrid-user-score-file-directory))
@@ -509,9 +510,9 @@ FILE is created there."
(setq f (expand-file-name file f))
(unless (file-exists-p f)
(write-region "" nil f nil 'silent nil 'excl)))
- (gamegrid-add-score-with-update-game-score-1 f score))))))
+ (gamegrid-add-score-with-update-game-score-1 file f score))))))
-(defun gamegrid-add-score-with-update-game-score-1 (target score)
+(defun gamegrid-add-score-with-update-game-score-1 (file target score)
(let ((default-directory "/")
(errbuf (generate-new-buffer " *update-game-score loss*")))
(apply
@@ -521,7 +522,7 @@ FILE is created there."
(expand-file-name "update-game-score" exec-directory)
nil errbuf nil
"-m" (int-to-string gamegrid-score-file-length)
- "-d" (if have-shared-game-dir
+ "-d" (if gamegrid-shared-game-dir
(expand-file-name shared-game-score-directory)
(file-name-directory target))
file
diff --git a/lisp/play/gametree.el b/lisp/play/gametree.el
index 78add5932f..9e80024c90 100644
--- a/lisp/play/gametree.el
+++ b/lisp/play/gametree.el
@@ -1,6 +1,7 @@
;;; gametree.el --- manage game analysis trees in Emacs
-;; Copyright (C) 1997, 1999 Free Software Foundation, Inc
+;; Copyright (C) 1997, 1999, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Ian T Zimmerman <itz@rahul.net>
;; Created: Wed Dec 10 07:41:46 PST 1997
@@ -573,9 +574,9 @@ Useful to postal and email chess (and, it is hoped, also checkers, go,
shogi, etc.) players, it is a slightly modified version of Outline mode.
\\{gametree-mode-map}"
-(auto-fill-mode 0)
-(make-variable-buffer-local 'write-contents-hooks)
-(add-hook 'write-contents-hooks 'gametree-save-and-hack-layout))
+ (auto-fill-mode 0)
+ (make-local-variable 'write-contents-hooks)
+ (add-hook 'write-contents-hooks 'gametree-save-and-hack-layout))
;;;; Key bindings
diff --git a/lisp/play/gomoku.el b/lisp/play/gomoku.el
index 74ddfd3539..e9f7a07abe 100644
--- a/lisp/play/gomoku.el
+++ b/lisp/play/gomoku.el
@@ -1,6 +1,7 @@
;;; gomoku.el --- Gomoku game between you and Emacs
-;; Copyright (C) 1988, 1994, 1996, 2001, 2003, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1988, 1994, 1996, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Philippe Schnoebelen <phs@lsv.ens-cachan.fr>
;; Maintainer: FSF
@@ -164,15 +165,11 @@ One useful value to include is `turn-on-font-lock' to highlight the pieces."
'((((class color)) (:foreground "red" :weight bold)))
"Face to use for Emacs' O."
:group 'gomoku)
-;; backward-compatibility alias
-(put 'gomoku-font-lock-O-face 'face-alias 'gomoku-O)
(defface gomoku-X
'((((class color)) (:foreground "green" :weight bold)))
"Face to use for your X."
:group 'gomoku)
-;; backward-compatibility alias
-(put 'gomoku-font-lock-X-face 'face-alias 'gomoku-X)
(defvar gomoku-font-lock-keywords
'(("O" . 'gomoku-O)
diff --git a/lisp/play/handwrite.el b/lisp/play/handwrite.el
index 2d668f8448..066832e7eb 100644
--- a/lisp/play/handwrite.el
+++ b/lisp/play/handwrite.el
@@ -1,6 +1,6 @@
;;; handwrite.el --- turns your emacs buffer into a handwritten document -*- coding: iso-latin-1; -*-
-;; (C) Copyright 1996, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Danny Roozendaal (was: <danny@tvs.kun.nl>)
;; Created: October 21 1996
@@ -69,6 +69,9 @@
;;; Code:
+(defvar ps-printer-name)
+(defvar ps-lpr-command)
+
;; Variables
diff --git a/lisp/play/landmark.el b/lisp/play/landmark.el
index feab5de1bc..4da291d450 100644
--- a/lisp/play/landmark.el
+++ b/lisp/play/landmark.el
@@ -1,6 +1,7 @@
;;; landmark.el --- neural-network robot that learns landmarks
-;; Copyright (c) 1996, 1997, 2000, 2003, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Terrence Brannon (was: <brannon@rana.usc.edu>)
;; Created: December 16, 1996 - first release to usenet
diff --git a/lisp/play/life.el b/lisp/play/life.el
index df678d9ecd..56f10ff258 100644
--- a/lisp/play/life.el
+++ b/lisp/play/life.el
@@ -1,6 +1,7 @@
;;; life.el --- John Horton Conway's `Life' game for GNU Emacs
-;; Copyright (C) 1988, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1988, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Kyle Jones <kyleuunet.uu.net>
;; Maintainer: FSF
diff --git a/lisp/play/morse.el b/lisp/play/morse.el
index 1e3c43cbf8..ae3533227e 100644
--- a/lisp/play/morse.el
+++ b/lisp/play/morse.el
@@ -1,6 +1,6 @@
;;; morse.el --- convert text to morse code and back -*- coding: utf-8 -*-
-;; Copyright (C) 1995, 2002, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Rick Farnbach <rick_farnbach@MENTORG.COM>
;; Keywords: games
diff --git a/lisp/play/mpuz.el b/lisp/play/mpuz.el
index 22d4216ab0..948ae126ff 100644
--- a/lisp/play/mpuz.el
+++ b/lisp/play/mpuz.el
@@ -1,6 +1,6 @@
;;; mpuz.el --- multiplication puzzle for GNU Emacs
-;; Copyright (C) 1990, 2002, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Philippe Schnoebelen <phs@lsv.ens-cachan.fr>
;; Overhauled: Daniel Pfeiffer <occitan@esperanto.org>
@@ -62,31 +62,23 @@ t means never ding, and `error' means only ding on wrong input."
(t (:bold t)))
"*Face to use for letters to be solved."
:group 'mpuz)
-;; backward-compatibility alias
-(put 'mpuz-unsolved-face 'face-alias 'mpuz-unsolved)
(defface mpuz-solved
'((((class color)) (:foreground "green1" :bold t))
(t (:bold t)))
"*Face to use for solved digits."
:group 'mpuz)
-;; backward-compatibility alias
-(put 'mpuz-solved-face 'face-alias 'mpuz-solved)
(defface mpuz-trivial
'((((class color)) (:foreground "blue" :bold t))
(t (:bold t)))
"*Face to use for trivial digits solved for you."
:group 'mpuz)
-;; backward-compatibility alias
-(put 'mpuz-trivial-face 'face-alias 'mpuz-trivial)
(defface mpuz-text
'((t (:inherit variable-pitch)))
"*Face to use for text on right."
:group 'mpuz)
-;; backward-compatibility alias
-(put 'mpuz-text-face 'face-alias 'mpuz-text)
;; Mpuz mode and keymaps
diff --git a/lisp/play/pong.el b/lisp/play/pong.el
index 00f740a5f0..e4931c6308 100644
--- a/lisp/play/pong.el
+++ b/lisp/play/pong.el
@@ -1,6 +1,7 @@
;;; pong.el --- classical implementation of pong
-;; Copyright 1999, 2000, 2001, 2005 by Free Software Foundation, Inc.
+;; Copyright 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Benjamin Drieu <bdrieu@april.org>
;; Keywords: games
diff --git a/lisp/play/snake.el b/lisp/play/snake.el
index 8909f3fada..9f2f9c6209 100644
--- a/lisp/play/snake.el
+++ b/lisp/play/snake.el
@@ -1,6 +1,6 @@
;;; snake.el --- implementation of Snake for Emacs
-;; Copyright (C) 1997, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Glynn Clements <glynn@sensei.co.uk>
;; Created: 1997-09-10
@@ -370,15 +370,16 @@ Snake mode keybindings:
(setq major-mode 'snake-mode)
(setq mode-name "Snake")
- (setq mode-popup-menu
- '("Snake Commands"
- ["Start new game" snake-start-game]
- ["End game" snake-end-game
- (snake-active-p)]
- ["Pause" snake-pause-game
- (and (snake-active-p) (not snake-paused))]
- ["Resume" snake-pause-game
- (and (snake-active-p) snake-paused)]))
+ (unless (featurep 'emacs)
+ (setq mode-popup-menu
+ '("Snake Commands"
+ ["Start new game" snake-start-game]
+ ["End game" snake-end-game
+ (snake-active-p)]
+ ["Pause" snake-pause-game
+ (and (snake-active-p) (not snake-paused))]
+ ["Resume" snake-pause-game
+ (and (snake-active-p) snake-paused)])))
(setq gamegrid-use-glyphs snake-use-glyphs-flag)
(setq gamegrid-use-color snake-use-color-flag)
diff --git a/lisp/play/solitaire.el b/lisp/play/solitaire.el
index 3c36b0e046..2e20a737e0 100644
--- a/lisp/play/solitaire.el
+++ b/lisp/play/solitaire.el
@@ -1,6 +1,6 @@
;;; solitaire.el --- game of solitaire in Emacs Lisp
-;; Copyright (C) 1994, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Jan Schormann <Jan.Schormann@rechen-gilde.de>
;; Created: Fri afternoon, Jun 3, 1994
diff --git a/lisp/play/spook.el b/lisp/play/spook.el
index a19140e965..0979f6a004 100644
--- a/lisp/play/spook.el
+++ b/lisp/play/spook.el
@@ -1,6 +1,7 @@
;;; spook.el --- spook phrase utility for overloading the NSA line eater
-;; Copyright (C) 1988, 1993 Free Software Foundation, Inc.
+;; Copyright (C) 1988, 1993, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: games
diff --git a/lisp/play/tetris.el b/lisp/play/tetris.el
index 7ef997a986..839046a961 100644
--- a/lisp/play/tetris.el
+++ b/lisp/play/tetris.el
@@ -1,6 +1,6 @@
;;; tetris.el --- implementation of Tetris for Emacs
-;; Copyright (C) 1997, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Glynn Clements <glynn@sensei.co.uk>
;; Version: 2.01
@@ -601,15 +601,16 @@ tetris-mode keybindings:
(setq major-mode 'tetris-mode)
(setq mode-name "Tetris")
- (setq mode-popup-menu
- '("Tetris Commands"
- ["Start new game" tetris-start-game]
- ["End game" tetris-end-game
- (tetris-active-p)]
- ["Pause" tetris-pause-game
- (and (tetris-active-p) (not tetris-paused))]
- ["Resume" tetris-pause-game
- (and (tetris-active-p) tetris-paused)]))
+ (unless (featurep 'emacs)
+ (setq mode-popup-menu
+ '("Tetris Commands"
+ ["Start new game" tetris-start-game]
+ ["End game" tetris-end-game
+ (tetris-active-p)]
+ ["Pause" tetris-pause-game
+ (and (tetris-active-p) (not tetris-paused))]
+ ["Resume" tetris-pause-game
+ (and (tetris-active-p) tetris-paused)])))
(setq gamegrid-use-glyphs tetris-use-glyphs)
(setq gamegrid-use-color tetris-use-color)
diff --git a/lisp/play/yow.el b/lisp/play/yow.el
index 794271fd95..2809e3ec62 100644
--- a/lisp/play/yow.el
+++ b/lisp/play/yow.el
@@ -1,6 +1,7 @@
;;; yow.el --- quote random zippyisms
-;; Copyright (C) 1993, 1994, 1995, 2000 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 1995, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Author: Richard Mlynarik
diff --git a/lisp/play/zone.el b/lisp/play/zone.el
index a075729ab9..876490b1f9 100644
--- a/lisp/play/zone.el
+++ b/lisp/play/zone.el
@@ -1,6 +1,7 @@
;;; zone.el --- idle display hacks
-;; Copyright (C) 2000, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Victor Zandy <zandy@cs.wisc.edu>
;; Maintainer: Thien-Thi Nguyen <ttn@gnu.org>
@@ -622,7 +623,7 @@ If the element is a function or a list of a function and a number,
(sit-for 3)
(erase-buffer)
(sit-for 3)
- (insert-buffer "*Messages*")
+ (insert-buffer-substring "*Messages*")
(message "")
(goto-char (point-max))
(recenter -1)
diff --git a/lisp/printing.el b/lisp/printing.el
index c73242961c..eabca64f08 100644
--- a/lisp/printing.el
+++ b/lisp/printing.el
@@ -1,7 +1,6 @@
;;; printing.el --- printing utilities
-;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br>
diff --git a/lisp/progmodes/ada-mode.el b/lisp/progmodes/ada-mode.el
index fdb1a9d69f..3b6a6d611d 100644
--- a/lisp/progmodes/ada-mode.el
+++ b/lisp/progmodes/ada-mode.el
@@ -1,7 +1,7 @@
;;; ada-mode.el --- major-mode for editing Ada sources
-;; Copyright (C) 1994, 95, 97, 98, 99, 2000, 2001, 2002, 03, 2004
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Rolf Ebert <ebert@inf.enst.fr>
;; Markus Heritsch <Markus.Heritsch@studbox.uni-stuttgart.de>
@@ -133,6 +133,9 @@
(require 'which-func nil t)
(require 'compile nil t))
+(defvar compile-auto-highlight)
+(defvar skeleton-further-elements)
+
;; this function is needed at compile time
(eval-and-compile
(defun ada-check-emacs-version (major minor &optional is-xemacs)
@@ -1280,7 +1283,7 @@ If you use ada-xref.el:
(progn
(add-to-list 'align-dq-string-modes 'ada-mode)
(add-to-list 'align-open-comment-modes 'ada-mode)
- (set (make-variable-buffer-local 'align-region-separate)
+ (set (make-local-variable 'align-region-separate)
ada-align-region-separate)
;; Exclude comments alone on line from alignment.
@@ -5349,7 +5352,8 @@ spec buffer in here and modify it to make it a body.
This function typically is to be hooked into `ff-file-created-hooks'."
(interactive)
(delete-region (point-min) (point-max))
- (insert-buffer (car (cdr (buffer-list))))
+ (insert-buffer-substring (car (cdr (buffer-list))))
+ (goto-char (point-min))
(ada-mode)
(let (found ada-procedure-or-package-start-regexp)
diff --git a/lisp/progmodes/ada-prj.el b/lisp/progmodes/ada-prj.el
index 05d965be88..91adf1ed18 100644
--- a/lisp/progmodes/ada-prj.el
+++ b/lisp/progmodes/ada-prj.el
@@ -1,6 +1,7 @@
;;; ada-prj.el --- easy editing of project files for the ada-mode
-;; Copyright (C) 1998, 99, 2000-2003 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+;; Free Software Foundation, Inc.
;; Author: Emmanuel Briot <briot@gnat.com>
;; Keywords: languages, ada, project file
@@ -476,7 +477,8 @@ connect to the target when working with cross-environments" t)
(widget-insert "\n\n")
(widget-setup)
- (beginning-of-buffer)
+ (with-no-warnings
+ (beginning-of-buffer))
)
diff --git a/lisp/progmodes/ada-stmt.el b/lisp/progmodes/ada-stmt.el
index 362ec87ba0..87825b1d62 100644
--- a/lisp/progmodes/ada-stmt.el
+++ b/lisp/progmodes/ada-stmt.el
@@ -1,7 +1,7 @@
;;; ada-stmt.el --- an extension to Ada mode for inserting statement templates
-;; Copyright(C) 1987, 93, 94, 96, 97, 98, 99, 2000
-;; Free Software Foundation, Inc.
+;; Copyright(C) 1987, 1993, 1994, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+;; 2003, 2004, 2005 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
diff --git a/lisp/progmodes/ada-xref.el b/lisp/progmodes/ada-xref.el
index 4210bfd68f..74b5694e8c 100644
--- a/lisp/progmodes/ada-xref.el
+++ b/lisp/progmodes/ada-xref.el
@@ -1,7 +1,7 @@
;;; ada-xref.el --- for lookup and completion in Ada mode
-;; Copyright (C) 1994, 95, 96, 97, 98, 99, 2000, 2001, 2002, 2003
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Markus Heritsch <Markus.Heritsch@studbox.uni-stuttgart.de>
;; Rolf Ebert <ebert@inf.enst.fr>
diff --git a/lisp/progmodes/antlr-mode.el b/lisp/progmodes/antlr-mode.el
index c2a8d7a4c5..229bec56dd 100644
--- a/lisp/progmodes/antlr-mode.el
+++ b/lisp/progmodes/antlr-mode.el
@@ -1,6 +1,7 @@
;;; antlr-mode.el --- major mode for ANTLR grammar files
-;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+;; Free Software Foundation, Inc.
;;
;; Author: Christoph.Wedler@sap.com
;; Keywords: languages, ANTLR, code generator
@@ -828,7 +829,7 @@ in the grammar's actions and semantic predicates, see
`antlr-font-lock-maximum-decoration'.")
(defvar antlr-default-face 'antlr-default)
-(defface antlr-default
+(defface antlr-default nil
"Face to prevent strings from language dependent highlighting.
Do not change."
:group 'antlr)
@@ -924,7 +925,7 @@ group. The string matched by the first group is highlighted with
("\\$\\sw+" (0 keyword-face))
;; the tokens are already fontified as string/docstrings:
(,(lambda (limit)
- (if antlr-literal-regexp
+ (if antlr-font-lock-literal-regexp
(antlr-re-search-forward antlr-font-lock-literal-regexp limit)))
(1 antlr-literal-face t)
:XEMACS (0 nil)) ; XEmacs bug workaround
@@ -2240,9 +2241,8 @@ called interactively, the buffers are always saved, see also variable
(interactive (antlr-run-tool-interactive))
(or saved (save-some-buffers (not antlr-ask-about-save)))
(let ((default-directory (file-name-directory file)))
- (require 'compile) ; only `compile' autoload
- (compile-internal (concat command " " (file-name-nondirectory file))
- "No more errors" "Antlr-Run")))
+ (compilation-start (concat command " " (file-name-nondirectory file))
+ nil #'(lambda (mode-name) "*Antlr-Run*"))))
(defun antlr-run-tool-interactive ()
;; code in `interactive' is not compiled
diff --git a/lisp/progmodes/asm-mode.el b/lisp/progmodes/asm-mode.el
index 94ac76c068..dc3984e089 100644
--- a/lisp/progmodes/asm-mode.el
+++ b/lisp/progmodes/asm-mode.el
@@ -1,6 +1,7 @@
;;; asm-mode.el --- mode for editing assembler code
-;; Copyright (C) 1991, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 1991, 2001, 2002, 2003, 2004, 2005
+;; Free Software Foundation, Inc.
;; Author: Eric S. Raymond <esr@snark.thyrsus.com>
;; Maintainer: FSF
@@ -204,7 +205,8 @@ repeatedly until you are satisfied with the kind of comment."
(let (comempty comment)
(save-excursion
(beginning-of-line)
- (setq comment (comment-search-forward (line-end-position) t))
+ (with-no-warnings
+ (setq comment (comment-search-forward (line-end-position) t)))
(setq comempty (looking-at "[ \t]*$")))
(cond
diff --git a/lisp/progmodes/autoconf.el b/lisp/progmodes/autoconf.el
index 75b969d935..2949b2da92 100644
--- a/lisp/progmodes/autoconf.el
+++ b/lisp/progmodes/autoconf.el
@@ -1,6 +1,7 @@
;;; autoconf.el --- mode for editing Autoconf configure.in files
-;; Copyright (C) 2000, 2003, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001, 2002 2003, 2004, 2005
+;; Free Software Foundation, Inc.
;; Author: Dave Love <fx@gnu.org>
;; Keywords: languages
@@ -37,6 +38,8 @@
;;; Code:
+(defvar font-lock-syntactic-keywords)
+
(defvar autoconf-mode-map (make-sparse-keymap))
(defvar autoconf-mode-hook nil
diff --git a/lisp/progmodes/cc-align.el b/lisp/progmodes/cc-align.el
index 849e98053a..36b4fd2545 100644
--- a/lisp/progmodes/cc-align.el
+++ b/lisp/progmodes/cc-align.el
@@ -1,6 +1,6 @@
;;; cc-align.el --- custom indentation functions for CC Mode
-;; Copyright (C) 1985,1987,1992-2003 Free Software Foundation, Inc.
+;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation, Inc.
;; Authors: 1998- Martin Stjernholm
;; 1992-1999 Barry A. Warsaw
diff --git a/lisp/progmodes/cc-awk.el b/lisp/progmodes/cc-awk.el
index 5a770a9bcb..995dc48c1a 100644
--- a/lisp/progmodes/cc-awk.el
+++ b/lisp/progmodes/cc-awk.el
@@ -1,6 +1,7 @@
;;; cc-awk.el --- AWK specific code within cc-mode.
-;; Copyright (C) 1988,94,96,2000,01,02,03 Free Software Foundation, Inc.
+;; Copyright (C) 1988, 94, 96, 2000, 2001, 2002, 2003, 2004, 2005
+;; Free Software Foundation, Inc.
;; Author: Alan Mackenzie <acm@muc.de> (originally based on awk-mode.el)
;; Maintainer: FSF
diff --git a/lisp/progmodes/cc-bytecomp.el b/lisp/progmodes/cc-bytecomp.el
index 78393e93fc..ae7adb92ed 100644
--- a/lisp/progmodes/cc-bytecomp.el
+++ b/lisp/progmodes/cc-bytecomp.el
@@ -1,6 +1,7 @@
;;; cc-bytecomp.el --- compile time setup for proper compilation
-;; Copyright (C) 2000, 01, 02, 03 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005
+;; Free Software Foundation, Inc.
;; Author: Martin Stjernholm
;; Maintainer: bug-cc-mode@gnu.org
diff --git a/lisp/progmodes/cc-cmds.el b/lisp/progmodes/cc-cmds.el
index d46281b726..039ef3cceb 100644
--- a/lisp/progmodes/cc-cmds.el
+++ b/lisp/progmodes/cc-cmds.el
@@ -1,6 +1,6 @@
;;; cc-cmds.el --- user level commands for CC Mode
-;; Copyright (C) 1985,1987,1992-2003 Free Software Foundation, Inc.
+;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation, Inc.
;; Authors: 1998- Martin Stjernholm
;; 1992-1999 Barry A. Warsaw
diff --git a/lisp/progmodes/cc-compat.el b/lisp/progmodes/cc-compat.el
index 8458ab9d60..60dcbd135d 100644
--- a/lisp/progmodes/cc-compat.el
+++ b/lisp/progmodes/cc-compat.el
@@ -1,6 +1,6 @@
;;; cc-compat.el --- cc-mode compatibility with c-mode.el confusion
-;; Copyright (C) 1985,1987,1992-2003 Free Software Foundation, Inc.
+;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation, Inc.
;; Authors: 1998- Martin Stjernholm
;; 1994-1999 Barry A. Warsaw
diff --git a/lisp/progmodes/cc-defs.el b/lisp/progmodes/cc-defs.el
index 96e7a093f5..a78fd8f7f7 100644
--- a/lisp/progmodes/cc-defs.el
+++ b/lisp/progmodes/cc-defs.el
@@ -1,6 +1,6 @@
;;; cc-defs.el --- compile time definitions for CC Mode
-;; Copyright (C) 1985,1987,1992-2003 Free Software Foundation, Inc.
+;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation, Inc.
;; Authors: 1998- Martin Stjernholm
;; 1992-1999 Barry A. Warsaw
diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el
index e9ed474e79..71dc39a56e 100644
--- a/lisp/progmodes/cc-engine.el
+++ b/lisp/progmodes/cc-engine.el
@@ -1,6 +1,6 @@
;;; cc-engine.el --- core syntax guessing engine for CC mode
-;; Copyright (C) 1985,1987,1992-2003 Free Software Foundation, Inc.
+;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation, Inc.
;; Authors: 1998- Martin Stjernholm
;; 1992-1999 Barry A. Warsaw
@@ -5599,6 +5599,7 @@ brace."
containing-sexp paren-state))
)))
+;;;###autoload
(defun c-guess-basic-syntax ()
"Return the syntactic context of the current line.
This function does not do any hidden buffer changes."
diff --git a/lisp/progmodes/cc-fonts.el b/lisp/progmodes/cc-fonts.el
index 410637237c..95e4e5226f 100644
--- a/lisp/progmodes/cc-fonts.el
+++ b/lisp/progmodes/cc-fonts.el
@@ -1,6 +1,6 @@
;;; cc-fonts.el --- font lock support for CC Mode
-;; Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Authors: 2003- Alan Mackenzie
;; 2002- Martin Stjernholm
diff --git a/lisp/progmodes/cc-langs.el b/lisp/progmodes/cc-langs.el
index b080b3eac7..27753aa69c 100644
--- a/lisp/progmodes/cc-langs.el
+++ b/lisp/progmodes/cc-langs.el
@@ -1,6 +1,6 @@
;;; cc-langs.el --- language specific settings for CC Mode
-;; Copyright (C) 1985,1987,1992-2003 Free Software Foundation, Inc.
+;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation, Inc.
;; Authors: 1998- Martin Stjernholm
;; 1992-1999 Barry A. Warsaw
diff --git a/lisp/progmodes/cc-menus.el b/lisp/progmodes/cc-menus.el
index 27ce9d6deb..6de4aa8c79 100644
--- a/lisp/progmodes/cc-menus.el
+++ b/lisp/progmodes/cc-menus.el
@@ -1,6 +1,6 @@
;;; cc-menus.el --- imenu support for CC Mode
-;; Copyright (C) 1985,1987,1992-2003 Free Software Foundation, Inc.
+;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation, Inc.
;; Authors: 1998- Martin Stjernholm
;; 1992-1999 Barry A. Warsaw
diff --git a/lisp/progmodes/cc-mode.el b/lisp/progmodes/cc-mode.el
index 0f17a003ef..8f5670ed57 100644
--- a/lisp/progmodes/cc-mode.el
+++ b/lisp/progmodes/cc-mode.el
@@ -1,6 +1,6 @@
;;; cc-mode.el --- major mode for editing C and similar languages
-;; Copyright (C) 1985,1987,1992-2003 Free Software Foundation, Inc.
+;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation, Inc.
;; Authors: 2003- Alan Mackenzie
;; 1998- Martin Stjernholm
diff --git a/lisp/progmodes/cc-styles.el b/lisp/progmodes/cc-styles.el
index c48956295b..f0a7a2c4b7 100644
--- a/lisp/progmodes/cc-styles.el
+++ b/lisp/progmodes/cc-styles.el
@@ -1,6 +1,6 @@
;;; cc-styles.el --- support for styles in CC Mode
-;; Copyright (C) 1985,1987,1992-2003 Free Software Foundation, Inc.
+;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation, Inc.
;; Authors: 1998- Martin Stjernholm
;; 1992-1999 Barry A. Warsaw
diff --git a/lisp/progmodes/cc-vars.el b/lisp/progmodes/cc-vars.el
index f8d4d6e125..b6a3c40495 100644
--- a/lisp/progmodes/cc-vars.el
+++ b/lisp/progmodes/cc-vars.el
@@ -1,6 +1,6 @@
;;; cc-vars.el --- user customization variables for CC Mode
-;; Copyright (C) 1985,1987,1992-2003 Free Software Foundation, Inc.
+;; Copyright (C) 1985,1987,1992-2003, 2004, 2005 Free Software Foundation, Inc.
;; Authors: 1998- Martin Stjernholm
;; 1992-1999 Barry A. Warsaw
diff --git a/lisp/progmodes/cfengine.el b/lisp/progmodes/cfengine.el
index fd64a59c99..a4b0389ab8 100644
--- a/lisp/progmodes/cfengine.el
+++ b/lisp/progmodes/cfengine.el
@@ -1,6 +1,6 @@
;;; cfengine.el --- mode for editing Cfengine files
-;; Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Dave Love <fx@gnu.org>
;; Keywords: languages
diff --git a/lisp/progmodes/cmacexp.el b/lisp/progmodes/cmacexp.el
index a49b9c3ac7..e2bcf98458 100644
--- a/lisp/progmodes/cmacexp.el
+++ b/lisp/progmodes/cmacexp.el
@@ -1,6 +1,7 @@
;;; cmacexp.el --- expand C macros in a region
-;; Copyright (C) 1992, 1994, 1996, 2000 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1994, 1996, 2000, 2001, 2002, 2003, 2004
+;; Free Software Foundation, Inc.
;; Author: Francesco Potorti` <pot@gnu.org>
;; Adapted-By: ESR
@@ -92,6 +93,9 @@
(provide 'cmacexp)
+(defvar msdos-shells)
+
+
(defgroup c-macro nil
"Expand C macros in a region."
:group 'c)
@@ -146,8 +150,9 @@ Normally display output in temp buffer, but
prefix arg means replace the region with it.
`c-macro-preprocessor' specifies the preprocessor to use.
-Prompt for arguments to the preprocessor \(e.g. `-DDEBUG -I ./include')
-if the user option `c-macro-prompt-flag' is non-nil.
+Tf the user option `c-macro-prompt-flag' is non-nil
+prompt for arguments to the preprocessor \(e.g. `-DDEBUG -I ./include'),
+otherwise use `c-macro-cppflags'.
Noninteractive args are START, END, SUBST.
For use inside Lisp programs, see also `c-macro-expansion'."
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index 21e7c74e96..6321216dcc 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -1,7 +1,7 @@
;;; compile.el --- run compiler as inferior of Emacs, parse error messages
;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-;; 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
+;; 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Authors: Roland McGrath <roland@gnu.org>,
;; Daniel Pfeiffer <occitan@esperanto.org>
@@ -70,6 +70,12 @@
(eval-when-compile (require 'cl))
+(defvar font-lock-extra-managed-props)
+(defvar font-lock-keywords)
+(defvar font-lock-maximum-size)
+(defvar font-lock-support-mode)
+
+
(defgroup compilation nil
"Run compiler as inferior of Emacs, parse error messages."
:group 'tools
@@ -78,7 +84,7 @@
;;;###autoload
(defcustom compilation-mode-hook nil
- "*List of hook functions run by `compilation-mode' (see `run-hooks')."
+ "*List of hook functions run by `compilation-mode' (see `run-mode-hooks')."
:type 'hook
:group 'compilation)
@@ -287,11 +293,11 @@ File = \\(.+\\), Line = \\([0-9]+\\)\\(?:, Column = \\([0-9]+\\)\\)?"
\\(?:: \\(warning:\\)?\\|$\\| ),\\)" 1 2 nil (3))
(gcov-file
- "^ +-: \\(0\\):Source:\\(.+\\)$" 2 1 nil 0)
+ "^ +-: \\(0\\):Source:\\(.+\\)$" 2 1 nil 0)
(gcov-bb-file
- "^ +-: \\(0\\):Object:\\(?:.+\\)$" nil 1 nil 0)
+ "^ +-: \\(0\\):Object:\\(?:.+\\)$" nil 1 nil 0)
(gcov-never-called-line
- "^ +\\(#####\\): +\\([0-9]+\\):.+$" nil 2 nil 2 nil
+ "^ +\\(#####\\): +\\([0-9]+\\):.+$" nil 2 nil 2 nil
(1 compilation-error-face))
(gcov-called-line
"^ +[-0-9]+: +\\([1-9]\\|[0-9]\\{2,\\}\\):.*$" nil 1 nil 0)
@@ -382,8 +388,11 @@ you may also want to change `compilation-page-delimiter'.")
("^\\([[:alnum:]_/.+-]+\\)\\(\\[\\([0-9]+\\)\\]\\)?[ \t]*:"
(1 font-lock-function-name-face) (3 compilation-line-face nil t))
(" --?o\\(?:utfile\\|utput\\)?[= ]?\\(\\S +\\)" . 1)
- ("^Compilation finished" . compilation-info-face)
- ("^Compilation exited abnormally" . compilation-error-face))
+ ("^Compilation \\(finished\\)"
+ (1 compilation-info-face))
+ ("^Compilation \\(exited abnormally\\|interrupt\\|killed\\|terminated\\)\\(?:.*with code \\([0-9]+\\)\\)?"
+ (1 compilation-error-face)
+ (2 compilation-error-face nil t)))
"Additional things to highlight in Compilation mode.
This gets tacked on the end of the generated expressions.")
@@ -443,6 +452,14 @@ You might also use mode hooks to specify it in certain modes, like this:
:type 'string
:group 'compilation)
+(defcustom compilation-disable-input nil
+ "*If non-nil, send end-of-file as compilation process input.
+This only affects platforms that support asynchronous processes (see
+`start-process'); synchronous compilation processes never accept input."
+ :type 'boolean
+ :group 'compilation
+ :version "22.1")
+
;; A weak per-compilation-buffer hash indexed by (FILENAME . DIRECTORY). Each
;; value is a FILE-STRUCTURE as described above, with the car eq to the hash
;; key. This holds the tree seen from root, for storing new nodes.
@@ -468,6 +485,12 @@ starting the compilation process.")
;; History of compile commands.
(defvar compile-history nil)
+(defface compilation-error
+ '((t :inherit font-lock-warning-face))
+ "Face used to highlight compiler errors."
+ :group 'font-lock-highlighting-faces
+ :version "22.1")
+
(defface compilation-warning
'((((class color) (min-colors 16)) (:foreground "Orange" :weight bold))
(((class color)) (:foreground "cyan" :weight bold))
@@ -475,8 +498,6 @@ starting the compilation process.")
"Face used to highlight compiler warnings."
:group 'font-lock-highlighting-faces
:version "22.1")
-;; backward-compatibility alias
-(put 'compilation-warning-face 'face-alias 'compilation-warning)
(defface compilation-info
'((((class color) (min-colors 16) (background light))
@@ -487,74 +508,49 @@ starting the compilation process.")
(:foreground "Green" :weight bold))
(((class color)) (:foreground "green" :weight bold))
(t (:weight bold)))
- "Face used to highlight compiler warnings."
- :group 'font-lock-highlighting-faces
- :version "22.1")
-;; backward-compatibility alias
-(put 'compilation-info-face 'face-alias 'compilation-info)
-
-(defface compilation-error-file-name
- '((default :inherit font-lock-warning-face)
- (((supports :underline t)) :underline t))
- "Face for displaying file names in compilation errors."
- :group 'font-lock-highlighting-faces
- :version "22.1")
-
-(defface compilation-warning-file-name
- '((default :inherit font-lock-warning-face)
- (((supports :underline t)) :underline t))
- "Face for displaying file names in compilation errors."
- :group 'font-lock-highlighting-faces
- :version "22.1")
-
-(defface compilation-info-file-name
- '((default :inherit compilation-info)
- (((supports :underline t)) :underline t))
- "Face for displaying file names in compilation errors."
+ "Face used to highlight compiler information."
:group 'font-lock-highlighting-faces
:version "22.1")
(defface compilation-line-number
- '((default :inherit font-lock-variable-name-face)
- (((supports :underline t)) :underline t))
- "Face for displaying file names in compilation errors."
+ '((t :inherit font-lock-variable-name-face))
+ "Face for displaying line numbers in compiler messages."
:group 'font-lock-highlighting-faces
:version "22.1")
(defface compilation-column-number
- '((default :inherit font-lock-type-face)
- (((supports :underline t)) :underline t))
- "Face for displaying file names in compilation errors."
+ '((t :inherit font-lock-type-face))
+ "Face for displaying column numbers in compiler messages."
:group 'font-lock-highlighting-faces
:version "22.1")
-(defvar compilation-message-face nil
+(defvar compilation-message-face 'underline
"Face name to use for whole messages.
Faces `compilation-error-face', `compilation-warning-face',
`compilation-info-face', `compilation-line-face' and
`compilation-column-face' get prepended to this, when applicable.")
-(defvar compilation-error-face 'compilation-error-file-name
+(defvar compilation-error-face 'compilation-error
"Face name to use for file name in error messages.")
-(defvar compilation-warning-face 'compilation-warning-file-name
+(defvar compilation-warning-face 'compilation-warning
"Face name to use for file name in warning messages.")
-(defvar compilation-info-face 'compilation-info-file-name
+(defvar compilation-info-face 'compilation-info
"Face name to use for file name in informational messages.")
(defvar compilation-line-face 'compilation-line-number
- "Face name to use for line number in message.")
+ "Face name to use for line numbers in compiler messages.")
(defvar compilation-column-face 'compilation-column-number
- "Face name to use for column number in message.")
+ "Face name to use for column numbers in compiler messages.")
;; same faces as dired uses
(defvar compilation-enter-directory-face 'font-lock-function-name-face
- "Face name to use for column number in message.")
+ "Face name to use for entering directory messages.")
(defvar compilation-leave-directory-face 'font-lock-type-face
- "Face name to use for column number in message.")
+ "Face name to use for leaving directory messages.")
@@ -921,6 +917,7 @@ Otherwise, construct a buffer name from MODE-NAME."
(compilation-start command nil name-function highlight-regexp)))
(make-obsolete 'compile-internal 'compilation-start)
+;;;###autoload
(defun compilation-start (command &optional mode name-function highlight-regexp)
"Run compilation command COMMAND (low level interface).
If COMMAND starts with a cd command, that becomes the `default-directory'.
@@ -928,7 +925,8 @@ The rest of the arguments are optional; for them, nil means use the default.
MODE is the major mode to set in the compilation buffer. Mode
may also be t meaning use `compilation-shell-minor-mode' under `comint-mode'.
-NAME-FUNCTION is a function called to name the buffer.
+If NAME-FUNCTION is non-nil, call it with one argument (the mode name)
+to determine the buffer name.
If HIGHLIGHT-REGEXP is non-nil, `next-error' will temporarily highlight
the matching section of the visited source line; the default is to use the
@@ -987,7 +985,11 @@ Returns the compilation buffer created."
;; Output a mode setter, for saving and later reloading this buffer.
(insert "-*- mode: " name-of-mode
"; default-directory: " (prin1-to-string default-directory)
- " -*-\n" command "\n")
+ " -*-\n"
+ (format "%s started at %s\n\n"
+ mode-name
+ (substring (current-time-string) 0 19))
+ command "\n")
(setq thisdir default-directory))
(set-buffer-modified-p nil))
;; If we're already in the compilation buffer, go to the end
@@ -1039,6 +1041,11 @@ Returns the compilation buffer created."
(set-process-sentinel proc 'compilation-sentinel)
(set-process-filter proc 'compilation-filter)
(set-marker (process-mark proc) (point) outbuf)
+ (when compilation-disable-input
+ (condition-case nil
+ (process-send-eof proc)
+ ;; The process may have exited already.
+ (error nil)))
(setq compilation-in-progress
(cons proc compilation-in-progress)))
;; No asynchronous processes available.
@@ -1158,6 +1165,8 @@ exited abnormally with code %d\n"
(define-key map "\M-p" 'compilation-previous-error)
(define-key map "\M-{" 'compilation-previous-file)
(define-key map "\M-}" 'compilation-next-file)
+ (define-key map "\t" 'compilation-next-error)
+ (define-key map [backtab] 'compilation-previous-error)
(define-key map " " 'scroll-up)
(define-key map "\^?" 'scroll-down)
@@ -1171,7 +1180,7 @@ exited abnormally with code %d\n"
(define-key map [menu-bar compilation compilation-separator2]
'("----" . nil))
(define-key map [menu-bar compilation compilation-grep]
- '("Search Files (grep)" . grep))
+ '("Search Files (grep)..." . grep))
(define-key map [menu-bar compilation compilation-recompile]
'("Recompile" . recompile))
(define-key map [menu-bar compilation compilation-compile]
@@ -1213,7 +1222,7 @@ from a different message."
move point to the error message line and type \\[compile-goto-error].
To kill the compilation, type \\[kill-compilation].
-Runs `compilation-mode-hook' with `run-hooks' (which see).
+Runs `compilation-mode-hook' with `run-mode-hooks' (which see).
\\{compilation-mode-map}"
(interactive)
@@ -1230,9 +1239,9 @@ Runs `compilation-mode-hook' with `run-hooks' (which see).
(defmacro define-compilation-mode (mode name doc &rest body)
"This is like `define-derived-mode' without the PARENT argument.
The parent is always `compilation-mode' and the customizable `compilation-...'
-variables are also set from the name of the mode you have chosen, by replacing
-the fist word, e.g `compilation-scroll-output' from `grep-scroll-output' if that
-variable exists."
+variables are also set from the name of the mode you have chosen,
+by replacing the first word, e.g `compilation-scroll-output' from
+`grep-scroll-output' if that variable exists."
(let ((mode-name (replace-regexp-in-string "-mode\\'" "" (symbol-name mode))))
`(define-derived-mode ,mode compilation-mode ,name
,doc
@@ -1511,7 +1520,7 @@ Prefix arg N says how many files to move backwards (or forwards, if negative)."
(let ((buffer (compilation-find-buffer)))
(if (get-buffer-process buffer)
(interrupt-process (get-buffer-process buffer))
- (error "The compilation process is not running"))))
+ (error "The %s process is not running" (downcase mode-name)))))
(defalias 'compile-mouse-goto-error 'compile-goto-error)
@@ -1756,8 +1765,8 @@ Pop up the buffer containing MARKER and scroll to MARKER if we ask the user."
marker)
(let ((name (expand-file-name
(read-file-name
- (format "Find this error in: (default %s) "
- filename)
+ (format "Find this %s in: (default %s) "
+ compilation-error filename)
dir filename t))))
(if (file-directory-p name)
(setq name (expand-file-name filename name)))
diff --git a/lisp/progmodes/cperl-mode.el b/lisp/progmodes/cperl-mode.el
index 480c0a4160..f25d5c2908 100644
--- a/lisp/progmodes/cperl-mode.el
+++ b/lisp/progmodes/cperl-mode.el
@@ -1,6 +1,7 @@
;;; cperl-mode.el --- Perl code editing commands for Emacs
-;; Copyright (C) 1985,86,87,91,92,93,94,95,96,97,98,99,2000,03,2004,2005
+;; Copyright (C) 1985, 1986, 1987, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
+;; 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
;; Free Software Foundation, Inc.
;; Author: Ilya Zakharevich and Bob Olson
@@ -67,6 +68,9 @@
;;; Code:
+(defvar vc-rcs-header)
+(defvar vc-sccs-header)
+
;; Some macros are needed for `defcustom'
(eval-when-compile
(condition-case nil
@@ -1774,7 +1778,7 @@ char is \"{\", insert extra newline before only if
(save-excursion
(skip-chars-backward "$")
(looking-at "\\(\\$\\$\\)*\\$\\([^\\$]\\|$\\)"))
- (insert ?\ ))
+ (insert ?\s))
;; Check whether we are in comment
(if (and
(save-excursion
@@ -1870,7 +1874,7 @@ to nil."
(let ((beg (save-excursion (beginning-of-line) (point)))
(dollar (and (eq last-command-char ?$)
(eq this-command 'self-insert-command)))
- (delete (and (memq last-command-char '(?\ ?\n ?\t ?\f))
+ (delete (and (memq last-command-char '(?\s ?\n ?\t ?\f))
(memq this-command '(self-insert-command newline))))
my do)
(and (save-excursion
@@ -1945,7 +1949,7 @@ to nil."
(defun cperl-electric-pod ()
"Insert a POD chunk appropriate after a =POD directive."
- (let ((delete (and (memq last-command-char '(?\ ?\n ?\t ?\f))
+ (let ((delete (and (memq last-command-char '(?\s ?\n ?\t ?\f))
(memq this-command '(self-insert-command newline))))
head1 notlast name p really-delete over)
(and (save-excursion
@@ -2223,7 +2227,7 @@ key. Will untabify if `cperl-electric-backspace-untabify' is non-nil."
(memq last-command '(cperl-electric-semi
cperl-electric-terminator
cperl-electric-lbrace))
- (memq (preceding-char) '(?\ ?\t ?\n)))
+ (memq (preceding-char) '(?\s ?\t ?\n)))
(let (p)
(if (eq last-command 'cperl-electric-lbrace)
(skip-chars-forward " \t\n"))
@@ -2235,7 +2239,7 @@ key. Will untabify if `cperl-electric-backspace-untabify' is non-nil."
(setq this-command 'cperl-electric-else-really))
(if (and cperl-auto-newline
(eq last-command 'cperl-electric-else-really)
- (memq (preceding-char) '(?\ ?\t ?\n)))
+ (memq (preceding-char) '(?\s ?\t ?\n)))
(let (p)
(skip-chars-forward " \t\n")
(setq p (point))
@@ -3038,7 +3042,7 @@ Returns true if comment is found."
(progn
(setq i (point) i2 i)
(if ender
- (if (memq (following-char) '(?\ ?\t ?\n ?\f))
+ (if (memq (following-char) '(?\s ?\t ?\n ?\f))
(progn
(if (looking-at "[ \t\n\f]+\\(#[^\n]*\n[ \t\n\f]*\\)+")
(goto-char (match-end 0))
@@ -4030,7 +4034,7 @@ Returns some position at the last line."
(setq p (point))
(skip-chars-forward " \t\n")
(delete-region p (point))
- (insert (make-string cperl-indent-region-fix-constructs ?\ ))
+ (insert (make-string cperl-indent-region-fix-constructs ?\s))
(beginning-of-line)))
;; Looking at:
;; } else
@@ -4038,7 +4042,7 @@ Returns some position at the last line."
(progn
(search-forward "}")
(delete-horizontal-space)
- (insert (make-string cperl-indent-region-fix-constructs ?\ ))
+ (insert (make-string cperl-indent-region-fix-constructs ?\s))
(beginning-of-line)))
;; Looking at:
;; else {
@@ -4047,7 +4051,7 @@ Returns some position at the last line."
(progn
(forward-word 1)
(delete-horizontal-space)
- (insert (make-string cperl-indent-region-fix-constructs ?\ ))
+ (insert (make-string cperl-indent-region-fix-constructs ?\s))
(beginning-of-line)))
;; Looking at:
;; foreach my $var
@@ -4056,7 +4060,7 @@ Returns some position at the last line."
(progn
(forward-word 2)
(delete-horizontal-space)
- (insert (make-string cperl-indent-region-fix-constructs ?\ ))
+ (insert (make-string cperl-indent-region-fix-constructs ?\s))
(beginning-of-line)))
;; Looking at:
;; foreach my $var (
@@ -4066,7 +4070,7 @@ Returns some position at the last line."
(forward-sexp 3)
(delete-horizontal-space)
(insert
- (make-string cperl-indent-region-fix-constructs ?\ ))
+ (make-string cperl-indent-region-fix-constructs ?\s))
(beginning-of-line)))
;; Looking at:
;; } foreach my $var () {
@@ -4110,7 +4114,7 @@ Returns some position at the last line."
(cperl-fix-line-spacing end parse-data)
(setq ret (point)))))
(insert
- (make-string cperl-indent-region-fix-constructs ?\ ))))
+ (make-string cperl-indent-region-fix-constructs ?\s))))
((and (looking-at "[ \t]*\n")
(not (if ml
cperl-extra-newline-before-brace-multiline
@@ -4119,7 +4123,7 @@ Returns some position at the last line."
(skip-chars-forward " \t\n")
(delete-region pp (point))
(insert
- (make-string cperl-indent-region-fix-constructs ?\ ))))
+ (make-string cperl-indent-region-fix-constructs ?\s))))
;; Now we are before `{'
(if (looking-at "[ \t\n]*{[ \t]*[^ \t\n#]")
(progn
@@ -4296,7 +4300,7 @@ indentation and initial hashes. Behaves usually outside of comment."
(looking-at "#+[ \t]*")
(setq start (point) c (current-column)
comment-fill-prefix
- (concat (make-string (current-column) ?\ )
+ (concat (make-string (current-column) ?\s)
(buffer-substring (match-beginning 0) (match-end 0)))
spaces (progn (skip-chars-backward " \t")
(buffer-substring (point) start))
@@ -5448,7 +5452,7 @@ Will not move the position at the start to the left."
(setq e (point))
(skip-chars-backward " \t")
(delete-region (point) e)
- (indent-to-column col) ;(make-string (- col (current-column)) ?\ ))
+ (indent-to-column col) ;(make-string (- col (current-column)) ?\s))
(beginning-of-line 2)
(and (< (point) end)
(re-search-forward search end t)
diff --git a/lisp/progmodes/cpp.el b/lisp/progmodes/cpp.el
index 41ccc64122..c615082814 100644
--- a/lisp/progmodes/cpp.el
+++ b/lisp/progmodes/cpp.el
@@ -1,6 +1,7 @@
;;; cpp.el --- highlight or hide text according to cpp conditionals
-;; Copyright (C) 1994, 1995, 2003 Free Software Foundation
+;; Copyright (C) 1994, 1995, 2001, 2002, 2003, 2004, 2005
+;; Free Software Foundation
;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
;; Keywords: c, faces, tools
diff --git a/lisp/progmodes/cwarn.el b/lisp/progmodes/cwarn.el
index 2cc4d1bda7..9ffc149727 100644
--- a/lisp/progmodes/cwarn.el
+++ b/lisp/progmodes/cwarn.el
@@ -1,6 +1,7 @@
;;; cwarn.el --- highlight suspicious C and C++ constructions
-;; Copyright (C) 1999, 2000, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+;; Free Software Foundation, Inc.
;; Author: Anders Lindgren <andersl@andersl.com>
;; Keywords: c, languages, faces
diff --git a/lisp/progmodes/dcl-mode.el b/lisp/progmodes/dcl-mode.el
index 90a4e0a959..c7115eed2a 100644
--- a/lisp/progmodes/dcl-mode.el
+++ b/lisp/progmodes/dcl-mode.el
@@ -1,6 +1,7 @@
;;; dcl-mode.el --- major mode for editing DCL command files
-;; Copyright (c) 1997 Free Software Foundation, Inc.
+;; Copyright (c) 1997, 2001, 2002, 2003, 2004, 2005
+;; Free Software Foundation, Inc.
;; Author: Odd Gripenstam <gripenstamol@decus.se>
;; Maintainer: Odd Gripenstam <gripenstamol@decus.se>
diff --git a/lisp/progmodes/delphi.el b/lisp/progmodes/delphi.el
index 3a558fdb0c..0c94120a0f 100644
--- a/lisp/progmodes/delphi.el
+++ b/lisp/progmodes/delphi.el
@@ -1,6 +1,7 @@
;;; delphi.el --- major mode for editing Delphi source (Object Pascal) in Emacs
-;; Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004, 2005
+;; Free Software Foundation, Inc.
;; Author: Ray Blaak <blaak@infomatch.com>
;; Keywords: languages
diff --git a/lisp/progmodes/ebnf-abn.el b/lisp/progmodes/ebnf-abn.el
index c95959c709..a1b3658c0b 100644
--- a/lisp/progmodes/ebnf-abn.el
+++ b/lisp/progmodes/ebnf-abn.el
@@ -1,6 +1,6 @@
;;; ebnf-abn.el --- parser for ABNF (Augmented BNF)
-;; Copyright (C) 2004, 2005 Free Sofware Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Sofware Foundation, Inc.
;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br>
diff --git a/lisp/progmodes/ebnf-dtd.el b/lisp/progmodes/ebnf-dtd.el
index 43c0ca20ef..4a596154c4 100644
--- a/lisp/progmodes/ebnf-dtd.el
+++ b/lisp/progmodes/ebnf-dtd.el
@@ -1,6 +1,6 @@
;;; ebnf-dtd.el --- parser for DTD (Data Type Description for XML)
-;; Copyright (C) 2004, 2005 Free Sofware Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Sofware Foundation, Inc.
;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br>
diff --git a/lisp/progmodes/ebnf-ebx.el b/lisp/progmodes/ebnf-ebx.el
index c42ab70f74..ada523c6c3 100644
--- a/lisp/progmodes/ebnf-ebx.el
+++ b/lisp/progmodes/ebnf-ebx.el
@@ -1,6 +1,6 @@
;;; ebnf-ebx.el --- parser for EBNF used to specify XML (EBNFX)
-;; Copyright (C) 2004, 2005 Free Sofware Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Sofware Foundation, Inc.
;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br>
diff --git a/lisp/progmodes/ebnf-otz.el b/lisp/progmodes/ebnf-otz.el
index d450addca5..4beeaa8ad8 100644
--- a/lisp/progmodes/ebnf-otz.el
+++ b/lisp/progmodes/ebnf-otz.el
@@ -1,6 +1,6 @@
;;; ebnf-otz.el --- syntactic chart OpTimiZer
-;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
;; Free Sofware Foundation, Inc.
;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
diff --git a/lisp/progmodes/ebrowse.el b/lisp/progmodes/ebrowse.el
index 075e7fa9f1..49d0207882 100644
--- a/lisp/progmodes/ebrowse.el
+++ b/lisp/progmodes/ebrowse.el
@@ -1,7 +1,8 @@
;;; ebrowse.el --- Emacs C++ class browser & tags facility
-;; Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002, 2005
-;; Free Software Foundation Inc.
+;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+;; 2002, 2003, 2004, 2005
+;; Free Software Foundation Inc.
;; Author: Gerd Moellmann <gerd@gnu.org>
;; Maintainer: FSF
diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el
index 02fa54d0a3..54b4cda9d1 100644
--- a/lisp/progmodes/etags.el
+++ b/lisp/progmodes/etags.el
@@ -1,6 +1,7 @@
;;; etags.el --- etags facility for Emacs
-;; Copyright (C) 1985, 86, 88, 89, 92, 93, 94, 95, 96, 98, 2000, 2001
+;; Copyright (C) 1985, 1986, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1998,
+;; 2000, 2001, 2002, 2003, 2004, 2005
;; Free Software Foundation, Inc.
;; Author: Roland McGrath <roland@gnu.org>
diff --git a/lisp/progmodes/executable.el b/lisp/progmodes/executable.el
index fd291ef437..615e9d0ae9 100644
--- a/lisp/progmodes/executable.el
+++ b/lisp/progmodes/executable.el
@@ -1,6 +1,7 @@
;;; executable.el --- base functionality for executable interpreter scripts -*- byte-compile-dynamic: t -*-
-;; Copyright (C) 1994, 1995, 1996, 2000, 2003, 2004 by Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 1996, 2000, 2001, 2002, 2003, 2004, 2005
+;; Free Software Foundation, Inc.
;; Author: Daniel Pfeiffer <occitan@esperanto.org>
;; Keywords: languages, unix
diff --git a/lisp/progmodes/f90.el b/lisp/progmodes/f90.el
index 99d33553f5..5e2a3705ef 100644
--- a/lisp/progmodes/f90.el
+++ b/lisp/progmodes/f90.el
@@ -1,6 +1,7 @@
;;; f90.el --- Fortran-90 mode (free format)
-;; Copyright (C) 1995, 1996, 1997, 2000, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 1997, 2000, 2001, 2002, 2003, 2004, 2005
+;; Free Software Foundation, Inc.
;; Author: Torbj\"orn Einarsson <Torbjorn.Einarsson@era.ericsson.se>
;; Maintainer: Glenn Morris <gmorris@ast.cam.ac.uk>
@@ -1790,7 +1791,8 @@ Any other key combination is executed normally."
(let (char event)
(if (fboundp 'next-command-event) ; XEmacs
(setq event (next-command-event)
- char (event-to-character event))
+ char (and (fboundp 'event-to-character)
+ (event-to-character event)))
(setq event (read-event)
char event))
;; Insert char if not equal to `?', or if abbrev-mode is off.
diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el
index 4c5f3ad12b..d137284f79 100644
--- a/lisp/progmodes/flymake.el
+++ b/lisp/progmodes/flymake.el
@@ -1,6 +1,6 @@
;;; flymake.el -- a universal on-the-fly syntax checker
-;; Copyright (C) 2003, 2005 Free Software Foundation
+;; Copyright (C) 2003, 2004, 2005 Free Software Foundation
;; Author: Pavel Kobiakov <pk_at_work@yahoo.com>
;; Maintainer: Pavel Kobiakov <pk_at_work@yahoo.com>
@@ -806,11 +806,13 @@ line number outside the file being compiled."
(defun flymake-highlight-err-lines (buffer err-info-list)
"Highlight error lines in BUFFER using info from ERR-INFO-LIST."
(with-current-buffer buffer
+ (save-excursion
(let* ((idx 0)
(count (length err-info-list)))
(while (< idx count)
- (flymake-highlight-line (car (nth idx err-info-list)) (nth 1 (nth idx err-info-list)))
- (setq idx (1+ idx))))))
+ (flymake-highlight-line (car (nth idx err-info-list))
+ (nth 1 (nth idx err-info-list)))
+ (setq idx (1+ idx)))))))
(defun flymake-overlay-p (ov)
"Determine whether overlay OV was created by flymake."
@@ -858,16 +860,12 @@ Return t if it has at least one flymake overlay, nil if no overlay."
(t (:bold t)))
"Face used for marking error lines."
:group 'flymake)
-;; backward-compatibility alias
-(put 'flymake-errline-face 'face-alias 'flymake-errline)
(defface flymake-warnline
'((((class color)) (:background "LightBlue2"))
(t (:bold t)))
"Face used for marking warning lines."
:group 'flymake)
-;; backward-compatibility alias
-(put 'flymake-warnline-face 'face-alias 'flymake-warnline)
(defun flymake-highlight-line (line-no line-err-info-list)
"Highlight line LINE-NO in current buffer.
diff --git a/lisp/progmodes/fortran.el b/lisp/progmodes/fortran.el
index 371cc61091..3b6c77fef2 100644
--- a/lisp/progmodes/fortran.el
+++ b/lisp/progmodes/fortran.el
@@ -1,7 +1,7 @@
;;; fortran.el --- Fortran mode for GNU Emacs
;; Copyright (C) 1986, 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2001,
-;; 2003, 2004, 2005 Free Software Foundation, Inc.
+;; 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Michael D. Prange <prange@erl.mit.edu>
;; Maintainer: Glenn Morris <gmorris@ast.cam.ac.uk>
@@ -55,6 +55,8 @@
(eval-when-compile ; silence compiler
(defvar dabbrev-case-fold-search)
+ (defvar font-lock-syntactic-keywords)
+ (defvar gud-find-expr-function)
(defvar imenu-case-fold-search)
(defvar imenu-syntax-alist))
@@ -1646,7 +1648,7 @@ notes: 1) A non-zero/non-blank character in column 5 indicates a continuation
(let* ((char (if (stringp fortran-comment-indent-char)
(aref fortran-comment-indent-char 0)
fortran-comment-indent-char))
- (chars (string ? ?\t char)))
+ (chars (string ?\s ?\t char)))
(goto-char (match-end 0))
(skip-chars-backward chars)
(delete-region (point) (progn (skip-chars-forward chars)
@@ -1656,7 +1658,7 @@ notes: 1) A non-zero/non-blank character in column 5 indicates a continuation
(if indent-tabs-mode
(goto-char (match-end 0))
(delete-char 2)
- (insert-char ? 5)
+ (insert-char ?\s 5)
(insert fortran-continuation-string))
(if (looking-at " \\{5\\}[^ 0\n]")
(if indent-tabs-mode
diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el
index 584b0ae814..6c960c4c5d 100644
--- a/lisp/progmodes/gdb-ui.el
+++ b/lisp/progmodes/gdb-ui.el
@@ -50,6 +50,19 @@
;; still under development and is part of a process to migrate Emacs from
;; annotations to GDB/MI.
;;
+;; Windows Platforms:
+;;
+;; If you are using Emacs and GDB on Windows you will need to flush the buffer
+;; explicitly in your program if you want timely display of I/O in Emacs.
+;; Alternatively you can make the output stream unbuffered, for example, by
+;; using a macro:
+;;
+;; #ifdef UNBUFFERED
+;; setvbuf (stdout, (char *) NULL, _IONBF, 0);
+;; #endif
+;;
+;; and compiling with -DUNBUFFERED while debugging.
+;;
;; Known Bugs:
;;
;; TODO:
@@ -66,7 +79,9 @@
(require 'gud)
-(defvar gdb-frame-address "main" "Initialisation for Assembler buffer.")
+(defvar tool-bar-map)
+
+(defvar gdb-frame-address "main" "Initialization for Assembler buffer.")
(defvar gdb-previous-frame-address nil)
(defvar gdb-memory-address "main")
(defvar gdb-previous-frame nil)
@@ -74,7 +89,7 @@
(defvar gdb-frame-number nil)
(defvar gdb-current-language nil)
(defvar gdb-var-list nil "List of variables in watch window.")
-(defvar gdb-var-changed nil "Non-nil means that gdb-var-list has changed.")
+(defvar gdb-var-changed nil "Non-nil means that `gdb-var-list' has changed.")
(defvar gdb-main-file nil "Source file from which program execution begins.")
(defvar gdb-buffer-type nil)
(defvar gdb-overlay-arrow-position nil)
@@ -105,7 +120,7 @@ Possible values are these symbols:
`user' -- gdb output should be copied to the GUD buffer
for the user to see.
- `inferior' -- gdb output should be copied to the inferior-io buffer
+ `inferior' -- gdb output should be copied to the inferior-io buffer.
`pre-emacs' -- output should be ignored util the post-prompt
annotation is received. Then the output-sink
@@ -117,7 +132,7 @@ Possible values are these symbols:
`post-emacs' -- ignore output until the prompt annotation is
received, then go to USER disposition.
-gdba (gdb-ui.el) uses all five values, gdbmi (gdb-mi.el) only two
+gdba (gdb-ui.el) uses all five values, gdbmi (gdb-mi.el) only two
\(`user' and `emacs').")
(defvar gdb-current-item nil
@@ -136,7 +151,7 @@ The directory containing FILE becomes the initial working directory
and source-file directory for your debugger.
If `gdb-many-windows' is nil (the default value) then gdb just
-pops up the GUD buffer unless `gdb-show-main' is t. In this case
+pops up the GUD buffer unless `gdb-show-main' is t. In this case
it starts with two windows: one displaying the GUD buffer and the
other with the source file with the main routine of the inferior.
@@ -188,6 +203,7 @@ detailed description of this mode.
(defvar gdb-debug-log nil)
+;;;###autoload
(defcustom gdb-enable-debug-log nil
"Non-nil means record the process input and output in `gdb-debug-log'."
:type 'boolean
@@ -203,7 +219,7 @@ detailed description of this mode.
(defcustom gdb-cpp-define-alist-program "gcc -E -dM -"
"Shell command for generating a list of defined macros in a source file.
This list is used to display the #define directive associated
-with an identifier as a tooltip. It works in a debug session with
+with an identifier as a tooltip. It works in a debug session with
GDB, when gud-tooltip-mode is t.
Set `gdb-cpp-define-alist-flags' for any include paths or
@@ -266,7 +282,7 @@ Also display the main routine in the disassembly buffer if present."
'gdb-tooltip-print))))))
(defun gdb-set-gud-minor-mode (buffer)
- "Set gud-minor-mode from find-file if appropriate."
+ "Set `gud-minor-mode' from find-file if appropriate."
(goto-char (point-min))
(unless (search-forward "No source file named " nil t)
(condition-case nil
@@ -490,15 +506,11 @@ Also display the main routine in the disassembly buffer if present."
(setq gdb-var-list (nreverse var-list))))))
(defun gdb-var-update ()
- (if (not (member 'gdb-var-update gdb-pending-triggers))
- (progn
- (gdb-enqueue-input
- (list
- (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba))
- "server interpreter mi \"-var-update *\"\n"
- "-var-update *\n")
- 'gdb-var-update-handler))
- (push 'gdb-var-update gdb-pending-triggers))))
+ (when (not (member 'gdb-var-update gdb-pending-triggers))
+ (gdb-enqueue-input
+ (list "server interpreter mi \"-var-update *\"\n"
+ 'gdb-var-update-handler))
+ (push 'gdb-var-update gdb-pending-triggers)))
(defconst gdb-var-update-regexp "name=\"\\(.*?\\)\"")
@@ -509,19 +521,15 @@ Also display the main routine in the disassembly buffer if present."
(let ((varnum (match-string 1)))
(gdb-enqueue-input
(list
- (if (with-current-buffer gud-comint-buffer
- (eq gud-minor-mode 'gdba))
- (concat "server interpreter mi \"-var-evaluate-expression "
- varnum "\"\n")
- (concat "-var-evaluate-expression " varnum "\n"))
- `(lambda () (gdb-var-evaluate-expression-handler
- ,varnum t)))))))
+ (concat "server interpreter mi \"-var-evaluate-expression "
+ varnum "\"\n")
+ `(lambda () (gdb-var-evaluate-expression-handler ,varnum t)))))))
(setq gdb-pending-triggers
(delq 'gdb-var-update gdb-pending-triggers))
(when (and (boundp 'speedbar-frame) (frame-live-p speedbar-frame))
- ;; dummy command to update speedbar at right time
+ ;; Dummy command to update speedbar at right time.
(gdb-enqueue-input (list "server pwd\n" 'gdb-speedbar-timer-fn))
- ;; keep gdb-pending-triggers non-nil till end
+ ;; Keep gdb-pending-triggers non-nil till end.
(push 'gdb-speedbar-timer gdb-pending-triggers)))
(defun gdb-speedbar-timer-fn ()
@@ -531,9 +539,10 @@ Also display the main routine in the disassembly buffer if present."
(speedbar-timer-fn)))
(defun gdb-var-delete ()
- "Delete watched expression from the speedbar."
+ "Delete watch expression at point from the speedbar."
(interactive)
- (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba))
+ (if (with-current-buffer
+ gud-comint-buffer (memq gud-minor-mode '(gdbmi gdba)))
(let ((text (speedbar-line-text)))
(string-match "\\(\\S-+\\)" text)
(let* ((expr (match-string 1 text))
@@ -582,7 +591,9 @@ INDENT is the current indentation depth."
(cond ((string-match "+" text) ;expand this node
(if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba))
(gdb-var-list-children token)
- (gdbmi-var-list-children token)))
+ (progn
+ (gdbmi-var-update)
+ (gdbmi-var-list-children token))))
((string-match "-" text) ;contract this node
(dolist (var gdb-var-list)
(if (string-match (concat token "\\.") (nth 1 var))
@@ -695,6 +706,13 @@ The key should be one of the cars in `gdb-buffer-rules-assoc'."
(gdb-display-buffer
(gdb-get-create-buffer 'gdb-inferior-io))))
+(defconst gdb-frame-parameters
+ '((height . 14) (width . 80)
+ (unsplittable . t)
+ (tool-bar-lines . nil)
+ (menu-bar-lines . nil)
+ (minibuffer . nil)))
+
(defun gdb-frame-inferior-io-buffer ()
"Display IO of inferior in a new frame."
(interactive)
@@ -964,7 +982,7 @@ being debugged."
(defun gdb-exited (ignored)
"An annotation handler for `exited' and `signalled'.
They say that I/O for the subprocess is now GDB, not the program
-being debugged and that the program is no longer running. This
+being debugged and that the program is no longer running. This
function is used to change the focus of GUD tooltips to #define
directives."
(setq gdb-active-process nil)
@@ -1015,7 +1033,7 @@ happens to be appropriate."
(gdb-invalidate-threads)
(unless (eq system-type 'darwin) ;Breaks on Darwin's GDB-5.3.
;; FIXME: with GDB-6 on Darwin, this might very well work.
- ;; only needed/used with speedbar/watch expressions
+ ;; Only needed/used with speedbar/watch expressions.
(when (and (boundp 'speedbar-frame) (frame-live-p speedbar-frame))
(setq gdb-var-changed t) ; force update
(dolist (var gdb-var-list)
@@ -1035,9 +1053,9 @@ happens to be appropriate."
(if gdb-flush-pending-output
nil
(if gdb-enable-debug-log (push (cons 'recv string) gdb-debug-log))
- ;; Recall the left over gud-marker-acc from last time
+ ;; Recall the left over gud-marker-acc from last time.
(setq gud-marker-acc (concat gud-marker-acc string))
- ;; Start accumulating output for the GUD buffer
+ ;; Start accumulating output for the GUD buffer.
(let ((output ""))
;;
;; Process all the complete markers in this chunk.
@@ -1287,7 +1305,7 @@ static char *magick[] = {
:weight bold))
"Face for enabled breakpoint icon in fringe."
:group 'gud)
-;; compatibility alias for old name
+;; Compatibility alias for old name.
(put 'breakpoint-enabled-bitmap-face 'face-alias 'breakpoint-enabled)
(defface breakpoint-disabled
@@ -1298,13 +1316,11 @@ static char *magick[] = {
(((background light)) :foreground "grey40"))
"Face for disabled breakpoint icon in fringe."
:group 'gud)
-;; compatibility alias for old name
-(put 'breakpoint-disabled-bitmap-face 'face-alias 'breakpoint-disabled)
-;;-put breakpoint icons in relevant margins (even those set in the GUD buffer)
+;; Put breakpoint icons in relevant margins (even those set in the GUD buffer).
(defun gdb-info-breakpoints-custom ()
(let ((flag) (bptno))
- ;; remove all breakpoint-icons in source buffers but not assembler buffer
+ ;; Remove all breakpoint-icons in source buffers but not assembler buffer.
(dolist (buffer (buffer-list))
(with-current-buffer buffer
(if (and (eq gud-minor-mode 'gdba)
@@ -1334,13 +1350,14 @@ static char *magick[] = {
(setq file (cdr (assoc bptno gdb-location-alist))))
(if (and file
(not (string-equal file "File not found")))
- (with-current-buffer (find-file-noselect file)
+ (with-current-buffer
+ (find-file-noselect file 'nowarn)
(set (make-local-variable 'gud-minor-mode)
'gdba)
(set (make-local-variable 'tool-bar-map)
gud-tool-bar-map)
- ;; only want one breakpoint icon at each
- ;; location
+ ;; Only want one breakpoint icon at each
+ ;; location.
(save-excursion
(goto-line (string-to-number line))
(gdb-put-breakpoint-icon (eq flag ?y) bptno)))
@@ -1380,11 +1397,7 @@ static char *magick[] = {
(with-selected-window (posn-window posn)
(save-excursion
(goto-char (posn-point posn))
- (if
-; (or
- (posn-object posn)
-; (eq (car (fringe-bitmaps-at-pos (posn-point posn)))
-; 'breakpoint))
+ (if (posn-object posn)
(gdb-enqueue-input
(list
(let ((bptno (get-text-property
@@ -1406,13 +1419,6 @@ static char *magick[] = {
(gdb-display-buffer
(gdb-get-create-buffer 'gdb-breakpoints-buffer)))
-(defconst gdb-frame-parameters
- '((height . 14) (width . 80)
- (unsplittable . t)
- (tool-bar-lines . nil)
- (menu-bar-lines . nil)
- (minibuffer . nil)))
-
(defun gdb-frame-breakpoints-buffer ()
"Display status of user-settable breakpoints in a new frame."
(interactive)
@@ -1972,7 +1978,7 @@ corresponding to the mode line clicked."
'mouse-1
#'(lambda () (interactive)
(let ((gdb-memory-address
- ;; let GDB do the arithmetic
+ ;; Let GDB do the arithmetic.
(concat
gdb-memory-address " - "
(number-to-string
@@ -2186,6 +2192,7 @@ corresponding to the mode line clicked."
(define-key gud-menu-map [ui]
`(menu-item "GDB-UI" ,menu :visible (eq gud-minor-mode 'gdba)))
(define-key menu [gdb-use-inferior-io]
+ ;; See defadvice below.
(menu-bar-make-toggle toggle-gdb-use-inferior-io-buffer
gdb-use-inferior-io-buffer
"Separate inferior IO" "Use separate IO %s"
@@ -2198,6 +2205,7 @@ corresponding to the mode line clicked."
'(menu-item "Restore Window Layout" gdb-restore-windows
:help "Restore standard layout for debug session.")))
+;; This function is defined above through a macro.
(defadvice toggle-gdb-use-inferior-io-buffer (after gdb-kill-io-buffer activate)
(unless gdb-use-inferior-io-buffer
(kill-buffer (gdb-inferior-io-name))))
@@ -2220,7 +2228,7 @@ corresponding to the mode line clicked."
(set-window-dedicated-p (selected-window) t))
(defun gdb-setup-windows ()
- "Layout the window pattern for gdb-many-windows."
+ "Layout the window pattern for `gdb-many-windows'."
(gdb-display-locals-buffer)
(gdb-display-stack-buffer)
(delete-other-windows)
@@ -2374,7 +2382,7 @@ of the current session."
(defun gdb-put-string (putstring pos &optional dprop)
"Put string PUTSTRING in front of POS in the current buffer.
PUTSTRING is displayed by putting an overlay into the current buffer with a
-`before-string' STRING that has a `display' property whose value is
+`before-string' string that has a `display' property whose value is
PUTSTRING."
(let ((string (make-string 1 ?x))
(buffer (current-buffer)))
@@ -2479,7 +2487,7 @@ BUFFER nil or omitted means use the current buffer."
(def-gdb-auto-updated-buffer gdb-assembler-buffer
gdb-invalidate-assembler
- (concat gdb-server-prefix "disassemble "
+ (concat gdb-server-prefix "disassemble "
(if (member gdb-frame-address '(nil "main")) nil "0x")
gdb-frame-address "\n")
gdb-assembler-handler
diff --git a/lisp/progmodes/grep.el b/lisp/progmodes/grep.el
index 0f1045eeb5..48d1c09d13 100644
--- a/lisp/progmodes/grep.el
+++ b/lisp/progmodes/grep.el
@@ -1,7 +1,7 @@
;;; grep.el --- run Grep as inferior of Emacs, parse match messages
;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-;; 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
+;; 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Roland McGrath <roland@gnu.org>
;; Maintainer: FSF
@@ -33,6 +33,9 @@
(require 'compile)
+(defvar font-lock-lines-before)
+
+
(defgroup grep nil
"Run compiler as inferior of Emacs, parse error messages."
:group 'tools
@@ -187,16 +190,13 @@ See `compilation-error-screen-columns'"
(define-key map "\^?" 'scroll-down)
(define-key map "\C-c\C-f" 'next-error-follow-minor-mode)
- ;; This is intolerable -- rms
-;;; (define-key map [remap next-line] 'compilation-next-error)
-;;; (define-key map [remap previous-line] 'compilation-previous-error)
-
(define-key map "\r" 'compile-goto-error) ;; ?
(define-key map "n" 'next-error-no-select)
(define-key map "p" 'previous-error-no-select)
(define-key map "{" 'compilation-previous-file)
(define-key map "}" 'compilation-next-file)
- (define-key map "\t" 'compilation-next-file)
+ (define-key map "\t" 'compilation-next-error)
+ (define-key map [backtab] 'compilation-previous-error)
;; Set up the menu-bar
(define-key map [menu-bar grep]
@@ -209,7 +209,7 @@ See `compilation-error-screen-columns'"
(define-key map [menu-bar grep compilation-compile]
'("Compile..." . compile))
(define-key map [menu-bar grep compilation-grep]
- '("Another grep" . grep))
+ '("Another grep..." . grep))
(define-key map [menu-bar grep compilation-recompile]
'("Repeat grep" . recompile))
(define-key map [menu-bar grep compilation-separator2]
@@ -247,24 +247,24 @@ Notice that using \\[next-error] or \\[compile-goto-error] modifies
;;;###autoload
(defvar grep-regexp-alist
- ;; rms: I removed the code to match parens around the line number
- ;; because it causes confusion and so we will find out if anyone needs it.
- ;; It causes confusion with a file name that contains a number in parens.
- '(("^\\(.+?\\)\\([: \t]\\)+\
-\\([0-9]+\\)\\([.:]?\\)\\([0-9]+\\)?\
-\\(?:-\\(?:\\([0-9]+\\)\\4\\)?\\.?\\([0-9]+\\)?\\)?\\2"
- 1 (3 . 6) (5 . 7))
+ '(("^\\(.+?\\)\\(:[ \t]*\\)\\([0-9]+\\)\\2"
+ 1 3)
+ ;; Rule to match column numbers is commented out since no known grep
+ ;; produces them
+ ;; ("^\\(.+?\\)\\(:[ \t]*\\)\\([0-9]+\\)\\2\\(?:\\([0-9]+\\)\\(?:-\\([0-9]+\\)\\)?\\2\\)?"
+ ;; 1 3 (4 . 5))
("^\\(\\(.+?\\):\\([0-9]+\\):\\).*?\
-\\(\033\\[01;41m\\)\\(.*?\\)\\(\033\\[00m\\(?:\033\\[K\\)?\\)"
+\\(\033\\[01;31m\\(?:\033\\[K\\)?\\)\\(.*?\\)\\(\033\\[[0-9]*m\\)"
2 3
;; Calculate column positions (beg . end) of first grep match on a line
((lambda ()
- (setq compilation-error-screen-columns nil)
- (- (match-beginning 5) (match-end 1) 8))
+ (setq compilation-error-screen-columns nil)
+ (- (match-beginning 4) (match-end 1)))
.
- (lambda () (- (match-end 5) (match-end 1) 8)))
+ (lambda () (- (match-end 5) (match-end 1)
+ (- (match-end 4) (match-beginning 4)))))
nil 1)
- ("^Binary file \\(.+\\) matches$" 1 nil nil 1))
+ ("^Binary file \\(.+\\) matches$" 1 nil nil 0 1))
"Regexp used to match grep hits. See `compilation-error-regexp-alist'.")
(defvar grep-error "grep hit"
@@ -275,38 +275,48 @@ Notice that using \\[next-error] or \\[compile-goto-error] modifies
(defvar grep-hit-face compilation-info-face
"Face name to use for grep hits.")
-(defvar grep-error-face compilation-error-face
+(defvar grep-error-face 'compilation-error
"Face name to use for grep error messages.")
(defvar grep-match-face 'match
"Face name to use for grep matches.")
+(defvar grep-context-face 'shadow
+ "Face name to use for grep context lines.")
+
(defvar grep-mode-font-lock-keywords
'(;; Command output lines.
("^\\([A-Za-z_0-9/\.+-]+\\)[ \t]*:" 1 font-lock-function-name-face)
(": \\(.+\\): \\(?:Permission denied\\|No such \\(?:file or directory\\|device or address\\)\\)$"
1 grep-error-face)
;; remove match from grep-regexp-alist before fontifying
+ ("^Grep started.*"
+ (0 '(face nil message nil help-echo nil mouse-face nil) t))
("^Grep finished \\(?:(\\(matches found\\))\\|with \\(no matches found\\)\\).*"
(0 '(face nil message nil help-echo nil mouse-face nil) t)
- (1 grep-hit-face nil t)
- (2 grep-error-face nil t))
- ("^Grep \\(exited abnormally\\) with code \\([0-9]+\\).*"
+ (1 compilation-info-face nil t)
+ (2 compilation-warning-face nil t))
+ ("^Grep \\(exited abnormally\\|interrupt\\|killed\\|terminated\\)\\(?:.*with code \\([0-9]+\\)\\)?.*"
(0 '(face nil message nil help-echo nil mouse-face nil) t)
- (1 compilation-warning-face)
- (2 compilation-line-face))
+ (1 grep-error-face)
+ (2 grep-error-face nil t))
+ ("^.+?-[0-9]+-.*\n" (0 grep-context-face))
;; Highlight grep matches and delete markers
- ("\\(\033\\[01;41m\\)\\(.*?\\)\\(\033\\[00m\\(?:\033\\[K\\)?\\)"
+ ("\\(\033\\[01;31m\\)\\(.*?\\)\\(\033\\[[0-9]*m\\)"
;; Refontification does not work after the markers have been
;; deleted. So we use the font-lock-face property here as Font
;; Lock does not clear that.
(2 (list 'face nil 'font-lock-face grep-match-face))
- ((lambda (p))
+ ((lambda (bound))
(progn
;; Delete markers with `replace-match' because it updates
;; the match-data, whereas `delete-region' would render it obsolete.
(replace-match "" t t nil 3)
- (replace-match "" t t nil 1)))))
+ (replace-match "" t t nil 1))))
+ ("\\(\033\\[[0-9;]*[mK]\\)"
+ ;; Delete all remaining escape sequences
+ ((lambda (bound))
+ (replace-match "" t t nil 1))))
"Additional things to highlight in grep output.
This gets tacked on the end of the generated expressions.")
@@ -354,7 +364,10 @@ Set up `compilation-exit-message-function' and run `grep-setup-hook'."
(when (eq grep-highlight-matches t)
;; Modify `process-environment' locally bound in `compilation-start'
(setenv "GREP_OPTIONS" (concat (getenv "GREP_OPTIONS") " --color=always"))
- (setenv "GREP_COLOR" "01;41"))
+ ;; for GNU grep 2.5.1
+ (setenv "GREP_COLOR" "01;31")
+ ;; for GNU grep 2.5.1-cvs
+ (setenv "GREP_COLORS" "mt=01;31:fn=:ln=:bn=:se=:ml=:cx=:ne"))
(set (make-local-variable 'compilation-exit-message-function)
(lambda (status code msg)
(if (eq status 'exit)
@@ -508,12 +521,12 @@ temporarily highlight in visited source lines."
;; Setting process-setup-function makes exit-message-function work
;; even when async processes aren't supported.
- (let ((compilation-process-setup-function 'grep-process-setup))
- (compilation-start (if (and grep-use-null-device null-device)
- (concat command-args " " null-device)
- command-args)
- 'grep-mode nil highlight-regexp)))
+ (compilation-start (if (and grep-use-null-device null-device)
+ (concat command-args " " null-device)
+ command-args)
+ 'grep-mode nil highlight-regexp))
+;;;###autoload
(define-compilation-mode grep-mode "Grep"
"Sets `grep-last-buffer' and `compilation-window-height'."
(setq grep-last-buffer (current-buffer))
@@ -521,6 +534,9 @@ temporarily highlight in visited source lines."
grep-hit-face)
(set (make-local-variable 'compilation-error-regexp-alist)
grep-regexp-alist)
+ (set (make-local-variable 'compilation-process-setup-function)
+ 'grep-process-setup)
+ (set (make-local-variable 'compilation-disable-input) t)
;; Set `font-lock-lines-before' to 0 to not refontify the previous
;; line where grep markers may be already removed.
(set (make-local-variable 'font-lock-lines-before) 0))
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el
index 5064438366..1486825b07 100644
--- a/lisp/progmodes/gud.el
+++ b/lisp/progmodes/gud.el
@@ -4,7 +4,8 @@
;; Maintainer: FSF
;; Keywords: unix, tools
-;; Copyright (C) 1992,93,94,95,96,1998,2000,02,03,04,05 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
@@ -42,9 +43,17 @@
(eval-when-compile (require 'cl)) ; for case macro
(require 'comint)
-(require 'etags)
(require 'font-lock)
+(defvar gdb-active-process)
+(defvar gdb-define-alist)
+(defvar gdb-macro-info)
+(defvar gdb-server-prefix)
+(defvar gdb-show-changed-values)
+(defvar gdb-var-changed)
+(defvar gdb-var-list)
+(defvar tool-bar-map)
+
;; ======================================================================
;; GUD commands must be visible in C buffers visited by GUD
@@ -352,10 +361,10 @@ t means that there is no stack, and we are in display-file mode.")
(not (memq gud-minor-mode '(gdbmi gdba))))]
["Edit value" speedbar-edit-line
(with-current-buffer gud-comint-buffer
- (not (memq gud-minor-mode '(gdbmi gdba))))]
+ (memq gud-minor-mode '(gdbmi gdba)))]
["Delete expression" gdb-var-delete
(with-current-buffer gud-comint-buffer
- (not (memq gud-minor-mode '(gdbmi gdba))))])
+ (memq gud-minor-mode '(gdbmi gdba)))])
"Additional menu items to add to the speedbar frame.")
;; Make sure our special speedbar mode is loaded
@@ -508,9 +517,9 @@ off the specialized speedbar mode."
;; to return - we don't include the marker in this text.
output (concat output
(substring gud-marker-acc 0 (match-beginning 0)))
-
+
;; Set the accumulator to the remaining text.
-
+
gud-marker-acc (substring gud-marker-acc (match-end 0)))
(if (string-equal match "error-begin")
(put-text-property 0 (length gud-marker-acc)
@@ -586,7 +595,9 @@ and source-file directory for your debugger."
(gud-def gud-nexti "nexti %p" nil "Step one instruction (skip functions).")
(gud-def gud-cont "cont" "\C-r" "Continue with display.")
(gud-def gud-finish "finish" "\C-f" "Finish executing current function.")
- (gud-def gud-jump "tbreak %f:%l\njump %f:%l" "\C-j" "Relocate execution address to line at point in source buffer.")
+ (gud-def gud-jump
+ (progn (gud-call "tbreak %f:%l") (gud-call "jump %f:%l"))
+ "\C-j" "Set execution address to current line.")
(gud-def gud-up "up %p" "<" "Up N stack frames (numeric arg).")
(gud-def gud-down "down %p" ">" "Down N stack frames (numeric arg).")
@@ -833,6 +844,7 @@ The directory containing FILE becomes the initial working directory
and source-file directory for your debugger."
(interactive (list (gud-query-cmdline 'sdb)))
+ (if gud-sdb-needs-tags (require 'etags))
(if (and gud-sdb-needs-tags
(not (and (boundp 'tags-file-name)
(stringp tags-file-name)
@@ -2595,7 +2607,7 @@ It is saved for when this flag is not set.")
(defun gud-kill-buffer-hook ()
(setq gud-minor-mode-type gud-minor-mode)
(condition-case nil
- (kill-process (get-buffer-process gud-comint-buffer))
+ (kill-process (get-buffer-process (current-buffer)))
(error nil)))
(defun gud-reset ()
@@ -2862,12 +2874,12 @@ the character after the end of the expr."
If `->' is found, return `?.'. If `.' is found, return `?.'.
If any other punctuation is found, return `??'.
If no punctuation is found, return `? '."
- (let ((result ?\ )
+ (let ((result ?\s)
(syntax))
(while (< span-start span-end)
(setq syntax (char-syntax (char-after span-start)))
(cond
- ((= syntax ?\ ) t)
+ ((= syntax ?\s) t)
((= syntax ?.) (setq syntax (char-after span-start))
(cond
((= syntax ?.) (setq result ?.))
@@ -2899,7 +2911,7 @@ Link exprs of the form:
((= (car first) (car second)) nil)
((= (cdr first) (cdr second)) nil)
((= syntax ?.) t)
- ((= syntax ?\ )
+ ((= syntax ?\s)
(setq span-start (char-after (- span-start 1)))
(setq span-end (char-after span-end))
(cond
@@ -3209,6 +3221,7 @@ This event can be examined by forms in GUD-TOOLTIP-DISPLAY.")
(define-obsolete-function-alias 'tooltip-gud-toggle-dereference
'toggle-gud-tooltip-dereference "22.1")
+;;;###autoload
(define-minor-mode gud-tooltip-mode
"Toggle the display of GUD tooltips."
:global t
@@ -3225,7 +3238,11 @@ This event can be examined by forms in GUD-TOOLTIP-DISPLAY.")
(remove-hook 'tooltip-hook 'gud-tooltip-tips)
(define-key global-map [mouse-movement] 'ignore)))
(gud-tooltip-activate-mouse-motions-if-enabled)
- (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba))
+ (if (and
+ gud-comint-buffer
+ (buffer-name gud-comint-buffer); gud-comint-buffer might be kille
+ (with-current-buffer gud-comint-buffer
+ (memq gud-minor-mode '(gdbmi gdba))))
(if gud-tooltip-mode
(progn
(dolist (buffer (buffer-list))
diff --git a/lisp/progmodes/hideif.el b/lisp/progmodes/hideif.el
index 35524b4a36..1f843dea03 100644
--- a/lisp/progmodes/hideif.el
+++ b/lisp/progmodes/hideif.el
@@ -1,6 +1,7 @@
;;; hideif.el --- hides selected code within ifdef
-;; Copyright (C) 1988, 1994, 2001, 2002, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1988, 1994, 2001, 2002, 2003, 2004 2005
+;; Free Software Foundation, Inc.
;; Author: Daniel LaLiberte <liberte@holonexus.org>
;; Maintainer: FSF
diff --git a/lisp/progmodes/hideshow.el b/lisp/progmodes/hideshow.el
index 0acb995d2f..8f08311cea 100644
--- a/lisp/progmodes/hideshow.el
+++ b/lisp/progmodes/hideshow.el
@@ -1,6 +1,7 @@
;;; hideshow.el --- minor mode cmds to selectively display code/comment blocks
-;; Copyright (C) 1994, 95, 96, 97, 98, 99, 2000, 01 Free Software Foundation
+;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+;; 2004, 2005 Free Software Foundation
;; Author: Thien-Thi Nguyen <ttn@gnu.org>
;; Dan Nicolaescu <dann@ics.uci.edu>
diff --git a/lisp/progmodes/icon.el b/lisp/progmodes/icon.el
index 66869d8e6d..aad5686c69 100644
--- a/lisp/progmodes/icon.el
+++ b/lisp/progmodes/icon.el
@@ -1,6 +1,7 @@
;;; icon.el --- mode for editing Icon code
-;; Copyright (C) 1989 Free Software Foundation, Inc.
+;; Copyright (C) 1989, 2001, 2002, 2003, 2004, 2005
+;; Free Software Foundation, Inc.
;; Author: Chris Smith <csmith@convex.com>
;; Created: 15 Feb 89
diff --git a/lisp/progmodes/idlw-complete-structtag.el b/lisp/progmodes/idlw-complete-structtag.el
index e802093748..bc659666a0 100644
--- a/lisp/progmodes/idlw-complete-structtag.el
+++ b/lisp/progmodes/idlw-complete-structtag.el
@@ -1,5 +1,5 @@
;;; idlw-complete-structtag.el --- Completion of structure tags.
-;; Copyright (c) 2001,2002 Free Software Foundation
+;; Copyright (c) 2001, 2002, 2003, 2004, 2005 Free Software Foundation
;; Author: Carsten Dominik <dominik@science.uva.nl>
;; Maintainer: J.D. Smith <jdsmith@as.arizona.edu>
@@ -53,10 +53,10 @@
;;
;; INSTALLATION
;; ============
-;; Put this file on the emacs load path and load it with the following
+;; Put this file on the emacs load path and load it with the following
;; line in your .emacs file:
;;
-;; (add-hook 'idlwave-load-hook
+;; (add-hook 'idlwave-load-hook
;; (lambda () (require 'idlw-complete-structtag)))
;;
;; DESCRIPTION
@@ -87,6 +87,7 @@
;; - You can force an update of the tag list with the usual command
;; to update routine info in IDLWAVE: C-c C-i
+(defvar idlwave-completion-help-info)
;; Some variables to identify the previously used structure
(defvar idlwave-current-tags-var nil)
@@ -144,9 +145,9 @@ an up-to-date completion list."
(not (equal start idlwave-current-tags-completion-pos)))
(idlwave-prepare-structure-tag-completion var))
(setq idlwave-current-tags-completion-pos start)
- (setq idlwave-completion-help-info
+ (setq idlwave-completion-help-info
(list 'idlwave-complete-structure-tag-help))
- (idlwave-complete-in-buffer 'structtag 'structtag
+ (idlwave-complete-in-buffer 'structtag 'structtag
idlwave-current-struct-tags nil
"Select a structure tag" "structure tag")
t) ; we did the completion: return t to skip other completions
@@ -165,7 +166,7 @@ an up-to-date completion list."
(if (eq major-mode 'idlwave-shell-mode)
;; OK, we are in the shell, do it dynamically
(progn
- (message "preparing shell tags")
+ (message "preparing shell tags")
;; The following call puts the tags into `idlwave-current-struct-tags'
(idlwave-complete-structure-tag-query-shell var)
;; initialize
@@ -187,7 +188,7 @@ an up-to-date completion list."
;; Find possible definitions of the structure.
(while (idlwave-find-structure-definition var nil 'all)
(let ((tags (idlwave-struct-tags)))
- (when tags
+ (when tags
;; initialize
(setq idlwave-sint-structtags nil
idlwave-current-tags-buffer (current-buffer)
diff --git a/lisp/progmodes/idlw-help.el b/lisp/progmodes/idlw-help.el
index f038149aaa..0a84812803 100644
--- a/lisp/progmodes/idlw-help.el
+++ b/lisp/progmodes/idlw-help.el
@@ -1,7 +1,7 @@
;;; idlw-help.el --- HTML Help code for IDLWAVE
;; Copyright (c) 2000 Carsten Dominik
;; Copyright (c) 2001, 2002 J.D. Smith
-;; Copyright (c) 2003,2004,2005 Free Software Foundation
+;; Copyright (c) 2003, 2004, 2005, Free Software Foundation
;;
;; Authors: J.D. Smith <jdsmith@as.arizona.edu>
;; Carsten Dominik <dominik@science.uva.nl>
@@ -36,11 +36,13 @@
;; information, at:
;;
;; http://idlwave.org
-;;
+;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Code:
+(defvar browse-url-generic-args)
+
(defvar idlwave-help-browse-url-available nil
"Whether browse-url is available")
@@ -58,10 +60,10 @@
:group 'idlwave-online-help
:type 'boolean)
-(defvar idlwave-html-link-sep
+(defvar idlwave-html-link-sep
(if idlwave-html-help-pre-v6 "#" "#wp"))
-(defcustom idlwave-html-help-location
+(defcustom idlwave-html-help-location
(if (memq system-type '(ms-dos windows-nt))
nil
"/usr/local/etc/")
@@ -89,7 +91,7 @@ Defaults to `browse-url-browser-function', which see."
:group 'idlwave-online-help
:type 'string)
-(defcustom idlwave-help-browser-generic-args
+(defcustom idlwave-help-browser-generic-args
(if (boundp 'browse-url-generic-args)
browse-url-generic-args "")
"Program args to use if using browse-url-generic-program."
@@ -193,12 +195,10 @@ support."
(t (:weight bold)))
"Face for highlighting links into IDLWAVE online help."
:group 'idlwave-online-help)
-;; backward-compatibility alias
-(put 'idlwave-help-link-face 'face-alias 'idlwave-help-link)
(defvar idlwave-help-activate-links-aggressively nil
"Obsolete variable.")
-
+
(defvar idlwave-completion-help-info)
(defvar idlwave-help-frame nil
@@ -326,7 +326,7 @@ It collects and prints the diagnostics messages."
(setq idlwave-last-context-help-pos marker)
(idlwave-do-context-help1 arg)
(if idlwave-help-diagnostics
- (message "%s" (mapconcat 'identity
+ (message "%s" (mapconcat 'identity
(nreverse idlwave-help-diagnostics)
"; "))))))
@@ -339,7 +339,7 @@ It collects and prints the diagnostics messages."
(defun idlwave-do-context-help1 (&optional arg)
"The work-horse version of `idlwave-context-help', which see."
(save-excursion
- (if (equal (char-after) ?/)
+ (if (equal (char-after) ?/)
(forward-char 1)
(if (equal (char-before) ?=)
(backward-char 1)))
@@ -349,7 +349,7 @@ It collects and prints the diagnostics messages."
(beg (save-excursion (skip-chars-backward chars) (point)))
(end (save-excursion (skip-chars-forward chars) (point)))
(this-word (buffer-substring-no-properties beg end))
- (st-ass (assoc (downcase this-word)
+ (st-ass (assoc (downcase this-word)
idlwave-help-special-topic-words))
(classtag (and (string-match "self\\." this-word)
(< beg (- end 4))))
@@ -357,7 +357,7 @@ It collects and prints the diagnostics messages."
(string-match "\\`\\([^.]+\\)\\." this-word)
(< beg (- end 4))))
module keyword cw mod1 mod2 mod3)
- (if (or arg
+ (if (or arg
(and (not st-ass)
(not classtag)
(not structtag)
@@ -376,15 +376,15 @@ It collects and prints the diagnostics messages."
(setq module (list "init" 'fun (match-string 1 str))
idlwave-current-obj_new-class (match-string 1 str))
)))))
- (cond
+ (cond
(arg (setq mod1 module))
-
+
;; A special topic -- only system help
(st-ass (setq mod1 (list (cdr st-ass))))
-
+
;; A system variable -- only system help
- ((string-match
- "\\`!\\([a-zA-Z0-9_]+\\)\\(\.\\([A-Za-z0-9_]+\\)\\)?"
+ ((string-match
+ "\\`!\\([a-zA-Z0-9_]+\\)\\(\.\\([A-Za-z0-9_]+\\)\\)?"
this-word)
(let* ((word (match-string-no-properties 1 this-word))
(entry (assq (idlwave-sintern-sysvar word)
@@ -396,10 +396,10 @@ It collects and prints the diagnostics messages."
(cdr (assq 'tags entry))))))
(link (nth 1 (assq 'link entry))))
(if tag-target
- (setq link (idlwave-substitute-link-target link
+ (setq link (idlwave-substitute-link-target link
tag-target)))
(setq mod1 (list link))))
-
+
;; An executive command -- only system help
((string-match "^\\.\\([A-Z_]+\\)" this-word)
(let* ((word (match-string 1 this-word))
@@ -407,7 +407,7 @@ It collects and prints the diagnostics messages."
word
idlwave-executive-commands-alist t))))
(setq mod1 (list link))))
-
+
;; A class -- system OR in-text help (via class__define).
((and (eq cw 'class)
(or (idlwave-in-quote) ; e.g. obj_new
@@ -421,28 +421,28 @@ It collects and prints the diagnostics messages."
(name (concat (downcase this-word) "__define"))
(link (nth 1 (assq 'link entry))))
(setq mod1 (list link name 'pro))))
-
+
;; A class structure tag (self.BLAH) -- only in-text help available
(classtag
(let ((tag (substring this-word (match-end 0)))
class-with found-in)
- (when (setq class-with
+ (when (setq class-with
(idlwave-class-or-superclass-with-tag
(nth 2 (idlwave-current-routine))
tag))
(setq found-in (idlwave-class-found-in class-with))
- (if (assq (idlwave-sintern-class class-with)
+ (if (assq (idlwave-sintern-class class-with)
idlwave-system-class-info)
(error "No help available for system class tags"))
(setq idlwave-help-do-class-struct-tag t)
- (setq mod1 (list nil
+ (setq mod1 (list nil
(if found-in
(cons (concat found-in "__define") class-with)
(concat class-with "__define"))
'pro
nil ; no class.... it's a procedure!
tag)))))
-
+
;; A regular structure tag -- only in text, and if
;; optional `complete-structtag' loaded.
(structtag
@@ -453,7 +453,7 @@ It collects and prints the diagnostics messages."
(setq idlwave-help-do-struct-tag
idlwave-structtag-struct-location
mod1 (list nil nil nil nil tag))))
-
+
;; A routine keyword -- in text or system help
((and (memq cw '(function-keyword procedure-keyword))
(stringp this-word)
@@ -495,7 +495,7 @@ It collects and prints the diagnostics messages."
(setq mod1 (append (list t) module (list keyword))
mod2 (list t this-word 'fun nil)
mod3 (append (list t) module)))))
-
+
;; Everything else
(t
(setq mod1 (append (list t) module))))
@@ -528,14 +528,14 @@ Needs additional info stored in global `idlwave-completion-help-info'."
word link)
(mouse-set-point ev)
-
+
;; See if we can also find help somewhere, e.g. for multiple classes
(setq word (idlwave-this-word))
(if (string= word "")
(error "No help item selected"))
(setq link (get-text-property 0 'link word))
(select-window cw)
- (cond
+ (cond
;; Routine name
((memq what '(procedure function routine))
(setq name word)
@@ -546,9 +546,9 @@ Needs additional info stored in global `idlwave-completion-help-info'."
type)))
(setq link t) ; No specific link valid yet
(if sclasses
- (setq classes (idlwave-members-only
+ (setq classes (idlwave-members-only
classes (cons class sclasses))))
- (setq class (idlwave-popup-select ev classes
+ (setq class (idlwave-popup-select ev classes
"Select Class" 'sort))))
;; XXX is this necessary, given all-method-classes?
@@ -568,7 +568,7 @@ Needs additional info stored in global `idlwave-completion-help-info'."
type)))
(setq link t) ; Link can't be correct yet
(if sclasses
- (setq classes (idlwave-members-only
+ (setq classes (idlwave-members-only
classes (cons class sclasses))))
(setq class (idlwave-popup-select ev classes
"Select Class" 'sort))
@@ -580,14 +580,14 @@ Needs additional info stored in global `idlwave-completion-help-info'."
(if (string= (downcase name) "obj_new")
(setq class idlwave-current-obj_new-class
name "Init"))))
-
+
;; Class name
((eq what 'class)
(setq class word
word nil))
-
+
;; A special named function to call which sets some of our variables
- ((and (symbolp what)
+ ((and (symbolp what)
(fboundp what))
(funcall what 'set word))
@@ -602,7 +602,7 @@ Needs additional info stored in global `idlwave-completion-help-info'."
"Highlight all completions for which help is available and attach link.
Those words in `idlwave-completion-help-links' have links. The
`idlwave-help-link' face is used for this."
- (if idlwave-highlight-help-links-in-completion
+ (if idlwave-highlight-help-links-in-completion
(with-current-buffer (get-buffer "*Completions*")
(save-excursion
(let* ((case-fold-search t)
@@ -618,7 +618,7 @@ Those words in `idlwave-completion-help-links' have links. The
(setq beg (match-beginning 1) end (match-end 1)
word (match-string 1) doit nil)
;; Call special completion function test
- (if (and (symbolp what)
+ (if (and (symbolp what)
(fboundp what))
(setq doit (funcall what 'test word))
;; Look for special link property passed in help-links
@@ -649,13 +649,13 @@ Those words in `idlwave-completion-help-links' have links. The
;; Try to select the return frame.
;; This can crash on slow network connections, obviously when
;; we kill the help frame before the return-frame is selected.
- ;; To protect the workings, we wait for up to one second
+ ;; To protect the workings, we wait for up to one second
;; and check if the return-frame *is* now selected.
;; This is marked "eperimental" since we are not sure when its OK.
(let ((maxtime 1.0) (time 0.) (step 0.1))
(select-frame idlwave-help-return-frame)
(while (and (sit-for step)
- (not (eq (selected-frame)
+ (not (eq (selected-frame)
idlwave-help-return-frame))
(< (setq time (+ time step)) maxtime)))))
(delete-frame idlwave-help-frame))
@@ -668,7 +668,7 @@ Those words in `idlwave-completion-help-links' have links. The
(defvar default-toolbar-visible-p)
(defun idlwave-help-display-help-window (&optional pos-or-func)
- "Display the help window.
+ "Display the help window.
Move window start to POS-OR-FUNC, if passed as a position, or call it
if passed as a function. See `idlwave-help-use-dedicated-frame'."
(let ((cw (selected-window))
@@ -679,13 +679,13 @@ if passed as a function. See `idlwave-help-use-dedicated-frame'."
(switch-to-buffer buf))
;; Do it in this frame and save the window configuration
(if (not (get-buffer-window buf nil))
- (setq idlwave-help-window-configuration
+ (setq idlwave-help-window-configuration
(current-window-configuration)))
(display-buffer buf nil (selected-frame))
(select-window (get-buffer-window buf)))
(raise-frame)
- (if pos-or-func
- (if (functionp pos-or-func)
+ (if pos-or-func
+ (if (functionp pos-or-func)
(funcall pos-or-func)
(goto-char pos-or-func)
(recenter 0)))
@@ -707,31 +707,31 @@ if passed as a function. See `idlwave-help-use-dedicated-frame'."
(select-frame idlwave-help-return-frame)))
(defun idlwave-online-help (link &optional name type class keyword)
- "Display HTML or other special help on a certain topic.
+ "Display HTML or other special help on a certain topic.
Either loads an HTML link, if LINK is non-nil, or gets special-help on
the optional arguments, if any special help is defined. If LINK is
`t', first look up the optional arguments in the routine info list to
see if a link is set for it. Try extra help functions if necessary."
;; Lookup link
- (if (eq link t)
- (let ((entry (idlwave-best-rinfo-assoc name type class
+ (if (eq link t)
+ (let ((entry (idlwave-best-rinfo-assoc name type class
(idlwave-routines) nil t)))
(cond
;; Try keyword link
- ((and keyword
+ ((and keyword
(setq link (cdr (idlwave-entry-find-keyword entry keyword)))))
;; Default, regular entry link
(t (setq link (idlwave-entry-has-help entry))))))
(cond
;; An explicit link
- ((stringp link)
+ ((stringp link)
(idlwave-help-html-link link))
-
+
;; Any extra help
(idlwave-extra-help-function
(idlwave-help-get-special-help name type class keyword))
-
+
;; Nothing worked
(t (idlwave-help-error name type class keyword))))
@@ -742,7 +742,7 @@ see if a link is set for it. Try extra help functions if necessary."
(help-pos (save-excursion
(set-buffer (idlwave-help-get-help-buffer))
(let ((buffer-read-only nil))
- (funcall idlwave-extra-help-function
+ (funcall idlwave-extra-help-function
name type class keyword)))))
(if help-pos
(idlwave-help-display-help-window help-pos)
@@ -756,7 +756,7 @@ see if a link is set for it. Try extra help functions if necessary."
(browse-url-generic-program idlwave-help-browser-generic-program)
;(browse-url-generic-args idlwave-help-browser-generic-args)
full-link)
-
+
(unless idlwave-help-browse-url-available
(error "browse-url is not available -- install it to use HTML help."))
@@ -774,12 +774,12 @@ see if a link is set for it. Try extra help functions if necessary."
;; Just a regular file name (+ anchor name)
(unless (and (stringp help-loc)
(file-directory-p help-loc))
- (error
+ (error
"Invalid help location; customize `idlwave-html-help-location'."))
- (setq full-link (concat
+ (setq full-link (concat
"file://"
- (expand-file-name
- link
+ (expand-file-name
+ link
(expand-file-name "idl_html_help" help-loc)))))
;; Check for a local browser
@@ -814,7 +814,7 @@ This function can be used as `idlwave-extra-help-function'."
(if class-only ;Help with class? Using "Init" as source.
(setq name "Init"
type 'fun))
- (if (not struct-tag)
+ (if (not struct-tag)
(setq file
(idlwave-routine-source-file
(nth 3 (idlwave-best-rinfo-assoc
@@ -827,7 +827,7 @@ This function can be used as `idlwave-extra-help-function'."
(if (or struct-tag (stringp file))
(progn
(setq in-buf ; structure-tag completion is always in current buffer
- (if struct-tag
+ (if struct-tag
idlwave-current-tags-buffer
(idlwave-get-buffer-visiting file)))
;; see if file is in a visited buffer, insert those contents
@@ -835,7 +835,8 @@ This function can be used as `idlwave-extra-help-function'."
(progn
(setq file (buffer-file-name in-buf))
(erase-buffer)
- (insert-buffer in-buf))
+ (insert-buffer-substring in-buf)
+ (goto-char (point-min)))
(if (file-exists-p file) ;; otherwise just load the file
(progn
(erase-buffer)
@@ -849,19 +850,19 @@ This function can be used as `idlwave-extra-help-function'."
;; Try to find a good place to display
(setq def-pos
;; Find the class structure tag if that's what we're after
- (cond
+ (cond
;; Class structure tags: find the class or named structure
;; definition
(class-struct-tag
- (save-excursion
+ (save-excursion
(setq class
- (if (string-match "[a-zA-Z0-9]\\(__\\)" name)
+ (if (string-match "[a-zA-Z0-9]\\(__\\)" name)
(substring name 0 (match-beginning 1))
idlwave-current-tags-class))
(and
(idlwave-find-class-definition class nil real-class)
(idlwave-find-struct-tag keyword))))
-
+
;; Generic structure tags: the structure definition
;; location within the file has been recorded in
;; `struct-tag'
@@ -871,14 +872,14 @@ This function can be used as `idlwave-extra-help-function'."
(integerp struct-tag)
(goto-char struct-tag)
(idlwave-find-struct-tag keyword))))
-
+
;; Just find the routine definition
(t
(if class-only (point-min)
(idlwave-help-find-routine-definition name type class keyword))))
idlwave-help-def-pos def-pos)
- (if (and idlwave-help-source-try-header
+ (if (and idlwave-help-source-try-header
(not (or struct-tag class-struct-tag)))
;; Check if we can find the header
(save-excursion
@@ -888,7 +889,7 @@ This function can be used as `idlwave-extra-help-function'."
idlwave-help-in-header header-pos)))
(if (or header-pos def-pos)
- (progn
+ (progn
(if (boundp 'idlwave-help-min-frame-width)
(setq idlwave-help-min-frame-width 80))
(goto-char (or header-pos def-pos)))
@@ -902,7 +903,7 @@ This function can be used as `idlwave-extra-help-function'."
KEYWORD is ignored. Returns the point of match if successful, nil otherwise."
(save-excursion
(goto-char (point-max))
- (if (re-search-backward
+ (if (re-search-backward
(concat "^[ \t]*"
(if (eq type 'pro) "pro"
(if (eq type 'fun) "function"
@@ -948,22 +949,22 @@ with spaces allowed between the keyword and the following dash or equal sign.
If there is a match, we assume it is the keyword description."
(let* ((case-fold-search t)
(rname (if (stringp class)
- (concat
+ (concat
"\\("
;; Traditional name or class::name
"\\("
"\\(" (regexp-quote (downcase class)) "::\\)?"
(regexp-quote (downcase name))
"\\>\\)"
- (concat
+ (concat
"\\|"
;; class__define or just class
(regexp-quote (downcase class)) "\\(__define\\)?")
"\\)")
(regexp-quote (downcase name))))
-
+
;; NAME tag plus the routine name. The new version is from JD.
- (name-re (concat
+ (name-re (concat
"\\(^;+\\*?[ \t]*"
idlwave-help-doclib-name
"\\([ \t]*:\\|[ \t]*$\\)[ \t]*\\(\n;+[ \t]*\\)*"
@@ -998,7 +999,7 @@ If there is a match, we assume it is the keyword description."
(regexp-quote (upcase keyword))
"\\>")))
dstart dend name-pos kwds-pos kwd-pos)
- (catch 'exit
+ (catch 'exit
(save-excursion
(goto-char (point-min))
(while (and (setq dstart (re-search-forward idlwave-doclib-start nil t))
@@ -1006,7 +1007,7 @@ If there is a match, we assume it is the keyword description."
;; found a routine header
(goto-char dstart)
(if (setq name-pos (re-search-forward name-re dend t))
- (progn
+ (progn
(if keyword
;; We do need a keyword
(progn
@@ -1088,7 +1089,7 @@ When DING is non-nil, ring the bell as well."
(idlwave-help-find-first-header nil)
(setq idlwave-help-in-header nil)
(idlwave-help-toggle-header-match-and-def arg 'top)))
-
+
(defun idlwave-help-toggle-header-match-and-def (arg &optional top)
(interactive "P")
(let ((args idlwave-help-args)
@@ -1100,7 +1101,7 @@ When DING is non-nil, ring the bell as well."
(setq pos idlwave-help-def-pos))
;; Try to display header
(setq pos (apply 'idlwave-help-find-in-doc-header
- (if top
+ (if top
(list (car args) (nth 1 args) (nth 2 args) nil)
args)))
(if pos
@@ -1134,7 +1135,7 @@ Useful when source code is displayed as help. See the option
(font-lock-fontify-buffer))
(set-syntax-table syntax-table)))))
-
+
(defun idlwave-help-error (name type class keyword)
(error "Can't find help on %s%s %s"
(or (and (or class name) (idlwave-make-full-name class name))
diff --git a/lisp/progmodes/idlw-rinfo.el b/lisp/progmodes/idlw-rinfo.el
index cfd5db3392..367de774bc 100644
--- a/lisp/progmodes/idlw-rinfo.el
+++ b/lisp/progmodes/idlw-rinfo.el
@@ -1,6 +1,7 @@
;;; idlw-rinfo.el --- Routine Information for IDLWAVE
;; Copyright (c) 1999 Carsten Dominik
-;; Copyright (c) 1999, 2000, 2001,2002,2003,2004,2005 Free Software Foundation
+;; Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+;; Free Software Foundation
;; Author: J.D. Smith <jdsmith@as.arizona.edu>
;; Version: 5.7_22
@@ -1898,7 +1899,7 @@
)
"1850 builtin routines with 7685 keywords for IDL version 6.1.")
-(setq idlwave-system-variables-alist
+(defvar idlwave-system-variables-alist
'(
("C" (link "sysvars7.html#wp997337"))
("CPU" (tags ("HW_VECTOR") ("VECTOR_ENABLE") ("HW_NCPU") ("TPOOL_NTHREADS") ("TPOOL_MIN_ELTS") ("TPOOL_MAX_ELTS")) (link "sysvars6.html#wp1014201"))
@@ -1931,7 +1932,7 @@
("Z" (tags ("TITLE" . 997839) ("TYPE" . 997842) ("STYLE" . 997742) ("TICKS" . 999577) ("TICKLEN" . 1012793) ("THICK" . 997798) ("RANGE" . 997713) ("CRANGE" . 997670) ("S" . 997736) ("MARGIN" . 997689) ("OMARGIN" . 997702) ("WINDOW" . 997845) ("REGION" . 997724) ("CHARSIZE" . 1012787) ("MINOR" . 997699) ("TICKV" . 997833) ("TICKNAME" . 997811) ("GRIDSTYLE" . 998134) ("TICKFORMAT" . 997801) ("TICKINTERVAL" . 997808) ("TICKLAYOUT" . 1012924) ("TICKUNITS" . 1012962)) (link "sysvars7.html#wp997657"))))
-(setq idlwave-system-class-info
+(defvar idlwave-system-class-info
'(
("IDLgrContour" (tags "IDLGRCOMPONENT_TOP" "IDLGRCOMPONENTVERSION" "HIDE" "PARENT" "IDLGRCOMPONENT_BOTTOM" "IDLGRGRAPHIC_TOP" "IDLGRGRAPHICVERSION" "ALPHACHANNEL" "CLIP_PLANES" "COLOR" "DEPTH_TEST_DISABLE" "DEPTH_TEST_FUNCTION" "DEPTH_WRITE_DISABLE" "GRAPHICFLAGS" "PALETTE" "XCOORD_CONV" "YCOORD_CONV" "ZCOORD_CONV" "XRANGE" "YRANGE" "ZRANGE" "GRAPHIC_DATA_OBJECT" "IDLGRGRAPHIC_BOTTOM" "IDLGRCONTOUR_TOP" "IDLGRCONTOURVERSION" "AM_PM" "ANISOTROPY" "DATA_FORMAT" "DATA" "DAYS_OF_WEEK" "GEOM_FORMAT" "GEOM" "CONTOURFLAGS" "C_COLOR" "C_FILLPATTERN" "C_LABEL_INTERVAL" "C_LABEL_NOGAPS" "C_LABEL_OBJECTS" "C_LABEL_SHOW" "C_LINESTYLE" "C_THICK" "C_USE_LABEL_COLOR" "C_USE_LABEL_ORIENTATION" "C_VALUE" "LABEL_DEFAULTS" "LABEL_FONT" "LABEL_FORMAT" "LABEL_FRMTDATA" "LABEL_UNITS" "LABEL_UNIT_CODE" "MAXVAL" "MINVAL" "MONTHS" "NLEVELS" "POLYGONS" "SHADERANGE" "SHADING" "TICKINTERVAL" "TICKLEN" "PRECISIONDATA" "PRECISIONGEOM" "PRECISIONGRAPH" "LEVELINFO" "CFILL1" "DEPTHOFFSET" "MAPINFO" "IDLGRCONTOUR_BOTTOM") (inherits "IDLitComponent") (link "objects_gr43.html"))
("IDLgrAxis" (tags "IDLGRCOMPONENT_TOP" "IDLGRCOMPONENTVERSION" "HIDE" "PARENT" "IDLGRCOMPONENT_BOTTOM" "IDLGRGRAPHIC_TOP" "IDLGRGRAPHICVERSION" "ALPHACHANNEL" "CLIP_PLANES" "COLOR" "DEPTH_TEST_DISABLE" "DEPTH_TEST_FUNCTION" "DEPTH_WRITE_DISABLE" "GRAPHICFLAGS" "PALETTE" "XCOORD_CONV" "YCOORD_CONV" "ZCOORD_CONV" "XRANGE" "YRANGE" "ZRANGE" "GRAPHIC_DATA_OBJECT" "IDLGRGRAPHIC_BOTTOM" "IDLGRAXIS_TOP" "IDLGRAXISVERSION" "AM_PM" "AXIS_TYPE" "CALCFLAGS" "DAYS_OF_WEEK" "DIRECTION" "AXISFLAGS" "GRIDSTYLE" "LOCATION" "MAJOR" "MINOR" "MONTHS" "OUTRANGE" "RANGE" "SUBTICKLEN" "TEXTALIGNMENTS" "TEXTBASELINE" "TEXTUPDIR" "THICK" "TICKDIR" "TICKFORMAT" "ARRAY_TICKFORMAT" "TICKFRMTDATA" "TICKINTERVAL" "TICKLAYOUT" "TICKLEN" "TICKTEXT" "TICKUNITCODES" "TICKUNITS" "TICKVALUES" "TITLE" "CURRENT_LEVEL" "LEVEL_DATA" "STEPRANGEUNITS" "STEPRANGE" "IDLGRAXIS_BOTTOM") (inherits "IDLitComponent") (link "objects_gr3.html"))
@@ -2013,7 +2014,7 @@
("IDLjavaObject" (link "objects_misc28.html"))))
-(setq idlwave-executive-commands-alist '(
+(defvar idlwave-executive-commands-alist '(
("RESET_SESSION" . "symbols8.html")
("TRACE" . "symbols15.html")
("RNEW" . "symbols10.html")
diff --git a/lisp/progmodes/idlw-shell.el b/lisp/progmodes/idlw-shell.el
index 08c95e5bdd..cc706195cc 100644
--- a/lisp/progmodes/idlw-shell.el
+++ b/lisp/progmodes/idlw-shell.el
@@ -1,5 +1,6 @@
;; idlw-shell.el --- run IDL as an inferior process of Emacs.
-;; Copyright (c) 1999,2000,2001,2002,2003,2004,2005 Free Software Foundation
+;; Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+;; Free Software Foundation
;; Authors: J.D. Smith <jdsmith@as.arizona.edu>
;; Carsten Dominik <dominik@astro.uva.nl>
@@ -532,9 +533,7 @@ lines which have a breakpoint. See also `idlwave-shell-mark-breakpoints'."
'((((class color)) (:foreground "Black" :background "Pink"))
(t (:underline t)))
"Face for highlighting lines with breakpoints."
- :group 'idlwave-shell-highlighting-and-faces)
- ;; backward-compatibility alias
- (put 'idlwave-shell-bp-face 'face-alias 'idlwave-shell-bp))
+ :group 'idlwave-shell-highlighting-and-faces))
(defcustom idlwave-shell-disabled-breakpoint-face
'idlwave-shell-disabled-bp
@@ -552,10 +551,7 @@ lines which have a breakpoint. See also `idlwave-shell-mark-breakpoints'."
'((((class color)) (:foreground "Black" :background "gray"))
(t (:underline t)))
"Face for highlighting lines with breakpoints."
- :group 'idlwave-shell-highlighting-and-faces)
- ;; backward-compatibility alias
- (put 'idlwave-shell-disabled-bp-face 'face-alias 'idlwave-shell-disabled-bp))
-
+ :group 'idlwave-shell-highlighting-and-faces))
(defcustom idlwave-shell-expression-face 'secondary-selection
"*The face for `idlwave-shell-expression-overlay'.
@@ -2760,13 +2756,14 @@ Runs to the last statement and then steps 1 statement. Use the .out command."
t)
(defun idlwave-xemacs-hack-mouse-track (event)
- (let ((oldfunc (symbol-function 'default-mouse-track-event-is-with-button)))
- (unwind-protect
- (progn
- (fset 'default-mouse-track-event-is-with-button
- 'idlwave-default-mouse-track-event-is-with-button)
- (mouse-track event))
- (fset 'default-mouse-track-event-is-with-button oldfunc))))
+ (if (featurep 'xemacs)
+ (let ((oldfunc (symbol-function 'default-mouse-track-event-is-with-button)))
+ (unwind-protect
+ (progn
+ (fset 'default-mouse-track-event-is-with-button
+ 'idlwave-default-mouse-track-event-is-with-button)
+ (mouse-track event))
+ (fset 'default-mouse-track-event-is-with-button oldfunc)))))
;;; End terrible hack section
(defun idlwave-shell-mouse-print (event)
diff --git a/lisp/progmodes/idlw-toolbar.el b/lisp/progmodes/idlw-toolbar.el
index 8d4a8e1f02..08dd08335b 100644
--- a/lisp/progmodes/idlw-toolbar.el
+++ b/lisp/progmodes/idlw-toolbar.el
@@ -1,5 +1,6 @@
;;; idlw-toolbar.el --- a debugging toolbar for IDLWAVE
-;; Copyright (c) 1999, 2000, 2001,2002,2004 Free Software Foundation
+;; Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+;; Free Software Foundation
;; Author: Carsten Dominik <dominik@astro.uva.nl>
;; Maintainer: J.D. Smith <jdsmith@as.arizona.edu>
@@ -43,6 +44,9 @@
(list 'image :type 'xpm :data image)))
(defvar default-toolbar)
+(defvar idlwave-toolbar)
+(defvar idlwave-toolbar-is-possible)
+
(if (not (or (and (featurep 'xemacs) ; This is XEmacs
(featurep 'xpm) ; need xpm
(featurep 'toolbar)) ; ... and the toolbar
diff --git a/lisp/progmodes/inf-lisp.el b/lisp/progmodes/inf-lisp.el
index 5bf7d1b70a..64845e38ae 100644
--- a/lisp/progmodes/inf-lisp.el
+++ b/lisp/progmodes/inf-lisp.el
@@ -1,6 +1,7 @@
;;; inf-lisp.el --- an inferior-lisp mode
-;; Copyright (C) 1988, 1993, 1994 Free Software Foundation, Inc.
+;; Copyright (C) 1988, 1993, 1994, 2001, 2002, 2003, 2004, 2005
+;; Free Software Foundation, Inc.
;; Author: Olin Shivers <shivers@cs.cmu.edu>
;; Keywords: processes, lisp
diff --git a/lisp/progmodes/ld-script.el b/lisp/progmodes/ld-script.el
index e326d11c65..a2449b6817 100644
--- a/lisp/progmodes/ld-script.el
+++ b/lisp/progmodes/ld-script.el
@@ -1,6 +1,6 @@
;;; ld-script.el --- GNU linker script editing mode for Emacs
-;; Copyright (C) 2003, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Masatake YAMATO<jet@gyve.org>
;; Keywords: languages, faces
@@ -39,8 +39,6 @@
'((t (:weight bold :inherit font-lock-builtin-face)))
"Face for location counter in GNU ld script."
:group 'ld-script)
-;; backward-compatibility alias
-(put 'ld-script-location-counter-face 'face-alias 'ld-script-location-counter)
;; Syntax rules
(defvar ld-script-mode-syntax-table
diff --git a/lisp/progmodes/m4-mode.el b/lisp/progmodes/m4-mode.el
index 3ad3c1de42..f131576d24 100644
--- a/lisp/progmodes/m4-mode.el
+++ b/lisp/progmodes/m4-mode.el
@@ -1,6 +1,7 @@
;;; m4-mode.el --- m4 code editing commands for Emacs
-;;; Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 2001, 2002, 2003, 2004, 2005
+;; Free Software Foundation, Inc.
;; Author: Andrew Csillag <drew_csillag@geocities.com>
;; Maintainer: Andrew Csillag <drew_csillag@geocities.com>
diff --git a/lisp/progmodes/make-mode.el b/lisp/progmodes/make-mode.el
index 04f83a4d53..b833669130 100644
--- a/lisp/progmodes/make-mode.el
+++ b/lisp/progmodes/make-mode.el
@@ -1,6 +1,7 @@
;;; make-mode.el --- makefile editing commands for Emacs
-;; Copyright (C) 1992,94,99,2000,2001, 2002, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1994, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+;; Free Software Foundation, Inc.
;; Author: Thomas Neumann <tom@smart.bo.open.de>
;; Eric S. Raymond <esr@snark.thyrsus.com>
diff --git a/lisp/progmodes/mantemp.el b/lisp/progmodes/mantemp.el
index 83caccbe0f..71791ef965 100644
--- a/lisp/progmodes/mantemp.el
+++ b/lisp/progmodes/mantemp.el
@@ -1,6 +1,7 @@
;;; mantemp.el --- create manual template instantiations from g++ 2.7.2 output
-;; Copyright (C) 1996 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 2001, 2002, 2003, 2004, 2005
+;; Free Software Foundation, Inc.
;; Author: Tom Houlder <thoulder@icor.fr>
;; Created: 10 Dec 1996
diff --git a/lisp/progmodes/meta-mode.el b/lisp/progmodes/meta-mode.el
index f89fd8c7fa..9ae3e5a593 100644
--- a/lisp/progmodes/meta-mode.el
+++ b/lisp/progmodes/meta-mode.el
@@ -1,6 +1,7 @@
;;; meta-mode.el --- major mode for editing Metafont or MetaPost sources
-;; Copyright (C) 1997 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005
+;; Free Software Foundation, Inc.
;; Author: Ulrik Vieth <vieth@thphy.uni-duesseldorf.de>
;; Version: 1.0
diff --git a/lisp/progmodes/mixal-mode.el b/lisp/progmodes/mixal-mode.el
index 73b87bbfa4..fd49432430 100644
--- a/lisp/progmodes/mixal-mode.el
+++ b/lisp/progmodes/mixal-mode.el
@@ -1,6 +1,6 @@
;;; mixal-mode.el --- Major mode for the mix asm language.
-;; Copyright (C) 2003 Free Software Foundation
+;; Copyright (C) 2003, 2004, 2005 Free Software Foundation
;; This program is free software; you can redistribute it and/or
;; modify it under the terms of the GNU General Public License as
@@ -55,6 +55,8 @@
;;; Code:
+(defvar compile-command)
+
;;; Key map
(defvar mixal-mode-map
(let ((map (make-sparse-keymap)))
diff --git a/lisp/progmodes/octave-hlp.el b/lisp/progmodes/octave-hlp.el
index 38e1bcfd61..f9654ef71c 100644
--- a/lisp/progmodes/octave-hlp.el
+++ b/lisp/progmodes/octave-hlp.el
@@ -1,10 +1,11 @@
;;; octave-hlp.el --- getting help on Octave symbols using info
-;; Copyright (C) 1997 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005
+;; Free Software Foundation, Inc.
-;; Author: Kurt Hornik <Kurt.Hornik@ci.tuwien.ac.at>
+;; Author: Kurt Hornik <Kurt.Hornik@wu-wien.ac.at>
;; Author: John Eaton <jwe@bevo.che.wisc.edu>
-;; Maintainer: Kurt Hornik <Kurt.Hornik@ci.tuwien.ac.at>
+;; Maintainer: Kurt Hornik <Kurt.Hornik@wu-wien.ac.at>
;; Keywords: languages
;; This file is part of GNU Emacs.
diff --git a/lisp/progmodes/octave-inf.el b/lisp/progmodes/octave-inf.el
index 4cd8bc764f..917016cf15 100644
--- a/lisp/progmodes/octave-inf.el
+++ b/lisp/progmodes/octave-inf.el
@@ -1,10 +1,11 @@
;;; octave-inf.el --- running Octave as an inferior Emacs process
-;; Copyright (C) 1997 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005
+;; Free Software Foundation, Inc.
-;; Author: Kurt Hornik <Kurt.Hornik@ci.tuwien.ac.at>
+;; Author: Kurt Hornik <Kurt.Hornik@wu-wien.ac.at>
;; Author: John Eaton <jwe@bevo.che.wisc.edu>
-;; Maintainer: Kurt Hornik <Kurt.Hornik@ci.tuwien.ac.at>
+;; Maintainer: Kurt Hornik <Kurt.Hornik@wu-wien.ac.at>
;; Keywords: languages
;; This file is part of GNU Emacs.
diff --git a/lisp/progmodes/octave-mod.el b/lisp/progmodes/octave-mod.el
index 2053dd8f9c..e37f3b14a1 100644
--- a/lisp/progmodes/octave-mod.el
+++ b/lisp/progmodes/octave-mod.el
@@ -1,10 +1,11 @@
;;; octave-mod.el --- editing Octave source files under Emacs
-;; Copyright (C) 1997, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005
+;; Free Software Foundation, Inc.
-;; Author: Kurt Hornik <Kurt.Hornik@ci.tuwien.ac.at>
+;; Author: Kurt Hornik <Kurt.Hornik@wu-wien.ac.at>
;; Author: John Eaton <jwe@bevo.che.wisc.edu>
-;; Maintainer: Kurt Hornik <Kurt.Hornik@ci.tuwien.ac.at>
+;; Maintainer: Kurt Hornik <Kurt.Hornik@wu-wien.ac.at>
;; Keywords: languages
;; This file is part of GNU Emacs.
@@ -51,7 +52,7 @@
(defvar inferior-octave-receive-in-progress nil)
(defconst octave-maintainer-address
- "Kurt Hornik <Kurt.Hornik@ci.tuwien.ac.at>, bug-gnu-emacs@gnu.org"
+ "Kurt Hornik <Kurt.Hornik@wu-wien.ac.at>, bug-gnu-emacs@gnu.org"
"Current maintainer of the Emacs Octave package.")
(defvar octave-abbrev-table nil
diff --git a/lisp/progmodes/pascal.el b/lisp/progmodes/pascal.el
index ebe37bc1d4..47b36db653 100644
--- a/lisp/progmodes/pascal.el
+++ b/lisp/progmodes/pascal.el
@@ -1,6 +1,7 @@
;;; pascal.el --- major mode for editing pascal source in Emacs
-;; Copyright (C) 1993, 94, 95, 96, 97, 98, 1999, 2000 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+;; 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Espen Skoglund <esk@gnu.org>
;; Keywords: languages
@@ -1493,12 +1494,12 @@ The default is a name found in the buffer around point."
(if pascal-outline-map
nil
- (if (boundp 'set-keymap-name)
+ (if (fboundp 'set-keymap-name)
(set-keymap-name pascal-outline-map 'pascal-outline-map))
- (if (not (boundp 'set-keymap-parent))
- (setq pascal-outline-map (copy-keymap pascal-mode-map))
- (setq pascal-outline-map (make-sparse-keymap))
- (set-keymap-parent pascal-outline-map pascal-mode-map))
+ (if (fboundp 'set-keymap-parent)
+ (set-keymap-parent (setq pascal-outline-map (make-sparse-keymap))
+ pascal-mode-map)
+ (setq pascal-outline-map (copy-keymap pascal-mode-map)))
(define-key pascal-outline-map "\M-\C-a" 'pascal-outline-prev-defun)
(define-key pascal-outline-map "\M-\C-e" 'pascal-outline-next-defun)
(define-key pascal-outline-map "\C-c\C-d" 'pascal-outline-goto-defun)
@@ -1533,7 +1534,7 @@ Pascal Outline mode provides some additional commands.
(interactive "P")
(setq pascal-outline-mode
(if (null arg) (not pascal-outline-mode) t))
- (if (boundp 'redraw-mode-line)
+ (if (fboundp 'redraw-mode-line)
(redraw-mode-line))
(if pascal-outline-mode
(progn
diff --git a/lisp/progmodes/perl-mode.el b/lisp/progmodes/perl-mode.el
index ce966d4d1b..7991f1fd1b 100644
--- a/lisp/progmodes/perl-mode.el
+++ b/lisp/progmodes/perl-mode.el
@@ -1,6 +1,7 @@
;;; perl-mode.el --- Perl code editing commands for GNU Emacs
-;; Copyright (C) 1990, 1994, 2003, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1994, 2001, 2002, 2003, 2004, 2005
+;; Free Software Foundation, Inc.
;; Author: William F. Mann
;; Maintainer: FSF
@@ -106,6 +107,10 @@
(eval-when-compile (require 'cl))
+(defvar font-lock-comment-face)
+(defvar font-lock-doc-face)
+(defvar font-lock-string-face)
+
(defgroup perl nil
"Major mode for editing Perl code."
:prefix "perl-"
diff --git a/lisp/progmodes/prolog.el b/lisp/progmodes/prolog.el
index 8d34dd54b3..d23dbad076 100644
--- a/lisp/progmodes/prolog.el
+++ b/lisp/progmodes/prolog.el
@@ -1,6 +1,7 @@
;;; prolog.el --- major mode for editing and running Prolog under Emacs
-;; Copyright (C) 1986, 1987, 2003, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1986, 1987, 2001, 2002, 2003, 2004, 2005
+;; Free Software Foundation, Inc.
;; Author: Masanobu UMEDA <umerin@mse.kyutech.ac.jp>
;; Keywords: languages
@@ -30,6 +31,9 @@
;;; Code:
+(defvar comint-prompt-regexp)
+
+
(defgroup prolog nil
"Major mode for editing and running Prolog under Emacs."
:group 'languages)
diff --git a/lisp/progmodes/ps-mode.el b/lisp/progmodes/ps-mode.el
index 1a5d393df3..fecf1f07eb 100644
--- a/lisp/progmodes/ps-mode.el
+++ b/lisp/progmodes/ps-mode.el
@@ -1,6 +1,7 @@
;;; ps-mode.el --- PostScript mode for GNU Emacs
-;; Copyright (C) 1999, 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005
+;; Free Software Foundation, Inc.
;; Author: Peter Kleiweg <p.c.j.kleiweg@rug.nl>
;; Maintainer: Peter Kleiweg <p.c.j.kleiweg@rug.nl>
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index f543143190..433476f795 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -67,7 +67,6 @@
(eval-when-compile
(require 'compile)
(autoload 'info-lookup-maybe-add-help "info-look"))
-(autoload 'compilation-start "compile")
(defgroup python nil
"Silly walks in the Python language."
diff --git a/lisp/progmodes/scheme.el b/lisp/progmodes/scheme.el
index 3f31f4e266..712f967fcb 100644
--- a/lisp/progmodes/scheme.el
+++ b/lisp/progmodes/scheme.el
@@ -1,6 +1,6 @@
;;; scheme.el --- Scheme (and DSSSL) editing mode
-;; Copyright (C) 1986, 1987, 1988, 1997, 1998, 2005
+;; Copyright (C) 1986, 1987, 1988, 1997, 1998, 2001, 2002, 2003, 2004, 2005
;; Free Software Foundation, Inc.
;; Author: Bill Rozas <jinx@martigny.ai.mit.edu>
diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el
index 3261f7bcc9..4f70218668 100644
--- a/lisp/progmodes/sh-script.el
+++ b/lisp/progmodes/sh-script.el
@@ -199,6 +199,9 @@
(require 'comint))
(require 'executable)
+(defvar font-lock-comment-face)
+(defvar font-lock-set-defaults)
+(defvar font-lock-string-face)
(defgroup sh nil
@@ -815,7 +818,7 @@ See `sh-feature'.")
:group 'sh-script
:version "22.1")
-(defvar sh-font-lock-keywords
+(defvar sh-font-lock-keywords-var
'((csh sh-append shell
("\\${?[#?]?\\([A-Za-z_][A-Za-z0-9_]*\\|0\\)" 1
font-lock-variable-name-face))
@@ -838,7 +841,7 @@ See `sh-feature'.")
1 font-lock-negation-char-face))
;; The next entry is only used for defining the others
- (shell sh-append executable-font-lock-keywords
+ (shell
;; Using font-lock-string-face here confuses sh-get-indent-info.
("\\(^\\|[^\\]\\)\\(\\\\\\\\\\)*\\(\\\\\\)$" 3 'sh-escaped-newline)
("\\\\[^A-Za-z0-9]" 0 font-lock-string-face)
@@ -850,11 +853,11 @@ See `sh-feature'.")
("^\\(\\sw+\\):" 1 font-lock-variable-name-face)))
"Default expressions to highlight in Shell Script modes. See `sh-feature'.")
-(defvar sh-font-lock-keywords-1
+(defvar sh-font-lock-keywords-var-1
'((sh "[ \t]in\\>"))
"Subdued level highlighting for Shell Script modes.")
-(defvar sh-font-lock-keywords-2 ()
+(defvar sh-font-lock-keywords-var-2 ()
"Gaudy level highlighting for Shell Script modes.")
;; These are used for the syntax table stuff (derived from cperl-mode).
@@ -1364,9 +1367,12 @@ with your script for an edit-interpret-debug cycle."
paragraph-start (concat page-delimiter "\\|$")
paragraph-separate paragraph-start
comment-start "# "
+ comment-start-skip "#+[\t ]*"
+ local-abbrev-table sh-mode-abbrev-table
comint-dynamic-complete-functions sh-dynamic-complete-functions
;; we can't look if previous line ended with `\'
comint-prompt-regexp "^[ \t]*"
+ imenu-case-fold-search nil
font-lock-defaults
`((sh-font-lock-keywords
sh-font-lock-keywords-1 sh-font-lock-keywords-2)
@@ -1403,13 +1409,14 @@ with your script for an edit-interpret-debug cycle."
(defun sh-font-lock-keywords (&optional keywords)
"Function to get simple fontification based on `sh-font-lock-keywords'.
This adds rules for comments and assignments."
- (sh-feature sh-font-lock-keywords
+ (sh-feature sh-font-lock-keywords-var
(when (stringp (sh-feature sh-assignment-regexp))
(lambda (list)
`((,(sh-feature sh-assignment-regexp)
1 font-lock-variable-name-face)
,@keywords
- ,@list)))))
+ ,@list
+ ,@executable-font-lock-keywords)))))
(defun sh-font-lock-keywords-1 (&optional builtins)
"Function to get better fontification including keywords."
@@ -1426,10 +1433,10 @@ This adds rules for comments and assignments."
"\\>")
(2 font-lock-keyword-face nil t)
(6 font-lock-builtin-face))
- ,@(sh-feature sh-font-lock-keywords-2)))
+ ,@(sh-feature sh-font-lock-keywords-var-2)))
(,(concat keywords "\\)\\>")
2 font-lock-keyword-face)
- ,@(sh-feature sh-font-lock-keywords-1)))))
+ ,@(sh-feature sh-font-lock-keywords-var-1)))))
(defun sh-font-lock-keywords-2 ()
"Function to get better fontification including keywords and builtins."
@@ -1491,6 +1498,7 @@ This adds rules for comments and assignments."
("case" sh-handle-this-rc-case sh-handle-prev-rc-case))))
+
(defun sh-set-shell (shell &optional no-query-flag insert-flag)
"Set this buffer's shell to SHELL (a string).
When used interactively, insert the proper starting #!-line,
@@ -1523,13 +1531,10 @@ Calls the value of `sh-set-shell-hook' if set."
(if (eq tem t)
(setq require-final-newline mode-require-final-newline)))
(setq
- comment-start-skip "#+[\t ]*"
- local-abbrev-table sh-mode-abbrev-table
mode-line-process (format "[%s]" sh-shell)
sh-shell-variables nil
sh-shell-variables-initialized nil
- imenu-generic-expression (sh-feature sh-imenu-generic-expression)
- imenu-case-fold-search nil)
+ imenu-generic-expression (sh-feature sh-imenu-generic-expression))
(make-local-variable 'sh-mode-syntax-table)
(let ((tem (sh-feature sh-mode-syntax-table-input)))
(setq sh-mode-syntax-table
@@ -1557,10 +1562,13 @@ Calls the value of `sh-set-shell-hook' if set."
(message "Indentation setup for shell type %s" sh-shell))
(message "No indentation for this shell type.")
(setq indent-line-function 'sh-basic-indent-line))
+ (when font-lock-mode
+ (setq font-lock-set-defaults nil)
+ (font-lock-set-defaults)
+ (font-lock-fontify-buffer))
(run-hooks 'sh-set-shell-hook))
-
(defun sh-feature (alist &optional function)
"Index ALIST by the current shell.
If ALIST isn't a list where every element is a cons, it is returned as is.
@@ -1578,39 +1586,38 @@ Else indexing follows an inheritance logic which works in two ways:
one shell to be derived from another shell.
The value thus determined is physically replaced into the alist.
-Optional FUNCTION is applied to the determined value and the result is cached
-in ALIST."
+If FUNCTION is non-nil, it is called with one argument,
+the value thus obtained, and the result is used instead."
(or (if (consp alist)
+ ;; Check for something that isn't a valid alist.
(let ((l alist))
(while (and l (consp (car l)))
(setq l (cdr l)))
(if l alist)))
- (if function
- (cdr (assoc (setq function (cons sh-shell function)) alist)))
- (let ((sh-shell sh-shell)
- elt val)
- (while (and sh-shell
- (not (setq elt (assq sh-shell alist))))
- (setq sh-shell (cdr (assq sh-shell sh-ancestor-alist))))
- ;; If the shell is not known, treat it as sh.
- (unless elt
- (setq elt (assq 'sh alist)))
- (if (and (consp (setq val (cdr elt)))
- (memq (car val) '(sh-append sh-modify)))
- (setcdr elt
- (setq val
- (apply (car val)
- (let ((sh-shell (car (cdr val))))
- (if (assq sh-shell alist)
- (sh-feature alist)
- (eval sh-shell)))
- (cddr val)))))
- (if function
- (nconc alist
- (list (cons function
- (setq sh-shell (car function)
- val (funcall (cdr function) val))))))
- val)))
+
+ (let ((orig-sh-shell sh-shell))
+ (let ((sh-shell sh-shell)
+ elt val)
+ (while (and sh-shell
+ (not (setq elt (assq sh-shell alist))))
+ (setq sh-shell (cdr (assq sh-shell sh-ancestor-alist))))
+ ;; If the shell is not known, treat it as sh.
+ (unless elt
+ (setq elt (assq 'sh alist)))
+ (setq val (cdr elt))
+ (if (and (consp val)
+ (memq (car val) '(sh-append sh-modify)))
+ (setq val
+ (apply (car val)
+ ;; Refer to the value for a different shell,
+ ;; as a kind of inheritance.
+ (let ((sh-shell (car (cdr val))))
+ (sh-feature alist))
+ (cddr val))))
+ (if function
+ (setq sh-shell orig-sh-shell
+ val (funcall function val)))
+ val))))
@@ -2033,11 +2040,20 @@ STRING This is ignored for the purposes of calculating
;; Continuation lines are handled specially
(if (sh-this-is-a-continuation)
(progn
- ;; We assume the line being continued is already
- ;; properly indented...
- ;; (setq prev-line-end (sh-prev-line))
- (setq align-point (sh-prev-line nil))
- (setq result (list '(+ sh-indent-for-continuation)))
+ (setq result
+ (if (save-excursion
+ (beginning-of-line)
+ (not (memq (char-before (- (point) 2)) '(?\s ?\t))))
+ ;; By convention, if the continuation \ is not
+ ;; preceded by a SPC or a TAB it means that the line
+ ;; is cut at a place where spaces cannot be freely
+ ;; added/removed. I.e. do not indent the line.
+ (list '(= nil))
+ ;; We assume the line being continued is already
+ ;; properly indented...
+ ;; (setq prev-line-end (sh-prev-line))
+ (setq align-point (sh-prev-line nil))
+ (list '(+ sh-indent-for-continuation))))
(setq have-result t))
(beginning-of-line)
(skip-chars-forward " \t")
@@ -2130,10 +2146,9 @@ STRING This is ignored for the purposes of calculating
(sh-debug "result is now: %s" result)
(or result
- (if prev-line-end
- (setq result (list (list t prev-line-end)))
- (setq result (list (list '= 'sh-first-lines-indent)))
- ))
+ (setq result (list (if prev-line-end
+ (list t prev-line-end)
+ (list '= 'sh-first-lines-indent)))))
(if (eq result t)
(setq result nil))
@@ -2695,11 +2710,9 @@ unless optional argument ARG (the prefix when interactive) is non-nil."
(defun sh-mark-init (buffer)
"Initialize a BUFFER to be used by `sh-mark-line'."
- (save-excursion
- (set-buffer (get-buffer-create buffer))
+ (with-current-buffer (get-buffer-create buffer)
(erase-buffer)
- (occur-mode)
- ))
+ (occur-mode)))
(defun sh-mark-line (message point buffer &optional add-linenum occur-point)
@@ -2972,8 +2985,7 @@ This command can often take a long time to run."
(let ((var (car learned-var)))
(sh-mark-line (format " %s %s" var (symbol-value var))
(nth 2 learned-var) out-buffer)))
- (save-excursion
- (set-buffer out-buffer)
+ (with-current-buffer out-buffer
(goto-char (point-min))
(insert
(format "Indentation values for buffer %s.\n" name)
@@ -3244,8 +3256,7 @@ nil means to return the best completion of STRING, or nil if there is none.
t means to return a list of all possible completions of STRING.
`lambda' means to return t if STRING is a valid completion as it stands."
(let ((sh-shell-variables
- (save-excursion
- (set-buffer sh-add-buffer)
+ (with-current-buffer sh-add-buffer
(or sh-shell-variables-initialized
(sh-shell-initialize-variables))
(nconc (mapcar (lambda (var)
diff --git a/lisp/progmodes/simula.el b/lisp/progmodes/simula.el
index 46bdb49334..395bee1b22 100644
--- a/lisp/progmodes/simula.el
+++ b/lisp/progmodes/simula.el
@@ -1,6 +1,7 @@
;;; simula.el --- SIMULA 87 code editing commands for Emacs
-;; Copyright (C) 1992, 1994, 1996 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1994, 1996 2001, 2002, 2003, 2004, 2005
+;; Free Software Foundation, Inc.
;; Author: Hans Henrik Eriksen <hhe@ifi.uio.no>
;; Maintainer: simula-mode@ifi.uio.no
diff --git a/lisp/progmodes/sql.el b/lisp/progmodes/sql.el
index cbb33739c3..6d73abb143 100644
--- a/lisp/progmodes/sql.el
+++ b/lisp/progmodes/sql.el
@@ -1,6 +1,7 @@
;;; sql.el --- specialized comint.el for SQL interpreters
-;; Copyright (C) 1998,99,2000,01,02,03,04 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+;; Free Software Foundation, Inc.
;; Author: Alex Schroeder <alex@gnu.org>
;; Maintainer: Michael Mauger <mmaug@yahoo.com>
@@ -218,6 +219,10 @@
(eval-when-compile ;; needed in Emacs 19, 20
(setq max-specpdl-size 2000))
+(defvar font-lock-keyword-face)
+(defvar font-lock-set-defaults)
+(defvar font-lock-string-face)
+
;;; Allow customization
(defgroup SQL nil
@@ -735,10 +740,11 @@ Used by `sql-rename-buffer'.")
(defvar sql-interactive-mode-map
(let ((map (make-sparse-keymap)))
- (if (functionp 'set-keymap-parent)
+ (if (fboundp 'set-keymap-parent)
(set-keymap-parent map comint-mode-map); Emacs
- (set-keymap-parents map (list comint-mode-map))); XEmacs
- (if (functionp 'set-keymap-name)
+ (if (fboundp 'set-keymap-parents)
+ (set-keymap-parents map (list comint-mode-map)))); XEmacs
+ (if (fboundp 'set-keymap-name)
(set-keymap-name map 'sql-interactive-mode-map)); XEmacs
(define-key map (kbd "C-j") 'sql-accumulate-and-indent)
(define-key map (kbd "C-c C-w") 'sql-copy-column)
@@ -1900,16 +1906,8 @@ appended to the SQLi buffer without disturbing your SQL buffer."
(describe-function 'sql-help))
(defun sql-read-passwd (prompt &optional default)
- "Read a password using PROMPT.
-Optional DEFAULT is password to start with. This function calls
-`read-passwd' if it is available. If not, function
-`ange-ftp-read-passwd' is called. This should always be available,
-even in old versions of Emacs."
- (if (fboundp 'read-passwd)
- (read-passwd prompt nil default)
- (unless (fboundp 'ange-ftp-read-passwd)
- (autoload 'ange-ftp-read-passwd "ange-ftp"))
- (ange-ftp-read-passwd prompt default)))
+ "Read a password using PROMPT. Optional DEFAULT is password to start with."
+ (read-passwd prompt nil default))
(defun sql-get-login (&rest what)
"Get username, password and database from the user.
@@ -2305,7 +2303,7 @@ hooks on `comint-input-filter-functions' are run. After each SQL
interpreter output, the hooks on `comint-output-filter-functions' are
run.
-Variable `sql-input-ring-file-name' controls the initialisation of the
+Variable `sql-input-ring-file-name' controls the initialization of the
input ring history.
Variables `comint-output-filter-functions', a hook, and
diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el
index 0e4b13647d..1caaa1f35b 100644
--- a/lisp/progmodes/vhdl-mode.el
+++ b/lisp/progmodes/vhdl-mode.el
@@ -1,6 +1,6 @@
;;; vhdl-mode.el --- major mode for editing VHDL code
-;; Copyright (C) 1992-2003, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1992-2003, 2004, 2005 Free Software Foundation, Inc.
;; Authors: Reto Zimmermann <reto@gnu.org>
;; Rodney J. Whitby <software.vhdl-mode@rwhitby.net>
@@ -8,10 +8,10 @@
;; Keywords: languages vhdl
;; WWW: http://opensource.ethz.ch/emacs/vhdl-mode.html
-(defconst vhdl-version "3.32.12"
+(defconst vhdl-version "3.33.6"
"VHDL Mode version number.")
-(defconst vhdl-time-stamp "2003-02-28"
+(defconst vhdl-time-stamp "2005-08-30"
"VHDL Mode time stamp for last update.")
;; This file is part of GNU Emacs.
@@ -44,6 +44,8 @@
;; - Insertion of file headers
;; - Insertion of user-specified models
;; - Port translation / testbench generation
+;; - Structural composition
+;; - Configuration generation
;; - Sensitivity list updating
;; - File browser
;; - Design hierarchy browser
@@ -67,13 +69,13 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Emacs Versions
-;; supported: GNU Emacs 20.X/21.X, XEmacs 20.X/21.X
+;; supported: GNU Emacs 20.X/21.X/22.X, XEmacs 20.X/21.X
;; tested on: GNU Emacs 20.4, XEmacs 21.1 (marginally)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Installation
-;; Prerequisites: GNU Emacs 20.X/21.X, XEmacs 20.X/21.X.
+;; Prerequisites: GNU Emacs 20.X/21.X/22.X, XEmacs 20.X/21.X.
;; Put `vhdl-mode.el' into the `site-lisp' directory of your Emacs installation
;; or into an arbitrary directory that is added to the load path by the
@@ -125,9 +127,17 @@
;; XEmacs handling
(defconst vhdl-xemacs (string-match "XEmacs" emacs-version)
"Non-nil if XEmacs is used.")
-;; Emacs 21 handling
-(defconst vhdl-emacs-21 (and (= emacs-major-version 21) (not vhdl-xemacs))
- "Non-nil if Emacs 21 is used.")
+;; Emacs 21+ handling
+(defconst vhdl-emacs-21 (and (<= 21 emacs-major-version) (not vhdl-xemacs))
+ "Non-nil if GNU Emacs 21, 22, ... is used.")
+(defconst vhdl-emacs-22 (and (<= 22 emacs-major-version) (not vhdl-xemacs))
+ "Non-nil if GNU Emacs 22, ... is used.")
+
+(defvar compilation-file-regexp-alist)
+(defvar itimer-version)
+(defvar lazy-lock-defer-contextually)
+(defvar lazy-lock-defer-on-scrolling)
+(defvar lazy-lock-defer-on-the-fly)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -175,7 +185,7 @@ Examples:
"Customizations for VHDL Mode."
:prefix "vhdl-"
:group 'languages
-; :version "20.4" ; comment out for XEmacs
+; :version "21.2" ; comment out for XEmacs
)
(defgroup vhdl-mode nil
@@ -223,7 +233,8 @@ Overrides local variable `indent-tabs-mode'."
("Cadence NC" "ncvhdl" "-work \\1" "make" "-f \\1"
nil "mkdir \\1" "./" "work/" "Makefile" "ncvhdl"
("ncvhdl_p: \\*E,\\w+ (\\(.+\\),\\([0-9]+\\)|\\([0-9]+\\)):" 1 2 3) ("" 0)
- nil)
+ ("\\1/entity/pc.db" "\\2/\\1/pc.db" "\\1/configuration/pc.db"
+ "\\1/package/pc.db" "\\1/body/pc.db" downcase))
;; Ikos Voyager: analyze test.vhd
;; analyze test.vhd
;; E L4/C5: this library unit is inaccessible
@@ -338,7 +349,7 @@ Compiler:
Makefile name : name of Makefile (default is \"Makefile\")
ID string : compiler identification string (see `vhdl-project-alist')
Error message:
- Regexp : regular expression to match error messages
+ Regexp : regular expression to match error messages (*)
File subexp index: index of subexpression that matches the file name
Line subexp index: index of subexpression that matches the line number
Column subexp idx: index of subexpression that matches the column number
@@ -351,6 +362,9 @@ Unit-to-file name mapping: mapping of library unit names to names of files
\"\\2\" inserts the entity name for architectures)
Case adjustment : adjust case of inserted unit names
+\(*) The regular expression must match the error message starting from the
+ beginning of the line (but not necessarily to the end of the line).
+
Compile options allows insertion of the library name (see `vhdl-project-alist')
in order to set the compilers library option (e.g. \"vcom -work my_lib\").
@@ -380,8 +394,8 @@ assigning its name to option `vhdl-compiler'.
Please send any missing or erroneous compiler properties to the maintainer for
updating.
-NOTE: Reflect the new setting in the choice list of option `vhdl-compiler'
- by restarting Emacs."
+NOTE: Activate new error and file message regexps and reflect the new setting
+ in the choice list of option `vhdl-compiler' by restarting Emacs."
:type '(repeat
(list :tag "Compiler" :indent 2
(string :tag "Compiler name ")
@@ -421,7 +435,7 @@ NOTE: Reflect the new setting in the choice list of option `vhdl-compiler'
(const :tag "Upcase" upcase)
(const :tag "Downcase" downcase))))))
:set (lambda (variable value)
- (vhdl-custom-set variable value 'vhdl-update-mode-menu))
+ (vhdl-custom-set variable value 'vhdl-update-mode-menu))
:group 'vhdl-compile)
(defcustom vhdl-compiler "ModelSim"
@@ -584,7 +598,7 @@ NOTE: Reflect the new setting in the choice list of option `vhdl-project'
(string :tag "Description: (type `C-j' for newline)"
:format "%t\n%v\n")))
:set (lambda (variable value)
- (vhdl-custom-set variable value
+ (vhdl-custom-set variable value
'vhdl-update-mode-menu
'vhdl-speedbar-refresh))
:group 'vhdl-project)
@@ -661,7 +675,7 @@ NOTE: Activate the new setting in a VHDL buffer by using the menu entry
(const :tag "VHDL-AMS" ams)
(const :tag "Math packages" math)))
:set (lambda (variable value)
- (vhdl-custom-set variable value
+ (vhdl-custom-set variable value
'vhdl-template-map-init
'vhdl-mode-abbrev-table-init
'vhdl-template-construct-alist-init
@@ -681,7 +695,7 @@ This value is used by + and - symbols in `vhdl-offsets-alist'."
This is done when typed or expanded or by the fix case functions."
:type 'boolean
:set (lambda (variable value)
- (vhdl-custom-set variable value 'vhdl-abbrev-list-init))
+ (vhdl-custom-set variable value 'vhdl-abbrev-list-init))
:group 'vhdl-style)
(defcustom vhdl-upper-case-types nil
@@ -689,7 +703,7 @@ This is done when typed or expanded or by the fix case functions."
This is done when expanded or by the fix case functions."
:type 'boolean
:set (lambda (variable value)
- (vhdl-custom-set variable value 'vhdl-abbrev-list-init))
+ (vhdl-custom-set variable value 'vhdl-abbrev-list-init))
:group 'vhdl-style)
(defcustom vhdl-upper-case-attributes nil
@@ -697,7 +711,7 @@ This is done when expanded or by the fix case functions."
This is done when expanded or by the fix case functions."
:type 'boolean
:set (lambda (variable value)
- (vhdl-custom-set variable value 'vhdl-abbrev-list-init))
+ (vhdl-custom-set variable value 'vhdl-abbrev-list-init))
:group 'vhdl-style)
(defcustom vhdl-upper-case-enum-values nil
@@ -705,7 +719,7 @@ This is done when expanded or by the fix case functions."
This is done when expanded or by the fix case functions."
:type 'boolean
:set (lambda (variable value)
- (vhdl-custom-set variable value 'vhdl-abbrev-list-init))
+ (vhdl-custom-set variable value 'vhdl-abbrev-list-init))
:group 'vhdl-style)
(defcustom vhdl-upper-case-constants t
@@ -713,7 +727,7 @@ This is done when expanded or by the fix case functions."
This is done when expanded."
:type 'boolean
:set (lambda (variable value)
- (vhdl-custom-set variable value 'vhdl-abbrev-list-init))
+ (vhdl-custom-set variable value 'vhdl-abbrev-list-init))
:group 'vhdl-style)
(defcustom vhdl-use-direct-instantiation 'standard
@@ -748,9 +762,22 @@ taken from the file name of the current buffer."
"*Specifies how the architecture file name is obtained.
The architecture file name can be obtained by modifying the entity
and/or architecture name (e.g. attaching or stripping off a substring). The
-string that is matched against the regexp is the concatenation of the entity
-and the architecture name separated by a space. This gives access to both
-names (see default setting as example)."
+file extension is automatically taken from the file name of the current
+buffer. The string that is matched against the regexp is the concatenation
+of the entity and the architecture name separated by a space. This gives
+access to both names (see default setting as example)."
+ vhdl-name-doc-string)
+ :type '(cons (regexp :tag "From regexp")
+ (string :tag "To string "))
+ :group 'vhdl-naming
+ :group 'vhdl-compose)
+
+(defcustom vhdl-configuration-file-name '(".*" . "\\&")
+ (concat
+ "*Specifies how the configuration file name is obtained.
+The configuration file name can be obtained by modifying the configuration
+name (e.g. attaching or stripping off a substring). The file extension is
+automatically taken from the file name of the current buffer."
vhdl-name-doc-string)
:type '(cons (regexp :tag "From regexp")
(string :tag "To string "))
@@ -762,7 +789,9 @@ names (see default setting as example)."
"*Specifies how the package file name is obtained.
The package file name can be obtained by modifying the package name (e.g.
attaching or stripping off a substring). The file extension is automatically
-taken from the file name of the current buffer."
+taken from the file name of the current buffer. Package files can be created
+in a different directory by prepending a relative or absolute path to the
+file name."
vhdl-name-doc-string)
:type '(cons (regexp :tag "From regexp")
(string :tag "To string "))
@@ -796,7 +825,7 @@ follows:
:type '(set (const :tag "VHDL keywords" vhdl)
(const :tag "User model keywords" user))
:set (lambda (variable value)
- (vhdl-custom-set variable value 'vhdl-mode-abbrev-table-init))
+ (vhdl-custom-set variable value 'vhdl-mode-abbrev-table-init))
:group 'vhdl-template)
(defcustom vhdl-optional-labels 'process
@@ -1030,7 +1059,7 @@ begin -- process <label>
<cursor>
elsif <clock>'event and <clock> = '1' then -- rising clock edge
if <enable> = '1' then -- synchronous load
-
+
end if;
end if;
end process <label>;"
@@ -1070,7 +1099,7 @@ NOTE: Activate the new setting in a VHDL buffer by using the menu entry
(sexp :tag "Key binding" x)
(string :tag "Keyword " :format "%t: %v\n")))
:set (lambda (variable value)
- (vhdl-custom-set variable value
+ (vhdl-custom-set variable value
'vhdl-model-map-init
'vhdl-model-defun
'vhdl-mode-abbrev-table-init
@@ -1078,6 +1107,99 @@ NOTE: Activate the new setting in a VHDL buffer by using the menu entry
:group 'vhdl-model)
+(defgroup vhdl-compose nil
+ "Customizations for structural composition."
+ :group 'vhdl)
+
+(defcustom vhdl-compose-architecture-name '(".*" . "str")
+ (concat
+ "*Specifies how the component architecture name is obtained.
+The component architecture name can be obtained by modifying the entity name
+\(e.g. attaching or stripping off a substring).
+If TO STRING is empty, the architecture name is queried."
+ vhdl-name-doc-string)
+ :type '(cons (regexp :tag "From regexp")
+ (string :tag "To string "))
+ :group 'vhdl-compose)
+
+(defcustom vhdl-compose-configuration-name
+ '("\\(.*\\) \\(.*\\)" . "\\1_\\2_cfg")
+ (concat
+ "*Specifies how the configuration name is obtained.
+The configuration name can be obtained by modifying the entity and/or
+architecture name (e.g. attaching or stripping off a substring). The string
+that is matched against the regexp is the concatenation of the entity and the
+architecture name separated by a space. This gives access to both names (see
+default setting as example)."
+ vhdl-name-doc-string)
+ :type '(cons (regexp :tag "From regexp")
+ (string :tag "To string "))
+ :group 'vhdl-compose)
+
+(defcustom vhdl-components-package-name
+ '((".*" . "\\&_components") . "components")
+ (concat
+ "*Specifies how the name for the components package is obtained.
+The components package is a package containing all component declarations for
+the current design. It's name can be obtained by modifying the project name
+\(e.g. attaching or stripping off a substring). If no project is defined, the
+DIRECTORY entry is chosen."
+ vhdl-name-doc-string)
+ :type '(cons (cons :tag "Project" :indent 2
+ (regexp :tag "From regexp")
+ (string :tag "To string "))
+ (string :tag "Directory:\n String "))
+ :group 'vhdl-compose)
+
+(defcustom vhdl-use-components-package nil
+ "*Non-nil means use a separate components package for component declarations.
+Otherwise, component declarations are inserted and searched for in the
+architecture declarative parts."
+ :type 'boolean
+ :group 'vhdl-compose)
+
+(defcustom vhdl-compose-include-header t
+ "*Non-nil means include a header in automatically generated files."
+ :type 'boolean
+ :group 'vhdl-compose)
+
+(defcustom vhdl-compose-create-files 'single
+ "*Specifies whether new files should be created for the new component.
+The component's entity and architecture are inserted:
+ None : in current buffer
+ Single file : in new single file
+ Separate files: in two separate files
+The file names are obtained from variables `vhdl-entity-file-name' and
+`vhdl-architecture-file-name'."
+ :type '(choice (const :tag "None" none)
+ (const :tag "Single file" single)
+ (const :tag "Separate files" separate))
+ :group 'vhdl-compose)
+
+(defcustom vhdl-compose-configuration-create-file nil
+ "*Specifies whether a new file should be created for the configuration.
+If non-nil, a new file is created for the configuration.
+The file name is obtained from variable `vhdl-configuration-file-name'."
+ :type 'boolean
+ :group 'vhdl-compose)
+
+(defcustom vhdl-compose-configuration-hierarchical t
+ "*Specifies whether hierarchical configurations should be created.
+If non-nil, automatically created configurations are hierarchical and include
+the whole hierarchy of subcomponents. Otherwise the configuration only
+includes one level of subcomponents."
+ :type 'boolean
+ :group 'vhdl-compose)
+
+(defcustom vhdl-compose-configuration-use-subconfiguration t
+ "*Specifies whether subconfigurations should be used inside configurations.
+If non-nil, automatically created configurations use configurations in binding
+indications for subcomponents, if such configurations exist. Otherwise,
+entities are used in binding indications for subcomponents."
+ :type 'boolean
+ :group 'vhdl-compose)
+
+
(defgroup vhdl-port nil
"Customizations for port translation functions."
:group 'vhdl
@@ -1157,8 +1279,7 @@ If TO STRING is empty, the architecture name is queried."
(string :tag "To string "))
:group 'vhdl-testbench)
-(defcustom vhdl-testbench-configuration-name
- '("\\(.*\\) \\(.*\\)" . "\\1_\\2_cfg")
+(defcustom vhdl-testbench-configuration-name vhdl-compose-configuration-name
(concat
"*Specifies how the testbench configuration name is obtained.
The configuration name of a testbench can be obtained by modifying the entity
@@ -1207,7 +1328,7 @@ Type `C-j' for newlines."
WaveGen_Proc: process
begin
-- insert signal assignments here
-
+
wait until Clk = '1';
end process WaveGen_Proc;
"
@@ -1240,67 +1361,40 @@ testbench entity and architecture are inserted:
None : in current buffer
Single file : in new single file
Separate files: in two separate files
-Note that the files have the same name as the contained design unit."
+The file names are obtained from variables `vhdl-testbench-entity-file-name'
+and `vhdl-testbench-architecture-file-name'."
:type '(choice (const :tag "None" none)
(const :tag "Single file" single)
(const :tag "Separate files" separate))
:group 'vhdl-testbench)
-
-(defgroup vhdl-compose nil
- "Customizations for structural composition."
- :group 'vhdl)
-
-(defcustom vhdl-compose-create-files 'single
- "*Specifies whether new files should be created for the new component.
-The component's entity and architecture are inserted:
- None : in current buffer
- Single file : in new single file
- Separate files: in two separate files
-The file names are obtained from variables `vhdl-entity-file-name' and
-`vhdl-architecture-file-name'."
- :type '(choice (const :tag "None" none)
- (const :tag "Single file" single)
- (const :tag "Separate files" separate))
- :group 'vhdl-compose)
-
-(defcustom vhdl-compose-include-header t
- "*Non-nil means include a header in automatically generated files."
- :type 'boolean
- :group 'vhdl-compose)
-
-(defcustom vhdl-compose-architecture-name '(".*" . "str")
+(defcustom vhdl-testbench-entity-file-name vhdl-entity-file-name
(concat
- "*Specifies how the component architecture name is obtained.
-The component architecture name can be obtained by modifying the entity name
-\(e.g. attaching or stripping off a substring).
-If TO STRING is empty, the architecture name is queried."
+ "*Specifies how the testbench entity file name is obtained.
+The entity file name can be obtained by modifying the testbench entity name
+\(e.g. attaching or stripping off a substring). The file extension is
+automatically taken from the file name of the current buffer. Testbench
+files can be created in a different directory by prepending a relative or
+absolute path to the file name."
vhdl-name-doc-string)
:type '(cons (regexp :tag "From regexp")
(string :tag "To string "))
- :group 'vhdl-compose)
+ :group 'vhdl-testbench)
-(defcustom vhdl-components-package-name
- '((".*" . "\\&_components") . "components")
+(defcustom vhdl-testbench-architecture-file-name vhdl-architecture-file-name
(concat
- "*Specifies how the name for the components package is obtained.
-The components package is a package containing all component declarations for
-the current design. Its name can be obtained by modifying the project name
-\(e.g. attaching or stripping off a substring). If no project is defined, the
-DIRECTORY entry is chosen."
+ "*Specifies how the testbench architecture file name is obtained.
+The architecture file name can be obtained by modifying the testbench entity
+and/or architecture name (e.g. attaching or stripping off a substring). The
+string that is matched against the regexp is the concatenation of the entity
+and the architecture name separated by a space. This gives access to both
+names (see default setting as example). Testbench files can be created in
+a different directory by prepending a relative or absolute path to the file
+name."
vhdl-name-doc-string)
- :type '(cons (cons :tag "Project" :indent 2
- (regexp :tag "From regexp")
- (string :tag "To string "))
- (string :tag "Directory:\n String "))
- :group 'vhdl-compose)
-
-(defcustom vhdl-use-components-package nil
- "*Non-nil means use a separate components package for component declarations.
-Otherwise, component declarations are inserted and searched for in the
-architecture declarative parts."
- :type 'boolean
- :group 'vhdl-compose)
+ :type '(cons (regexp :tag "From regexp")
+ (string :tag "To string "))
+ :group 'vhdl-testbench)
(defgroup vhdl-comment nil
@@ -1379,17 +1473,17 @@ Option `vhdl-align-groups' still applies within these blocks."
(defcustom vhdl-highlight-keywords t
"*Non-nil means highlight VHDL keywords and other standardized words.
The following faces are used:
- `font-lock-keyword-face' : keywords
- `font-lock-type' : standardized types
- `vhdl-attribute' : standardized attributes
- `vhdl-enumvalue' : standardized enumeration values
- `vhdl-function' : standardized function and package names
+ `font-lock-keyword-face' : keywords
+ `font-lock-type-face' : standardized types
+ `vhdl-font-lock-attribute-face': standardized attributes
+ `vhdl-font-lock-enumvalue-face': standardized enumeration values
+ `vhdl-font-lock-function-face' : standardized function and package names
NOTE: Activate the new setting in a VHDL buffer by re-fontifying it (menu
entry \"Fontify Buffer\")."
:type 'boolean
:set (lambda (variable value)
- (vhdl-custom-set variable value 'vhdl-font-lock-init))
+ (vhdl-custom-set variable value 'vhdl-font-lock-init))
:group 'vhdl-highlight)
(defcustom vhdl-highlight-names t
@@ -1398,7 +1492,7 @@ The following faces are used:
`font-lock-function-name-face' : names in declarations of units,
subprograms, components, as well as labels of VHDL constructs
`font-lock-type-face' : names in type/nature declarations
- `vhdl-attribute' : names in attribute declarations
+ `vhdl-font-lock-attribute-face': names in attribute declarations
`font-lock-variable-name-face' : names in declarations of signals,
variables, constants, subprogram parameters, generics, and ports
@@ -1406,7 +1500,7 @@ NOTE: Activate the new setting in a VHDL buffer by re-fontifying it (menu
entry \"Fontify Buffer\")."
:type 'boolean
:set (lambda (variable value)
- (vhdl-custom-set variable value 'vhdl-font-lock-init))
+ (vhdl-custom-set variable value 'vhdl-font-lock-init))
:group 'vhdl-highlight)
(defcustom vhdl-highlight-special-words nil
@@ -1419,34 +1513,34 @@ NOTE: Activate the new setting in a VHDL buffer by re-fontifying it (menu
entry \"Fontify Buffer\")."
:type 'boolean
:set (lambda (variable value)
- (vhdl-custom-set variable value 'vhdl-font-lock-init))
+ (vhdl-custom-set variable value 'vhdl-font-lock-init))
:group 'vhdl-highlight)
(defcustom vhdl-highlight-forbidden-words nil
"*Non-nil means highlight forbidden words.
The reserved words specified in option `vhdl-forbidden-words' or having the
syntax specified in option `vhdl-forbidden-syntax' are highlighted in a
-warning color (face `vhdl-reserved-word') to indicate not to
+warning color (face `vhdl-font-lock-reserved-words-face') to indicate not to
use them.
NOTE: Activate the new setting in a VHDL buffer by re-fontifying it (menu
entry \"Fontify Buffer\")."
:type 'boolean
:set (lambda (variable value)
- (vhdl-custom-set variable value
+ (vhdl-custom-set variable value
'vhdl-words-init 'vhdl-font-lock-init))
:group 'vhdl-highlight)
(defcustom vhdl-highlight-verilog-keywords nil
"*Non-nil means highlight Verilog keywords as reserved words.
Verilog keywords are highlighted in a warning color (face
-`vhdl-reserved-word') to indicate not to use them.
+`vhdl-font-lock-reserved-words-face') to indicate not to use them.
NOTE: Activate the new setting in a VHDL buffer by re-fontifying it (menu
entry \"Fontify Buffer\")."
:type 'boolean
:set (lambda (variable value)
- (vhdl-custom-set variable value
+ (vhdl-custom-set variable value
'vhdl-words-init 'vhdl-font-lock-init))
:group 'vhdl-highlight)
@@ -1454,14 +1548,14 @@ NOTE: Activate the new setting in a VHDL buffer by re-fontifying it (menu
"*Non-nil means background-highlight code excluded from translation.
That is, all code between \"-- pragma translate_off\" and
\"-- pragma translate_on\" is highlighted using a different background color
-\(face `vhdl-translate-off').
+\(face `vhdl-font-lock-translate-off-face').
Note: this might slow down on-the-fly fontification (and thus editing).
NOTE: Activate the new setting in a VHDL buffer by re-fontifying it (menu
entry \"Fontify Buffer\")."
:type 'boolean
:set (lambda (variable value)
- (vhdl-custom-set variable value 'vhdl-font-lock-init))
+ (vhdl-custom-set variable value 'vhdl-font-lock-init))
:group 'vhdl-highlight)
(defcustom vhdl-highlight-case-sensitive nil
@@ -1501,7 +1595,7 @@ different kinds of signals (e.g. \"Clk50\", \"Rst_n\") or objects (e.g.
\"Signal_s\", \"Variable_v\", \"Constant_c\") by distinguishing them using
common substrings or name suffices.
For each entry, a new face is generated with the specified colors and name
-\"vhdl-\" + name.
+\"vhdl-font-lock-\" + name + \"-face\".
NOTE: Activate a changed regexp in a VHDL buffer by re-fontifying it (menu
entry \"Fontify Buffer\"). All other changes require restarting Emacs."
@@ -1511,7 +1605,7 @@ NOTE: Activate a changed regexp in a VHDL buffer by re-fontifying it (menu
(string :tag "Color (light)")
(string :tag "Color (dark) ")))
:set (lambda (variable value)
- (vhdl-custom-set variable value 'vhdl-font-lock-init))
+ (vhdl-custom-set variable value 'vhdl-font-lock-init))
:group 'vhdl-highlight)
(defcustom vhdl-forbidden-words '()
@@ -1523,7 +1617,7 @@ NOTE: Activate the new setting in a VHDL buffer by re-fontifying it (menu
entry \"Fontify Buffer\")."
:type '(repeat (string :format "%v"))
:set (lambda (variable value)
- (vhdl-custom-set variable value
+ (vhdl-custom-set variable value
'vhdl-words-init 'vhdl-font-lock-init))
:group 'vhdl-highlight)
@@ -1538,7 +1632,7 @@ NOTE: Activate the new setting in a VHDL buffer by re-fontifying it (menu
entry \"Fontify Buffer\")."
:type 'regexp
:set (lambda (variable value)
- (vhdl-custom-set variable value
+ (vhdl-custom-set variable value
'vhdl-words-init 'vhdl-font-lock-init))
:group 'vhdl-highlight)
@@ -1734,7 +1828,7 @@ NOTE: Activate the new setting in a VHDL buffer by using the menu entry
\"Activate Options\"."
:type 'boolean
:set (lambda (variable value)
- (vhdl-custom-set variable value 'vhdl-mode-syntax-table-init))
+ (vhdl-custom-set variable value 'vhdl-mode-syntax-table-init))
:group 'vhdl-misc)
@@ -1780,24 +1874,25 @@ reported and the syntactic symbol is ignored.")
"*If non-nil, syntactic info is echoed when the line is indented.")
(defconst vhdl-offsets-alist-default
- '((string . -1000)
- (block-open . 0)
- (block-close . 0)
- (statement . 0)
- (statement-cont . vhdl-lineup-statement-cont)
+ '((string . -1000)
+ (cpp-macro . -1000)
+ (block-open . 0)
+ (block-close . 0)
+ (statement . 0)
+ (statement-cont . vhdl-lineup-statement-cont)
(statement-block-intro . +)
(statement-case-intro . +)
- (case-alternative . +)
- (comment . vhdl-lineup-comment)
- (arglist-intro . +)
- (arglist-cont . 0)
+ (case-alternative . +)
+ (comment . vhdl-lineup-comment)
+ (arglist-intro . +)
+ (arglist-cont . 0)
(arglist-cont-nonempty . vhdl-lineup-arglist)
- (arglist-close . vhdl-lineup-arglist)
- (entity . 0)
- (configuration . 0)
- (package . 0)
- (architecture . 0)
- (package-body . 0)
+ (arglist-close . vhdl-lineup-arglist)
+ (entity . 0)
+ (configuration . 0)
+ (package . 0)
+ (architecture . 0)
+ (package-body . 0)
)
"Default settings for offsets of syntactic elements.
Do not change this constant! See the variable `vhdl-offsets-alist' for
@@ -2031,6 +2126,10 @@ Ignore byte-compiler warnings you might see."
(setq dirs (cdr dirs)))
contents)))
+;; `member-ignore-case' undefined (XEmacs)
+(unless (fboundp 'member-ignore-case)
+ (defalias 'member-ignore-case 'member))
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Compatibility with older VHDL Mode versions
@@ -2570,25 +2669,25 @@ STRING are replaced by `-' and substrings are converted to lower case."
"Initialize `vhdl-mode-map'."
(setq vhdl-mode-map (make-sparse-keymap))
;; template key bindings
- (define-key vhdl-mode-map "\C-c\C-t" vhdl-template-map)
+ (define-key vhdl-mode-map "\C-c\C-t" vhdl-template-map)
;; model key bindings
- (define-key vhdl-mode-map "\C-c\C-m" vhdl-model-map)
+ (define-key vhdl-mode-map "\C-c\C-m" vhdl-model-map)
;; standard key bindings
- (define-key vhdl-mode-map "\M-a" 'vhdl-beginning-of-statement)
- (define-key vhdl-mode-map "\M-e" 'vhdl-end-of-statement)
- (define-key vhdl-mode-map "\M-\C-f" 'vhdl-forward-sexp)
- (define-key vhdl-mode-map "\M-\C-b" 'vhdl-backward-sexp)
- (define-key vhdl-mode-map "\M-\C-u" 'vhdl-backward-up-list)
- (define-key vhdl-mode-map "\M-\C-a" 'vhdl-backward-same-indent)
- (define-key vhdl-mode-map "\M-\C-e" 'vhdl-forward-same-indent)
+ (define-key vhdl-mode-map "\M-a" 'vhdl-beginning-of-statement)
+ (define-key vhdl-mode-map "\M-e" 'vhdl-end-of-statement)
+ (define-key vhdl-mode-map "\M-\C-f" 'vhdl-forward-sexp)
+ (define-key vhdl-mode-map "\M-\C-b" 'vhdl-backward-sexp)
+ (define-key vhdl-mode-map "\M-\C-u" 'vhdl-backward-up-list)
+ (define-key vhdl-mode-map "\M-\C-a" 'vhdl-backward-same-indent)
+ (define-key vhdl-mode-map "\M-\C-e" 'vhdl-forward-same-indent)
(unless vhdl-xemacs ; would override `M-backspace' in XEmacs
- (define-key vhdl-mode-map "\M-\C-h" 'vhdl-mark-defun))
- (define-key vhdl-mode-map "\M-\C-q" 'vhdl-indent-sexp)
- (define-key vhdl-mode-map "\M-^" 'vhdl-delete-indentation)
+ (define-key vhdl-mode-map "\M-\C-h" 'vhdl-mark-defun))
+ (define-key vhdl-mode-map "\M-\C-q" 'vhdl-indent-sexp)
+ (define-key vhdl-mode-map "\M-^" 'vhdl-delete-indentation)
;; backspace/delete key bindings
- (define-key vhdl-mode-map [backspace] 'backward-delete-char-untabify)
+ (define-key vhdl-mode-map [backspace] 'backward-delete-char-untabify)
(unless (boundp 'delete-key-deletes-forward) ; XEmacs variable
- (define-key vhdl-mode-map [delete] 'delete-char)
+ (define-key vhdl-mode-map [delete] 'delete-char)
(define-key vhdl-mode-map [(meta delete)] 'kill-word))
;; mode specific key bindings
(define-key vhdl-mode-map "\C-c\C-m\C-e" 'vhdl-electric-mode)
@@ -2598,7 +2697,7 @@ STRING are replaced by `-' and substrings are converted to lower case."
(define-key vhdl-mode-map "\C-c\C-p\C-m" 'vhdl-import-project)
(define-key vhdl-mode-map "\C-c\C-p\C-x" 'vhdl-export-project)
(define-key vhdl-mode-map "\C-c\C-s\C-k" 'vhdl-set-compiler)
- (define-key vhdl-mode-map "\C-c\C-k" 'vhdl-compile)
+ (define-key vhdl-mode-map "\C-c\C-k" 'vhdl-compile)
(define-key vhdl-mode-map "\C-c\M-\C-k" 'vhdl-make)
(define-key vhdl-mode-map "\C-c\M-k" 'vhdl-generate-makefile)
(define-key vhdl-mode-map "\C-c\C-p\C-w" 'vhdl-port-copy)
@@ -2624,13 +2723,14 @@ STRING are replaced by `-' and substrings are converted to lower case."
(define-key vhdl-mode-map "\C-c\C-c\C-n" 'vhdl-compose-new-component)
(define-key vhdl-mode-map "\C-c\C-c\C-p" 'vhdl-compose-place-component)
(define-key vhdl-mode-map "\C-c\C-c\C-w" 'vhdl-compose-wire-components)
+ (define-key vhdl-mode-map "\C-c\C-c\C-f" 'vhdl-compose-configuration)
(define-key vhdl-mode-map "\C-c\C-c\C-k" 'vhdl-compose-components-package)
(define-key vhdl-mode-map "\C-cc" 'vhdl-comment-uncomment-region)
- (define-key vhdl-mode-map "\C-c-" 'vhdl-comment-append-inline)
- (define-key vhdl-mode-map "\C-c\M--" 'vhdl-comment-display-line)
+ (define-key vhdl-mode-map "\C-c-" 'vhdl-comment-append-inline)
+ (define-key vhdl-mode-map "\C-c\M--" 'vhdl-comment-display-line)
(define-key vhdl-mode-map "\C-c\C-i\C-l" 'indent-according-to-mode)
(define-key vhdl-mode-map "\C-c\C-i\C-g" 'vhdl-indent-group)
- (define-key vhdl-mode-map "\M-\C-\\" 'vhdl-indent-region)
+ (define-key vhdl-mode-map "\M-\C-\\" 'vhdl-indent-region)
(define-key vhdl-mode-map "\C-c\C-i\C-b" 'vhdl-indent-buffer)
(define-key vhdl-mode-map "\C-c\C-a\C-g" 'vhdl-align-group)
(define-key vhdl-mode-map "\C-c\C-a\C-a" 'vhdl-align-group)
@@ -2660,38 +2760,35 @@ STRING are replaced by `-' and substrings are converted to lower case."
(define-key vhdl-mode-map "\C-c\C-x\C-c" 'vhdl-fix-case-buffer)
(define-key vhdl-mode-map "\C-c\C-x\M-w" 'vhdl-fixup-whitespace-region)
(define-key vhdl-mode-map "\C-c\C-x\C-w" 'vhdl-fixup-whitespace-buffer)
- (define-key vhdl-mode-map "\C-c\M-b" 'vhdl-beautify-region)
- (define-key vhdl-mode-map "\C-c\C-b" 'vhdl-beautify-buffer)
+ (define-key vhdl-mode-map "\C-c\M-b" 'vhdl-beautify-region)
+ (define-key vhdl-mode-map "\C-c\C-b" 'vhdl-beautify-buffer)
(define-key vhdl-mode-map "\C-c\C-u\C-s" 'vhdl-update-sensitivity-list-process)
(define-key vhdl-mode-map "\C-c\C-u\M-s" 'vhdl-update-sensitivity-list-buffer)
- (define-key vhdl-mode-map "\C-cf" 'vhdl-fontify-buffer)
- (define-key vhdl-mode-map "\C-cs" 'vhdl-statistics-buffer)
- (define-key vhdl-mode-map "\C-c\M-m" 'vhdl-show-messages)
- (define-key vhdl-mode-map "\C-c\C-h" 'vhdl-doc-mode)
- (define-key vhdl-mode-map "\C-c\C-v" 'vhdl-version)
- (define-key vhdl-mode-map "\M-\t" 'insert-tab)
+ (define-key vhdl-mode-map "\C-cf" 'vhdl-fontify-buffer)
+ (define-key vhdl-mode-map "\C-cs" 'vhdl-statistics-buffer)
+ (define-key vhdl-mode-map "\C-c\M-m" 'vhdl-show-messages)
+ (define-key vhdl-mode-map "\C-c\C-h" 'vhdl-doc-mode)
+ (define-key vhdl-mode-map "\C-c\C-v" 'vhdl-version)
+ (define-key vhdl-mode-map "\M-\t" 'insert-tab)
;; insert commands bindings
(define-key vhdl-mode-map "\C-c\C-i\C-t" 'vhdl-template-insert-construct)
(define-key vhdl-mode-map "\C-c\C-i\C-p" 'vhdl-template-insert-package)
(define-key vhdl-mode-map "\C-c\C-i\C-d" 'vhdl-template-insert-directive)
(define-key vhdl-mode-map "\C-c\C-i\C-m" 'vhdl-model-insert)
;; electric key bindings
- (define-key vhdl-mode-map " " 'vhdl-electric-space)
- (if vhdl-intelligent-tab
- (define-key vhdl-mode-map "\t" 'vhdl-electric-tab)
- ;; The default binding of TAB already calls `indent-according-to-mode'.
- ;; (define-key vhdl-mode-map "\t" 'indent-according-to-mode)
- )
- (define-key vhdl-mode-map "\r" 'vhdl-electric-return)
- (define-key vhdl-mode-map "-" 'vhdl-electric-dash)
- (define-key vhdl-mode-map "[" 'vhdl-electric-open-bracket)
- (define-key vhdl-mode-map "]" 'vhdl-electric-close-bracket)
- (define-key vhdl-mode-map "'" 'vhdl-electric-quote)
- (define-key vhdl-mode-map ";" 'vhdl-electric-semicolon)
- (define-key vhdl-mode-map "," 'vhdl-electric-comma)
- (define-key vhdl-mode-map "." 'vhdl-electric-period)
+ (define-key vhdl-mode-map " " 'vhdl-electric-space)
+ (when vhdl-intelligent-tab
+ (define-key vhdl-mode-map "\t" 'vhdl-electric-tab))
+ (define-key vhdl-mode-map "\r" 'vhdl-electric-return)
+ (define-key vhdl-mode-map "-" 'vhdl-electric-dash)
+ (define-key vhdl-mode-map "[" 'vhdl-electric-open-bracket)
+ (define-key vhdl-mode-map "]" 'vhdl-electric-close-bracket)
+ (define-key vhdl-mode-map "'" 'vhdl-electric-quote)
+ (define-key vhdl-mode-map ";" 'vhdl-electric-semicolon)
+ (define-key vhdl-mode-map "," 'vhdl-electric-comma)
+ (define-key vhdl-mode-map "." 'vhdl-electric-period)
(when (vhdl-standard-p 'ams)
- (define-key vhdl-mode-map "=" 'vhdl-electric-equal)))
+ (define-key vhdl-mode-map "=" 'vhdl-electric-equal)))
;; initialize mode map for VHDL Mode
(vhdl-mode-map-init)
@@ -2796,134 +2893,134 @@ STRING are replaced by `-' and substrings are converted to lower case."
(when (memq 'vhdl vhdl-electric-keywords)
;; VHDL'93 keywords
'(
- ("--" "" vhdl-template-display-comment-hook 0 t)
- ("abs" "" vhdl-template-default-hook 0 t)
- ("access" "" vhdl-template-default-hook 0 t)
- ("after" "" vhdl-template-default-hook 0 t)
- ("alias" "" vhdl-template-alias-hook 0 t)
- ("all" "" vhdl-template-default-hook 0 t)
- ("and" "" vhdl-template-default-hook 0 t)
- ("arch" "" vhdl-template-architecture-hook 0 t)
- ("architecture" "" vhdl-template-architecture-hook 0 t)
- ("array" "" vhdl-template-default-hook 0 t)
- ("assert" "" vhdl-template-assert-hook 0 t)
- ("attr" "" vhdl-template-attribute-hook 0 t)
- ("attribute" "" vhdl-template-attribute-hook 0 t)
- ("begin" "" vhdl-template-default-indent-hook 0 t)
- ("block" "" vhdl-template-block-hook 0 t)
- ("body" "" vhdl-template-default-hook 0 t)
- ("buffer" "" vhdl-template-default-hook 0 t)
- ("bus" "" vhdl-template-default-hook 0 t)
- ("case" "" vhdl-template-case-hook 0 t)
- ("comp" "" vhdl-template-component-hook 0 t)
- ("component" "" vhdl-template-component-hook 0 t)
- ("cond" "" vhdl-template-conditional-signal-asst-hook 0 t)
- ("conditional" "" vhdl-template-conditional-signal-asst-hook 0 t)
- ("conf" "" vhdl-template-configuration-hook 0 t)
- ("configuration" "" vhdl-template-configuration-hook 0 t)
- ("cons" "" vhdl-template-constant-hook 0 t)
- ("constant" "" vhdl-template-constant-hook 0 t)
- ("disconnect" "" vhdl-template-disconnect-hook 0 t)
- ("downto" "" vhdl-template-default-hook 0 t)
- ("else" "" vhdl-template-else-hook 0 t)
- ("elseif" "" vhdl-template-elsif-hook 0 t)
- ("elsif" "" vhdl-template-elsif-hook 0 t)
- ("end" "" vhdl-template-default-indent-hook 0 t)
- ("entity" "" vhdl-template-entity-hook 0 t)
- ("exit" "" vhdl-template-exit-hook 0 t)
- ("file" "" vhdl-template-file-hook 0 t)
- ("for" "" vhdl-template-for-hook 0 t)
- ("func" "" vhdl-template-function-hook 0 t)
- ("function" "" vhdl-template-function-hook 0 t)
- ("generic" "" vhdl-template-generic-hook 0 t)
- ("group" "" vhdl-template-group-hook 0 t)
- ("guarded" "" vhdl-template-default-hook 0 t)
- ("if" "" vhdl-template-if-hook 0 t)
- ("impure" "" vhdl-template-default-hook 0 t)
- ("in" "" vhdl-template-default-hook 0 t)
- ("inertial" "" vhdl-template-default-hook 0 t)
- ("inout" "" vhdl-template-default-hook 0 t)
- ("inst" "" vhdl-template-instance-hook 0 t)
- ("instance" "" vhdl-template-instance-hook 0 t)
- ("is" "" vhdl-template-default-hook 0 t)
- ("label" "" vhdl-template-default-hook 0 t)
- ("library" "" vhdl-template-library-hook 0 t)
- ("linkage" "" vhdl-template-default-hook 0 t)
- ("literal" "" vhdl-template-default-hook 0 t)
- ("loop" "" vhdl-template-bare-loop-hook 0 t)
- ("map" "" vhdl-template-map-hook 0 t)
- ("mod" "" vhdl-template-default-hook 0 t)
- ("nand" "" vhdl-template-default-hook 0 t)
- ("new" "" vhdl-template-default-hook 0 t)
- ("next" "" vhdl-template-next-hook 0 t)
- ("nor" "" vhdl-template-default-hook 0 t)
- ("not" "" vhdl-template-default-hook 0 t)
- ("null" "" vhdl-template-default-hook 0 t)
- ("of" "" vhdl-template-default-hook 0 t)
- ("on" "" vhdl-template-default-hook 0 t)
- ("open" "" vhdl-template-default-hook 0 t)
- ("or" "" vhdl-template-default-hook 0 t)
- ("others" "" vhdl-template-others-hook 0 t)
- ("out" "" vhdl-template-default-hook 0 t)
- ("pack" "" vhdl-template-package-hook 0 t)
- ("package" "" vhdl-template-package-hook 0 t)
- ("port" "" vhdl-template-port-hook 0 t)
- ("postponed" "" vhdl-template-default-hook 0 t)
- ("procedure" "" vhdl-template-procedure-hook 0 t)
- ("process" "" vhdl-template-process-hook 0 t)
- ("pure" "" vhdl-template-default-hook 0 t)
- ("range" "" vhdl-template-default-hook 0 t)
- ("record" "" vhdl-template-default-hook 0 t)
- ("register" "" vhdl-template-default-hook 0 t)
- ("reject" "" vhdl-template-default-hook 0 t)
- ("rem" "" vhdl-template-default-hook 0 t)
- ("report" "" vhdl-template-report-hook 0 t)
- ("return" "" vhdl-template-return-hook 0 t)
- ("rol" "" vhdl-template-default-hook 0 t)
- ("ror" "" vhdl-template-default-hook 0 t)
- ("select" "" vhdl-template-selected-signal-asst-hook 0 t)
- ("severity" "" vhdl-template-default-hook 0 t)
- ("shared" "" vhdl-template-default-hook 0 t)
- ("sig" "" vhdl-template-signal-hook 0 t)
- ("signal" "" vhdl-template-signal-hook 0 t)
- ("sla" "" vhdl-template-default-hook 0 t)
- ("sll" "" vhdl-template-default-hook 0 t)
- ("sra" "" vhdl-template-default-hook 0 t)
- ("srl" "" vhdl-template-default-hook 0 t)
- ("subtype" "" vhdl-template-subtype-hook 0 t)
- ("then" "" vhdl-template-default-hook 0 t)
- ("to" "" vhdl-template-default-hook 0 t)
- ("transport" "" vhdl-template-default-hook 0 t)
- ("type" "" vhdl-template-type-hook 0 t)
- ("unaffected" "" vhdl-template-default-hook 0 t)
- ("units" "" vhdl-template-default-hook 0 t)
- ("until" "" vhdl-template-default-hook 0 t)
- ("use" "" vhdl-template-use-hook 0 t)
- ("var" "" vhdl-template-variable-hook 0 t)
- ("variable" "" vhdl-template-variable-hook 0 t)
- ("wait" "" vhdl-template-wait-hook 0 t)
- ("when" "" vhdl-template-when-hook 0 t)
- ("while" "" vhdl-template-while-loop-hook 0 t)
- ("with" "" vhdl-template-with-hook 0 t)
- ("xnor" "" vhdl-template-default-hook 0 t)
- ("xor" "" vhdl-template-default-hook 0 t)
+ ("--" "" vhdl-template-display-comment-hook 0)
+ ("abs" "" vhdl-template-default-hook 0)
+ ("access" "" vhdl-template-default-hook 0)
+ ("after" "" vhdl-template-default-hook 0)
+ ("alias" "" vhdl-template-alias-hook 0)
+ ("all" "" vhdl-template-default-hook 0)
+ ("and" "" vhdl-template-default-hook 0)
+ ("arch" "" vhdl-template-architecture-hook 0)
+ ("architecture" "" vhdl-template-architecture-hook 0)
+ ("array" "" vhdl-template-default-hook 0)
+ ("assert" "" vhdl-template-assert-hook 0)
+ ("attr" "" vhdl-template-attribute-hook 0)
+ ("attribute" "" vhdl-template-attribute-hook 0)
+ ("begin" "" vhdl-template-default-indent-hook 0)
+ ("block" "" vhdl-template-block-hook 0)
+ ("body" "" vhdl-template-default-hook 0)
+ ("buffer" "" vhdl-template-default-hook 0)
+ ("bus" "" vhdl-template-default-hook 0)
+ ("case" "" vhdl-template-case-hook 0)
+ ("comp" "" vhdl-template-component-hook 0)
+ ("component" "" vhdl-template-component-hook 0)
+ ("cond" "" vhdl-template-conditional-signal-asst-hook 0)
+ ("conditional" "" vhdl-template-conditional-signal-asst-hook 0)
+ ("conf" "" vhdl-template-configuration-hook 0)
+ ("configuration" "" vhdl-template-configuration-hook 0)
+ ("cons" "" vhdl-template-constant-hook 0)
+ ("constant" "" vhdl-template-constant-hook 0)
+ ("disconnect" "" vhdl-template-disconnect-hook 0)
+ ("downto" "" vhdl-template-default-hook 0)
+ ("else" "" vhdl-template-else-hook 0)
+ ("elseif" "" vhdl-template-elsif-hook 0)
+ ("elsif" "" vhdl-template-elsif-hook 0)
+ ("end" "" vhdl-template-default-indent-hook 0)
+ ("entity" "" vhdl-template-entity-hook 0)
+ ("exit" "" vhdl-template-exit-hook 0)
+ ("file" "" vhdl-template-file-hook 0)
+ ("for" "" vhdl-template-for-hook 0)
+ ("func" "" vhdl-template-function-hook 0)
+ ("function" "" vhdl-template-function-hook 0)
+ ("generic" "" vhdl-template-generic-hook 0)
+ ("group" "" vhdl-template-group-hook 0)
+ ("guarded" "" vhdl-template-default-hook 0)
+ ("if" "" vhdl-template-if-hook 0)
+ ("impure" "" vhdl-template-default-hook 0)
+ ("in" "" vhdl-template-default-hook 0)
+ ("inertial" "" vhdl-template-default-hook 0)
+ ("inout" "" vhdl-template-default-hook 0)
+ ("inst" "" vhdl-template-instance-hook 0)
+ ("instance" "" vhdl-template-instance-hook 0)
+ ("is" "" vhdl-template-default-hook 0)
+ ("label" "" vhdl-template-default-hook 0)
+ ("library" "" vhdl-template-library-hook 0)
+ ("linkage" "" vhdl-template-default-hook 0)
+ ("literal" "" vhdl-template-default-hook 0)
+ ("loop" "" vhdl-template-bare-loop-hook 0)
+ ("map" "" vhdl-template-map-hook 0)
+ ("mod" "" vhdl-template-default-hook 0)
+ ("nand" "" vhdl-template-default-hook 0)
+ ("new" "" vhdl-template-default-hook 0)
+ ("next" "" vhdl-template-next-hook 0)
+ ("nor" "" vhdl-template-default-hook 0)
+ ("not" "" vhdl-template-default-hook 0)
+ ("null" "" vhdl-template-default-hook 0)
+ ("of" "" vhdl-template-default-hook 0)
+ ("on" "" vhdl-template-default-hook 0)
+ ("open" "" vhdl-template-default-hook 0)
+ ("or" "" vhdl-template-default-hook 0)
+ ("others" "" vhdl-template-others-hook 0)
+ ("out" "" vhdl-template-default-hook 0)
+ ("pack" "" vhdl-template-package-hook 0)
+ ("package" "" vhdl-template-package-hook 0)
+ ("port" "" vhdl-template-port-hook 0)
+ ("postponed" "" vhdl-template-default-hook 0)
+ ("procedure" "" vhdl-template-procedure-hook 0)
+ ("process" "" vhdl-template-process-hook 0)
+ ("pure" "" vhdl-template-default-hook 0)
+ ("range" "" vhdl-template-default-hook 0)
+ ("record" "" vhdl-template-default-hook 0)
+ ("register" "" vhdl-template-default-hook 0)
+ ("reject" "" vhdl-template-default-hook 0)
+ ("rem" "" vhdl-template-default-hook 0)
+ ("report" "" vhdl-template-report-hook 0)
+ ("return" "" vhdl-template-return-hook 0)
+ ("rol" "" vhdl-template-default-hook 0)
+ ("ror" "" vhdl-template-default-hook 0)
+ ("select" "" vhdl-template-selected-signal-asst-hook 0)
+ ("severity" "" vhdl-template-default-hook 0)
+ ("shared" "" vhdl-template-default-hook 0)
+ ("sig" "" vhdl-template-signal-hook 0)
+ ("signal" "" vhdl-template-signal-hook 0)
+ ("sla" "" vhdl-template-default-hook 0)
+ ("sll" "" vhdl-template-default-hook 0)
+ ("sra" "" vhdl-template-default-hook 0)
+ ("srl" "" vhdl-template-default-hook 0)
+ ("subtype" "" vhdl-template-subtype-hook 0)
+ ("then" "" vhdl-template-default-hook 0)
+ ("to" "" vhdl-template-default-hook 0)
+ ("transport" "" vhdl-template-default-hook 0)
+ ("type" "" vhdl-template-type-hook 0)
+ ("unaffected" "" vhdl-template-default-hook 0)
+ ("units" "" vhdl-template-default-hook 0)
+ ("until" "" vhdl-template-default-hook 0)
+ ("use" "" vhdl-template-use-hook 0)
+ ("var" "" vhdl-template-variable-hook 0)
+ ("variable" "" vhdl-template-variable-hook 0)
+ ("wait" "" vhdl-template-wait-hook 0)
+ ("when" "" vhdl-template-when-hook 0)
+ ("while" "" vhdl-template-while-loop-hook 0)
+ ("with" "" vhdl-template-with-hook 0)
+ ("xnor" "" vhdl-template-default-hook 0)
+ ("xor" "" vhdl-template-default-hook 0)
))
;; VHDL-AMS keywords
(when (and (memq 'vhdl vhdl-electric-keywords) (vhdl-standard-p 'ams))
'(
- ("across" "" vhdl-template-default-hook 0 t)
- ("break" "" vhdl-template-break-hook 0 t)
- ("limit" "" vhdl-template-limit-hook 0 t)
- ("nature" "" vhdl-template-nature-hook 0 t)
- ("noise" "" vhdl-template-default-hook 0 t)
- ("procedural" "" vhdl-template-procedural-hook 0 t)
- ("quantity" "" vhdl-template-quantity-hook 0 t)
- ("reference" "" vhdl-template-default-hook 0 t)
- ("spectrum" "" vhdl-template-default-hook 0 t)
- ("subnature" "" vhdl-template-subnature-hook 0 t)
- ("terminal" "" vhdl-template-terminal-hook 0 t)
- ("through" "" vhdl-template-default-hook 0 t)
- ("tolerance" "" vhdl-template-default-hook 0 t)
+ ("across" "" vhdl-template-default-hook 0)
+ ("break" "" vhdl-template-break-hook 0)
+ ("limit" "" vhdl-template-limit-hook 0)
+ ("nature" "" vhdl-template-nature-hook 0)
+ ("noise" "" vhdl-template-default-hook 0)
+ ("procedural" "" vhdl-template-procedural-hook 0)
+ ("quantity" "" vhdl-template-quantity-hook 0)
+ ("reference" "" vhdl-template-default-hook 0)
+ ("spectrum" "" vhdl-template-default-hook 0)
+ ("subnature" "" vhdl-template-subnature-hook 0)
+ ("terminal" "" vhdl-template-terminal-hook 0)
+ ("through" "" vhdl-template-default-hook 0)
+ ("tolerance" "" vhdl-template-default-hook 0)
))
;; user model keywords
(when (memq 'user vhdl-electric-keywords)
@@ -2935,7 +3032,7 @@ STRING are replaced by `-' and substrings are converted to lower case."
(setq abbrev-list
(cons (list keyword ""
(vhdl-function-name
- "vhdl-model" (nth 0 (car alist)) "hook") 0 t)
+ "vhdl-model" (nth 0 (car alist)) "hook") 0)
abbrev-list)))
(setq alist (cdr alist)))
abbrev-list)))))
@@ -3089,6 +3186,7 @@ STRING are replaced by `-' and substrings are converted to lower case."
(vhdl-menu-split menu-list "Project"))
'("--" "--"
["Select Project..." vhdl-set-project t]
+ ["Set As Default Project" vhdl-set-default-project t]
"--"
["Duplicate Project" vhdl-duplicate-project vhdl-project]
["Import Project..." vhdl-import-project
@@ -3275,9 +3373,11 @@ STRING are replaced by `-' and substrings are converted to lower case."
:style toggle :selected vhdl-port-reversed-direction :active vhdl-port-list])
("Compose"
["New Component" vhdl-compose-new-component t]
+ ["Copy Component" vhdl-port-copy t]
["Place Component" vhdl-compose-place-component vhdl-port-list]
["Wire Components" vhdl-compose-wire-components t]
"--"
+ ["Generate Configuration" vhdl-compose-configuration t]
["Generate Components Package" vhdl-compose-components-package t])
("Subprogram"
["Copy" vhdl-subprog-copy t]
@@ -3521,6 +3621,8 @@ STRING are replaced by `-' and substrings are converted to lower case."
["Entity File Name..." (customize-option 'vhdl-entity-file-name) t]
["Architecture File Name..."
(customize-option 'vhdl-architecture-file-name) t]
+ ["Configuration File Name..."
+ (customize-option 'vhdl-configuration-file-name) t]
["Package File Name..." (customize-option 'vhdl-package-file-name) t]
("File Name Case"
["As Is"
@@ -3690,11 +3792,29 @@ STRING are replaced by `-' and substrings are converted to lower case."
:style radio :selected (eq 'single vhdl-testbench-create-files)]
["Separate"
(customize-set-variable 'vhdl-testbench-create-files 'separate)
- :style radio :selected (eq 'separate vhdl-testbench-create-files)]))
+ :style radio :selected (eq 'separate vhdl-testbench-create-files)])
+ ["Testbench Entity File Name..."
+ (customize-option 'vhdl-testbench-entity-file-name) t]
+ ["Testbench Architecture File Name..."
+ (customize-option 'vhdl-testbench-architecture-file-name) t])
"--"
["Customize Group..." (customize-group 'vhdl-port) t])
("Compose"
- ("Create Files"
+ ["Architecture Name..."
+ (customize-option 'vhdl-compose-architecture-name) t]
+ ["Configuration Name..."
+ (customize-option 'vhdl-compose-configuration-name) t]
+ ["Components Package Name..."
+ (customize-option 'vhdl-components-package-name) t]
+ ["Use Components Package"
+ (customize-set-variable 'vhdl-use-components-package
+ (not vhdl-use-components-package))
+ :style toggle :selected vhdl-use-components-package]
+ ["Include Header"
+ (customize-set-variable 'vhdl-compose-include-header
+ (not vhdl-compose-include-header))
+ :style toggle :selected vhdl-compose-include-header]
+ ("Create Entity/Architecture Files"
["None"
(customize-set-variable 'vhdl-compose-create-files 'none)
:style radio :selected (eq 'none vhdl-compose-create-files)]
@@ -3704,18 +3824,18 @@ STRING are replaced by `-' and substrings are converted to lower case."
["Separate"
(customize-set-variable 'vhdl-compose-create-files 'separate)
:style radio :selected (eq 'separate vhdl-compose-create-files)])
- ["Include Header"
- (customize-set-variable 'vhdl-compose-include-header
- (not vhdl-compose-include-header))
- :style toggle :selected vhdl-compose-include-header]
- ["Architecture Name..."
- (customize-option 'vhdl-compose-architecture-name) t]
- ["Components Package Name..."
- (customize-option 'vhdl-components-package-name) t]
- ["Use Components Package"
- (customize-set-variable 'vhdl-use-components-package
- (not vhdl-use-components-package))
- :style toggle :selected vhdl-use-components-package]
+ ["Create Configuration File"
+ (customize-set-variable 'vhdl-compose-configuration-create-file
+ (not vhdl-compose-configuration-create-file))
+ :style toggle :selected vhdl-compose-configuration-create-file]
+ ["Hierarchical Configuration"
+ (customize-set-variable 'vhdl-compose-configuration-hierarchical
+ (not vhdl-compose-configuration-hierarchical))
+ :style toggle :selected vhdl-compose-configuration-hierarchical]
+ ["Use Subconfiguration"
+ (customize-set-variable 'vhdl-compose-configuration-use-subconfiguration
+ (not vhdl-compose-configuration-use-subconfiguration))
+ :style toggle :selected vhdl-compose-configuration-use-subconfiguration]
"--"
["Customize Group..." (customize-group 'vhdl-compose) t])
("Comment"
@@ -4167,13 +4287,13 @@ Usage:
symbols are surrounded by one space, and multiple spaces are eliminated.
-| CODE FILLING:
-| Code filling allows to condens code (e.g. sensitivity lists or port
-| maps) by removing comments and newlines and re-wrapping so that all
-| lines are maximally filled (block filling). `C-c C-f C-f' fills a list
-| enclosed by parenthesis, `C-c C-f C-g' a group of lines separated by
-| blank lines, `C-c C-f C-i' a block of lines with same indent, and
-| `C-c C-f M-f' an entire region.
+ CODE FILLING:
+ Code filling allows to condense code (e.g. sensitivity lists or port
+ maps) by removing comments and newlines and re-wrapping so that all
+ lines are maximally filled (block filling). `C-c C-f C-f' fills a list
+ enclosed by parenthesis, `C-c C-f C-g' a group of lines separated by
+ blank lines, `C-c C-f C-i' a block of lines with same indent, and
+ `C-c C-f M-f' an entire region.
CODE BEAUTIFICATION:
@@ -4198,21 +4318,21 @@ Usage:
A clause with several generic/port names on the same line can be
flattened (`C-c C-p C-f') so that only one name per line exists. The
-| direction of ports can be reversed (`C-c C-p C-r'), i.e., inputs become
-| outputs and vice versa, which can be useful in testbenches. (This
-| reversion is done on the internal data structure and is only reflected
-| in subsequent paste operations.)
+ direction of ports can be reversed (`C-c C-p C-r'), i.e., inputs become
+ outputs and vice versa, which can be useful in testbenches. (This
+ reversion is done on the internal data structure and is only reflected
+ in subsequent paste operations.)
Names for actual ports, instances, testbenches, and
design-under-test instances can be derived from existing names according
to options `vhdl-...-name'. See customization group `vhdl-port'.
-| SUBPROGRAM TRANSLATION:
-| Similar functionality exists for copying/pasting the interface of
-| subprograms (function/procedure). A subprogram interface can be copied
-| and then pasted as a subprogram declaration, body or call (uses
-| association list with formals).
+ SUBPROGRAM TRANSLATION:
+ Similar functionality exists for copying/pasting the interface of
+ subprograms (function/procedure). A subprogram interface can be copied
+ and then pasted as a subprogram declaration, body or call (uses
+ association list with formals).
TESTBENCH GENERATION:
@@ -4268,38 +4388,54 @@ Usage:
required by secondary units.
-| STRUCTURAL COMPOSITION:
-| Enables simple structural composition. `C-c C-c C-n' creates a skeleton
-| for a new component. Subcomponents (i.e. component declaration and
-| instantiation) can be automatically placed from a previously read port
-| \(`C-c C-c C-p') or directly from the hierarchy browser (`P'). Finally,
-| all subcomponents can be automatically connected using internal signals
-| and ports (`C-c C-c C-w') following these rules:
-| - subcomponent actual ports with same name are considered to be
-| connected by a signal (internal signal or port)
-| - signals that are only inputs to subcomponents are considered as
-| inputs to this component -> input port created
-| - signals that are only outputs from subcomponents are considered as
-| outputs from this component -> output port created
-| - signals that are inputs to AND outputs from subcomponents are
-| considered as internal connections -> internal signal created
-|
-| Component declarations can be placed in a components package (option
-| `vhdl-use-components-package') which can be automatically generated for
-| an entire directory or project (`C-c C-c M-p'). The VHDL'93 direct
-| component instantiation is also supported (option
-| `vhdl-use-direct-instantiation').
-|
-| Purpose: With appropriate naming conventions it is possible to
-| create higher design levels with only a few mouse clicks or key
-| strokes. A new design level can be created by simply generating a new
-| component, placing the required subcomponents from the hierarchy
-| browser, and wiring everything automatically.
-|
-| Note: Automatic wiring only works reliably on templates of new
-| components and component instantiations that were created by VHDL mode.
+ STRUCTURAL COMPOSITION:
+ Enables simple structural composition. `C-c C-c C-n' creates a skeleton
+ for a new component. Subcomponents (i.e. component declaration and
+ instantiation) can be automatically placed from a previously read port
+ \(`C-c C-c C-p') or directly from the hierarchy browser (`P'). Finally,
+ all subcomponents can be automatically connected using internal signals
+ and ports (`C-c C-c C-w') following these rules:
+ - subcomponent actual ports with same name are considered to be
+ connected by a signal (internal signal or port)
+ - signals that are only inputs to subcomponents are considered as
+ inputs to this component -> input port created
+ - signals that are only outputs from subcomponents are considered as
+ outputs from this component -> output port created
+ - signals that are inputs to AND outputs from subcomponents are
+ considered as internal connections -> internal signal created
+
+ Purpose: With appropriate naming conventions it is possible to
+ create higher design levels with only a few mouse clicks or key
+ strokes. A new design level can be created by simply generating a new
+ component, placing the required subcomponents from the hierarchy
+ browser, and wiring everything automatically.
+
+ Note: Automatic wiring only works reliably on templates of new
+ components and component instantiations that were created by VHDL mode.
+
+ Component declarations can be placed in a components package (option
+ `vhdl-use-components-package') which can be automatically generated for
+ an entire directory or project (`C-c C-c M-p'). The VHDL'93 direct
+ component instantiation is also supported (option
+ `vhdl-use-direct-instantiation').
+
+| Configuration declarations can automatically be generated either from
+| the menu (`C-c C-c C-f') (for the architecture the cursor is in) or from
+| the speedbar menu (for the architecture under the cursor). The
+| configurations can optionally be hierarchical (i.e. include all
+| component levels of a hierarchical design, option
+| `vhdl-compose-configuration-hierarchical') or include subconfigurations
+| (option `vhdl-compose-configuration-use-subconfiguration'). For
+| subcomponents in hierarchical configurations, the most-recently-analyzed
+| (mra) architecture is selected. If another architecture is desired, it
+| can be marked as most-recently-analyzed (speedbar menu) before
+| generating the configuration.
|
-| See the options group `vhdl-compose' for all relevant user options.
+| Note: Configurations of subcomponents (i.e. hierarchical configuration
+| declarations) are currently not considered when displaying
+| configurations in speedbar.
+
+ See the options group `vhdl-compose' for all relevant user options.
SOURCE FILE COMPILATION:
@@ -4563,12 +4699,13 @@ Key bindings:
(set (make-local-variable 'paragraph-separate) paragraph-start)
(set (make-local-variable 'paragraph-ignore-fill-prefix) t)
(set (make-local-variable 'require-final-newline)
- mode-require-final-newline)
+ (if vhdl-emacs-22 mode-require-final-newline t))
(set (make-local-variable 'parse-sexp-ignore-comments) t)
(set (make-local-variable 'indent-line-function) 'vhdl-indent-line)
(set (make-local-variable 'comment-start) "--")
(set (make-local-variable 'comment-end) "")
- (set (make-local-variable 'comment-padding) "")
+ (when vhdl-emacs-21
+ (set (make-local-variable 'comment-padding) ""))
(set (make-local-variable 'comment-column) vhdl-inline-comment-column)
(set (make-local-variable 'end-comment-column) vhdl-end-comment-column)
(set (make-local-variable 'comment-start-skip) "--+\\s-*")
@@ -4621,7 +4758,9 @@ Key bindings:
(if noninteractive "" " See menu for documentation and release notes."))
;; run hooks
- (run-mode-hooks 'vhdl-mode-hook))
+ (if vhdl-emacs-22
+ (run-mode-hooks 'vhdl-mode-hook)
+ (run-hooks 'vhdl-mode-hook)))
(defun vhdl-activate-customizations ()
"Activate all customizations on local variables."
@@ -5230,6 +5369,7 @@ the offset is simply returned."
(cond
((nth 3 state) 'string)
((nth 4 state) 'comment)
+ ((vhdl-beginning-of-macro) 'pound)
(t nil)))))
(defun vhdl-forward-comment (&optional direction)
@@ -5312,14 +5452,19 @@ negative, skip forward otherwise."
(defun vhdl-forward-syntactic-ws (&optional lim)
"Forward skip of syntactic whitespace."
- (save-restriction
- (let* ((lim (or lim (point-max)))
- (here lim)
- (hugenum (point-max)))
- (narrow-to-region lim (point))
- (while (/= here (point))
- (setq here (point))
- (vhdl-forward-comment hugenum)))))
+ (let* ((here (point-max))
+ (hugenum (point-max)))
+ (while (/= here (point))
+ (setq here (point))
+ (vhdl-forward-comment hugenum)
+ ;; skip preprocessor directives
+ (when (and (eq (char-after) ?#)
+ (= (vhdl-point 'boi) (point)))
+ (while (and (eq (char-before (vhdl-point 'eol)) ?\\)
+ (= (forward-line 1) 0)))
+ (end-of-line)))
+ (if lim (goto-char (min (point) lim)))))
+
;; This is the best we can do in Win-Emacs.
(defun vhdl-win-fsws (&optional lim)
@@ -5337,18 +5482,28 @@ negative, skip forward otherwise."
(and (string-match "Win-Emacs" emacs-version)
(fset 'vhdl-forward-syntactic-ws 'vhdl-win-fsws))
+(defun vhdl-beginning-of-macro (&optional lim)
+ "Go to the beginning of a cpp macro definition (nicked from `cc-engine')."
+ (let ((here (point)))
+ (beginning-of-line)
+ (while (eq (char-before (1- (point))) ?\\)
+ (forward-line -1))
+ (back-to-indentation)
+ (if (and (<= (point) here)
+ (eq (char-after) ?#))
+ t
+ (goto-char here)
+ nil)))
+
(defun vhdl-backward-syntactic-ws (&optional lim)
"Backward skip over syntactic whitespace."
- (save-restriction
- (let* ((lim (or lim (point-min)))
- (here lim)
- (hugenum (- (point-max))))
- (if (< lim (point))
- (progn
- (narrow-to-region lim (point))
- (while (/= here (point))
- (setq here (point))
- (vhdl-forward-comment hugenum)))))))
+ (let* ((here (point-min))
+ (hugenum (- (point-max))))
+ (while (/= here (point))
+ (setq here (point))
+ (vhdl-forward-comment hugenum)
+ (vhdl-beginning-of-macro))
+ (if lim (goto-char (max (point) lim)))))
;; This is the best we can do in Win-Emacs.
(defun vhdl-win-bsws (&optional lim)
@@ -5598,7 +5753,8 @@ keyword."
(save-excursion
(re-search-backward ";\\|\\bwhen\\b[^_]" lim 'move)
(or (eq (following-char) ?\;)
- (eq (point) lim)))))
+ (eq (point) lim)
+ (vhdl-in-literal)))))
(defun vhdl-corresponding-begin (&optional lim)
"If the word at the current position corresponds to an \"end\"
@@ -5667,15 +5823,15 @@ of an identifier that just happens to contain an \"end\" keyword."
;; return an alist of (statement . keyword) mappings
'(
;; "begin ... end [id]":
- ("begin" . nil)
+ ("begin" . nil)
;; "architecture ... is ... begin ... end [id]":
- ("architecture" . "is")
+ ("architecture" . "is")
;; "configuration ... is ... end [id]":
("configuration" . "is")
;; "entity ... is ... end [id]":
- ("entity" . "is")
+ ("entity" . "is")
;; "package ... is ... end [id]":
- ("package" . "is")
+ ("package" . "is")
;; "procedure ... is ... begin ... end [id]":
("procedure" . "is")
;; "function ... is ... begin ... end [id]":
@@ -5716,7 +5872,7 @@ of an identifier that just happens to contain an \"end\" keyword."
)))
(defconst vhdl-trailer-re
- "\\b\\(is\\|then\\|generate\\|loop\\)\\b[^_]")
+ "\\b\\(is\\|then\\|generate\\|loop\\|record\\)\\b[^_]")
(defconst vhdl-statement-fwd-re
"\\b\\(if\\|for\\|while\\)\\b\\([^_]\\|\\'\\)"
@@ -6071,8 +6227,8 @@ Returns the location of the corresponding begin keyword, unless search
stops due to beginning or end of buffer."
;; Note that if point is between the "defun" keyword and the
;; corresponding "begin" keyword, then that defun will not be
- ;; recognised, and the search will continue backwards. If point is
- ;; at the "begin" keyword, then the defun will be recognised. The
+ ;; recognized, and the search will continue backwards. If point is
+ ;; at the "begin" keyword, then the defun will be recognized. The
;; returned point is at the first character of the "defun" keyword.
(interactive "p")
(let ((count (or count 1))
@@ -6133,8 +6289,8 @@ one. If within a string or comment, or next to a comment (only
whitespace between), move by sentences instead of statements.
When called from a program, this function takes 3 optional args: the
-prefix arg, and a buffer position limit which is the farthest back to
-search, and something whose meaning I don't understand."
+prefix arg, a buffer position limit which is the farthest back to
+search, and an argument indicating an interactive call."
(interactive "p\np")
(let ((count (or count 1))
(case-fold-search t)
@@ -6693,6 +6849,8 @@ is not moved."
(skip-chars-forward " \t")
(if (looking-at "--")
(vhdl-add-syntax 'comment))
+ (if (eq literal 'pound)
+ (vhdl-add-syntax 'cpp-macro))
;; return the syntax
vhdl-syntactic-context))))
@@ -6768,7 +6926,7 @@ only-lines."
vhdl-comment-only-line-offset)
(or (cdr-safe vhdl-comment-only-line-offset)
(car-safe vhdl-comment-only-line-offset)
- -1000 ;jam it against the left side
+ -1000 ;jam it against the left side
)))))
(defun vhdl-lineup-statement-cont (langelem)
@@ -7462,35 +7620,29 @@ end of line, do nothing in comments and strings."
(setq end (point-marker))
;; have no space before and one space after `,' and ';'
(goto-char beg)
- (while (re-search-forward "\\(--.*\n\\|\"[^\"\n]*[\"\n]\\)\\|\\(\\s-*\\([,;]\\)\\)" end t)
+ (while (re-search-forward "\\(--.*\n\\|\"[^\"\n]*[\"\n]\\|\'.\'\\)\\|\\(\\s-*\\([,;]\\)\\)" end t)
(if (match-string 1)
(goto-char (match-end 1))
(replace-match "\\3 " nil nil nil 3)))
;; have no space after `('
(goto-char beg)
- (while (re-search-forward "\\(--.*\n\\|\"[^\"\n]*[\"\n]\\)\\|\\((\\)\\s-+" end t)
+ (while (re-search-forward "\\(--.*\n\\|\"[^\"\n]*[\"\n]\\|\'.\'\\)\\|\\((\\)\\s-+" end t)
(if (match-string 1)
(goto-char (match-end 1))
(replace-match "\\2")))
;; have no space before `)'
(goto-char beg)
- (while (re-search-forward "\\(--.*\n\\|\"[^\"\n]*[\"\n]\\|^\\s-+\\)\\|\\s-+\\()\\)" end t)
+ (while (re-search-forward "\\(--.*\n\\|\"[^\"\n]*[\"\n]\\|\'.\'\\|^\\s-+\\)\\|\\s-+\\()\\)" end t)
(if (match-string 1)
(goto-char (match-end 1))
(replace-match "\\2")))
;; surround operator symbols by one space
(goto-char beg)
- (while (re-search-forward "\\(--.*\n\\|\"[^\"\n]*[\"\n]\\)\\|\\(\\([^/:<>=]\\)\\(:\\|=\\|<\\|>\\|:=\\|<=\\|>=\\|=>\\|/=\\)\\([^=>]\\|$\\)\\)" end t)
+ (while (re-search-forward "\\(--.*\n\\|\"[^\"\n]*[\"\n]\\|\'.\'\\)\\|\\(\\([^/:<>=]\\)\\(:\\|=\\|<\\|>\\|:=\\|<=\\|>=\\|=>\\|/=\\)\\([^=>]\\|$\\)\\)" end t)
(if (match-string 1)
(goto-char (match-end 1))
- (save-excursion
- (goto-char (match-beginning 4))
- (unless (eq (preceding-char) ?\ )
- (insert " "))
- (goto-char (match-end 4))
- (unless (eq (following-char) ?\ )
- (insert " ")))
- (goto-char (match-end 4))))
+ (replace-match "\\3 \\4 \\5")
+ (goto-char (match-end 2))))
;; eliminate multiple spaces and spaces at end of line
(goto-char beg)
(while (or (and (looking-at "--.*\n") (re-search-forward "--.*\n" end t))
@@ -7504,7 +7656,8 @@ end of line, do nothing in comments and strings."
(progn (replace-match " " nil nil) t))
(and (looking-at "\\s-+") (re-search-forward "\\s-+" end t)
(progn (replace-match " " nil nil) t))
- (re-search-forward "[^ \t-]+" end t))))
+; (re-search-forward "[^ \t-]+" end t))))
+ (re-search-forward "[^ \t\"-]+" end t))))
(unless no-message (message "Fixing up whitespace...done")))
(defun vhdl-fixup-whitespace-buffer ()
@@ -7622,7 +7775,7 @@ buffer."
(message "Updating sensitivity lists...")
(while (re-search-forward "^\\s-*\\(\\w+[ \t\n]*:[ \t\n]*\\)?process\\>" nil t)
(goto-char (match-beginning 0))
- (condition-case nil (vhdl-update-sensitivity-list) (error)))
+ (condition-case nil (vhdl-update-sensitivity-list) (error "")))
(message "Updating sensitivity lists...done"))))
(defun vhdl-update-sensitivity-list ()
@@ -7666,8 +7819,10 @@ buffer."
((re-search-forward "^\\s-*case\\>" proc-end t)
(re-search-forward "\\<is\\>" proc-end t))
;; parameter list of procedure call
- ((re-search-forward "^\\s-*\\w+[ \t\n]*(" proc-end t)
- (progn (backward-char) (forward-sexp) (point)))))
+ ((and (re-search-forward "^\\s-*\\w+[ \t\n]*(" proc-end t)
+ (1- (point)))
+ (progn (backward-char) (forward-sexp)
+ (while (looking-at "(") (forward-sexp)) (point)))))
name read-list sens-list signal-list
sens-beg sens-end beg end margin)
;; scan for signals in old sensitivity list
@@ -7708,10 +7863,16 @@ buffer."
(< (point) (caar tmp-list)))
(setq tmp-list (cdr tmp-list)))
(and tmp-list (< (point) (cdar tmp-list))))))
- (while (vhdl-re-search-forward "[^'\"]\\<\\([a-zA-Z]\\w*\\)\\>" end t)
+ (while (vhdl-re-search-forward "[^'\"]\\<\\([a-zA-Z]\\w*\\)\\>[ \t\n]*\\('\\(\\w+\\)\\|\\(=>\\)\\)?" end t)
(setq name (match-string 1))
- (when (member (downcase name) signal-list)
- (add-to-list 'read-list name)))))
+ (when (and (not (match-string 4)) ; not when formal parameter
+ (not (and (match-string 3) ; not event attribute
+ (not (member (downcase (match-string 3))
+ '("event" "last_event" "transaction")))))
+ (member (downcase name) signal-list))
+ (unless (member-ignore-case name read-list)
+ (setq read-list (cons name read-list))))
+ (goto-char (match-end 1)))))
(setq scan-regions-list (cdr scan-regions-list)))
;; update sensitivity list
(goto-char sens-beg)
@@ -7735,65 +7896,94 @@ buffer."
(defun vhdl-get-visible-signals ()
"Get all signals visible in the current block."
- (save-excursion
- (let (beg end signal-list entity-name file-name)
- ;; search for signals declared in surrounding block declarative parts
- (save-excursion
- (while (and (progn (while (and (setq beg (re-search-backward "^\\s-*\\(\\w+\\s-*:\\s-*block\\|\\(end\\)\\s-+block\\)\\>" nil t))
- (match-string 2))
- (goto-char (match-end 2))
- (vhdl-backward-sexp)
- (re-search-backward "^\\s-*\\w+\\s-*:\\s-*block\\>" nil t))
- beg)
- (setq end (re-search-forward "^\\s-*begin\\>" nil t)))
- ;; scan for all declared signal names
- (goto-char beg)
- (while (re-search-forward "^\\s-*signal\\>" end t)
- (while (and (not (looking-at "[ \t\n]*:"))
- (re-search-forward "[ \t\n,]+\\(\\w+\\)" end t))
- (setq signal-list
- (cons (downcase (match-string 1)) signal-list))))
- (goto-char beg)))
- ;; search for signals declared in architecture declarative part
- (if (not (and (setq beg (re-search-backward "^\\(architecture\\s-+\\w+\\s-+of\\s-+\\(\\w+\\)\\|end\\)\\>" nil t))
+ (let (beg end signal-list entity-name file-name)
+ (vhdl-prepare-search-2
+ ;; get entity name
+ (save-excursion
+ (unless (and (re-search-backward "^\\(architecture\\s-+\\w+\\s-+of\\s-+\\(\\w+\\)\\|end\\)\\>" nil t)
(not (equal "END" (upcase (match-string 1))))
- (setq entity-name (match-string 2))
- (setq end (re-search-forward "^begin\\>" nil t))))
- (error "ERROR: No architecture declarative part found")
- ;; scan for all declared signal names
- (goto-char beg)
- (while (re-search-forward "^\\s-*signal\\>" end t)
- (while (and (not (looking-at "[ \t\n]*:"))
- (re-search-forward "[ \t\n,]+\\(\\w+\\)" end t))
- (setq signal-list
- (cons (downcase (match-string 1)) signal-list)))))
- ;; search for signals declared in entity port clause
- (goto-char (point-min))
- (unless (re-search-forward (concat "^entity\\s-+" entity-name "\\>") nil t)
- (setq file-name
- (concat (vhdl-replace-string vhdl-entity-file-name entity-name)
- "." (file-name-extension (buffer-file-name)))))
- (vhdl-visit-file
- file-name t
- (vhdl-prepare-search-2
- (goto-char (point-min))
- (if (not (re-search-forward (concat "^entity\\s-+" entity-name "\\>") nil t))
- (error "ERROR: Entity \"%s\" not found:\n --> see option `vhdl-entity-file-name'" entity-name)
- (when (setq beg (re-search-forward
- "^\\s-*port[ \t\n]*("
- (save-excursion
- (re-search-forward "^end\\>" nil t)) t))
- (setq end (save-excursion
- (backward-char) (forward-sexp) (point)))
- (vhdl-forward-syntactic-ws)
- (while (< (point) end)
- (while (and (not (looking-at "[ \t\n]*:"))
- (re-search-forward "[ \t\n,]*\\(\\w+\\)" end t))
- (setq signal-list
- (cons (downcase (match-string 1)) signal-list)))
- (re-search-forward ";" end 1)
- (vhdl-forward-syntactic-ws))))))
- signal-list)))
+ (setq entity-name (match-string 2)))
+ (error "ERROR: Not within an architecture")))
+ ;; search for signals declared in entity port clause
+ (save-excursion
+ (goto-char (point-min))
+ (unless (re-search-forward (concat "^entity\\s-+" entity-name "\\>") nil t)
+ (setq file-name
+ (concat (vhdl-replace-string vhdl-entity-file-name entity-name t)
+ "." (file-name-extension (buffer-file-name)))))
+ (vhdl-visit-file
+ file-name t
+ (vhdl-prepare-search-2
+ (goto-char (point-min))
+ (if (not (re-search-forward (concat "^entity\\s-+" entity-name "\\>") nil t))
+ (error "ERROR: Entity \"%s\" not found:\n --> see option `vhdl-entity-file-name'" entity-name)
+ (when (setq beg (re-search-forward
+ "^\\s-*port[ \t\n]*("
+ (save-excursion
+ (re-search-forward "^end\\>" nil t)) t))
+ (setq end (save-excursion
+ (backward-char) (forward-sexp) (point)))
+ (vhdl-forward-syntactic-ws)
+ (while (< (point) end)
+ (when (looking-at "signal[ \t\n]+")
+ (goto-char (match-end 0)))
+ (while (looking-at "\\(\\w+\\)[ \t\n,]+")
+ (setq signal-list
+ (cons (downcase (match-string 1)) signal-list))
+ (goto-char (match-end 0))
+ (vhdl-forward-syntactic-ws))
+ (re-search-forward ";" end 1)
+ (vhdl-forward-syntactic-ws)))))))
+ ;; search for signals declared in architecture declarative part
+ (save-excursion
+ (if (not (and (setq beg (re-search-backward "^\\(architecture\\s-+\\w+\\s-+of\\s-+\\(\\w+\\)\\|end\\)\\>" nil t))
+ (not (equal "END" (upcase (match-string 1))))
+ (setq end (re-search-forward "^begin\\>" nil t))))
+ (error "ERROR: No architecture declarative part found")
+ ;; scan for all declared signal and alias names
+ (goto-char beg)
+ (while (re-search-forward "^\\s-*\\(\\(signal\\)\\|alias\\)\\>" end t)
+ (when (= 0 (nth 0 (parse-partial-sexp beg (point))))
+ (if (match-string 2)
+ ;; scan signal name
+ (while (looking-at "[ \t\n,]+\\(\\w+\\)")
+ (setq signal-list
+ (cons (downcase (match-string 1)) signal-list))
+ (goto-char (match-end 0)))
+ ;; scan alias name, check is alias of (declared) signal
+ (when (and (looking-at "[ \t\n]+\\(\\w+\\)[^;]*\\<is[ \t\n]+\\(\\w+\\)")
+ (member (downcase (match-string 2)) signal-list))
+ (setq signal-list
+ (cons (downcase (match-string 1)) signal-list))
+ (goto-char (match-end 0))))
+ (setq beg (point))))))
+ ;; search for signals declared in surrounding block declarative parts
+ (save-excursion
+ (while (and (progn (while (and (setq beg (re-search-backward "^\\s-*\\(\\w+\\s-*:\\s-*block\\|\\(end\\)\\s-+block\\)\\>" nil t))
+ (match-string 2))
+ (goto-char (match-end 2))
+ (vhdl-backward-sexp)
+ (re-search-backward "^\\s-*\\w+\\s-*:\\s-*block\\>" nil t))
+ beg)
+ (setq end (re-search-forward "^\\s-*begin\\>" nil t)))
+ ;; scan for all declared signal names
+ (goto-char beg)
+ (while (re-search-forward "^\\s-*\\(\\(signal\\)\\|alias\\)\\>" end t)
+ (when (= 0 (nth 0 (parse-partial-sexp beg (point))))
+ (if (match-string 2)
+ ;; scan signal name
+ (while (looking-at "[ \t\n,]+\\(\\w+\\)")
+ (setq signal-list
+ (cons (downcase (match-string 1)) signal-list))
+ (goto-char (match-end 0)))
+ ;; scan alias name, check is alias of (declared) signal
+ (when (and (looking-at "[ \t\n]+\\(\\w+\\)[^;]*\\<is[ \t\n]+\\(\\w+\\)")
+ (member (downcase (match-string 2)) signal-list))
+ (setq signal-list
+ (cons (downcase (match-string 1)) signal-list))
+ (goto-char (match-end 0))))))
+ (goto-char beg)))
+ signal-list)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Generic/port clause fixing
@@ -9615,11 +9805,14 @@ specification, if not already there."
(match-string 2))))
(equal (downcase library) "work"))
(vhdl-insert-keyword "LIBRARY ")
- (insert library ";\n")
- (indent-to margin))
- (vhdl-insert-keyword "USE ")
- (insert library "." package)
- (vhdl-insert-keyword ".ALL;"))))
+ (insert library ";")
+ (when package
+ (insert "\n")
+ (indent-to margin)))
+ (when package
+ (vhdl-insert-keyword "USE ")
+ (insert library "." package)
+ (vhdl-insert-keyword ".ALL;")))))
(defun vhdl-template-package-math-complex ()
"Insert specification of `math_complex' package."
@@ -10318,7 +10511,10 @@ else insert tab (used for word completion in VHDL minibuffer)."
(save-match-data
(save-excursion
(goto-char (match-end 5))
- (forward-word 1) (forward-sexp)
+ (forward-word 1)
+ (vhdl-forward-syntactic-ws)
+ (when (looking-at "(")
+ (forward-sexp))
(re-search-forward "\\<is\\>\\|\\(;\\)" nil t))
(match-string 1)))
;; not consider configuration specifications
@@ -10678,12 +10874,14 @@ but not if inside a comment or quote)."
(vhdl-current-line) string)))
nil))
-(defun vhdl-replace-string (regexp-cons string)
+(defun vhdl-replace-string (regexp-cons string &optional adjust-case)
"Replace STRING from car of REGEXP-CONS to cdr of REGEXP-CONS."
(vhdl-prepare-search-1
(if (string-match (car regexp-cons) string)
- (funcall vhdl-file-name-case
- (replace-match (cdr regexp-cons) t nil string))
+ (if adjust-case
+ (funcall vhdl-file-name-case
+ (replace-match (cdr regexp-cons) t nil string))
+ (replace-match (cdr regexp-cons) t nil string))
string)))
(defun vhdl-parse-group-comment ()
@@ -10692,6 +10890,7 @@ but not if inside a comment or quote)."
string)
(vhdl-forward-comment (point-max))
(setq string (buffer-substring-no-properties start (point)))
+ (vhdl-forward-syntactic-ws)
;; strip off leading blanks and first newline
(while (string-match "^\\(\\s-+\\)" string)
(setq string (concat (substring string 0 (match-beginning 1))
@@ -10717,11 +10916,13 @@ with INDENT."
"Indicates whether a port has been flattened.")
(defun vhdl-port-flatten (&optional as-alist)
- "Flatten port list so that only one generic/port exists per line."
+ "Flatten port list so that only one generic/port exists per line.
+This operation is performed on an internally stored port and is only
+reflected in a subsequent paste operation."
(interactive)
(if (not vhdl-port-list)
(error "ERROR: No port has been read")
- (message "Flattening port...")
+ (message "Flattening port for next paste...")
(let ((new-vhdl-port-list (list (car vhdl-port-list)))
(old-vhdl-port-list (cdr vhdl-port-list))
old-port-list new-port-list old-port new-port names)
@@ -10744,17 +10945,19 @@ with INDENT."
(setq vhdl-port-list
(append new-vhdl-port-list (list old-vhdl-port-list))
vhdl-port-flattened t)
- (message "Flattening port...done"))))
+ (message "Flattening port for next paste...done"))))
(defvar vhdl-port-reversed-direction nil
"Indicates whether port directions are reversed.")
(defun vhdl-port-reverse-direction ()
- "Reverse direction for all ports (useful in testbenches)."
+ "Reverse direction for all ports (useful in testbenches).
+This operation is performed on an internally stored port and is only
+reflected in a subsequent paste operation."
(interactive)
(if (not vhdl-port-list)
(error "ERROR: No port has been read")
- (message "Reversing port directions...")
+ (message "Reversing port directions for next paste...")
(let ((port-list (nth 2 vhdl-port-list))
port-dir-car port-dir)
;; traverse port list and reverse directions
@@ -10767,7 +10970,7 @@ with INDENT."
(t port-dir)))
(setq port-list (cdr port-list)))
(setq vhdl-port-reversed-direction (not vhdl-port-reversed-direction))
- (message "Reversing port directions...done"))))
+ (message "Reversing port directions for next paste...done"))))
(defun vhdl-port-copy ()
"Get generic and port information from an entity or component declaration."
@@ -10798,8 +11001,8 @@ with INDENT."
(setq group-comment (vhdl-parse-group-comment))
(setq end-of-list (vhdl-parse-string ")[ \t\n]*;[ \t\n]*" t))
(while (not end-of-list)
- ;; parse names
- (vhdl-parse-string "\\(\\w+\\)[ \t\n]*")
+ ;; parse names (accept extended identifiers)
+ (vhdl-parse-string "\\(\\w+\\|\\\\[^\\]+\\\\\\)[ \t\n]*")
(setq names (list (match-string-no-properties 1)))
(while (vhdl-parse-string ",[ \t\n]*\\(\\w+\\)[ \t\n]*" t)
(setq names
@@ -10865,7 +11068,7 @@ with INDENT."
(while (not end-of-list)
;; parse object
(setq object
- (and (vhdl-parse-string "\\(signal\\|quantity\\|terminal\\)[ \t\n]*" t)
+ (and (vhdl-parse-string "\\<\\(signal\\|quantity\\|terminal\\)\\>[ \t\n]*" t)
(match-string-no-properties 1)))
;; parse names (accept extended identifiers)
(vhdl-parse-string "\\(\\w+\\|\\\\[^\\]+\\\\\\)[ \t\n]*")
@@ -10875,7 +11078,7 @@ with INDENT."
;; parse direction
(vhdl-parse-string ":[ \t\n]*")
(setq direct
- (and (vhdl-parse-string "\\(in\\|out\\|inout\\|buffer\\|linkage\\)[ \t\n]+" t)
+ (and (vhdl-parse-string "\\<\\(in\\|out\\|inout\\|buffer\\|linkage\\)\\>[ \t\n]+" t)
(match-string-no-properties 1)))
;; parse type
(vhdl-parse-string "\\([^();\n]+\\)")
@@ -11092,7 +11295,10 @@ with INDENT."
(car (nth 0 (car generic-list)))
(or (nth 2 (car generic-list)) " ")))
(setq generic-list (cdr generic-list))
- (insert (if generic-list ", " ")")))
+ (insert (if generic-list ", " ")"))
+ (when (and (not generic-list) secondary
+ (null (nth 2 vhdl-port-list)))
+ (insert ";")))
(unless vhdl-argument-list-indent
(insert "\n") (indent-to (+ margin vhdl-basic-offset)))
(setq list-margin (current-column))
@@ -11108,6 +11314,9 @@ with INDENT."
(or (nth 2 generic) "")))
(setq generic-list (cdr generic-list))
(insert (if generic-list "," ")"))
+ (when (and (not generic-list) secondary
+ (null (nth 2 vhdl-port-list)))
+ (insert ";"))
;; paste comment
(when (or vhdl-include-type-comments
(and vhdl-include-port-comments (nth 3 generic)))
@@ -11135,7 +11344,7 @@ with INDENT."
(insert (vhdl-replace-string vhdl-actual-port-name
(car (nth 0 (car port-list)))))
(setq port-list (cdr port-list))
- (insert (if port-list ", " ");")))
+ (insert (if port-list ", " ")")))
(unless vhdl-argument-list-indent
(insert "\n") (indent-to (+ margin vhdl-basic-offset)))
(setq list-margin (current-column))
@@ -11215,6 +11424,8 @@ with INDENT."
(when (nth 2 vhdl-port-list)
(insert "\n") (indent-to (+ margin vhdl-basic-offset))
(vhdl-port-paste-port-map))
+ (unless (or (nth 1 vhdl-port-list) (nth 2 vhdl-port-list))
+ (insert ";"))
(message "Pasting port as instantiation \"%s\"...done" name))
(setq vhdl-port-list orig-vhdl-port-list))))
@@ -11356,7 +11567,9 @@ with INDENT."
;; open entity file
(unless (eq vhdl-testbench-create-files 'none)
(setq ent-file-name
- (concat ent-name "." (file-name-extension (buffer-file-name))))
+ (concat (vhdl-replace-string vhdl-testbench-entity-file-name
+ ent-name t)
+ "." (file-name-extension (buffer-file-name))))
(if (file-exists-p ent-file-name)
(if (y-or-n-p
(concat "File \"" ent-file-name "\" exists; overwrite? "))
@@ -11403,8 +11616,9 @@ with INDENT."
(insert "\n")
(setq ent-buffer (current-buffer))
(setq arch-file-name
- (concat ent-name "_" arch-name "."
- (file-name-extension (buffer-file-name))))
+ (concat (vhdl-replace-string vhdl-testbench-architecture-file-name
+ (concat ent-name " " arch-name) t)
+ "." (file-name-extension (buffer-file-name))))
(when (and (file-exists-p arch-file-name)
(not (y-or-n-p (concat "File \"" arch-file-name
"\" exists; overwrite? "))))
@@ -11709,7 +11923,7 @@ with INDENT."
(vhdl-paste-group-comment (nth 5 vhdl-subprog-list) list-margin))
;; paste return type
(insert "return " (nth 3 vhdl-subprog-list))
- (if (eq kind 'decl) (insert ";") (vhdl-insert-keyword " is"))
+ (if (eq kind 'decl) (insert ";") (vhdl-insert-keyword " is"))
(when (and vhdl-include-port-comments (nth 4 vhdl-subprog-list))
(vhdl-comment-insert-inline (nth 4 vhdl-subprog-list) t)))
;; align parameter list
@@ -11933,7 +12147,9 @@ options vhdl-upper-case-{keywords,types,attributes,enum-values}."
"Return the line number of the line containing point."
(save-restriction
(widen)
- (1+ (count-lines (point-min) (line-beginning-position)))))
+ (save-excursion
+ (beginning-of-line)
+ (1+ (count-lines 1 (point))))))
(defun vhdl-line-kill-entire (&optional arg)
"Delete entire line."
@@ -12060,7 +12276,8 @@ File statistics: \"%s\"\n\
# statements : %5d\n\
# code lines : %5d\n\
# total lines : %5d\n\ "
- (buffer-file-name) no-stats no-code-lines no-lines)))
+ (buffer-file-name) no-stats no-code-lines no-lines)
+ (unless vhdl-emacs-21 (vhdl-show-messages))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Help functions
@@ -12103,6 +12320,12 @@ File statistics: \"%s\"\n\
(vhdl-warning (format "Unknown VHDL project: \"%s\"" name))))
(vhdl-speedbar-update-current-project))
+(defun vhdl-set-default-project ()
+ "Set current project as default on startup."
+ (interactive)
+ (customize-set-variable 'vhdl-project vhdl-project)
+ (customize-save-customized))
+
(defun vhdl-toggle-project (name token indent)
"Set current project to NAME or unset if NAME is current project."
(vhdl-set-project (if (equal name vhdl-project) "" name)))
@@ -12160,7 +12383,7 @@ File statistics: \"%s\"\n\
(load-file file-name)
(when (/= (length (aget vhdl-project-alist vhdl-project t)) 10)
(adelete 'vhdl-project-alist vhdl-project)
- (error))
+ (error ""))
(when not-make-current
(setq vhdl-project current-project))
(vhdl-update-mode-menu)
@@ -12368,8 +12591,8 @@ File statistics: \"%s\"\n\
(save-match-data
(goto-char (match-end 1))
;; move to next item
- (if (looking-at "\\s-*,")
- (goto-char (match-end 0))
+ (if (looking-at "\\(\\s-*,\\)")
+ (goto-char (match-end 1))
(end-of-line) t))))
(error t)))
@@ -12417,7 +12640,7 @@ This does highlighting of keywords and standard identifiers.")
"postponed\\|process\\|"
(when (vhdl-standard-p 'ams) "procedural\\|")
"with\\|while"
- "\\)\\>\\|\\w+\\s-*\\(([^\n]*)\\)*\\s-*<=\\)")
+ "\\)\\>\\|\\w+\\s-*\\(([^\n]*)\\|\\.\\w+\\)*\\s-*<=\\)")
1 'font-lock-function-name-face)
;; highlight label and component name of component instantiations
@@ -12484,7 +12707,7 @@ This does highlighting of keywords and standard identifiers.")
(list
(concat
"^\\s-*attribute\\s-+\\(\\w+\\)")
- 1 'vhdl-attribute)
+ 1 'vhdl-font-lock-attribute-face)
;; highlight type/nature name in (sub)type/(sub)nature declarations
(list
@@ -12516,7 +12739,7 @@ This does highlighting of keywords and standard identifiers.")
(while (= (preceding-char) ?\)) (backward-sexp))
(skip-syntax-backward "w_")
(skip-syntax-backward " ")
- (when (memq (preceding-char) '(?n ?N))
+ (when (memq (preceding-char) '(?n ?N ?|))
(goto-char (point-max))))
(goto-char (match-end 1)) (1 font-lock-variable-name-face)))
@@ -12542,39 +12765,40 @@ This does highlighting of additional reserved words.")
(defconst vhdl-font-lock-keywords-5
;; background highlight translate-off regions
- '((vhdl-match-translate-off (0 vhdl-translate-off-face append)))
+ '((vhdl-match-translate-off (0 vhdl-font-lock-translate-off-face append)))
"For consideration as a value of `vhdl-font-lock-keywords'.
This does background highlighting of translate-off regions.")
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Font and color definitions
-(defvar vhdl-prompt-face 'vhdl-prompt
+(defvar vhdl-font-lock-prompt-face 'vhdl-font-lock-prompt-face
"Face name to use for prompts.")
-(defvar vhdl-attribute-face 'vhdl-attribute
+(defvar vhdl-font-lock-attribute-face 'vhdl-font-lock-attribute-face
"Face name to use for standardized attributes.")
-(defvar vhdl-enumvalue-face 'vhdl-enumvalue
+(defvar vhdl-font-lock-enumvalue-face 'vhdl-font-lock-enumvalue-face
"Face name to use for standardized enumeration values.")
-(defvar vhdl-function-face 'vhdl-function
+(defvar vhdl-font-lock-function-face 'vhdl-font-lock-function-face
"Face name to use for standardized functions and packages.")
-(defvar vhdl-directive-face 'vhdl-directive
+(defvar vhdl-font-lock-directive-face 'vhdl-font-lock-directive-face
"Face name to use for directives.")
-(defvar vhdl-reserved-words-face 'vhdl-reserved-words
+(defvar vhdl-font-lock-reserved-words-face 'vhdl-font-lock-reserved-words-face
"Face name to use for additional reserved words.")
-(defvar vhdl-translate-off-face 'vhdl-translate-off
+(defvar vhdl-font-lock-translate-off-face 'vhdl-font-lock-translate-off-face
"Face name to use for translate-off regions.")
;; face names to use for words with special syntax.
(let ((syntax-alist vhdl-special-syntax-alist)
name)
(while syntax-alist
- (setq name (vhdl-function-name "vhdl" (nth 0 (car syntax-alist))))
+ (setq name (vhdl-function-name
+ "vhdl-font-lock" (nth 0 (car syntax-alist)) "face"))
(eval `(defvar ,name ',name
,(concat "Face name to use for "
(nth 0 (car syntax-alist)) ".")))
@@ -12598,7 +12822,7 @@ This does background highlighting of translate-off regions.")
(custom-add-to-group
'vhdl-highlight-faces 'font-lock-variable-name-face 'custom-face)
-(defface vhdl-prompt
+(defface vhdl-font-lock-prompt-face
'((((min-colors 88) (class color) (background light))
(:foreground "Red1" :bold t))
(((class color) (background light)) (:foreground "Red" :bold t))
@@ -12607,50 +12831,40 @@ This does background highlighting of translate-off regions.")
"Font lock mode face used to highlight prompts."
:group 'vhdl-highlight-faces
:group 'font-lock-highlighting-faces)
-;; backward-compatibility alias
-(put 'vhdl-font-lock-prompt-face 'face-alias 'vhdl-prompt)
-(defface vhdl-attribute
+(defface vhdl-font-lock-attribute-face
'((((class color) (background light)) (:foreground "Orchid"))
(((class color) (background dark)) (:foreground "LightSteelBlue"))
(t (:italic t :bold t)))
"Font lock mode face used to highlight standardized attributes."
:group 'vhdl-highlight-faces
:group 'font-lock-highlighting-faces)
-;; backward-compatibility alias
-(put 'vhdl-font-lock-attribute-face 'face-alias 'vhdl-attribute)
-(defface vhdl-enumvalue
+(defface vhdl-font-lock-enumvalue-face
'((((class color) (background light)) (:foreground "SaddleBrown"))
(((class color) (background dark)) (:foreground "BurlyWood"))
(t (:italic t :bold t)))
"Font lock mode face used to highlight standardized enumeration values."
:group 'vhdl-highlight-faces
:group 'font-lock-highlighting-faces)
-;; backward-compatibility alias
-(put 'vhdl-font-lock-enumvalue-face 'face-alias 'vhdl-enumvalue)
-(defface vhdl-function
+(defface vhdl-font-lock-function-face
'((((class color) (background light)) (:foreground "Cyan4"))
(((class color) (background dark)) (:foreground "Orchid1"))
(t (:italic t :bold t)))
"Font lock mode face used to highlight standardized functions and packages."
:group 'vhdl-highlight-faces
:group 'font-lock-highlighting-faces)
-;; backward-compatibility alias
-(put 'vhdl-font-lock-function-face 'face-alias 'vhdl-function)
-(defface vhdl-directive
+(defface vhdl-font-lock-directive-face
'((((class color) (background light)) (:foreground "CadetBlue"))
(((class color) (background dark)) (:foreground "Aquamarine"))
(t (:italic t :bold t)))
"Font lock mode face used to highlight directives."
:group 'vhdl-highlight-faces
:group 'font-lock-highlighting-faces)
-;; backward-compatibility alias
-(put 'vhdl-font-lock-directive-face 'face-alias 'vhdl-directive)
-(defface vhdl-reserved-word
+(defface vhdl-font-lock-reserved-words-face
'((((class color) (background light)) (:foreground "Orange" :bold t))
(((min-colors 88) (class color) (background dark))
(:foreground "Yellow1" :bold t))
@@ -12659,23 +12873,20 @@ This does background highlighting of translate-off regions.")
"Font lock mode face used to highlight additional reserved words."
:group 'vhdl-highlight-faces
:group 'font-lock-highlighting-faces)
-;; backward-compatibility alias
-(put 'vhdl-font-lock-reserved-words-face 'face-alias 'vhdl-reserved-word)
-(defface vhdl-translate-off
+(defface vhdl-font-lock-translate-off-face
'((((class color) (background light)) (:background "LightGray"))
(((class color) (background dark)) (:background "DimGray"))
(t ()))
"Font lock mode face used to background highlight translate-off regions."
:group 'vhdl-highlight-faces
:group 'font-lock-highlighting-faces)
-;; backward-compatibility alias
-(put 'vhdl-font-lock-translate-off-face 'face-alias 'vhdl-translate-off)
;; font lock mode faces used to highlight words with special syntax.
(let ((syntax-alist vhdl-special-syntax-alist))
(while syntax-alist
- (eval `(defface ,(vhdl-function-name "vhdl" (caar syntax-alist))
+ (eval `(defface ,(vhdl-function-name
+ "vhdl-font-lock" (caar syntax-alist) "face")
'((((class color) (background light))
(:foreground ,(nth 2 (car syntax-alist))))
(((class color) (background dark))
@@ -12692,23 +12903,28 @@ This does background highlighting of translate-off regions.")
(defun vhdl-font-lock-init ()
"Initialize fontification."
- ;; highlight template prompts and directives
+ ;; highlight template prompts and directives
(setq vhdl-font-lock-keywords-0
(list (list (concat "\\(^\\|[ \t(.']\\)\\(<"
vhdl-template-prompt-syntax ">\\)")
- 2 'vhdl-prompt t)
+ 2 'vhdl-font-lock-prompt-face t)
(list (concat "--\\s-*"
vhdl-directive-keywords-regexp "\\s-+\\(.*\\)$")
- 2 'vhdl-directive t)))
+ 2 'vhdl-font-lock-directive-face t)
+ ;; highlight c-preprocessor directives
+ (list "^#[ \t]*\\(\\w+\\)\\([ \t]+\\(\\w+\\)\\)?"
+ '(1 font-lock-builtin-face)
+ '(3 font-lock-variable-name-face nil t))))
;; highlight keywords and standardized types, attributes, enumeration
;; values, and subprograms
(setq vhdl-font-lock-keywords-1
(list
- (list (concat "'" vhdl-attributes-regexp) 1 'vhdl-attribute)
+ (list (concat "'" vhdl-attributes-regexp)
+ 1 'vhdl-font-lock-attribute-face)
(list vhdl-types-regexp 1 'font-lock-type-face)
- (list vhdl-functions-regexp 1 'vhdl-function)
- (list vhdl-packages-regexp 1 'vhdl-function)
- (list vhdl-enum-values-regexp 1 'vhdl-enumvalue)
+ (list vhdl-functions-regexp 1 'vhdl-font-lock-function-face)
+ (list vhdl-packages-regexp 1 'vhdl-font-lock-function-face)
+ (list vhdl-enum-values-regexp 1 'vhdl-font-lock-enumvalue-face)
(list vhdl-keywords-regexp 1 'font-lock-keyword-face)))
;; highlight words with special syntax.
(setq vhdl-font-lock-keywords-3
@@ -12719,13 +12935,14 @@ This does background highlighting of translate-off regions.")
(cons
(cons (concat "\\<\\(" (nth 1 (car syntax-alist)) "\\)\\>")
(vhdl-function-name
- "vhdl" (nth 0 (car syntax-alist))))
+ "vhdl-font-lock" (nth 0 (car syntax-alist)) "face"))
keywords))
(setq syntax-alist (cdr syntax-alist)))
keywords))
;; highlight additional reserved words
(setq vhdl-font-lock-keywords-4
- (list (list vhdl-reserved-words-regexp 1 'vhdl-reserved-word)))
+ (list (list vhdl-reserved-words-regexp 1
+ 'vhdl-font-lock-reserved-words-face)))
;; highlight everything together
(setq vhdl-font-lock-keywords
(append
@@ -12750,7 +12967,7 @@ This does background highlighting of translate-off regions.")
'(font-lock-syntactic-keywords . vhdl-font-lock-syntactic-keywords)))
(when (fboundp 'font-lock-unset-defaults)
(font-lock-unset-defaults)) ; not implemented in XEmacs
- (font-lock-set-defaults) ;What for? --Stef
+ (font-lock-set-defaults)
(font-lock-mode nil)
(font-lock-mode t))
@@ -12763,12 +12980,18 @@ This does background highlighting of translate-off regions.")
(unless (or (not vhdl-print-customize-faces)
ps-print-color-p)
(set (make-local-variable 'ps-bold-faces)
- '(font-lock-keyword-face font-lock-type-face
- vhdl-attribute vhdl-enumvalue vhdl-directive))
+ '(font-lock-keyword-face
+ font-lock-type-face
+ vhdl-font-lock-attribute-face
+ vhdl-font-lock-enumvalue-face
+ vhdl-font-lock-directive-face))
(set (make-local-variable 'ps-italic-faces)
'(font-lock-comment-face
- font-lock-function-name-face font-lock-type-face
- vhdl-attribute vhdl-enumvalue vhdl-directive))
+ font-lock-function-name-face
+ font-lock-type-face
+ vhdl-font-lock-attribute-face
+ vhdl-font-lock-enumvalue-face
+ vhdl-font-lock-directive-face))
(set (make-local-variable 'ps-underlined-faces)
'(font-lock-string-face))
(setq ps-always-build-face-reference t))
@@ -12812,9 +13035,9 @@ project/directory.")
;; (ent-key ent-name ent-file ent-line
;; (arch-key arch-name arch-file arch-line
;; (inst-key inst-name inst-file inst-line inst-comp-name inst-ent-key
-;; inst-arch-key inst-conf-key inst-lib-key)
-;; (lib-name pack-key))
-;; (lib-name pack-key))
+;; inst-arch-key inst-conf-key inst-lib-key inst-path)
+;; (lib-name pack-key))
+;; mra-key (lib-name pack-key))
(defvar vhdl-config-alist nil
"Cache with configurations for each project/directory.")
@@ -12822,7 +13045,7 @@ project/directory.")
;; (cache-key
;; (conf-key conf-name conf-file conf-line ent-key arch-key
;; (inst-key inst-comp-name inst-ent-key inst-arch-key
-;; inst-conf-key inst-lib-key)
+;; inst-conf-key inst-lib-key)
;; (lib-name pack-key)))
(defvar vhdl-package-alist nil
@@ -12847,7 +13070,7 @@ project/directory.")
;; structure: (parenthesised expression means list of such entries)
;; (cache-key
;; (file-name (ent-list) (arch-list) (arch-ent-list) (conf-list)
-;; (pack-list) (pack-body-list) (inst-list) (inst-ent-list))
+;; (pack-list) (pack-body-list) (inst-list) (inst-ent-list))
(defvar vhdl-directory-alist nil
"Cache with source directories for each project.")
@@ -12980,7 +13203,6 @@ hierarchy otherwise.")
(let* ((ent-name (match-string-no-properties 1))
(ent-key (downcase ent-name))
(ent-entry (aget ent-alist ent-key t))
- (arch-alist (nth 3 ent-entry))
(lib-alist (vhdl-scan-context-clause)))
(if (nth 1 ent-entry)
(vhdl-warning-when-idle
@@ -12990,10 +13212,11 @@ hierarchy otherwise.")
(setq ent-list (cons ent-key ent-list))
(aput 'ent-alist ent-key
(list ent-name file-name (vhdl-current-line)
- arch-alist lib-alist)))))
+ (nth 3 ent-entry) (nth 4 ent-entry)
+ lib-alist)))))
;; scan for architectures
(goto-char (point-min))
- (while (re-search-forward "^[ \t]*architecture[ \t\n]+\\(\\w+\\)[ \t\n]+of[ \t\n]+\\(\\w+\\)[ \t\n]+is\\>" nil t)
+ (while (re-search-forward "^[ \t]*architecture[ \t\n]+\\(\\w+\\)[ \t\n]+of[ \t\n]+\\(\\w+\\)[ \t\n]+is\\>" nil t)
(let* ((arch-name (match-string-no-properties 1))
(arch-key (downcase arch-name))
(ent-name (match-string-no-properties 2))
@@ -13016,7 +13239,7 @@ hierarchy otherwise.")
(list (or (nth 0 ent-entry) ent-name)
(nth 1 ent-entry) (nth 2 ent-entry)
(vhdl-sort-alist arch-alist)
- (nth 4 ent-entry))))))
+ arch-key (nth 5 ent-entry))))))
;; scan for configurations
(goto-char (point-min))
(while (re-search-forward "^[ \t]*configuration[ \t\n]+\\(\\w+\\)[ \t\n]+of[ \t\n]+\\(\\w+\\)[ \t\n]+is\\>" nil t)
@@ -13133,47 +13356,61 @@ hierarchy otherwise.")
(beg-of-unit (point))
(end-of-unit (vhdl-get-end-of-unit))
(inst-no 0)
- inst-alist)
+ inst-alist inst-path)
;; scan for contained instantiations
(while (and (re-search-forward
(concat "^[ \t]*\\(\\w+\\)[ \t\n]*:[ \t\n]*\\("
"\\(\\w+\\)[ \t\n]+\\(--[^\n]*\n[ \t\n]*\\)*\\(generic\\|port\\)[ \t\n]+map\\>\\|"
"component[ \t\n]+\\(\\w+\\)\\|"
- "\\(\\(entity\\)\\|configuration\\)[ \t\n]+\\(\\(\\w+\\)\\.\\)?\\(\\w+\\)\\([ \t\n]*(\\(\\w+\\))\\)?\\)") end-of-unit t)
+ "\\(\\(entity\\)\\|configuration\\)[ \t\n]+\\(\\(\\w+\\)\\.\\)?\\(\\w+\\)\\([ \t\n]*(\\(\\w+\\))\\)?\\|"
+ "\\(\\(for\\|if\\)\\>[^;:]+\\<generate\\>\\|block\\>\\)\\)\\|"
+ "\\(^[ \t]*end[ \t\n]+\\(generate\\|block\\)\\>\\)") end-of-unit t)
(or (not limit-hier-inst-no)
(<= (setq inst-no (1+ inst-no))
limit-hier-inst-no)))
- (let* ((inst-name (match-string-no-properties 1))
- (inst-key (downcase inst-name))
- (inst-comp-name
- (or (match-string-no-properties 3)
- (match-string-no-properties 6)))
- (inst-ent-key
- (or (and (match-string 8)
- (vhdl-match-string-downcase 11))
- (and inst-comp-name
- (downcase inst-comp-name))))
- (inst-arch-key (vhdl-match-string-downcase 13))
- (inst-conf-key
- (and (not (match-string 8))
- (vhdl-match-string-downcase 11)))
- (inst-lib-key (vhdl-match-string-downcase 10)))
- (goto-char (match-end 1))
- (setq inst-list (cons inst-key inst-list)
- inst-ent-list (cons inst-ent-key inst-ent-list))
- (setq inst-alist
- (append
- inst-alist
- (list (list inst-key inst-name file-name
- (vhdl-current-line) inst-comp-name
- inst-ent-key inst-arch-key
- inst-conf-key inst-lib-key))))))
+ (cond
+ ;; block/generate beginning found
+ ((match-string 14)
+ (setq inst-path
+ (cons (match-string-no-properties 1) inst-path)))
+ ;; block/generate end found
+ ((match-string 16)
+ (setq inst-path (cdr inst-path)))
+ ;; instantiation found
+ (t
+ (let* ((inst-name (match-string-no-properties 1))
+ (inst-key (downcase inst-name))
+ (inst-comp-name
+ (or (match-string-no-properties 3)
+ (match-string-no-properties 6)))
+ (inst-ent-key
+ (or (and (match-string 8)
+ (vhdl-match-string-downcase 11))
+ (and inst-comp-name
+ (downcase inst-comp-name))))
+ (inst-arch-key (vhdl-match-string-downcase 13))
+ (inst-conf-key
+ (and (not (match-string 8))
+ (vhdl-match-string-downcase 11)))
+ (inst-lib-key (vhdl-match-string-downcase 10)))
+ (goto-char (match-end 1))
+ (setq inst-list (cons inst-key inst-list)
+ inst-ent-list
+ (cons inst-ent-key inst-ent-list))
+ (setq inst-alist
+ (append
+ inst-alist
+ (list (list inst-key inst-name file-name
+ (vhdl-current-line) inst-comp-name
+ inst-ent-key inst-arch-key
+ inst-conf-key inst-lib-key
+ (reverse inst-path)))))))))
;; scan for contained configuration specifications
(goto-char beg-of-unit)
(while (re-search-forward
(concat "^[ \t]*for[ \t\n]+\\(\\w+\\([ \t\n]*,[ \t\n]*\\w+\\)*\\)[ \t\n]*:[ \t\n]*\\(\\w+\\)[ \t\n]+\\(--[^\n]*\n[ \t\n]*\\)*"
"use[ \t\n]+\\(\\(entity\\)\\|configuration\\)[ \t\n]+\\(\\(\\w+\\)\\.\\)?\\(\\w+\\)\\([ \t\n]*(\\(\\w+\\))\\)?") end-of-unit t)
- (let* ((inst-comp-name (match-string-no-properties 3))
+ (let* ((inst-comp-name (match-string-no-properties 3))
(inst-ent-key
(and (match-string 6)
(vhdl-match-string-downcase 9)))
@@ -13217,7 +13454,7 @@ hierarchy otherwise.")
(aput 'ent-alist ent-key
(list (nth 0 ent-entry) (nth 1 ent-entry)
(nth 2 ent-entry) (vhdl-sort-alist arch-alist)
- (nth 4 ent-entry)))
+ (nth 4 ent-entry) (nth 5 ent-entry)))
(when (and limit-hier-inst-no
(> inst-no limit-hier-inst-no))
(message "WARNING: Scan limit (hierarchy: instances per architecture) reached in file:\n \"%s\"" file-name)
@@ -13410,7 +13647,7 @@ of PROJECT."
(if (or (nth 1 entry) arch-alist)
(aput 'ent-alist ent-key
(list (nth 0 entry) (nth 1 entry) (nth 2 entry)
- arch-alist (nth 4 entry)))
+ arch-alist (nth 4 entry) (nth 5 entry)))
(adelete 'ent-alist ent-key)))
(setq arch-list (cdr arch-list)
arch-ent-list (cdr arch-ent-list)))
@@ -13474,6 +13711,7 @@ of PROJECT."
updated))
(setq file-list (cdr file-list)))
(setq vhdl-modified-file-list nil)
+ (vhdl-speedbar-update-current-unit)
(when updated (message "Updating hierarchy...done")))))
;; structure (parenthesised expression means list of such entries)
@@ -13528,17 +13766,18 @@ entity ENT-KEY."
(setq inst-ent-entry (aget ent-alist inst-ent-key t))
;; determine architecture
(setq inst-arch-key
- (or (nth 3 (car tmp-list)) ; from configuration
- (nth 4 inst-conf-entry) ; from subconfiguration
- (nth 6 inst-entry) ; from direct instantiation
+ (or (nth 3 (car tmp-list)) ; from configuration
+ (nth 4 inst-conf-entry) ; from subconfiguration
+ (nth 6 inst-entry) ; from direct instantiation
(nth 4 (aget conf-alist (nth 7 inst-entry)))
- ; from configuration spec.
- (caar (nth 3 inst-ent-entry)))) ; random (simplified MRA)
+ ; from configuration spec.
+ (nth 4 inst-ent-entry) ; MRA
+ (caar (nth 3 inst-ent-entry)))) ; first alphabetically
(setq inst-arch-entry (aget (nth 3 inst-ent-entry) inst-arch-key t))
;; set library
(setq inst-lib-key
- (or (nth 5 (car tmp-list)) ; from configuration
- (nth 8 inst-entry))) ; from direct instantiation
+ (or (nth 5 (car tmp-list)) ; from configuration
+ (nth 8 inst-entry))) ; from direct instantiation
;; gather information for this instance
(setq comp-entry
(list (nth 1 inst-entry)
@@ -13710,7 +13949,7 @@ entity ENT-KEY."
(progn (load-file file-dir-name)
(string< (mapconcat
(lambda (a) (format "%3d" (string-to-number a)))
- (split-string "3.31.14" "\\.") "")
+ (split-string "3.33" "\\.") "")
(mapconcat
(lambda (a) (format "%3d" (string-to-number a)))
(split-string vhdl-cache-version "\\.") "")))
@@ -13770,6 +14009,8 @@ if required."
(define-key vhdl-speedbar-key-map "_" 'vhdl-speedbar-contract-all)
(define-key vhdl-speedbar-key-map "C" 'vhdl-speedbar-port-copy)
(define-key vhdl-speedbar-key-map "P" 'vhdl-speedbar-place-component)
+ (define-key vhdl-speedbar-key-map "F" 'vhdl-speedbar-configuration)
+ (define-key vhdl-speedbar-key-map "A" 'vhdl-speedbar-select-mra)
(define-key vhdl-speedbar-key-map "K" 'vhdl-speedbar-make-design)
(define-key vhdl-speedbar-key-map "R" 'vhdl-speedbar-rescan-hierarchy)
(define-key vhdl-speedbar-key-map "S" 'vhdl-save-caches)
@@ -13811,6 +14052,10 @@ if required."
(vhdl-speedbar-check-unit 'subprogram))]
["Place Component" vhdl-speedbar-place-component
(vhdl-speedbar-check-unit 'entity)]
+ ["Generate Configuration" vhdl-speedbar-configuration
+ (vhdl-speedbar-check-unit 'architecture)]
+ ["Select as MRA" vhdl-speedbar-select-mra
+ (vhdl-speedbar-check-unit 'architecture)]
["Make" vhdl-speedbar-make-design
(save-excursion (beginning-of-line) (looking-at "[0-9]+: *[[<]"))]
["Generate Makefile" vhdl-speedbar-generate-makefile
@@ -13977,7 +14222,7 @@ otherwise use cached data."
'bracket ?+ 'vhdl-speedbar-expand-entity (nth 0 ent-entry)
(nth 1 ent-entry) 'vhdl-speedbar-find-file
(cons (nth 2 ent-entry) (nth 3 ent-entry))
- 'vhdl-speedbar-entity depth)
+ 'vhdl-speedbar-entity-face depth)
(unless (nth 2 ent-entry)
(end-of-line 0) (insert "!") (forward-char 1))
(unless (member (nth 0 ent-entry) ent-inst-list)
@@ -13991,7 +14236,7 @@ otherwise use cached data."
'bracket ?+ 'vhdl-speedbar-expand-config (nth 0 conf-entry)
(nth 1 conf-entry) 'vhdl-speedbar-find-file
(cons (nth 2 conf-entry) (nth 3 conf-entry))
- 'vhdl-speedbar-configuration depth)
+ 'vhdl-speedbar-configuration-face depth)
(setq conf-alist (cdr conf-alist)))
;; insert packages
(when pack-alist (vhdl-speedbar-make-title-line "Packages:" depth))
@@ -14160,7 +14405,8 @@ otherwise use cached data."
(ent-entry (aget ent-alist token t))
(arch-alist (nth 3 ent-entry))
(inst-alist (vhdl-get-instantiations token indent))
- (subpack-alist (nth 4 ent-entry))
+ (subpack-alist (nth 5 ent-entry))
+ (multiple-arch (> (length arch-alist) 1))
arch-entry inst-entry)
(if (not (or arch-alist inst-alist subpack-alist))
(speedbar-change-expand-button-char ??)
@@ -14182,7 +14428,10 @@ otherwise use cached data."
(cons token (nth 0 arch-entry))
(nth 1 arch-entry) 'vhdl-speedbar-find-file
(cons (nth 2 arch-entry) (nth 3 arch-entry))
- 'vhdl-speedbar-architecture (1+ indent))
+ 'vhdl-speedbar-architecture-face (1+ indent))
+ (when (and multiple-arch
+ (equal (nth 0 arch-entry) (nth 4 ent-entry)))
+ (end-of-line 0) (insert " (mra)") (forward-char 1))
(setq arch-alist (cdr arch-alist)))
;; insert instantiations
(when inst-alist
@@ -14365,7 +14614,7 @@ otherwise use cached data."
(cons token (nth 0 comp-entry))
(nth 1 comp-entry) 'vhdl-speedbar-find-file
(cons (nth 2 comp-entry) (nth 3 comp-entry))
- 'vhdl-speedbar-entity (1+ indent))
+ 'vhdl-speedbar-entity-face (1+ indent))
(setq comp-alist (cdr comp-alist)))
;; insert subprograms
(when func-alist
@@ -14415,7 +14664,8 @@ otherwise use cached data."
(setq pack-entry (aget pack-alist pack-key t))
(vhdl-speedbar-make-subpack-line
(or (nth 0 pack-entry) pack-key) lib-name
- (cons (nth 1 pack-entry) (nth 2 pack-entry)) indent)
+ (cons (nth 1 pack-entry) (nth 2 pack-entry))
+ (cons (nth 6 pack-entry) (nth 7 pack-entry)) indent)
(setq subpack-alist (cdr subpack-alist)))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -14481,43 +14731,43 @@ NO-POSITION non-nil means do not re-position cursor."
(let* ((file-entry (aget file-alist speedbar-last-selected-file t)))
(vhdl-speedbar-update-units
"\\[.\\] " (nth 0 file-entry)
- speedbar-last-selected-file 'vhdl-speedbar-entity)
+ speedbar-last-selected-file 'vhdl-speedbar-entity-face)
(vhdl-speedbar-update-units
"{.} " (nth 1 file-entry)
- speedbar-last-selected-file 'vhdl-speedbar-architecture)
+ speedbar-last-selected-file 'vhdl-speedbar-architecture-face)
(vhdl-speedbar-update-units
"\\[.\\] " (nth 3 file-entry)
- speedbar-last-selected-file 'vhdl-speedbar-configuration)
+ speedbar-last-selected-file 'vhdl-speedbar-configuration-face)
(vhdl-speedbar-update-units
"[]>] " (nth 4 file-entry)
- speedbar-last-selected-file 'vhdl-speedbar-package)
+ speedbar-last-selected-file 'vhdl-speedbar-package-face)
(vhdl-speedbar-update-units
"\\[.\\].+(" '("body")
- speedbar-last-selected-file 'vhdl-speedbar-package)
+ speedbar-last-selected-file 'vhdl-speedbar-package-face)
(vhdl-speedbar-update-units
"> " (nth 6 file-entry)
- speedbar-last-selected-file 'vhdl-speedbar-instantiation))
+ speedbar-last-selected-file 'vhdl-speedbar-instantiation-face))
;; highlight current units
(let* ((file-entry (aget file-alist file-name t)))
(setq
pos (vhdl-speedbar-update-units
"\\[.\\] " (nth 0 file-entry)
- file-name 'vhdl-speedbar-entity-selected pos)
+ file-name 'vhdl-speedbar-entity-selected-face pos)
pos (vhdl-speedbar-update-units
"{.} " (nth 1 file-entry)
- file-name 'vhdl-speedbar-architecture-selected pos)
+ file-name 'vhdl-speedbar-architecture-selected-face pos)
pos (vhdl-speedbar-update-units
"\\[.\\] " (nth 3 file-entry)
- file-name 'vhdl-speedbar-configuration-selected pos)
+ file-name 'vhdl-speedbar-configuration-selected-face pos)
pos (vhdl-speedbar-update-units
"[]>] " (nth 4 file-entry)
- file-name 'vhdl-speedbar-package-selected pos)
+ file-name 'vhdl-speedbar-package-selected-face pos)
pos (vhdl-speedbar-update-units
"\\[.\\].+(" '("body")
- file-name 'vhdl-speedbar-package-selected pos)
+ file-name 'vhdl-speedbar-package-selected-face pos)
pos (vhdl-speedbar-update-units
"> " (nth 6 file-entry)
- file-name 'vhdl-speedbar-instantiation-selected pos))))))
+ file-name 'vhdl-speedbar-instantiation-selected-face pos))))))
;; move speedbar so the first highlighted unit is visible
(when (and pos (not no-position))
(goto-char pos)
@@ -14568,21 +14818,21 @@ NO-POSITION non-nil means do not re-position cursor."
(insert "(top)")
(insert inst-name)
(speedbar-make-button
- start (point) 'vhdl-speedbar-instantiation 'speedbar-highlight-face
+ start (point) 'vhdl-speedbar-instantiation-face 'speedbar-highlight-face
'vhdl-speedbar-find-file inst-file-marker))
(insert delimiter)
(when ent-name
(setq start (point))
(insert ent-name)
(speedbar-make-button
- start (point) 'vhdl-speedbar-entity 'speedbar-highlight-face
+ start (point) 'vhdl-speedbar-entity-face 'speedbar-highlight-face
'vhdl-speedbar-find-file ent-file-marker)
(when arch-name
(insert " (")
(setq start (point))
(insert arch-name)
(speedbar-make-button
- start (point) 'vhdl-speedbar-architecture 'speedbar-highlight-face
+ start (point) 'vhdl-speedbar-architecture-face 'speedbar-highlight-face
'vhdl-speedbar-find-file arch-file-marker)
(insert ")"))
(when conf-name
@@ -14590,14 +14840,14 @@ NO-POSITION non-nil means do not re-position cursor."
(setq start (point))
(insert conf-name)
(speedbar-make-button
- start (point) 'vhdl-speedbar-configuration 'speedbar-highlight-face
+ start (point) 'vhdl-speedbar-configuration-face 'speedbar-highlight-face
'vhdl-speedbar-find-file conf-file-marker)
(insert ")")))
(when (and lib-name (not (equal lib-name (downcase (vhdl-work-library)))))
(setq start (point))
(insert " (" lib-name ")")
(put-text-property (+ 2 start) (1- (point)) 'face
- 'vhdl-speedbar-library))
+ 'vhdl-speedbar-library-face))
(insert-char ?\n 1)
(put-text-property visible-start (point) 'invisible nil)))
@@ -14621,7 +14871,7 @@ NO-POSITION non-nil means do not re-position cursor."
(setq start (point))
(insert pack-name)
(speedbar-make-button
- start (point) 'vhdl-speedbar-package 'speedbar-highlight-face
+ start (point) 'vhdl-speedbar-package-face 'speedbar-highlight-face
'vhdl-speedbar-find-file pack-file-marker)
(unless (car pack-file-marker)
(insert "!"))
@@ -14630,14 +14880,14 @@ NO-POSITION non-nil means do not re-position cursor."
(setq start (point))
(insert "body")
(speedbar-make-button
- start (point) 'vhdl-speedbar-package 'speedbar-highlight-face
+ start (point) 'vhdl-speedbar-package-face 'speedbar-highlight-face
'vhdl-speedbar-find-file body-file-marker)
(insert ")"))
(insert-char ?\n 1)
(put-text-property visible-start (point) 'invisible nil)))
(defun vhdl-speedbar-make-subpack-line (pack-name lib-name pack-file-marker
- depth)
+ pack-body-file-marker depth)
"Insert used package entry."
(let ((start (point))
visible-start)
@@ -14654,12 +14904,20 @@ NO-POSITION non-nil means do not re-position cursor."
(setq start (point))
(insert pack-name)
(speedbar-make-button
- start (point) 'vhdl-speedbar-package 'speedbar-highlight-face
+ start (point) 'vhdl-speedbar-package-face 'speedbar-highlight-face
'vhdl-speedbar-find-file pack-file-marker)
+ (when (car pack-body-file-marker)
+ (insert " (")
+ (setq start (point))
+ (insert "body")
+ (speedbar-make-button
+ start (point) 'vhdl-speedbar-package-face 'speedbar-highlight-face
+ 'vhdl-speedbar-find-file pack-body-file-marker)
+ (insert ")"))
(setq start (point))
(insert " (" lib-name ")")
(put-text-property (+ 2 start) (1- (point)) 'face
- 'vhdl-speedbar-library)
+ 'vhdl-speedbar-library-face)
(insert-char ?\n 1)
(put-text-property visible-start (point) 'invisible nil)))
@@ -14682,14 +14940,14 @@ NO-POSITION non-nil means do not re-position cursor."
(setq start (point))
(insert func-name)
(speedbar-make-button
- start (point) 'vhdl-speedbar-subprogram 'speedbar-highlight-face
+ start (point) 'vhdl-speedbar-subprogram-face 'speedbar-highlight-face
'vhdl-speedbar-find-file func-file-marker)
(when (car func-body-file-marker)
(insert " (")
(setq start (point))
(insert "body")
(speedbar-make-button
- start (point) 'vhdl-speedbar-subprogram 'speedbar-highlight-face
+ start (point) 'vhdl-speedbar-subprogram-face 'speedbar-highlight-face
'vhdl-speedbar-find-file func-body-file-marker)
(insert ")"))
(insert-char ?\n 1)
@@ -14777,22 +15035,22 @@ NO-POSITION non-nil means do not re-position cursor."
(message
"%s \"%s\" in \"%s\""
;; design unit kind
- (cond ((or (eq face 'vhdl-speedbar-entity)
- (eq face 'vhdl-speedbar-entity-selected))
+ (cond ((or (eq face 'vhdl-speedbar-entity-face)
+ (eq face 'vhdl-speedbar-entity-selected-face))
(if (equal (match-string 2) ">") "Component" "Entity"))
- ((or (eq face 'vhdl-speedbar-architecture)
- (eq face 'vhdl-speedbar-architecture-selected))
+ ((or (eq face 'vhdl-speedbar-architecture-face)
+ (eq face 'vhdl-speedbar-architecture-selected-face))
"Architecture")
- ((or (eq face 'vhdl-speedbar-configuration)
- (eq face 'vhdl-speedbar-configuration-selected))
+ ((or (eq face 'vhdl-speedbar-configuration-face)
+ (eq face 'vhdl-speedbar-configuration-selected-face))
"Configuration")
- ((or (eq face 'vhdl-speedbar-package)
- (eq face 'vhdl-speedbar-package-selected))
+ ((or (eq face 'vhdl-speedbar-package-face)
+ (eq face 'vhdl-speedbar-package-selected-face))
"Package")
- ((or (eq face 'vhdl-speedbar-instantiation)
- (eq face 'vhdl-speedbar-instantiation-selected))
+ ((or (eq face 'vhdl-speedbar-instantiation-face)
+ (eq face 'vhdl-speedbar-instantiation-selected-face))
"Instantiation")
- ((eq face 'vhdl-speedbar-subprogram)
+ ((eq face 'vhdl-speedbar-subprogram-face)
"Subprogram")
(t ""))
;; design unit name
@@ -14812,6 +15070,18 @@ NO-POSITION non-nil means do not re-position cursor."
(set-text-properties 0 (length string) nil string)
string))
+(defun vhdl-speedbar-higher-text ()
+ "Get speedbar-line-text of higher level."
+ (let (depth string)
+ (save-excursion
+ (beginning-of-line)
+ (looking-at "^\\([0-9]+\\):")
+ (setq depth (string-to-number (match-string 1)))
+ (when (re-search-backward (format "^%d: *[[<{][-+?][]>}] \\([^ \n]+\\)" (1- depth)) nil t)
+ (setq string (match-string 1))
+ (set-text-properties 0 (length string) nil string)
+ string))))
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Help functions
@@ -14936,6 +15206,31 @@ is already shown in a buffer."
(vhdl-compose-place-component)
(select-frame speedbar-frame)))
+(defun vhdl-speedbar-configuration ()
+ "Generate configuration for the architecture under the cursor."
+ (interactive)
+ (if (not (vhdl-speedbar-check-unit 'architecture))
+ (error "ERROR: No architecture under cursor")
+ (let ((arch-name (vhdl-speedbar-line-text))
+ (ent-name (vhdl-speedbar-higher-text)))
+ (if (fboundp 'speedbar-select-attached-frame)
+ (speedbar-select-attached-frame)
+ (select-frame speedbar-attached-frame))
+ (vhdl-compose-configuration ent-name arch-name))))
+
+(defun vhdl-speedbar-select-mra ()
+ "Select the architecture under the cursor as MRA."
+ (interactive)
+ (if (not (vhdl-speedbar-check-unit 'architecture))
+ (error "ERROR: No architecture under cursor")
+ (let* ((arch-key (downcase (vhdl-speedbar-line-text)))
+ (ent-key (downcase (vhdl-speedbar-higher-text)))
+ (ent-alist (aget vhdl-entity-alist
+ (or (vhdl-project-p) default-directory) t))
+ (ent-entry (aget ent-alist ent-key t)))
+ (setcar (cddr (cddr ent-entry)) arch-key) ; (nth 4 ent-entry)
+ (speedbar-refresh))))
+
(defun vhdl-speedbar-make-design ()
"Make (compile) design unit or directory/project under the cursor."
(interactive)
@@ -14968,11 +15263,15 @@ expansion function)."
(speedbar-position-cursor-on-line)
(cond ((eq design-unit 'entity)
(memq (get-text-property (match-end 0) 'face)
- '(vhdl-speedbar-entity
- vhdl-speedbar-entity-selected)))
+ '(vhdl-speedbar-entity-face
+ vhdl-speedbar-entity-selected-face)))
+ ((eq design-unit 'architecture)
+ (memq (get-text-property (match-end 0) 'face)
+ '(vhdl-speedbar-architecture-face
+ vhdl-speedbar-architecture-selected-face)))
((eq design-unit 'subprogram)
(eq (get-text-property (match-end 0) 'face)
- 'vhdl-speedbar-subprogram))
+ 'vhdl-speedbar-subprogram-face))
(t nil))))
(defun vhdl-speedbar-set-depth (depth)
@@ -14983,106 +15282,82 @@ expansion function)."
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Fontification
-(defface vhdl-speedbar-entity
+(defface vhdl-speedbar-entity-face
'((((class color) (background light)) (:foreground "ForestGreen"))
(((class color) (background dark)) (:foreground "PaleGreen")))
"Face used for displaying entity names."
:group 'speedbar-faces)
-;; backward-compatibility alias
-(put 'vhdl-speedbar-entity-face 'face-alias 'vhdl-speedbar-entity)
-(defface vhdl-speedbar-architecture
+(defface vhdl-speedbar-architecture-face
'((((min-colors 88) (class color) (background light)) (:foreground "Blue1"))
(((class color) (background light)) (:foreground "Blue"))
+
(((class color) (background dark)) (:foreground "LightSkyBlue")))
"Face used for displaying architecture names."
:group 'speedbar-faces)
-;; backward-compatibility alias
-(put 'vhdl-speedbar-architecture-face 'face-alias 'vhdl-speedbar-architecture)
-(defface vhdl-speedbar-configuration
+(defface vhdl-speedbar-configuration-face
'((((class color) (background light)) (:foreground "DarkGoldenrod"))
(((class color) (background dark)) (:foreground "Salmon")))
"Face used for displaying configuration names."
:group 'speedbar-faces)
-;; backward-compatibility alias
-(put 'vhdl-speedbar-configuration-face 'face-alias 'vhdl-speedbar-configuration)
-(defface vhdl-speedbar-package
+(defface vhdl-speedbar-package-face
'((((class color) (background light)) (:foreground "Grey50"))
(((class color) (background dark)) (:foreground "Grey80")))
"Face used for displaying package names."
:group 'speedbar-faces)
-;; backward-compatibility alias
-(put 'vhdl-speedbar-package-face 'face-alias 'vhdl-speedbar-package)
-(defface vhdl-speedbar-library
+(defface vhdl-speedbar-library-face
'((((class color) (background light)) (:foreground "Purple"))
(((class color) (background dark)) (:foreground "Orchid1")))
"Face used for displaying library names."
:group 'speedbar-faces)
-;; backward-compatibility alias
-(put 'vhdl-speedbar-library-face 'face-alias 'vhdl-speedbar-library)
-(defface vhdl-speedbar-instantiation
+(defface vhdl-speedbar-instantiation-face
'((((class color) (background light)) (:foreground "Brown"))
(((min-colors 88) (class color) (background dark)) (:foreground "Yellow1"))
(((class color) (background dark)) (:foreground "Yellow")))
"Face used for displaying instantiation names."
:group 'speedbar-faces)
-;; backward-compatibility alias
-(put 'vhdl-speedbar-instantiation-face 'face-alias 'vhdl-speedbar-instantiation)
-(defface vhdl-speedbar-subprogram
+(defface vhdl-speedbar-subprogram-face
'((((class color) (background light)) (:foreground "Orchid4"))
(((class color) (background dark)) (:foreground "BurlyWood2")))
"Face used for displaying subprogram names."
:group 'speedbar-faces)
-;; backward-compatibility alias
-(put 'vhdl-speedbar-subprogram-face 'face-alias 'vhdl-speedbar-subprogram)
-(defface vhdl-speedbar-entity-selected
+(defface vhdl-speedbar-entity-selected-face
'((((class color) (background light)) (:foreground "ForestGreen" :underline t))
(((class color) (background dark)) (:foreground "PaleGreen" :underline t)))
"Face used for displaying entity names."
:group 'speedbar-faces)
-;; backward-compatibility alias
-(put 'vhdl-speedbar-entity-selected-face 'face-alias 'vhdl-speedbar-entity-selected)
-(defface vhdl-speedbar-architecture-selected
- '((((min-colors 88) (class color) (background light)) (:foreground "Blue1" :underline t))
- (((min-colors 88) (class color) (background light)) (:foreground "Blue1" :underline t))
+(defface vhdl-speedbar-architecture-selected-face
+ '((((min-colors 88) (class color) (background light)) (:foreground
+ "Blue1" :underline t))
(((class color) (background light)) (:foreground "Blue" :underline t))
(((class color) (background dark)) (:foreground "LightSkyBlue" :underline t)))
"Face used for displaying architecture names."
:group 'speedbar-faces)
-;; backward-compatibility alias
-(put 'vhdl-speedbar-architecture-selected-face 'face-alias 'vhdl-speedbar-architecture-selected)
-(defface vhdl-speedbar-configuration-selected
+(defface vhdl-speedbar-configuration-selected-face
'((((class color) (background light)) (:foreground "DarkGoldenrod" :underline t))
(((class color) (background dark)) (:foreground "Salmon" :underline t)))
"Face used for displaying configuration names."
:group 'speedbar-faces)
-;; backward-compatibility alias
-(put 'vhdl-speedbar-configuration-selected-face 'face-alias 'vhdl-speedbar-configuration-selected)
-(defface vhdl-speedbar-package-selected
+(defface vhdl-speedbar-package-selected-face
'((((class color) (background light)) (:foreground "Grey50" :underline t))
(((class color) (background dark)) (:foreground "Grey80" :underline t)))
"Face used for displaying package names."
:group 'speedbar-faces)
-;; backward-compatibility alias
-(put 'vhdl-speedbar-package-selected-face 'face-alias 'vhdl-speedbar-package-selected)
-(defface vhdl-speedbar-instantiation-selected
+(defface vhdl-speedbar-instantiation-selected-face
'((((class color) (background light)) (:foreground "Brown" :underline t))
- (((min-colors 88) (class color) (background dark)) (:foreground "Yellow1" :underline t))
(((class color) (background dark)) (:foreground "Yellow" :underline t)))
"Face used for displaying instantiation names."
:group 'speedbar-faces)
-;; backward-compatibility alias
-(put 'vhdl-speedbar-instantiation-selected-face 'face-alias 'vhdl-speedbar-instantiation-selected)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Initialization
@@ -15134,7 +15409,7 @@ expansion function)."
;; open entity file
(unless (eq vhdl-compose-create-files 'none)
(setq ent-file-name
- (concat (vhdl-replace-string vhdl-entity-file-name ent-name)
+ (concat (vhdl-replace-string vhdl-entity-file-name ent-name t)
"." (file-name-extension (buffer-file-name))))
(when (and (file-exists-p ent-file-name)
(not (y-or-n-p (concat "File \"" ent-file-name
@@ -15175,7 +15450,7 @@ expansion function)."
(setq ent-buffer (current-buffer))
(setq arch-file-name
(concat (vhdl-replace-string vhdl-architecture-file-name
- (concat ent-name " " arch-name))
+ (concat ent-name " " arch-name) t)
"." (file-name-extension (buffer-file-name))))
(when (and (file-exists-p arch-file-name)
(not (y-or-n-p (concat "File \"" arch-file-name
@@ -15212,7 +15487,7 @@ expansion function)."
(vhdl-insert-keyword "END ")
(unless (vhdl-standard-p '87) (vhdl-insert-keyword "ARCHITECTURE "))
(insert arch-name ";\n\n")
- ;; insert footer
+ ;; insert footer and save
(if (and vhdl-compose-include-header (not (equal vhdl-file-footer "")))
(vhdl-template-footer)
(vhdl-comment-display-line) (insert "\n"))
@@ -15240,7 +15515,7 @@ component instantiation."
(error "ERROR: No architecture found"))
(let* ((ent-name (match-string 1))
(ent-file-name
- (concat (vhdl-replace-string vhdl-entity-file-name ent-name)
+ (concat (vhdl-replace-string vhdl-entity-file-name ent-name t)
"." (file-name-extension (buffer-file-name))))
(orig-buffer (current-buffer)))
(message "Placing component \"%s\"..." (nth 0 vhdl-port-list))
@@ -15292,14 +15567,14 @@ component instantiation."
(error "ERROR: No architecture found"))
(let* ((ent-name (match-string 1))
(ent-file-name
- (concat (vhdl-replace-string vhdl-entity-file-name ent-name)
+ (concat (vhdl-replace-string vhdl-entity-file-name ent-name t)
"." (file-name-extension (buffer-file-name))))
(arch-decl-pos (point-marker))
(arch-stat-pos (re-search-forward "^begin\\>" nil))
(arch-end-pos (re-search-forward "^end\\>" nil))
(pack-name (vhdl-get-components-package-name))
(pack-file-name
- (concat (vhdl-replace-string vhdl-package-file-name pack-name)
+ (concat (vhdl-replace-string vhdl-package-file-name pack-name t)
"." (file-name-extension (buffer-file-name))))
inst-name comp-name comp-ent-name comp-ent-file-name has-generic
port-alist generic-alist inst-alist
@@ -15335,7 +15610,7 @@ component instantiation."
(vhdl-port-copy)))
;; ... from entity declaration (direct instantiation)
(setq comp-ent-file-name
- (concat (vhdl-replace-string vhdl-entity-file-name comp-ent-name)
+ (concat (vhdl-replace-string vhdl-entity-file-name comp-ent-name t)
"." (file-name-extension (buffer-file-name))))
(vhdl-visit-file
comp-ent-file-name t
@@ -15346,7 +15621,8 @@ component instantiation."
(vhdl-port-copy))))
(vhdl-port-flatten t)
(setq generic-alist (nth 1 vhdl-port-list)
- port-alist (nth 2 vhdl-port-list))
+ port-alist (nth 2 vhdl-port-list)
+ vhdl-port-list nil)
(setq constant-alist nil
signal-alist nil)
(when has-generic
@@ -15615,7 +15891,7 @@ current project/directory."
(let* ((project (vhdl-project-p))
(pack-name (vhdl-get-components-package-name))
(pack-file-name
- (concat (vhdl-replace-string vhdl-package-file-name pack-name)
+ (concat (vhdl-replace-string vhdl-package-file-name pack-name t)
"." (file-name-extension (buffer-file-name))))
(ent-alist (aget vhdl-entity-alist
(or project default-directory) t))
@@ -15674,6 +15950,178 @@ current project/directory."
(message "Generating components package \"%s\"...done\n File created: \"%s\""
pack-name pack-file-name)))
+(defun vhdl-compose-configuration-architecture (ent-name arch-name inst-alist
+ &optional insert-conf)
+ "Generate block configuration for architecture."
+ (let ((margin (current-indentation))
+ (beg (save-excursion (beginning-of-line) (point)))
+ ent-entry inst-entry inst-path inst-prev-path cons-key tmp-alist)
+ ;; insert block configuration (for architecture)
+ (vhdl-insert-keyword "FOR ") (insert arch-name "\n")
+ (setq margin (+ margin vhdl-basic-offset))
+ ;; process all instances
+ (while inst-alist
+ (setq inst-entry (car inst-alist))
+ ;; is component?
+ (when (nth 4 inst-entry)
+ (setq insert-conf t)
+ (setq inst-path (nth 9 inst-entry))
+ ;; skip common path with previous instance
+ (while (and inst-path (equal (car inst-path) (car inst-prev-path)))
+ (setq inst-path (cdr inst-path)
+ inst-prev-path (cdr inst-prev-path)))
+ ;; insert block configuration end (for previous block/generate)
+ (while inst-prev-path
+ (setq margin (- margin vhdl-basic-offset))
+ (indent-to margin)
+ (vhdl-insert-keyword "END FOR;\n")
+ (setq inst-prev-path (cdr inst-prev-path)))
+ ;; insert block configuration beginning (for current block/generate)
+ (indent-to margin)
+ (while inst-path
+ (setq margin (+ margin vhdl-basic-offset))
+ (vhdl-insert-keyword "FOR ")
+ (insert (car inst-path) "\n")
+ (indent-to margin)
+ (setq inst-path (cdr inst-path)))
+ ;; insert component configuration beginning
+ (vhdl-insert-keyword "FOR ")
+ (insert (nth 1 inst-entry) " : " (nth 4 inst-entry) "\n")
+ ;; find subconfiguration
+ (setq conf-key (nth 7 inst-entry))
+ (setq tmp-alist conf-alist)
+ ;; use first configuration found for instance's entity
+ (while (and tmp-alist (null conf-key))
+ (when (equal (nth 5 inst-entry) (nth 4 (car tmp-alist)))
+ (setq conf-key (nth 0 (car tmp-alist))))
+ (setq tmp-alist (cdr tmp-alist)))
+ (setq conf-entry (aget conf-alist conf-key t))
+ ;; insert binding indication ...
+ ;; ... with subconfiguration (if exists)
+ (if (and vhdl-compose-configuration-use-subconfiguration conf-entry)
+ (progn
+ (indent-to (+ margin vhdl-basic-offset))
+ (vhdl-insert-keyword "USE CONFIGURATION ")
+ (insert (vhdl-work-library) "." (nth 0 conf-entry))
+ (insert ";\n"))
+ ;; ... with entity (if exists)
+ (setq ent-entry (aget ent-alist (nth 5 inst-entry) t))
+ (when ent-entry
+ (indent-to (+ margin vhdl-basic-offset))
+ (vhdl-insert-keyword "USE ENTITY ")
+ (insert (vhdl-work-library) "." (nth 0 ent-entry))
+ ;; insert architecture name (if architecture exists)
+ (when (nth 3 ent-entry)
+ (setq arch-name
+ ;; choose architecture name a) from configuration,
+ ;; b) from mra, or c) from first architecture
+ (or (nth 0 (aget (nth 3 ent-entry)
+ (or (nth 6 inst-entry)
+ (nth 4 ent-entry)) t))
+ (nth 1 (car (nth 3 ent-entry)))))
+ (insert "(" arch-name ")"))
+ (insert ";\n")
+ ;; insert block configuration (for architecture of subcomponent)
+ (when (and vhdl-compose-configuration-hierarchical
+ (nth 3 ent-entry))
+ (indent-to (+ margin vhdl-basic-offset))
+ (vhdl-compose-configuration-architecture
+ (nth 0 ent-entry) arch-name
+ (nth 3 (aget (nth 3 ent-entry) (downcase arch-name) t))))))
+ ;; insert component configuration end
+ (indent-to margin)
+ (vhdl-insert-keyword "END FOR;\n")
+ (setq inst-prev-path (nth 9 inst-entry)))
+ (setq inst-alist (cdr inst-alist)))
+ ;; insert block configuration end (for block/generate)
+ (while inst-prev-path
+ (setq margin (- margin vhdl-basic-offset))
+ (indent-to margin)
+ (vhdl-insert-keyword "END FOR;\n")
+ (setq inst-prev-path (cdr inst-prev-path)))
+ (indent-to (- margin vhdl-basic-offset))
+ ;; insert block configuration end or remove beginning (for architecture)
+ (if insert-conf
+ (vhdl-insert-keyword "END FOR;\n")
+ (delete-region beg (point)))))
+
+(defun vhdl-compose-configuration (&optional ent-name arch-name)
+ "Generate configuration declaration."
+ (interactive)
+ (vhdl-require-hierarchy-info)
+ (let ((ent-alist (aget vhdl-entity-alist
+ (or (vhdl-project-p) default-directory) t))
+ (conf-alist (aget vhdl-config-alist
+ (or (vhdl-project-p) default-directory) t))
+ (from-speedbar ent-name)
+ inst-alist conf-name conf-file-name pos)
+ (vhdl-prepare-search-2
+ ;; get entity and architecture name
+ (unless ent-name
+ (save-excursion
+ (unless (and (re-search-backward "^\\(architecture\\s-+\\(\\w+\\)\\s-+of\\s-+\\(\\w+\\)\\|end\\)\\>" nil t)
+ (not (equal "END" (upcase (match-string 1))))
+ (setq ent-name (match-string-no-properties 3))
+ (setq arch-name (match-string-no-properties 2)))
+ (error "ERROR: Not within an architecture"))))
+ (setq conf-name (vhdl-replace-string
+ vhdl-compose-configuration-name
+ (concat ent-name " " arch-name)))
+ (setq inst-alist
+ (nth 3 (aget (nth 3 (aget ent-alist (downcase ent-name) t))
+ (downcase arch-name) t))))
+ (message "Generating configuration \"%s\"..." conf-name)
+ (if vhdl-compose-configuration-create-file
+ ;; open configuration file
+ (progn
+ (setq conf-file-name
+ (concat (vhdl-replace-string vhdl-configuration-file-name
+ conf-name t)
+ "." (file-name-extension (buffer-file-name))))
+ (when (and (file-exists-p conf-file-name)
+ (not (y-or-n-p (concat "File \"" conf-file-name
+ "\" exists; overwrite? "))))
+ (error "ERROR: Creating configuration...aborted"))
+ (find-file conf-file-name)
+ (erase-buffer)
+ (set-buffer-modified-p nil)
+ ;; insert header
+ (if vhdl-compose-include-header
+ (progn (vhdl-template-header
+ (concat "Configuration declaration for design \""
+ ent-name "(" arch-name ")\""))
+ (goto-char (point-max)))
+ (vhdl-comment-display-line) (insert "\n\n")))
+ ;; goto end of architecture
+ (unless from-speedbar
+ (re-search-forward "^end\\>" nil)
+ (end-of-line) (insert "\n\n")
+ (vhdl-comment-display-line) (insert "\n\n")))
+ ;; insert library clause
+ (setq pos (point))
+ (vhdl-template-standard-package (vhdl-work-library) nil)
+ (when (/= pos (point))
+ (insert "\n\n"))
+ ;; insert configuration
+ (vhdl-insert-keyword "CONFIGURATION ") (insert conf-name)
+ (vhdl-insert-keyword " OF ") (insert ent-name)
+ (vhdl-insert-keyword " IS\n")
+ (indent-to vhdl-basic-offset)
+ ;; insert block configuration (for architecture)
+ (vhdl-compose-configuration-architecture ent-name arch-name inst-alist t)
+ (vhdl-insert-keyword "END ") (insert conf-name ";")
+ (when conf-file-name
+ ;; insert footer and save
+ (insert "\n\n")
+ (if (and vhdl-compose-include-header (not (equal vhdl-file-footer "")))
+ (vhdl-template-footer)
+ (vhdl-comment-display-line) (insert "\n"))
+ (save-buffer))
+ (message
+ (concat (format "Generating configuration \"%s\"...done" conf-name)
+ (and conf-file-name
+ (format "\n File created: \"%s\"" conf-file-name))))))
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Compilation / Makefile generation
@@ -15854,11 +16302,17 @@ do not print any file names."
(compile (concat command " " options " " file-name)))
(vhdl-warning "Your project settings tell me not to compile this file"))))
+(defvar vhdl-make-target "all"
+ "Default target for `vhdl-make' command.")
+
(defun vhdl-make (&optional target)
"Call make command for compilation of all updated source files (requires
`Makefile'). Optional argument TARGET allows to compile the design
specified by a target."
(interactive)
+ (setq vhdl-make-target
+ (or target (read-from-minibuffer "Target: " vhdl-make-target
+ vhdl-minibuffer-local-map)))
(vhdl-compile-init)
(let* ((project (aget vhdl-project-alist vhdl-project))
(compiler (or (aget vhdl-compiler-alist vhdl-compiler)
@@ -15870,7 +16324,7 @@ specified by a target."
(error "ERROR: Compile directory does not exist: \"%s\"" default-directory))
;; run make
(compile (concat (if (equal command "") "make" command)
- " " options " " target))))
+ " " options " " vhdl-make-target))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Makefile generation
@@ -15949,7 +16403,7 @@ specified by a target."
(setq ent-file-name (file-relative-name
(nth 2 ent-entry) compile-directory)
arch-alist (nth 4 ent-entry)
- lib-alist (nth 5 ent-entry)
+ lib-alist (nth 6 ent-entry)
rule (aget rule-alist ent-file-name)
target-list (nth 0 rule)
depend-list (nth 1 rule)
@@ -16219,7 +16673,8 @@ specified by a target."
(insert " \\\n\t\t$(UNIT-" work-library "-" (car second-list) ")")
(setq second-list (cdr second-list)))
(while subcomp-list
- (when (assoc (car subcomp-list) unit-list)
+ (when (and (assoc (car subcomp-list) unit-list)
+ (not (equal unit-key (car subcomp-list))))
(insert " \\\n\t\t" (car subcomp-list)))
(setq subcomp-list (cdr subcomp-list)))
(insert "\n")
@@ -16324,8 +16779,10 @@ specified by a target."
'vhdl-upper-case-enum-values
'vhdl-upper-case-constants
'vhdl-use-direct-instantiation
+ 'vhdl-compose-configuration-name
'vhdl-entity-file-name
'vhdl-architecture-file-name
+ 'vhdl-configuration-file-name
'vhdl-package-file-name
'vhdl-file-name-case
'vhdl-electric-keywords
@@ -16368,7 +16825,12 @@ specified by a target."
'vhdl-testbench-include-library
'vhdl-testbench-include-configuration
'vhdl-testbench-create-files
+ 'vhdl-testbench-entity-file-name
+ 'vhdl-testbench-architecture-file-name
'vhdl-compose-create-files
+ 'vhdl-compose-configuration-create-file
+ 'vhdl-compose-configuration-hierarchical
+ 'vhdl-compose-configuration-use-subconfiguration
'vhdl-compose-include-header
'vhdl-compose-architecture-name
'vhdl-components-package-name
@@ -16431,102 +16893,34 @@ specified by a target."
(defconst vhdl-doc-release-notes nil
"\
-Release Notes for VHDL Mode 3.32
+Release Notes for VHDL Mode 3.33
================================
- New Features
- - Enhanced Features
- User Options
- - Remarks
New Features
------------
-STRUCTURAL COMPOSITION:
- - Enables simple structural composition similar to graphical editors.
- Simplifies the creation of higher design levels where subcomponents
- are simply sticked together:
- 1. Create a skeleton for a new component
- 2. Place subcomponents in it directly from the hierarchy browser
- 3. Automatically connect all subcomponents and create the ports
- for the new component (based on names of actual ports)
- - Automatic generation of a components package (package containing
- component declarations for all entities).
- - Find more information in the online documentation (`C-c C-h').
-
-PORT TRANSLATION:
- - Reverse direction of ports (useful for testbenches).
-
-SUBPROGRAM TRANSLATION:
- - Copy/paste of subprogram interfaces (similar to port translation).
-
-CODE FILLING:
- - Condense code using code-sensitive block filling.
-
-CODE STATISTICS:
- - Calculate number of code lines and statements in a buffer.
-
-
-Enhanced Features
------------------
-
-TESTBENCH GENERATION:
- - Enhanced templates and user option default values.
-
-Emacs 21 compatibility/enhancements:
- - `lazy-lock-mode' is not used anymore (built-in `jit-lock-mode' is faster).
-
-And many other minor fixes and enhancements.
+CONFIGURATION DECLARATION GENERATION:
+ - Automatic generation of a configuration declaration for a design.
+ (See documentation (`C-c C-h') in section on STRUCTURAL COMPOSITION.)
User Options
------------
-`vhdl-project-file-name': (enhanced)
- Include user name in project setup file name.
-`vhdl-speedbar-cache-file-name': (enhanced, changed default)
- Include user name in cache file name.
-`vhdl-default-library': (new)
- Default working library if no project is active.
-`vhdl-architecture-file-name': (new)
- Specify how the architecture file name is obtained.
-`vhdl-package-file-name': (new)
- Specify how the package file name is obtained.
-`vhdl-file-name-case': (new)
- Allows to change case when deriving file names.
-`vhdl-compose-create-files': (new)
- Specify whether new files should be created for a new component.
-`vhdl-compose-include-header': (new)
- Specify whether a header is included in a new component's file.
-`vhdl-compose-architecture-name': (new)
- Specify how a new component's architecture name is obtained.
-`vhdl-components-package-name': (new)
- Specify how the name for the components package is obtained.
-`vhdl-use-components-package': (new)
- Specify whether component declarations go in a components package.
-`vhdl-use-direct-instantiation': (new)
- Specify whether to use VHDL'93 direct component instantiation.
-`vhdl-instance-name': (changed default)
- Allows insertion of a running number to generate unique instance names.
-`vhdl-testbench-entity-header', `vhdl-testbench-architecture-header':(obsolete)
- Headers are now automatically derived from the standard header.
-`vhdl-testbench-include-header': (new)
- Specify whether a header is included in testbench files.
-`vhdl-testbench-declaration', `vhdl-testbench-statements': (changed default)
- Non-empty default values for more complete testbench templates.
-
-
-Remarks
--------
-
-- Changed key binding for `vhdl-comment-uncomment-region': `C-c c'
- (`C-c C-c ...' is now used for structural composition).
-
-- Automatic buffer highlighting (font-lock) is now controlled by option
- `global-font-lock-mode' in GNU Emacs (`font-lock-auto-fontify' in XEmacs).
- \(Important: You MUST customize this option in order to turn automatic
- buffer highlighting on.)
+`vhdl-configuration-file-name': (new)
+ Specify how the configuration file name is obtained.
+`vhdl-compose-configuration-name': (new)
+ Specify how the configuration name is optained.
+`vhdl-compose-configuration-create-file': (new)
+ Specify whether a new file should be created for a configuration.
+`vhdl-compose-configuration-hierarchical': (new)
+ Specify whether hierarchical configurations should be created.
+`vhdl-compose-configuration-use-subconfiguration': (new)
+ Specify whether subconfigurations should be used inside configurations.
")
@@ -16596,7 +16990,8 @@ to visually support naming conventions.")
(interactive)
(unless vhdl-xemacs
(help-setup-xref (list #'vhdl-doc-variable variable) (interactive-p)))
- (with-output-to-temp-buffer (if (fboundp 'help-buffer) (help-buffer) "*Help*")
+ (with-output-to-temp-buffer
+ (if (fboundp 'help-buffer) (help-buffer) "*Help*")
(princ (documentation-property variable 'variable-documentation))
(with-current-buffer standard-output
(help-mode))
@@ -16607,7 +17002,8 @@ to visually support naming conventions.")
(interactive)
(unless vhdl-xemacs
(help-setup-xref (list #'vhdl-doc-mode) (interactive-p)))
- (with-output-to-temp-buffer (if (fboundp 'help-buffer) (help-buffer) "*Help*")
+ (with-output-to-temp-buffer
+ (if (fboundp 'help-buffer) (help-buffer) "*Help*")
(princ mode-name)
(princ " mode:\n")
(princ (documentation 'vhdl-mode))
diff --git a/lisp/progmodes/which-func.el b/lisp/progmodes/which-func.el
index 059218942a..66d91dce3d 100644
--- a/lisp/progmodes/which-func.el
+++ b/lisp/progmodes/which-func.el
@@ -1,6 +1,6 @@
;;; which-func.el --- print current function in mode line
-;; Copyright (C) 1994, 1997, 1998, 2001, 2003, 2005
+;; Copyright (C) 1994, 1997, 1998, 2001, 2002, 2003, 2004, 2005
;; Free Software Foundation, Inc.
;; Author: Alex Rezinsky <alexr@msil.sps.mot.com>
@@ -139,8 +139,6 @@ Zero means compute the Imenu menu regardless of size."
:foreground "LightSkyBlue"))
"Face used to highlight mode line function names."
:group 'which-func)
-;; backward-compatibility alias
-(put 'which-func-face 'face-alias 'which-func)
(defcustom which-func-format
`("["
diff --git a/lisp/progmodes/xscheme.el b/lisp/progmodes/xscheme.el
index 0075dac1d0..d568bca5b7 100644
--- a/lisp/progmodes/xscheme.el
+++ b/lisp/progmodes/xscheme.el
@@ -1,6 +1,6 @@
;;; xscheme.el --- run MIT Scheme under Emacs
-;; Copyright (C) 1986, 1987, 1989, 1990, 2001, 2004, 2005
+;; Copyright (C) 1986, 1987, 1989, 1990, 2001, 2002, 2003, 2004, 2005
;; Free Software Foundation, Inc.
;; Maintainer: FSF
@@ -33,6 +33,85 @@
;;; Code:
(require 'scheme)
+
+;;;; Internal Variables
+
+(defvar xscheme-previous-mode)
+(defvar xscheme-previous-process-state)
+(defvar xscheme-last-input-end)
+
+(defvar xscheme-process-command-line nil
+ "Command used to start the most recent Scheme process.")
+
+(defvar xscheme-process-name "scheme"
+ "Name of xscheme process that we're currently interacting with.")
+
+(defvar xscheme-buffer-name "*scheme*"
+ "Name of xscheme buffer that we're currently interacting with.")
+
+(defvar xscheme-expressions-ring-max 30
+ "*Maximum length of Scheme expressions ring.")
+
+(defvar xscheme-expressions-ring nil
+ "List of expressions recently transmitted to the Scheme process.")
+
+(defvar xscheme-expressions-ring-yank-pointer nil
+ "The tail of the Scheme expressions ring whose car is the last thing yanked.")
+
+(defvar xscheme-running-p nil
+ "This variable, if nil, indicates that the scheme process is
+waiting for input. Otherwise, it is busy evaluating something.")
+
+(defconst xscheme-control-g-synchronization-p t
+ "If non-nil, insert markers in the scheme input stream to indicate when
+control-g interrupts were signaled. Do not allow more control-g's to be
+signaled until the scheme process acknowledges receipt.")
+
+(defvar xscheme-control-g-disabled-p nil
+ "This variable, if non-nil, indicates that a control-g is being processed
+by the scheme process, so additional control-g's are to be ignored.")
+
+(defvar xscheme-string-receiver nil
+ "Procedure to send the string argument from the scheme process.")
+
+(defconst default-xscheme-runlight
+ '(": " xscheme-runlight-string)
+ "Default global (shared) xscheme-runlight modeline format.")
+
+(defvar xscheme-runlight "")
+(defvar xscheme-runlight-string nil)
+
+(defvar xscheme-process-filter-state 'idle
+ "State of scheme process escape reader state machine:
+idle waiting for an escape sequence
+reading-type received an altmode but nothing else
+reading-string reading prompt string")
+
+(defvar xscheme-allow-output-p t
+ "This variable, if nil, prevents output from the scheme process
+from being inserted into the process-buffer.")
+
+(defvar xscheme-prompt ""
+ "The current scheme prompt string.")
+
+(defvar xscheme-string-accumulator ""
+ "Accumulator for the string being received from the scheme process.")
+
+(defvar xscheme-mode-string nil)
+(setq-default scheme-mode-line-process
+ '("" xscheme-runlight))
+
+(mapcar 'make-variable-buffer-local
+ '(xscheme-expressions-ring
+ xscheme-expressions-ring-yank-pointer
+ xscheme-process-filter-state
+ xscheme-running-p
+ xscheme-control-g-disabled-p
+ xscheme-allow-output-p
+ xscheme-prompt
+ xscheme-string-accumulator
+ xscheme-mode-string
+ scheme-mode-line-process))
(defgroup xscheme nil
"Major mode for editing Scheme and interacting with MIT's C-Scheme."
@@ -355,6 +434,9 @@ with no args, if that value is non-nil.
(if (eq (process-sentinel process) 'xscheme-process-sentinel)
(set-process-sentinel process (cdr previous-state))))))))
+(defvar scheme-interaction-mode-commands-alist nil)
+(defvar scheme-interaction-mode-map nil)
+
(defun scheme-interaction-mode-initialize ()
(use-local-map scheme-interaction-mode-map)
(setq major-mode 'scheme-interaction-mode)
@@ -368,7 +450,7 @@ with no args, if that value is non-nil.
(car (cdr (car entries))))
(setq entries (cdr entries)))))
-(defvar scheme-interaction-mode-commands-alist nil)
+;; Initialize the command alist
(setq scheme-interaction-mode-commands-alist
(append scheme-interaction-mode-commands-alist
'(("\C-c\C-m" xscheme-send-current-line)
@@ -378,7 +460,7 @@ with no args, if that value is non-nil.
("\ep" xscheme-yank-pop)
("\en" xscheme-yank-push))))
-(defvar scheme-interaction-mode-map nil)
+;; Initialize the mode map
(if (not scheme-interaction-mode-map)
(progn
(setq scheme-interaction-mode-map (make-keymap))
@@ -411,18 +493,20 @@ Commands:
\\{scheme-debugger-mode-map}"
(error "Invalid entry to scheme-debugger-mode"))
+(defvar scheme-debugger-mode-map nil)
+
(defun scheme-debugger-mode-initialize ()
(use-local-map scheme-debugger-mode-map)
(setq major-mode 'scheme-debugger-mode)
(setq mode-name "Scheme Debugger"))
(defun scheme-debugger-mode-commands (keymap)
- (let ((char ? ))
+ (let ((char ?\s))
(while (< char 127)
(define-key keymap (char-to-string char) 'scheme-debugger-self-insert)
(setq char (1+ char)))))
-(defvar scheme-debugger-mode-map nil)
+;; Initialize the debugger mode map
(if (not scheme-debugger-mode-map)
(progn
(setq scheme-debugger-mode-map (make-keymap))
@@ -675,6 +759,9 @@ Useful for working with debugging Scheme under adb."
(interactive)
(process-send-string xscheme-process-name "(proceed)\n"))
+(defconst xscheme-control-g-message-string
+ "Sending C-G interrupt to Scheme...")
+
(defun xscheme-send-control-g-interrupt ()
"Cause the Scheme processor to halt and flush input.
Control returns to the top level rep loop."
@@ -695,9 +782,6 @@ Control returns to the top level rep loop."
(sleep-for 0.1)
(xscheme-send-char 0)))))
-(defconst xscheme-control-g-message-string
- "Sending C-G interrupt to Scheme...")
-
(defun xscheme-send-control-u-interrupt ()
"Cause the Scheme process to halt, returning to previous rep loop."
(interactive)
@@ -722,82 +806,6 @@ Control returns to the top level rep loop."
(if (and mark-p xscheme-control-g-synchronization-p)
(xscheme-send-char 0)))
-;;;; Internal Variables
-
-(defvar xscheme-process-command-line nil
- "Command used to start the most recent Scheme process.")
-
-(defvar xscheme-process-name "scheme"
- "Name of xscheme process that we're currently interacting with.")
-
-(defvar xscheme-buffer-name "*scheme*"
- "Name of xscheme buffer that we're currently interacting with.")
-
-(defvar xscheme-expressions-ring-max 30
- "*Maximum length of Scheme expressions ring.")
-
-(defvar xscheme-expressions-ring nil
- "List of expressions recently transmitted to the Scheme process.")
-
-(defvar xscheme-expressions-ring-yank-pointer nil
- "The tail of the Scheme expressions ring whose car is the last thing yanked.")
-
-(defvar xscheme-last-input-end)
-
-(defvar xscheme-process-filter-state 'idle
- "State of scheme process escape reader state machine:
-idle waiting for an escape sequence
-reading-type received an altmode but nothing else
-reading-string reading prompt string")
-
-(defvar xscheme-running-p nil
- "This variable, if nil, indicates that the scheme process is
-waiting for input. Otherwise, it is busy evaluating something.")
-
-(defconst xscheme-control-g-synchronization-p t
- "If non-nil, insert markers in the scheme input stream to indicate when
-control-g interrupts were signaled. Do not allow more control-g's to be
-signaled until the scheme process acknowledges receipt.")
-
-(defvar xscheme-control-g-disabled-p nil
- "This variable, if non-nil, indicates that a control-g is being processed
-by the scheme process, so additional control-g's are to be ignored.")
-
-(defvar xscheme-allow-output-p t
- "This variable, if nil, prevents output from the scheme process
-from being inserted into the process-buffer.")
-
-(defvar xscheme-prompt ""
- "The current scheme prompt string.")
-
-(defvar xscheme-string-accumulator ""
- "Accumulator for the string being received from the scheme process.")
-
-(defvar xscheme-string-receiver nil
- "Procedure to send the string argument from the scheme process.")
-
-(defconst default-xscheme-runlight
- '(": " xscheme-runlight-string)
- "Default global (shared) xscheme-runlight modeline format.")
-
-(defvar xscheme-runlight "")
-(defvar xscheme-runlight-string nil)
-(defvar xscheme-mode-string nil)
-(setq-default scheme-mode-line-process
- '("" xscheme-runlight))
-
-(mapcar 'make-variable-buffer-local
- '(xscheme-expressions-ring
- xscheme-expressions-ring-yank-pointer
- xscheme-process-filter-state
- xscheme-running-p
- xscheme-control-g-disabled-p
- xscheme-allow-output-p
- xscheme-prompt
- xscheme-string-accumulator
- xscheme-mode-string
- scheme-mode-line-process))
-
;;;; Basic Process Control
(defun xscheme-start-process (command-line the-process the-buffer)
@@ -880,6 +888,61 @@ from being inserted into the process-buffer.")
"True iff the current buffer is the Scheme process buffer."
(eq (xscheme-process-buffer) (current-buffer)))
+;;;; Process Filter Operations
+
+(defvar xscheme-process-filter-alist
+ '((?A xscheme-eval
+ xscheme-process-filter:string-action-noexcursion)
+ (?D xscheme-enter-debugger-mode
+ xscheme-process-filter:string-action)
+ (?E xscheme-eval
+ xscheme-process-filter:string-action)
+ (?P xscheme-set-prompt-variable
+ xscheme-process-filter:string-action)
+ (?R xscheme-enter-interaction-mode
+ xscheme-process-filter:simple-action)
+ (?b xscheme-start-gc
+ xscheme-process-filter:simple-action)
+ (?c xscheme-unsolicited-read-char
+ xscheme-process-filter:simple-action)
+ (?e xscheme-finish-gc
+ xscheme-process-filter:simple-action)
+ (?f xscheme-exit-input-wait
+ xscheme-process-filter:simple-action)
+ (?g xscheme-enable-control-g
+ xscheme-process-filter:simple-action)
+ (?i xscheme-prompt-for-expression
+ xscheme-process-filter:string-action)
+ (?m xscheme-message
+ xscheme-process-filter:string-action)
+ (?n xscheme-prompt-for-confirmation
+ xscheme-process-filter:string-action)
+ (?o xscheme-output-goto
+ xscheme-process-filter:simple-action)
+ (?p xscheme-set-prompt
+ xscheme-process-filter:string-action)
+ (?s xscheme-enter-input-wait
+ xscheme-process-filter:simple-action)
+ (?v xscheme-write-value
+ xscheme-process-filter:string-action)
+ (?w xscheme-cd
+ xscheme-process-filter:string-action)
+ (?z xscheme-display-process-buffer
+ xscheme-process-filter:simple-action))
+ "Table used to decide how to handle process filter commands.
+Value is a list of entries, each entry is a list of three items.
+
+The first item is the character that the process filter dispatches on.
+The second item is the action to be taken, a function.
+The third item is the handler for the entry, a function.
+
+When the process filter sees a command whose character matches a
+particular entry, it calls the handler with two arguments: the action
+and the string containing the rest of the process filter's input
+stream. It is the responsibility of the handler to invoke the action
+with the appropriate arguments, and to reenter the process filter with
+the remaining input.")
+
;;;; Process Filter
(defun xscheme-process-sentinel (proc reason)
@@ -1037,61 +1100,6 @@ from being inserted into the process-buffer.")
(rplaca (nthcdr 3 xscheme-runlight) runlight)
(force-mode-line-update t))
-;;;; Process Filter Operations
-
-(defvar xscheme-process-filter-alist
- '((?A xscheme-eval
- xscheme-process-filter:string-action-noexcursion)
- (?D xscheme-enter-debugger-mode
- xscheme-process-filter:string-action)
- (?E xscheme-eval
- xscheme-process-filter:string-action)
- (?P xscheme-set-prompt-variable
- xscheme-process-filter:string-action)
- (?R xscheme-enter-interaction-mode
- xscheme-process-filter:simple-action)
- (?b xscheme-start-gc
- xscheme-process-filter:simple-action)
- (?c xscheme-unsolicited-read-char
- xscheme-process-filter:simple-action)
- (?e xscheme-finish-gc
- xscheme-process-filter:simple-action)
- (?f xscheme-exit-input-wait
- xscheme-process-filter:simple-action)
- (?g xscheme-enable-control-g
- xscheme-process-filter:simple-action)
- (?i xscheme-prompt-for-expression
- xscheme-process-filter:string-action)
- (?m xscheme-message
- xscheme-process-filter:string-action)
- (?n xscheme-prompt-for-confirmation
- xscheme-process-filter:string-action)
- (?o xscheme-output-goto
- xscheme-process-filter:simple-action)
- (?p xscheme-set-prompt
- xscheme-process-filter:string-action)
- (?s xscheme-enter-input-wait
- xscheme-process-filter:simple-action)
- (?v xscheme-write-value
- xscheme-process-filter:string-action)
- (?w xscheme-cd
- xscheme-process-filter:string-action)
- (?z xscheme-display-process-buffer
- xscheme-process-filter:simple-action))
- "Table used to decide how to handle process filter commands.
-Value is a list of entries, each entry is a list of three items.
-
-The first item is the character that the process filter dispatches on.
-The second item is the action to be taken, a function.
-The third item is the handler for the entry, a function.
-
-When the process filter sees a command whose character matches a
-particular entry, it calls the handler with two arguments: the action
-and the string containing the rest of the process filter's input
-stream. It is the responsibility of the handler to invoke the action
-with the appropriate arguments, and to reenter the process filter with
-the remaining input.")
-
(defun xscheme-process-filter:simple-action (action)
(setq xscheme-process-filter-state 'idle)
(funcall action))
@@ -1196,10 +1204,6 @@ the remaining input.")
(defun xscheme-prompt-for-confirmation (prompt-string)
(xscheme-send-char (if (y-or-n-p prompt-string) ?y ?n)))
-(defun xscheme-prompt-for-expression (prompt-string)
- (xscheme-send-string-2
- (read-from-minibuffer prompt-string nil xscheme-prompt-for-expression-map)))
-
(defvar xscheme-prompt-for-expression-map nil)
(if (not xscheme-prompt-for-expression-map)
(progn
@@ -1209,6 +1213,10 @@ the remaining input.")
'xscheme-prompt-for-expression-exit
xscheme-prompt-for-expression-map)))
+(defun xscheme-prompt-for-expression (prompt-string)
+ (xscheme-send-string-2
+ (read-from-minibuffer prompt-string nil xscheme-prompt-for-expression-map)))
+
(defun xscheme-prompt-for-expression-exit ()
(interactive)
(if (eq (xscheme-region-expression-p (point-min) (point-max)) 'one)
diff --git a/lisp/ps-bdf.el b/lisp/ps-bdf.el
index 056438a2bc..6cc23f7bf6 100644
--- a/lisp/ps-bdf.el
+++ b/lisp/ps-bdf.el
@@ -272,18 +272,20 @@ CODE, where N and CODE are in the following relation:
(while (search-forward "\nSTARTCHAR" nil t)
(setq offset (line-beginning-position))
(search-forward "\nENCODING")
- (setq code (read (current-buffer))
- code0 (lsh code -8)
- code1 (logand code 255)
- min-code (min min-code code)
- max-code (max max-code code)
- min-code0 (min min-code0 code0)
- max-code0 (max max-code0 code0)
- min-code1 (min min-code1 code1)
- max-code1 (max max-code1 code1))
- (search-forward "ENDCHAR")
- (setq maxlen (max maxlen (- (point) offset))
- glyph-list (cons (cons code offset) glyph-list)))
+ (setq code (read (current-buffer)))
+ (if (< code 0)
+ (search-forward "ENDCHAR")
+ (setq code0 (lsh code -8)
+ code1 (logand code 255)
+ min-code (min min-code code)
+ max-code (max max-code code)
+ min-code0 (min min-code0 code0)
+ max-code0 (max max-code0 code0)
+ min-code1 (min min-code1 code1)
+ max-code1 (max max-code1 code1))
+ (search-forward "ENDCHAR")
+ (setq maxlen (max maxlen (- (point) offset))
+ glyph-list (cons (cons code offset) glyph-list))))
(setq code-range
(vector min-code0 max-code0 min-code1 max-code1
diff --git a/lisp/ps-mule.el b/lisp/ps-mule.el
index 3f28771f3a..748cfd560b 100644
--- a/lisp/ps-mule.el
+++ b/lisp/ps-mule.el
@@ -1,7 +1,7 @@
;;; ps-mule.el --- provide multi-byte character facility to ps-print
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Vinicius Jose Latorre <vinicius@cpqd.com.br>
;; Kenichi Handa <handa@etl.go.jp> (multi-byte characters)
@@ -1039,9 +1039,12 @@ the sequence."
/BOTTOM LLY def
currentfont /RelativeCompose known {
/relative currentfont /RelativeCompose get def
+ relative false eq {
+ %% Disable relative composition by setting sufficiently low
+ %% and high positions.
+ /relative [ -100000 100000 ] def
+ } if
} {
- %% Disable relative composition by setting sufficiently low
- %% and high positions.
/relative [ -100000 100000 ] def
} ifelse
[ elt 0 0 ]
@@ -1236,7 +1239,7 @@ NewBitmapDict
} ifelse
/FirstCode -1 store
- bmp 0 get SpaceWidthRatio ratio div mul size div 0 % wx wy
+ bmp 0 get size div 0 % wx wy
setcharwidth % We can't use setcachedevice here.
bmp 1 get 0 gt bmp 2 get 0 gt and {
diff --git a/lisp/ps-print.el b/lisp/ps-print.el
index 484c207e07..94f1f5839a 100644
--- a/lisp/ps-print.el
+++ b/lisp/ps-print.el
@@ -1,7 +1,7 @@
;;; ps-print.el --- print text from the buffer as PostScript
-;; Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-;; 2003, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+;; 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Jim Thompson (was <thompson@wg2.waii.com>)
;; Jacques Duthen (was <duthen@cegelec-red.fr>)
@@ -2269,7 +2269,7 @@ programming like EPS.
FILENAME is ignored, if it doesn't exist or is read protected.
X and Y are relative positions on paper to put the image.
-If X and Y are nil, the image is centralized on paper.
+If X and Y are nil, the image is centered on paper.
XSCALE and YSCALE are scale factor to be applied to image before printing.
If XSCALE and YSCALE are nil, the original size is used.
@@ -3031,7 +3031,7 @@ Valid values are:
Where RED, GREEN and BLUE are reals between 0.0 (no color) and
1.0 (full color).
-Any other value is ignored and it's used the black color.
+Any other value is ignored and black will be used.
It's used only when `ps-print-color-p' is non-nil."
:type '(choice :menu-tag "Default Foreground Gray/Color"
@@ -3071,7 +3071,7 @@ Valid values are:
Where RED, GREEN and BLUE are reals between 0.0 (no color) and
1.0 (full color).
-Any other value is ignored and it's used the white color.
+Any other value is ignored and white will be used.
It's used only when `ps-print-color-p' is non-nil.
@@ -4137,10 +4137,10 @@ Each symbol correspond to one bit in a bit vector.")
If optional MERGE-P is non-nil, extensions in FACE-EXTENSION-LIST are merged
with face extension in ALIST-SYM; otherwise, overrides.
-If optional ALIST-SYM is nil, it's used `ps-print-face-extension-alist';
+If optional ALIST-SYM is nil, `ps-print-face-extension-alist' is used;
otherwise, it should be an alist symbol.
-The elements in FACE-EXTENSION-LIST is like those for `ps-extend-face'.
+The elements in FACE-EXTENSION-LIST are like those for `ps-extend-face'.
See `ps-extend-face' for documentation."
(while face-extension-list
@@ -4155,7 +4155,7 @@ See `ps-extend-face' for documentation."
If optional MERGE-P is non-nil, extensions in FACE-EXTENSION list are merged
with face extensions in ALIST-SYM; otherwise, overrides.
-If optional ALIST-SYM is nil, it's used `ps-print-face-extension-alist';
+If optional ALIST-SYM is nil, `ps-print-face-extension-alist' is used;
otherwise, it should be an alist symbol.
The elements of FACE-EXTENSION list have the form:
@@ -5004,7 +5004,7 @@ page-height == ((floor print-height ((th + ls) * zh)) * ((th + ls) * zh)) - th
"PrintHeight 2 div BottomMargin add")
"\nBeginBackImage\n")
(ps-insert-file image-file)
- ;; coordinate adjustment to centralize image
+ ;; coordinate adjustment to center image
;; around x and y position
(let ((box (ps-get-boundingbox)))
(save-excursion
diff --git a/lisp/recentf.el b/lisp/recentf.el
index 57280a7b4b..524d00d389 100644
--- a/lisp/recentf.el
+++ b/lisp/recentf.el
@@ -1,7 +1,7 @@
;;; recentf.el --- setup a menu of recently opened files
-;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Ponce <david@dponce.com>
;; Created: July 19 1999
@@ -65,7 +65,7 @@ You should define the options of your own filters in this group."
(defcustom recentf-max-saved-items 20
"*Maximum number of items of the recent list that will be saved.
-nil means to save the whole list.
+A nil value means to save the whole list.
See the command `recentf-save-list'."
:group 'recentf
:type 'integer)
@@ -145,7 +145,7 @@ The default is to call `find-file' to edit the selected file."
(defcustom recentf-menu-filter nil
"*Function used to filter files displayed in the recentf menu.
-nil means no filter. The following functions are predefined:
+A nil value means no filter. The following functions are predefined:
- `recentf-sort-ascending'
Sort menu items in ascending order.
@@ -199,16 +199,14 @@ elements (see `recentf-make-menu-element' for menu element form)."
:set 'recentf-menu-customization-changed)
(defcustom recentf-menu-append-commands-flag t
- "*non-nil means to append command items to the menu."
+ "*Non-nil means to append command items to the menu."
:group 'recentf
:type 'boolean
:set 'recentf-menu-customization-changed)
-(defvaralias 'recentf-menu-append-commands-p
- 'recentf-menu-append-commands-flag)
-(make-obsolete-variable 'recentf-menu-append-commands-p
- 'recentf-menu-append-commands-flag
- "22.1")
+(define-obsolete-variable-alias 'recentf-menu-append-commands-p
+ 'recentf-menu-append-commands-flag
+ "22.1")
(defcustom recentf-auto-cleanup 'mode
"*Define when to automatically cleanup the recent list.
@@ -244,7 +242,7 @@ cleanup the list."
(recentf-auto-cleanup))))
(defcustom recentf-initialize-file-name-history t
- "*non-nil means to initialize `file-name-history' with the recent list.
+ "*Non-nil means to initialize `file-name-history' with the recent list.
If `file-name-history' is not empty, do nothing."
:group 'recentf
:type 'boolean)
@@ -350,8 +348,8 @@ filenames."
(defsubst recentf-expand-file-name (name)
"Convert filename NAME to absolute, and canonicalize it.
See also the function `expand-file-name'.
-If defined, call the function `recentf-filename-handler' to post
-process the canonical name."
+If defined, call the function `recentf-filename-handler'
+to postprocess the canonical name."
(let* ((filename (expand-file-name name)))
(or (and recentf-filename-handler
(funcall recentf-filename-handler filename))
@@ -557,7 +555,7 @@ menu-elements (no sub-menu)."
(defun recentf-clear-data ()
"Clear data used to build the recentf menu.
-This force a rebuild of the menu."
+This forces a rebuild of the menu."
(easy-menu-remove-item (recentf-menu-bar)
recentf-menu-path recentf-menu-title)
(setq recentf-data-cache nil))
@@ -703,7 +701,7 @@ defined."
(defcustom recentf-arrange-by-rule-subfilter nil
"*Function called by a rule based filter to filter sub-menu elements.
-nil means no filter. See also `recentf-menu-filter'.
+A nil value means no filter. See also `recentf-menu-filter'.
You can't use another rule based filter here."
:group 'recentf-filters
:type '(choice (const nil) function)
diff --git a/lisp/rect.el b/lisp/rect.el
index 08b601c050..d7ae6592f7 100644
--- a/lisp/rect.el
+++ b/lisp/rect.el
@@ -1,6 +1,7 @@
;;; rect.el --- rectangle functions for GNU Emacs
-;; Copyright (C) 1985, 1999, 2000, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1999, 2000, 2001, 2002, 2003, 2004
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: Didier Verna <didier@xemacs.org>
;; Keywords: internal
diff --git a/lisp/register.el b/lisp/register.el
index 4789047b0a..14d7494633 100644
--- a/lisp/register.el
+++ b/lisp/register.el
@@ -1,6 +1,7 @@
;;; register.el --- register commands for Emacs
-;; Copyright (C) 1985, 1993, 1994 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1993, 1994, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: internal
diff --git a/lisp/repeat.el b/lisp/repeat.el
index b1b8cc40aa..adaf8a4bb9 100644
--- a/lisp/repeat.el
+++ b/lisp/repeat.el
@@ -1,6 +1,6 @@
;;; repeat.el --- convenient way to repeat the previous command
-;; Copyright (C) 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Will Mengarini <seldon@eskimo.com>
;; Created: Mo 02 Mar 98
diff --git a/lisp/replace.el b/lisp/replace.el
index a8ef61e828..33162b02d3 100644
--- a/lisp/replace.el
+++ b/lisp/replace.el
@@ -1,7 +1,7 @@
;;; replace.el --- replace commands for Emacs
-;; Copyright (C) 1985, 1986, 1987, 1992, 1994, 1996, 1997, 2000, 2001, 2002,
-;; 2003, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1987, 1992, 1994, 1996, 1997, 2000, 2001,
+;; 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
@@ -88,7 +88,7 @@ is highlighted lazily using isearch lazy highlighting (see
(defun query-replace-descr (string)
(mapconcat 'isearch-text-char-description string ""))
-(defun query-replace-read-from (string regexp-flag)
+(defun query-replace-read-from (prompt regexp-flag)
"Query and return the `from' argument of a query-replace operation.
The return value can also be a pair (FROM . TO) indicating that the user
wants to replace FROM with TO."
@@ -107,10 +107,10 @@ wants to replace FROM with TO."
query-replace-from-history-variable))))
(read-from-minibuffer
(if (and lastto lastfrom)
- (format "%s (default %s -> %s): " string
+ (format "%s (default %s -> %s): " prompt
(query-replace-descr lastfrom)
(query-replace-descr lastto))
- (format "%s: " string))
+ (format "%s: " prompt))
nil nil nil
query-replace-from-history-variable
nil t t))))
@@ -173,22 +173,22 @@ the original string if not."
to))
-(defun query-replace-read-to (from string regexp-flag)
+(defun query-replace-read-to (from prompt regexp-flag)
"Query and return the `to' argument of a query-replace operation."
(query-replace-compile-replacement
(save-excursion
(read-from-minibuffer
- (format "%s %s with: " string (query-replace-descr from))
+ (format "%s %s with: " prompt (query-replace-descr from))
nil nil nil
query-replace-to-history-variable from t t))
regexp-flag))
-(defun query-replace-read-args (string regexp-flag &optional noerror)
+(defun query-replace-read-args (prompt regexp-flag &optional noerror)
(unless noerror
(barf-if-buffer-read-only))
- (let* ((from (query-replace-read-from string regexp-flag))
+ (let* ((from (query-replace-read-from prompt regexp-flag))
(to (if (consp from) (prog1 (cdr from) (setq from (car from)))
- (query-replace-read-to from string regexp-flag))))
+ (query-replace-read-to from prompt regexp-flag))))
(list from to current-prefix-arg)))
(defun query-replace (from-string to-string &optional delimited start end)
@@ -847,7 +847,7 @@ Compatibility function for \\[next-error] invocations."
'((((class color) (min-colors 88) (background light))
:background "Tan")
(((class color) (min-colors 88) (background dark))
- :background "RoyalBlue4")
+ :background "RoyalBlue3")
(((class color) (min-colors 8))
:background "blue" :foreground "white")
(((type tty) (class mono))
@@ -1061,6 +1061,8 @@ See also `multi-occur'."
title-face prefix-face match-face keep-props)
(with-current-buffer out-buf
(let ((globalcount 0)
+ ;; Don't generate undo entries for creation of the initial contents.
+ (buffer-undo-list t)
(coding nil))
;; Map over all the buffers
(dolist (buf buffers)
diff --git a/lisp/reposition.el b/lisp/reposition.el
index 41283ce251..7a6ea277b0 100644
--- a/lisp/reposition.el
+++ b/lisp/reposition.el
@@ -1,6 +1,7 @@
;;; reposition.el --- center a Lisp function or comment on the screen
-;; Copyright (C) 1991, 1994 Free Software Foundation, Inc.
+;; Copyright (C) 1991, 1994, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Michael D. Ernst <mernst@theory.lcs.mit.edu>
;; Created: Jan 1991
diff --git a/lisp/resume.el b/lisp/resume.el
index db21a4bab4..29ce253e4a 100644
--- a/lisp/resume.el
+++ b/lisp/resume.el
@@ -1,6 +1,6 @@
;;; resume.el --- process command line args from within a suspended Emacs job
-;; Copyright (C) 1992 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Joe Wells <jbw@bucsf.bu.edu>
;; Adapted-By: ESR
diff --git a/lisp/reveal.el b/lisp/reveal.el
index 402fa7c4f4..41b7c4268c 100644
--- a/lisp/reveal.el
+++ b/lisp/reveal.el
@@ -1,6 +1,7 @@
;;; reveal.el --- Automatically reveal hidden text at point
-;; Copyright (C) 2000, 2001, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Stefan Monnier <monnier@cs.yale.edu>
;; Keywords: outlines
diff --git a/lisp/rfn-eshadow.el b/lisp/rfn-eshadow.el
index 5c7865d864..9141b5220e 100644
--- a/lisp/rfn-eshadow.el
+++ b/lisp/rfn-eshadow.el
@@ -1,6 +1,7 @@
;;; rfn-eshadow.el --- Highlight `shadowed' part of read-file-name input text
;;
-;; Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;;
;; Author: Miles Bader <miles@gnu.org>
;; Keywords: convenience minibuffer
diff --git a/lisp/rot13.el b/lisp/rot13.el
index 99b34ef9d1..664e2cfadc 100644
--- a/lisp/rot13.el
+++ b/lisp/rot13.el
@@ -1,6 +1,6 @@
;;; rot13.el --- display a buffer in rot13
-;; Copyright (C) 1988,2002 Free Software Foundation, Inc.
+;; Copyright (C) 1988, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Howard Gayle
;; Maintainer: FSF
diff --git a/lisp/ruler-mode.el b/lisp/ruler-mode.el
index 783e511d0b..4763072a42 100644
--- a/lisp/ruler-mode.el
+++ b/lisp/ruler-mode.el
@@ -221,8 +221,6 @@ or remove a tab stop. \\[ruler-mode-toggle-show-tab-stops] or
)))
"Default face used by the ruler."
:group 'ruler-mode)
-;; backward-compatibility alias
-(put 'ruler-mode-default-face 'face-alias 'ruler-mode-default)
(defface ruler-mode-pad
'((((type tty))
@@ -235,8 +233,6 @@ or remove a tab stop. \\[ruler-mode-toggle-show-tab-stops] or
)))
"Face used to pad inactive ruler areas."
:group 'ruler-mode)
-;; backward-compatibility alias
-(put 'ruler-mode-pad-face 'face-alias 'ruler-mode-pad)
(defface ruler-mode-margins
'((t
@@ -245,8 +241,6 @@ or remove a tab stop. \\[ruler-mode-toggle-show-tab-stops] or
)))
"Face used to highlight margin areas."
:group 'ruler-mode)
-;; backward-compatibility alias
-(put 'ruler-mode-margins-face 'face-alias 'ruler-mode-margins)
(defface ruler-mode-fringes
'((t
@@ -255,8 +249,6 @@ or remove a tab stop. \\[ruler-mode-toggle-show-tab-stops] or
)))
"Face used to highlight fringes areas."
:group 'ruler-mode)
-;; backward-compatibility alias
-(put 'ruler-mode-fringes-face 'face-alias 'ruler-mode-fringes)
(defface ruler-mode-column-number
'((t
@@ -265,8 +257,6 @@ or remove a tab stop. \\[ruler-mode-toggle-show-tab-stops] or
)))
"Face used to highlight number graduations."
:group 'ruler-mode)
-;; backward-compatibility alias
-(put 'ruler-mode-column-number-face 'face-alias 'ruler-mode-column-number)
(defface ruler-mode-fill-column
'((t
@@ -275,8 +265,6 @@ or remove a tab stop. \\[ruler-mode-toggle-show-tab-stops] or
)))
"Face used to highlight the fill column character."
:group 'ruler-mode)
-;; backward-compatibility alias
-(put 'ruler-mode-fill-column-face 'face-alias 'ruler-mode-fill-column)
(defface ruler-mode-comment-column
'((t
@@ -285,8 +273,6 @@ or remove a tab stop. \\[ruler-mode-toggle-show-tab-stops] or
)))
"Face used to highlight the comment column character."
:group 'ruler-mode)
-;; backward-compatibility alias
-(put 'ruler-mode-comment-column-face 'face-alias 'ruler-mode-comment-column)
(defface ruler-mode-goal-column
'((t
@@ -295,8 +281,6 @@ or remove a tab stop. \\[ruler-mode-toggle-show-tab-stops] or
)))
"Face used to highlight the goal column character."
:group 'ruler-mode)
-;; backward-compatibility alias
-(put 'ruler-mode-goal-column-face 'face-alias 'ruler-mode-goal-column)
(defface ruler-mode-tab-stop
'((t
@@ -305,8 +289,6 @@ or remove a tab stop. \\[ruler-mode-toggle-show-tab-stops] or
)))
"Face used to highlight tab stop characters."
:group 'ruler-mode)
-;; backward-compatibility alias
-(put 'ruler-mode-tab-stop-face 'face-alias 'ruler-mode-tab-stop)
(defface ruler-mode-current-column
'((t
@@ -316,8 +298,6 @@ or remove a tab stop. \\[ruler-mode-toggle-show-tab-stops] or
)))
"Face used to highlight the `current-column' character."
:group 'ruler-mode)
-;; backward-compatibility alias
-(put 'ruler-mode-current-column-face 'face-alias 'ruler-mode-current-column)
(defsubst ruler-mode-full-window-width ()
diff --git a/lisp/s-region.el b/lisp/s-region.el
index d3fa6b1f30..06b5bb3f92 100644
--- a/lisp/s-region.el
+++ b/lisp/s-region.el
@@ -1,6 +1,7 @@
;;; s-region.el --- set region using shift key
-;; Copyright (C) 1994, 1995 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Morten Welinder <terra@diku.dk>
;; Keywords: terminals
@@ -63,12 +64,12 @@
(error "Non-vector key: %S" key)))
(defun s-region-move-p1 (&rest arg)
- "This is an overlay function to point-moving keys that are interactive \"p\""
+ "This is an overlay function to point-moving keys that are interactive \"p\"."
(interactive "p")
(apply (function s-region-move) arg))
(defun s-region-move-p2 (&rest arg)
- "This is an overlay function to point-moving keys that are interactive \"P\""
+ "This is an overlay function to point-moving keys that are interactive \"P\"."
(interactive "P")
(apply (function s-region-move) arg))
@@ -83,10 +84,10 @@
(delete-overlay s-region-overlay))
(defun s-region-bind (keylist &optional map)
- "Bind shifted keys in KEYLIST to s-region-move-p1 or s-region-move-p2.
-Each key in KEYLIST is shifted and bound to one of the s-region-move
+ "Bind shifted keys in KEYLIST to `s-region-move-p1' or `s-region-move-p2'.
+Each key in KEYLIST is shifted and bound to one of the `s-region-move'
functions provided it is already bound to some command or other.
-Optional third argument MAP specifies keymap to add binding to, defaulting
+Optional second argument MAP specifies keymap to add binding to, defaulting
to global keymap."
(let ((p2 (list 'scroll-up 'scroll-down
'beginning-of-buffer 'end-of-buffer)))
diff --git a/lisp/saveplace.el b/lisp/saveplace.el
index afb10ede9d..645b298ee6 100644
--- a/lisp/saveplace.el
+++ b/lisp/saveplace.el
@@ -1,6 +1,7 @@
;;; saveplace.el --- automatically save place in files
-;; Copyright (C) 1993, 1994, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Karl Fogel <kfogel@red-bean.com>
;; Maintainer: FSF
diff --git a/lisp/scroll-all.el b/lisp/scroll-all.el
index 2c0636d69d..f2a953f7a2 100644
--- a/lisp/scroll-all.el
+++ b/lisp/scroll-all.el
@@ -1,6 +1,6 @@
;;; scroll-all.el --- scroll all buffers together minor mode
-;; Copyright (C) 1997 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Gary D. Foster <Gary.Foster@corp.sun.com>
;; Keywords: scroll crisp brief lock
diff --git a/lisp/scroll-bar.el b/lisp/scroll-bar.el
index 64429ba4da..1fabb78dc4 100644
--- a/lisp/scroll-bar.el
+++ b/lisp/scroll-bar.el
@@ -1,7 +1,7 @@
;;; scroll-bar.el --- window system-independent scroll bar support
-;; Copyright (C) 1993, 1994, 1995, 1999, 2000, 2001, 2003
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 1995, 1999, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: hardware
diff --git a/lisp/scroll-lock.el b/lisp/scroll-lock.el
new file mode 100644
index 0000000000..e5fca2d1c6
--- /dev/null
+++ b/lisp/scroll-lock.el
@@ -0,0 +1,129 @@
+;;; scroll-lock.el --- Scroll lock scrolling.
+
+;; Copyright (C) 2005 Free Software Foundation, Inc.
+
+;; Author: Ralf Angeli <angeli@iwi.uni-sb.de>
+;; Maintainer: FSF
+;; Created: 2005-06-18
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program; see the file COPYING. If not, write to
+;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
+
+;;; Commentary:
+
+;; By activating Scroll Lock mode, keys for moving point by line or
+;; paragraph will scroll the buffer by the respective amount of lines
+;; instead. Point will be kept vertically fixed relative to window
+;; boundaries.
+
+;;; Code:
+
+(defvar scroll-lock-mode-map
+ (let ((map (make-sparse-keymap)))
+ (define-key map [remap next-line] 'scroll-lock-next-line)
+ (define-key map [remap previous-line] 'scroll-lock-previous-line)
+ (define-key map [remap forward-paragraph] 'scroll-lock-forward-paragraph)
+ (define-key map [remap backward-paragraph] 'scroll-lock-backward-paragraph)
+ map)
+ "Keymap for Scroll Lock mode.")
+
+(defvar scroll-lock-preserve-screen-pos-save scroll-preserve-screen-position
+ "Used for saving the state of `scroll-preserve-screen-position'.")
+(make-variable-buffer-local 'scroll-lock-preserve-screen-pos-save)
+
+(defvar scroll-lock-temporary-goal-column 0
+ "Like `temporary-goal-column' but for scroll-lock-* commands.")
+
+;;;###autoload
+(define-minor-mode scroll-lock-mode
+ "Minor mode for pager-like scrolling.
+Keys which normally move point by line or paragraph will scroll
+the buffer by the respective amount of lines instead and point
+will be kept vertically fixed relative to window boundaries
+during scrolling."
+ :lighter " ScrLck"
+ :keymap scroll-lock-mode-map
+ (if scroll-lock-mode
+ (progn
+ (setq scroll-lock-preserve-screen-pos-save
+ scroll-preserve-screen-position)
+ (set (make-local-variable 'scroll-preserve-screen-position) 'always))
+ (setq scroll-preserve-screen-position
+ scroll-lock-preserve-screen-pos-save)))
+
+(defun scroll-lock-update-goal-column ()
+ "Update `scroll-lock-temporary-goal-column' if necessary."
+ (unless (memq last-command '(scroll-lock-next-line
+ scroll-lock-previous-line
+ scroll-lock-forward-paragraph
+ scroll-lock-backward-paragraph))
+ (setq scroll-lock-temporary-goal-column (current-column))))
+
+(defun scroll-lock-move-to-column (column)
+ "Like `move-to-column' but cater for wrapped lines."
+ (if (or (bolp)
+ ;; Start of a screen line.
+ (not (zerop (mod (- (point) (line-beginning-position))
+ (window-width)))))
+ (move-to-column column)
+ (forward-char (min column (- (line-end-position) (point))))))
+
+(defun scroll-lock-next-line (&optional arg)
+ "Scroll up ARG lines keeping point fixed."
+ (interactive "p")
+ (or arg (setq arg 1))
+ (scroll-lock-update-goal-column)
+ (if (pos-visible-in-window-p (point-max))
+ (next-line arg)
+ (scroll-up arg))
+ (scroll-lock-move-to-column scroll-lock-temporary-goal-column))
+
+(defun scroll-lock-previous-line (&optional arg)
+ "Scroll up ARG lines keeping point fixed."
+ (interactive "p")
+ (or arg (setq arg 1))
+ (scroll-lock-update-goal-column)
+ (condition-case nil
+ (scroll-down arg)
+ (beginning-of-buffer (previous-line arg)))
+ (scroll-lock-move-to-column scroll-lock-temporary-goal-column))
+
+(defun scroll-lock-forward-paragraph (&optional arg)
+ "Scroll down ARG paragraphs keeping point fixed."
+ (interactive "p")
+ (or arg (setq arg 1))
+ (scroll-lock-update-goal-column)
+ (scroll-up (count-screen-lines (point) (save-excursion
+ (forward-paragraph arg)
+ (point))))
+ (scroll-lock-move-to-column scroll-lock-temporary-goal-column))
+
+(defun scroll-lock-backward-paragraph (&optional arg)
+ "Scroll up ARG paragraphs keeping point fixed."
+ (interactive "p")
+ (or arg (setq arg 1))
+ (scroll-lock-update-goal-column)
+ (let ((goal (save-excursion (backward-paragraph arg) (point))))
+ (condition-case nil
+ (scroll-down (count-screen-lines goal (point)))
+ (beginning-of-buffer (goto-char goal))))
+ (scroll-lock-move-to-column scroll-lock-temporary-goal-column))
+
+(provide 'scroll-lock)
+
+;; arch-tag: 148fc8e8-67e0-4638-bb34-3291595ab7e1
+;;; scroll-lock.el ends here
diff --git a/lisp/select.el b/lisp/select.el
index 46f9fd7fab..1d8d13208f 100644
--- a/lisp/select.el
+++ b/lisp/select.el
@@ -3,7 +3,8 @@
;; Maintainer: FSF
;; Keywords: internal
-;; Copyright (c) 1993, 1994, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Based partially on earlier release by Lucid.
;; This file is part of GNU Emacs.
diff --git a/lisp/server.el b/lisp/server.el
index 0c6175d1ee..0104e2787f 100644
--- a/lisp/server.el
+++ b/lisp/server.el
@@ -1,7 +1,7 @@
;;; server.el --- Lisp code for GNU Emacs running as server process
-;; Copyright (C) 1986,87,92,94,95,96,97,98,99,2000,01,02,03,2004
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1986, 1987, 1992, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+;; 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: William Sommerfeld <wesommer@athena.mit.edu>
;; Maintainer: FSF
@@ -1049,7 +1049,7 @@ only these files will be asked to be saved."
(server-delete-client proc))
(save-buffers-kill-emacs))))
-(global-set-key "\C-x#" 'server-edit)
+(define-key ctl-x-map "#" 'server-edit)
(defun server-unload-hook ()
"Unload the server library."
diff --git a/lisp/ses.el b/lisp/ses.el
index f7de1ddb50..e4124de9fb 100644
--- a/lisp/ses.el
+++ b/lisp/ses.el
@@ -1,6 +1,6 @@
;;; ses.el -- Simple Emacs Spreadsheet -*- coding: utf-8 -*-
-;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Jonathan Yavner <jyavner@member.fsf.org>
;; Maintainer: Jonathan Yavner <jyavner@member.fsf.org>
diff --git a/lisp/shadowfile.el b/lisp/shadowfile.el
index 2e5943db0f..990049afff 100644
--- a/lisp/shadowfile.el
+++ b/lisp/shadowfile.el
@@ -1,6 +1,7 @@
;;; shadowfile.el --- automatic file copying
-;; Copyright (C) 1993, 1994, 2001, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Boris Goldowsky <boris@gnu.org>
;; Keywords: comm files
diff --git a/lisp/shell.el b/lisp/shell.el
index 2684ee30a6..0f71d8d820 100644
--- a/lisp/shell.el
+++ b/lisp/shell.el
@@ -1,6 +1,7 @@
;;; shell.el --- specialized comint.el for running the shell
-;; Copyright (C) 1988, 93, 94, 95, 96, 1997, 2000 Free Software Foundation, Inc.
+;; Copyright (C) 1988, 1993, 1994, 1995, 1996, 1997, 2000,
+;; 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Olin Shivers <shivers@cs.cmu.edu>
;; Simon Marshall <simon@gnu.org>
@@ -411,7 +412,7 @@ Variable `shell-completion-fignore' is used to initialize the value of
`comint-completion-fignore'.
Variables `comint-input-ring-file-name' and `comint-input-autoexpand' control
-the initialisation of the input ring history, and history expansion.
+the initialization of the input ring history, and history expansion.
Variables `comint-output-filter-functions', a hook, and
`comint-scroll-to-bottom-on-input' and `comint-scroll-to-bottom-on-output'
@@ -790,7 +791,7 @@ line output and parses it to form the new directory stack.
DON'T issue this command unless the buffer is at a shell prompt.
Also, note that if some other subprocess decides to do output
immediately after the query, its output will be taken as the
-new directory stack -- you lose. If this happens, just do the
+new directory stack -- you lose. If this happens, just do the
command again."
(interactive)
(let* ((proc (get-buffer-process (current-buffer)))
diff --git a/lisp/simple.el b/lisp/simple.el
index c620b80f3e..c6837ecabb 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -1,8 +1,7 @@
;;; simple.el --- basic editing commands for Emacs
;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-;; 2000, 2001, 2002, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: internal
@@ -35,6 +34,8 @@
(autoload 'widget-convert "wid-edit")
(autoload 'shell-mode "shell"))
+(defvar compilation-current-error)
+
(defcustom idle-update-delay 0.5
"*Idle time delay before updating various things on the screen.
Various Emacs features that update auxiliary information when point moves
@@ -74,7 +75,7 @@ wait this many seconds after Emacs becomes idle before doing an update."
;;; next-error support framework
(defgroup next-error nil
- "next-error support framework."
+ "`next-error' support framework."
:group 'compilation
:version "22.1")
@@ -86,8 +87,8 @@ wait this many seconds after Emacs becomes idle before doing an update."
(defcustom next-error-highlight 0.1
"*Highlighting of locations in selected source buffers.
-If number, highlight the locus in next-error face for given time in seconds.
-If t, use persistent overlays fontified in next-error face.
+If number, highlight the locus in `next-error' face for given time in seconds.
+If t, use persistent overlays fontified in `next-error' face.
If nil, don't highlight the locus in the source buffer.
If `fringe-arrow', indicate the locus by the fringe arrow."
:type '(choice (number :tag "Delay")
@@ -99,8 +100,8 @@ If `fringe-arrow', indicate the locus by the fringe arrow."
(defcustom next-error-highlight-no-select 0.1
"*Highlighting of locations in non-selected source buffers.
-If number, highlight the locus in next-error face for given time in seconds.
-If t, use persistent overlays fontified in next-error face.
+If number, highlight the locus in `next-error' face for given time in seconds.
+If t, use persistent overlays fontified in `next-error' face.
If nil, don't highlight the locus in the source buffer.
If `fringe-arrow', indicate the locus by the fringe arrow."
:type '(choice (number :tag "Delay")
@@ -110,6 +111,11 @@ If `fringe-arrow', indicate the locus by the fringe arrow."
:group 'next-error
:version "22.1")
+(defcustom next-error-hook nil
+ "*List of hook functions run by `next-error' after visiting source file."
+ :type 'hook
+ :group 'next-error)
+
(defvar next-error-highlight-timer nil)
(defvar next-error-overlay-arrow-position nil)
@@ -117,7 +123,7 @@ If `fringe-arrow', indicate the locus by the fringe arrow."
(add-to-list 'overlay-arrow-variable-list 'next-error-overlay-arrow-position)
(defvar next-error-last-buffer nil
- "The most recent next-error buffer.
+ "The most recent `next-error' buffer.
A buffer becomes most recent when its compilation, grep, or
similar mode is started, or when it is used with \\[next-error]
or \\[compile-goto-error].")
@@ -138,7 +144,7 @@ to navigate in it.")
&optional avoid-current
extra-test-inclusive
extra-test-exclusive)
- "Test if BUFFER is a next-error capable buffer.
+ "Test if BUFFER is a `next-error' capable buffer.
If AVOID-CURRENT is non-nil, treat the current buffer
as an absolute last resort only.
@@ -165,7 +171,7 @@ that buffer is rejected."
(defun next-error-find-buffer (&optional avoid-current
extra-test-inclusive
extra-test-exclusive)
- "Return a next-error capable buffer.
+ "Return a `next-error' capable buffer.
If AVOID-CURRENT is non-nil, treat the current buffer
as an absolute last resort only.
@@ -218,7 +224,7 @@ that buffer is rejected."
(error "No next-error capable buffer found")))
(defun next-error (&optional arg reset)
- "Visit next next-error message and corresponding source code.
+ "Visit next `next-error' message and corresponding source code.
If all the error messages parsed so far have been processed already,
the message buffer is checked for new ones.
@@ -240,9 +246,10 @@ To specify use of a particular buffer for error messages, type
\\[next-error] in that buffer when it is the only one displayed
in the current frame.
-Once \\[next-error] has chosen the buffer for error messages,
-it stays with that buffer until you use it in some other buffer which
-uses Compilation mode or Compilation Minor mode.
+Once \\[next-error] has chosen the buffer for error messages, it
+runs `next-error-hook' with `run-hooks', and stays with that buffer
+until you use it in some other buffer which uses Compilation mode
+or Compilation Minor mode.
See variables `compilation-parse-errors-function' and
\`compilation-error-regexp-alist' for customization ideas."
@@ -251,13 +258,14 @@ See variables `compilation-parse-errors-function' and
(when (setq next-error-last-buffer (next-error-find-buffer))
;; we know here that next-error-function is a valid symbol we can funcall
(with-current-buffer next-error-last-buffer
- (funcall next-error-function (prefix-numeric-value arg) reset))))
+ (funcall next-error-function (prefix-numeric-value arg) reset)
+ (run-hooks 'next-error-hook))))
(defalias 'goto-next-locus 'next-error)
(defalias 'next-match 'next-error)
(defun previous-error (&optional n)
- "Visit previous next-error message and corresponding source code.
+ "Visit previous `next-error' message and corresponding source code.
Prefix arg N says how many error messages to move backwards (or
forwards, if negative).
@@ -275,7 +283,7 @@ This operates on the output from the \\[compile] command, for instance."
(next-error n t))
(defun next-error-no-select (&optional n)
- "Move point to the next error in the next-error buffer and highlight match.
+ "Move point to the next error in the `next-error' buffer and highlight match.
Prefix arg N says how many error messages to move forwards (or
backwards, if negative).
Finds and highlights the source line like \\[next-error], but does not
@@ -286,7 +294,7 @@ select the source buffer."
(pop-to-buffer next-error-last-buffer))
(defun previous-error-no-select (&optional n)
- "Move point to the previous error in the next-error buffer and highlight match.
+ "Move point to the previous error in the `next-error' buffer and highlight match.
Prefix arg N says how many error messages to move backwards (or
forwards, if negative).
Finds and highlights the source line like \\[previous-error], but does not
@@ -302,11 +310,11 @@ select the source buffer."
When turned on, cursor motion in the compilation, grep, occur or diff
buffer causes automatic display of the corresponding source code
location."
- :group 'next-error :init-value " Fol"
+ :group 'next-error :init-value nil :lighter " Fol"
(if (not next-error-follow-minor-mode)
(remove-hook 'post-command-hook 'next-error-follow-mode-post-command-hook t)
(add-hook 'post-command-hook 'next-error-follow-mode-post-command-hook nil t)
- (make-variable-buffer-local 'next-error-follow-last-line)))
+ (make-local-variable 'next-error-follow-last-line)))
;;; Used as a `post-command-hook' by `next-error-follow-mode'
;;; for the *Compilation* *grep* and *Occur* buffers.
@@ -419,8 +427,8 @@ than the value of `fill-column' and ARG is nil."
(defun open-line (n)
"Insert a newline and leave point before it.
-If there is a fill prefix and/or a left-margin, insert them on the new line
-if the line would have been blank.
+If there is a fill prefix and/or a `left-margin', insert them
+on the new line if the line would have been blank.
With arg N, insert N newlines."
(interactive "*p")
(let* ((do-fill-prefix (and fill-prefix (bolp)))
@@ -442,7 +450,7 @@ With arg N, insert N newlines."
(defun split-line (&optional arg)
"Split current line, moving portion beyond point vertically down.
If the current line starts with `fill-prefix', insert it on the new
-line as well. With prefix ARG, don't insert fill-prefix on new line.
+line as well. With prefix ARG, don't insert `fill-prefix' on new line.
When called from Lisp code, ARG may be a prefix string to copy."
(interactive "*P")
@@ -640,7 +648,7 @@ Leave one space or none, according to the context."
(save-excursion (forward-char -1)
(looking-at "$\\|\\s(\\|\\s'")))
nil
- (insert ?\ ))))
+ (insert ?\s))))
(defun delete-horizontal-space (&optional backward-only)
"Delete all spaces and tabs around point.
@@ -664,9 +672,9 @@ If BACKWARD-ONLY is non-nil, only delete spaces before point."
(skip-chars-backward " \t")
(constrain-to-field nil orig-pos)
(dotimes (i (or n 1))
- (if (= (following-char) ?\ )
+ (if (= (following-char) ?\s)
(forward-char 1)
- (insert ?\ )))
+ (insert ?\s)))
(delete-region
(point)
(progn
@@ -1267,7 +1275,7 @@ by the new completion."
;; For compatibility with the old subr of the same name.
(defun minibuffer-prompt-width ()
"Return the display width of the minibuffer prompt.
-Return 0 if current buffer is not a mini-buffer."
+Return 0 if current buffer is not a minibuffer."
;; Return the width of everything before the field at the end of
;; the buffer; this should be 0 for normal buffers.
(1- (minibuffer-prompt-end)))
@@ -2342,7 +2350,7 @@ handler, if non-nil, is stored as a `yank-handler' text property on STRING).
When the yank handler has a non-nil PARAM element, the original STRING
argument is not used by `insert-for-yank'. However, since Lisp code
-may access and use elements from the kill-ring directly, the STRING
+may access and use elements from the kill ring directly, the STRING
argument should still be a \"useful\" string for such uses."
(if (> (length string) 0)
(if yank-handler
@@ -2681,7 +2689,7 @@ and KILLP is t if a prefix arg was specified."
(let ((col (current-column)))
(forward-char -1)
(setq col (- col (current-column)))
- (insert-char ?\ col)
+ (insert-char ?\s col)
(delete-char 1)))
(forward-char -1)
(setq count (1- count))))))
@@ -3238,8 +3246,8 @@ as a fallback, and won't change the buffer bounds.")
(or (and (>= position (point-min))
(<= position (point-max)))
(if widen-automatically
- (error "Global mark position is outside accessible part of buffer")
- (widen)))
+ (widen)
+ (error "Global mark position is outside accessible part of buffer")))
(goto-char position)
(switch-to-buffer buffer)))
@@ -3437,51 +3445,41 @@ Outline mode sets this."
;; Now move a line.
(end-of-line)
;; If there's no invisibility here, move over the newline.
- (let ((pos-before (point))
- line-done)
- (if (eobp)
- (if (not noerror)
- (signal 'end-of-buffer nil)
- (setq done t)))
- (when (and (not done)
- (not (integerp selective-display))
- (not (line-move-invisible-p (point))))
- (unless (overlays-in (max (1- pos-before) (point-min))
- (min (1+ (point)) (point-max)))
- ;; We avoid vertical-motion when possible
- ;; because that has to fontify.
- (forward-line 1)
- (setq line-done t)))
- (and (not done) (not line-done)
- ;; Otherwise move a more sophisticated way.
- (zerop (vertical-motion 1))
- (if (not noerror)
- (signal 'end-of-buffer nil)
- (setq done t))))
+ (cond
+ ((eobp)
+ (if (not noerror)
+ (signal 'end-of-buffer nil)
+ (setq done t)))
+ ((and (> arg 1) ;; Use vertical-motion for last move
+ (not (integerp selective-display))
+ (not (line-move-invisible-p (point))))
+ ;; We avoid vertical-motion when possible
+ ;; because that has to fontify.
+ (forward-line 1))
+ ;; Otherwise move a more sophisticated way.
+ ((zerop (vertical-motion 1))
+ (if (not noerror)
+ (signal 'end-of-buffer nil)
+ (setq done t))))
(unless done
(setq arg (1- arg))))
;; The logic of this is the same as the loop above,
;; it just goes in the other direction.
(while (and (< arg 0) (not done))
(beginning-of-line)
- (let ((pos-before (point))
- line-done)
- (if (bobp)
- (if (not noerror)
- (signal 'beginning-of-buffer nil)
- (setq done t)))
- (when (and (not done)
- (not (integerp selective-display))
- (not (line-move-invisible-p (1- (point)))))
- (unless (overlays-in (max (1- (point)) (point-min))
- (min (1+ pos-before) (point-max)))
- (forward-line -1)
- (setq line-done t)))
- (and (not done) (not line-done)
- (zerop (vertical-motion -1))
- (if (not noerror)
- (signal 'beginning-of-buffer nil)
- (setq done t))))
+ (cond
+ ((bobp)
+ (if (not noerror)
+ (signal 'beginning-of-buffer nil)
+ (setq done t)))
+ ((and (< arg -1) ;; Use vertical-motion for last move
+ (not (integerp selective-display))
+ (not (line-move-invisible-p (1- (point)))))
+ (forward-line -1))
+ ((zerop (vertical-motion -1))
+ (if (not noerror)
+ (signal 'beginning-of-buffer nil)
+ (setq done t))))
(unless done
(setq arg (1+ arg))
(while (and ;; Don't move over previous invis lines
@@ -3498,8 +3496,8 @@ Outline mode sets this."
;; at least go to end of line.
(end-of-line))
((< arg 0)
- ;; If we did not move down as far as desired,
- ;; at least go to end of line.
+ ;; If we did not move up as far as desired,
+ ;; at least go to beginning of line.
(beginning-of-line))
(t
(line-move-finish (or goal-column temporary-goal-column)
@@ -4082,7 +4080,7 @@ Just \\[universal-argument] as argument means to use the current column."
(setq arg (current-column)))
(if (not (integerp arg))
;; Disallow missing argument; it's probably a typo for C-x C-f.
- (error "Set-fill-column requires an explicit argument")
+ (error "set-fill-column requires an explicit argument")
(message "Fill column set to %d (was %d)" arg fill-column)
(setq fill-column arg)))
@@ -4162,7 +4160,7 @@ with the character typed.
typing characters do.
Note that binary overwrite mode is not its own minor mode; it is a
-specialization of overwrite-mode, entered by setting the
+specialization of overwrite mode, entered by setting the
`overwrite-mode' variable to `overwrite-mode-binary'."
(interactive "P")
(setq overwrite-mode
@@ -4215,8 +4213,9 @@ when it is off screen)."
:group 'paren-blinking)
(defcustom blink-matching-paren-distance (* 25 1024)
- "*If non-nil, is maximum distance to search for matching open-paren."
- :type 'integer
+ "*If non-nil, maximum distance to search backwards for matching open-paren.
+If nil, search stops at the beginning of the accessible portion of the buffer."
+ :type '(choice (const nil) integer)
:group 'paren-blinking)
(defcustom blink-matching-delay 1
@@ -5006,7 +5005,7 @@ PREFIX is the string that represents this modifier in an event type symbol."
(define-key function-key-map (vector keypad) (vector normal))))
'((kp-0 ?0) (kp-1 ?1) (kp-2 ?2) (kp-3 ?3) (kp-4 ?4)
(kp-5 ?5) (kp-6 ?6) (kp-7 ?7) (kp-8 ?8) (kp-9 ?9)
- (kp-space ?\ )
+ (kp-space ?\s)
(kp-tab ?\t)
(kp-enter ?\r)
(kp-multiply ?*)
@@ -5147,7 +5146,7 @@ or by incrementing the N in an existing suffix.
DISPLAY-FLAG non-nil means show the new buffer with `pop-to-buffer'.
This is always done when called interactively.
-Optional last arg NORECORD non-nil means do not put this buffer at the
+Optional third arg NORECORD non-nil means do not put this buffer at the
front of the list of recently selected ones."
(interactive
(progn
diff --git a/lisp/skeleton.el b/lisp/skeleton.el
index f854621cc8..26d6613d1b 100644
--- a/lisp/skeleton.el
+++ b/lisp/skeleton.el
@@ -1,6 +1,7 @@
;;; skeleton.el --- Lisp language extension for writing statement skeletons
-;; Copyright (C) 1993, 1994, 1995, 1996, 2003 by Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 1995, 1996, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Daniel Pfeiffer <occitan@esperanto.org>
;; Maintainer: FSF
@@ -154,7 +155,7 @@ on `skeleton-autowrap'. An ARG of M-0 will prevent this just for once.
This command can also be an abbrev expansion (3rd and 4th columns in
\\[edit-abbrevs] buffer: \"\" command-name).
-Optional first argument STR may also be a string which will be the value
+Optional second argument STR may also be a string which will be the value
of `str' whereas the skeleton's interactor is then ignored."
(skeleton-insert (funcall skeleton-filter skeleton)
;; Pretend C-x a e passed its prefix arg to us
diff --git a/lisp/smerge-mode.el b/lisp/smerge-mode.el
index 45e68750cb..4b677edc36 100644
--- a/lisp/smerge-mode.el
+++ b/lisp/smerge-mode.el
@@ -1,6 +1,7 @@
;;; smerge-mode.el --- Minor mode to resolve diff3 conflicts
-;; Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Stefan Monnier <monnier@cs.yale.edu>
;; Keywords: revision-control merge diff3 cvs conflict
@@ -52,7 +53,7 @@
(defvar smerge-mode)
(defgroup smerge ()
- "Minor mode to resolve diff3 conflicts."
+ "Minor mode to highlight and resolve diff3 conflicts."
:group 'tools
:prefix "smerge-")
@@ -68,13 +69,13 @@
(defcustom smerge-diff-switches
(append '("-d" "-b")
(if (listp diff-switches) diff-switches (list diff-switches)))
- "*A list of strings specifying switches to be passed to diff.
+ "A list of strings specifying switches to be passed to diff.
Used in `smerge-diff-base-mine' and related functions."
:group 'smerge
:type '(repeat string))
(defcustom smerge-auto-leave t
- "*Non-nil means to leave `smerge-mode' when the last conflict is resolved."
+ "Non-nil means to leave `smerge-mode' when the last conflict is resolved."
:group 'smerge
:type 'boolean)
@@ -128,6 +129,11 @@ Used in `smerge-diff-base-mine' and related functions."
(put 'smerge-markers-face 'face-alias 'smerge-markers)
(defvar smerge-markers-face 'smerge-markers)
+(defface smerge-refined-change
+ '((t :background "yellow"))
+ "Face used for char-based changes shown by `smerge-refine'."
+ :group 'smerge)
+
(easy-mmode-defmap smerge-basic-map
`(("n" . smerge-next)
("p" . smerge-prev)
@@ -137,6 +143,8 @@ Used in `smerge-diff-base-mine' and related functions."
("o" . smerge-keep-other)
("m" . smerge-keep-mine)
("E" . smerge-ediff)
+ ("C" . smerge-combine-with-next)
+ ("R" . smerge-refine)
("\C-m" . smerge-keep-current)
("=" . ,(make-sparse-keymap "Diff"))
("=<" "base-mine" . smerge-diff-base-mine)
@@ -256,6 +264,8 @@ Can be nil if the style is undecided, or else:
(when (and smerge-auto-leave
(save-excursion (goto-char (point-min))
(not (re-search-forward smerge-begin-re nil t))))
+ (when (and (listp buffer-undo-list) smerge-mode)
+ (push (list 'apply 'smerge-mode 1) buffer-undo-list))
(smerge-mode -1)))
@@ -273,6 +283,7 @@ Can be nil if the style is undecided, or else:
(smerge-auto-leave)))
(defun smerge-keep-n (n)
+ (smerge-remove-props (match-beginning 0) (match-end 0))
;; We used to use replace-match, but that did not preserve markers so well.
(delete-region (match-end n) (match-end 0))
(delete-region (match-beginning 0) (match-beginning n)))
@@ -315,17 +326,16 @@ Can be nil if the style is undecided, or else:
"Mode-specific merge function.
The function is called with no argument and with the match data set
according to `smerge-match-conflict'.")
+(add-to-list 'debug-ignored-errors "Don't know how to resolve")
(defvar smerge-text-properties
`(help-echo "merge conflict: mouse-3 shows a menu"
;; mouse-face highlight
keymap (keymap (down-mouse-3 . smerge-popup-context-menu))))
-(defun smerge-remove-props (&optional beg end)
- (remove-text-properties
- (or beg (match-beginning 0))
- (or end (match-end 0))
- smerge-text-properties))
+(defun smerge-remove-props (beg end)
+ (remove-overlays beg end 'smerge 'refine)
+ (remove-overlays beg end 'smerge 'conflict))
(defun smerge-popup-context-menu (event)
"Pop up the Smerge mode context menu under mouse."
@@ -367,8 +377,16 @@ some major modes. Uses `smerge-resolve-function' to do the actual work."
;; Trivial diff3 -A non-conflicts.
((and (eq (match-end 1) (match-end 3))
(eq (match-beginning 1) (match-beginning 3)))
- ;; FIXME: Add "if [ diff -b MINE OTHER ]; then select OTHER; fi"
(smerge-keep-n 3))
+ ;; Mode-specific conflict resolution.
+ ((condition-case nil
+ (atomic-change-group
+ (funcall smerge-resolve-function)
+ t)
+ (error nil))
+ ;; Nothing to do: the resolution function has done it already.
+ nil)
+ ;; FIXME: Add "if [ diff -b MINE OTHER ]; then select OTHER; fi"
((and (match-end 2)
;; FIXME: Add "diff -b BASE MINE | patch OTHER".
;; FIXME: Add "diff -b BASE OTHER | patch MINE".
@@ -379,8 +397,7 @@ some major modes. Uses `smerge-resolve-function' to do the actual work."
nil)
)
(t
- ;; Mode-specific conflict resolution.
- (funcall smerge-resolve-function)))
+ (error "Don't know how to resolve")))
(smerge-auto-leave))
(defun smerge-keep-base ()
@@ -388,7 +405,6 @@ some major modes. Uses `smerge-resolve-function' to do the actual work."
(interactive)
(smerge-match-conflict)
(smerge-ensure-match 2)
- (smerge-remove-props)
(smerge-keep-n 2)
(smerge-auto-leave))
@@ -397,7 +413,6 @@ some major modes. Uses `smerge-resolve-function' to do the actual work."
(interactive)
(smerge-match-conflict)
;;(smerge-ensure-match 3)
- (smerge-remove-props)
(smerge-keep-n 3)
(smerge-auto-leave))
@@ -406,7 +421,6 @@ some major modes. Uses `smerge-resolve-function' to do the actual work."
(interactive)
(smerge-match-conflict)
;;(smerge-ensure-match 1)
- (smerge-remove-props)
(smerge-keep-n 1)
(smerge-auto-leave))
@@ -424,7 +438,6 @@ some major modes. Uses `smerge-resolve-function' to do the actual work."
(smerge-match-conflict)
(let ((i (smerge-get-current)))
(if (<= i 0) (error "Not inside a version")
- (smerge-remove-props)
(smerge-keep-n i)
(smerge-auto-leave))))
@@ -434,7 +447,6 @@ some major modes. Uses `smerge-resolve-function' to do the actual work."
(smerge-match-conflict)
(let ((i (smerge-get-current)))
(if (<= i 0) (error "Not inside a version")
- (smerge-remove-props)
(let ((left nil))
(dolist (n '(3 2 1))
(if (and (match-end n) (/= (match-end n) (match-end i)))
@@ -499,6 +511,10 @@ An error is raised if not inside a conflict."
(re-search-forward smerge-begin-re end t))
;; There's a nested conflict and we're after the the beginning
;; of the outer one but before the beginning of the inner one.
+ ;; Of course, maybe this is not a nested conflict but in that
+ ;; case it can only be something nastier that we don't know how
+ ;; to handle, so may as well arbitrarily decide to treat it as
+ ;; a nested conflict. --Stef
(error "There is a nested conflict"))
((re-search-backward smerge-base-re start t)
@@ -523,13 +539,6 @@ An error is raised if not inside a conflict."
(setq mine-start other-start)
(setq mine-end other-end)))
- (let ((inhibit-read-only t)
- (inhibit-modification-hooks t)
- (m (buffer-modified-p)))
- (unwind-protect
- (add-text-properties start end smerge-text-properties)
- (restore-buffer-modified-p m)))
-
(store-match-data (list start end
mine-start mine-end
base-start base-end
@@ -539,17 +548,138 @@ An error is raised if not inside a conflict."
t)
(search-failed (error "Point not in conflict region")))))
+(defun smerge-conflict-overlay (pos)
+ "Return the conflict overlay at POS if any."
+ (let ((ols (overlays-at pos))
+ conflict)
+ (dolist (ol ols)
+ (if (and (eq (overlay-get ol 'smerge) 'conflict)
+ (> (overlay-end ol) pos))
+ (setq conflict ol)))
+ conflict))
+
(defun smerge-find-conflict (&optional limit)
"Find and match a conflict region. Intended as a font-lock MATCHER.
The submatches are the same as in `smerge-match-conflict'.
-Returns non-nil if a match is found between the point and LIMIT.
-The point is moved to the end of the conflict."
- (when (re-search-forward smerge-begin-re limit t)
- (condition-case err
- (progn
- (smerge-match-conflict)
- (goto-char (match-end 0)))
- (error (smerge-find-conflict limit)))))
+Returns non-nil if a match is found between point and LIMIT.
+Point is moved to the end of the conflict."
+ (let ((found nil)
+ (pos (point))
+ conflict)
+ ;; First check to see if point is already inside a conflict, using
+ ;; the conflict overlays.
+ (while (and (not found) (setq conflict (smerge-conflict-overlay pos)))
+ ;; Check the overlay's validity and kill it if it's out of date.
+ (condition-case nil
+ (progn
+ (goto-char (overlay-start conflict))
+ (smerge-match-conflict)
+ (goto-char (match-end 0))
+ (if (<= (point) pos)
+ (error "Matching backward!")
+ (setq found t)))
+ (error (smerge-remove-props
+ (overlay-start conflict) (overlay-end conflict))
+ (goto-char pos))))
+ ;; If we're not already inside a conflict, look for the next conflict
+ ;; and add/update its overlay.
+ (while (and (not found) (re-search-forward smerge-begin-re limit t))
+ (condition-case nil
+ (progn
+ (smerge-match-conflict)
+ (goto-char (match-end 0))
+ (let ((conflict (smerge-conflict-overlay (1- (point)))))
+ (if conflict
+ ;; Update its location, just in case it got messed up.
+ (move-overlay conflict (match-beginning 0) (match-end 0))
+ (setq conflict (make-overlay (match-beginning 0) (match-end 0)
+ nil 'front-advance nil))
+ (overlay-put conflict 'evaporate t)
+ (overlay-put conflict 'smerge 'conflict)
+ (let ((props smerge-text-properties))
+ (while props
+ (overlay-put conflict (pop props) (pop props))))))
+ (setq found t))
+ (error nil)))
+ found))
+
+(defun smerge-refine-chopup-region (beg end file)
+ "Chopup the region into small elements, one per line."
+ ;; ediff chops up into words, where the definition of a word is
+ ;; customizable. Instead we here keep only one char per line.
+ ;; The advantages are that there's nothing to configure, that we get very
+ ;; fine results, and that it's trivial to map the line numbers in the
+ ;; output of diff back into buffer positions. The disadvantage is that it
+ ;; can take more time to compute the diff and that the result is sometimes
+ ;; too fine. I'm not too concerned about the slowdown because conflicts
+ ;; are usually significantly smaller than the whole file. As for the
+ ;; problem of too-fine-refinement, I have found it to be unimportant
+ ;; especially when you consider the cases where the fine-grain is just
+ ;; what you want.
+ (let ((buf (current-buffer)))
+ (with-temp-buffer
+ (insert-buffer-substring buf beg end)
+ (goto-char (point-min))
+ (while (not (eobp))
+ (forward-char 1)
+ (unless (eq (char-before) ?\n) (insert ?\n)))
+ (let ((coding-system-for-write 'emacs-mule))
+ (write-region (point-min) (point-max) file nil 'nomessage)))))
+
+(defun smerge-refine-highlight-change (buf beg match-num1 match-num2)
+ (let* ((startline (string-to-number (match-string match-num1)))
+ (ol (make-overlay
+ (+ beg startline -1)
+ (+ beg (if (match-end match-num2)
+ (string-to-number (match-string match-num2))
+ startline))
+ buf
+ 'front-advance nil)))
+ (overlay-put ol 'smerge 'refine)
+ (overlay-put ol 'evaporate t)
+ (overlay-put ol 'face 'smerge-refined-change)))
+
+
+(defun smerge-refine ()
+ "Highlight the parts of the conflict that are different."
+ (interactive)
+ ;; FIXME: make it work with 3-way conflicts.
+ (smerge-match-conflict)
+ (remove-overlays (match-beginning 0) (match-end 0) 'smerge 'refine)
+ (smerge-ensure-match 1)
+ (smerge-ensure-match 3)
+ (let ((buf (current-buffer))
+ ;; Read them before the match-data gets clobbered.
+ (beg1 (match-beginning 1)) (end1 (match-end 1))
+ (beg2 (match-beginning 3)) (end2 (match-end 3))
+ (file1 (make-temp-file "smerge1"))
+ (file2 (make-temp-file "smerge2")))
+
+ ;; Chop up regions into smaller elements and save into files.
+ (smerge-refine-chopup-region beg1 end1 file1)
+ (smerge-refine-chopup-region beg2 end2 file2)
+
+ ;; Call diff on those files.
+ (unwind-protect
+ (with-temp-buffer
+ (let ((coding-system-for-read 'emacs-mule))
+ (call-process diff-command nil t nil file1 file2))
+ ;; Process diff's output.
+ (goto-char (point-min))
+ (while (not (eobp))
+ (if (not (looking-at "\\([0-9]+\\)\\(?:,\\([0-9]+\\)\\)?\\([acd]\\)\\([0-9]+\\)\\(?:,\\([0-9]+\\)\\)?$"))
+ (error "Unexpected patch hunk header: %s"
+ (buffer-substring (point) (line-end-position)))
+ (let ((op (char-after (match-beginning 3))))
+ (when (memq op '(?d ?c))
+ (smerge-refine-highlight-change buf beg1 1 2))
+ (when (memq op '(?a ?c))
+ (smerge-refine-highlight-change buf beg2 4 5)))
+ (forward-line 1) ;Skip hunk header.
+ (and (re-search-forward "^[0-9]" nil 'move) ;Skip hunk body.
+ (goto-char (match-beginning 0))))))
+ (delete-file file1)
+ (delete-file file2))))
(defun smerge-diff (n1 n2)
(smerge-match-conflict)
@@ -565,7 +695,12 @@ The point is moved to the end of the conflict."
(file1 (make-temp-file "smerge1"))
(file2 (make-temp-file "smerge2"))
(dir default-directory)
- (file (file-relative-name buffer-file-name))
+ (file (if buffer-file-name (file-relative-name buffer-file-name)))
+ ;; We would want to use `emacs-mule-unix' for read&write, but we
+ ;; bump into problems with the coding-system used by diff to write
+ ;; the file names and the time stamps in the header.
+ ;; `buffer-file-coding-system' is not always correct either, but if
+ ;; the OS/user uses only one coding-system, then it works.
(coding-system-for-read buffer-file-coding-system))
(write-region beg1 end1 file1 nil 'nomessage)
(write-region beg2 end2 file2 nil 'nomessage)
@@ -593,6 +728,8 @@ The point is moved to the end of the conflict."
(defvar ediff-buffer-A)
(defvar ediff-buffer-B)
(defvar ediff-buffer-C)
+(defvar ediff-ancestor-buffer)
+(defvar ediff-quit-hook)
;;;###autoload
(defun smerge-ediff (&optional name-mine name-other name-base)
@@ -670,7 +807,7 @@ buffer names."
(ediff-cleanup-mess)
(with-current-buffer buf
(erase-buffer)
- (insert-buffer buffer-C)
+ (insert-buffer-substring buffer-C)
(kill-buffer buffer-A)
(kill-buffer buffer-B)
(kill-buffer buffer-C)
@@ -686,7 +823,6 @@ buffer names."
\\{smerge-mode-map}"
:group 'smerge :lighter " SMerge"
(when (and (boundp 'font-lock-mode) font-lock-mode)
- (set (make-local-variable 'font-lock-multiline) t)
(save-excursion
(if smerge-mode
(font-lock-add-keywords nil smerge-font-lock-keywords 'append)
@@ -694,7 +830,9 @@ buffer names."
(goto-char (point-min))
(while (smerge-find-conflict)
(save-excursion
- (font-lock-fontify-region (match-beginning 0) (match-end 0) nil))))))
+ (font-lock-fontify-region (match-beginning 0) (match-end 0) nil)))))
+ (unless smerge-mode
+ (smerge-remove-props (point-min) (point-max))))
(provide 'smerge-mode)
diff --git a/lisp/sort.el b/lisp/sort.el
index e2fe806c43..6a008b8242 100644
--- a/lisp/sort.el
+++ b/lisp/sort.el
@@ -1,6 +1,7 @@
;;; sort.el --- commands to sort text in an Emacs buffer
-;; Copyright (C) 1986, 1987, 1994, 1995, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 1986, 1987, 1994, 1995, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Howie Kaye
;; Maintainer: FSF
diff --git a/lisp/soundex.el b/lisp/soundex.el
index 2ed79b2945..58ba187250 100644
--- a/lisp/soundex.el
+++ b/lisp/soundex.el
@@ -1,6 +1,6 @@
;;; soundex.el --- implement Soundex algorithm
-;; Copyright (C) 1993 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Christian Plaunt <chris@bliss.berkeley.edu>
;; Maintainer: FSF
diff --git a/lisp/speedbar.el b/lisp/speedbar.el
index 188304bce7..434025ec07 100644
--- a/lisp/speedbar.el
+++ b/lisp/speedbar.el
@@ -1,7 +1,7 @@
;;; speedbar.el --- quick access to files and tags in a frame
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2005
-;; Free Software Foundation
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Eric M. Ludlam <zappo@gnu.org>
;; Version: 0.11a
@@ -180,6 +180,12 @@
(require 'image)
(error nil))
+(defvar ange-ftp-path-format)
+(defvar efs-path-regexp)
+(defvar font-lock-keywords)
+(defvar x-pointer-hand2)
+(defvar x-pointer-top-left-arrow)
+
(defvar speedbar-xemacsp (string-match "XEmacs" emacs-version)
"Non-nil if we are running in the XEmacs environment.")
(defvar speedbar-xemacs20p (and speedbar-xemacsp
diff --git a/lisp/startup.el b/lisp/startup.el
index 2340711a98..5ca9d2ca2f 100644
--- a/lisp/startup.el
+++ b/lisp/startup.el
@@ -1,7 +1,7 @@
;;; startup.el --- process Emacs shell arguments
;; Copyright (C) 1985, 1986, 1992, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-;; 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
+;; 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: internal
@@ -191,9 +191,9 @@ This is because we already did so.")
(defvar keyboard-type nil
"The brand of keyboard you are using.
-This variable is used to define
-the proper function and keypad keys for use under X. It is used in a
-fashion analogous to the environment variable TERM.")
+This variable is used to define the proper function and keypad
+keys for use under X. It is used in a fashion analogous to the
+environment variable TERM.")
(defvar window-setup-hook nil
"Normal hook run to initialize window system display.
@@ -241,7 +241,7 @@ is less convenient.
This variable is defined for customization so as to make
it visible in the relevant context. However, actually customizing it
is not allowed, since it would not work anyway. The only way to set
-this variable usefully is to set it during while building and dumping Emacs."
+this variable usefully is to set it while building and dumping Emacs."
:type '(choice (const :tag "none" nil) string)
:group 'initialization
:initialize 'custom-initialize-default
@@ -579,7 +579,7 @@ opening the first frame (e.g. open a connection to an X server).")
;; Choose a reasonable location for temporary files.
(custom-reevaluate-setting 'temporary-file-directory)
- (custom-reevaluate-setting 'small-emporary-file-directory)
+ (custom-reevaluate-setting 'small-temporary-file-directory)
(custom-reevaluate-setting 'auto-save-file-name-transforms)
;; See if we should import version-control from the environment variable.
@@ -670,9 +670,9 @@ opening the first frame (e.g. open a connection to an X server).")
;; processed. This is consistent with the way main in emacs.c
;; does things.
(while (and (not done) args)
- (let* ((longopts '(("--no-init-file") ("--no-site-file") ("--user")
- ("--debug-init") ("--iconic") ("--icon-type")
- ("--no-blinking-cursor") ("--bare-bones")))
+ (let* ((longopts '(("--no-init-file") ("--no-site-file") ("--debug-init")
+ ("--user") ("--iconic") ("--icon-type") ("--quick")
+ ("--no-blinking-cursor") ("--basic-display")))
(argi (pop args))
(orig-argi argi)
argval)
@@ -758,15 +758,7 @@ opening the first frame (e.g. open a connection to an X server).")
;; are not set.
(custom-reevaluate-setting 'blink-cursor-mode)
(custom-reevaluate-setting 'normal-erase-is-backspace)
-
- ;; If you change the code below, you need to also change the
- ;; corresponding code in the tooltip-mode defcustom. The two need
- ;; to be equivalent under all conditions, or Custom will get confused.
- (unless (or noninteractive
- emacs-basic-display
- (not (display-graphic-p))
- (not (fboundp 'x-show-tip)))
- (tooltip-mode 1))
+ (custom-reevaluate-setting 'tooltip-mode)
;; Register default TTY colors for the case the terminal hasn't a
;; terminal init file.
@@ -997,7 +989,13 @@ opening the first frame (e.g. open a connection to an X server).")
(setq term
(if (setq hyphend (string-match "[-_][^-_]+$" term))
(substring term 0 hyphend)
- nil)))))
+ nil)))
+ (when term
+ ;; The terminal file has been loaded, now call the terminal
+ ;; specific initialization function.
+ (let ((term-init-func (intern (concat "terminal-init-" term))))
+ (when (fboundp term-init-func)
+ (funcall term-init-func))))))
;; Update the out-of-memory error message based on user's key bindings
;; for save-some-buffers.
@@ -1070,6 +1068,7 @@ Read the Emacs Manual\tView the Emacs manual using Info
:face variable-pitch
"\
Copying Conditions\tConditions for redistributing and changing Emacs
+Getting New Versions\tHow to obtain the latest version of Emacs
More Manuals / Ordering Manuals Buying printed manuals from the FSF\n")
(:face variable-pitch
"You can do basic editing with the menu bar and scroll bar \
@@ -1355,20 +1354,20 @@ You can do basic editing with the menu bar and scroll bar using the mouse.
Useful File menu items:
Exit Emacs (or type Control-x followed by Control-c)
-Recover Session recover files you were editing before a crash
+Recover Crashed Session Recover files you were editing before a crash
Important Help menu items:
-Emacs Tutorial Learn-by-doing tutorial for using Emacs efficiently.
+Emacs Tutorial Learn how to use Emacs efficiently
Emacs FAQ Frequently asked questions and answers
Read the Emacs Manual View the Emacs manual using Info
\(Non)Warranty GNU Emacs comes with ABSOLUTELY NO WARRANTY
-Copying Conditions Conditions for redistributing and changing Emacs.
-Getting New Versions How to obtain the latest version of Emacs.
-More Manuals / Ordering Manuals How to order printed manuals from the FSF.
+Copying Conditions Conditions for redistributing and changing Emacs
+Getting New Versions How to obtain the latest version of Emacs
+More Manuals / Ordering Manuals How to order printed manuals from the FSF
")
(insert "\n\n" (emacs-version)
"
-Copyright (C) 2004 Free Software Foundation, Inc."))
+Copyright (C) 2005 Free Software Foundation, Inc."))
;; No mouse menus, so give help using kbd commands.
@@ -1416,7 +1415,7 @@ If you have no Meta key, you may instead type ESC followed by the character.)")
(insert "\n\n" (emacs-version)
"
-Copyright (C) 2004 Free Software Foundation, Inc.")
+Copyright (C) 2005 Free Software Foundation, Inc.")
(if (and (eq (key-binding "\C-h\C-c") 'describe-copying)
(eq (key-binding "\C-h\C-d") 'describe-distribution)
@@ -1641,6 +1640,15 @@ normal otherwise."
(setq file file-ex))
(load file nil t)))
+ ;; This is used to handle -script. It's not clear
+ ;; we need to document it.
+ ((member argi '("-scriptload"))
+ (let* ((file (command-line-normalize-file-name
+ (or argval (pop command-line-args-left))))
+ ;; Take file from default dir.
+ (file-ex (expand-file-name file)))
+ (load file-ex nil t t)))
+
((equal argi "-insert")
(setq tem (or argval (pop command-line-args-left)))
(or (stringp tem)
@@ -1721,11 +1729,7 @@ normal otherwise."
;; Maybe display a startup screen.
(unless (or inhibit-startup-message
noninteractive
- emacs-quick-startup
- ;; Don't display startup screen if init file
- ;; has started some sort of server.
- (and (fboundp 'process-list)
- (process-list)))
+ emacs-quick-startup)
;; Display a startup screen, after some preparations.
;; If there are no switches to process, we might as well
diff --git a/lisp/strokes.el b/lisp/strokes.el
index bb99591d1e..a432191b18 100644
--- a/lisp/strokes.el
+++ b/lisp/strokes.el
@@ -1,6 +1,7 @@
;;; strokes.el --- control Emacs through mouse strokes
-;; Copyright (C) 1997, 2000, 2002, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David Bakhash <cadet@alum.mit.edu>
;; Maintainer: FSF
@@ -243,9 +244,9 @@ ones, then strokes should NOT pick the one that came closest."
(defcustom strokes-grid-resolution 9
"*Integer defining dimensions of the stroke grid.
-The grid is a square grid, where STROKES-GRID-RESOLUTION defaults to
+The grid is a square grid, where `strokes-grid-resolution' defaults to
`9', making a 9x9 grid whose coordinates go from (0 . 0) on the top
-left to ((STROKES-GRID-RESOLUTION - 1) . (STROKES-GRID-RESOLUTION - 1))
+left to ((strokes-grid-resolution - 1) . (strokes-grid-resolution - 1))
on the bottom right. The greater the resolution, the more intricate
your strokes can be.
NOTE: This variable should be odd and MUST NOT be less than 3 and need
@@ -259,7 +260,7 @@ WARNING: Changing the value of this variable will gravely affect the
:group 'strokes)
(defcustom strokes-file (convert-standard-filename "~/.strokes")
- "*File containing saved strokes for stroke-mode (default is ~/.strokes)."
+ "*File containing saved strokes for Strokes mode (default is ~/.strokes)."
:type 'file
:group 'strokes)
@@ -284,17 +285,17 @@ This is set properly in the function `strokes-update-window-configuration'.")
"Last stroke entered by the user.
Its value gets set every time the function
`strokes-fill-stroke' gets called,
-since that is the best time to set the variable")
+since that is the best time to set the variable.")
(defvar strokes-global-map '()
"Association list of strokes and their definitions.
Each entry is (STROKE . COMMAND) where STROKE is itself a list of
coordinates (X . Y) where X and Y are lists of positions on the
normalized stroke grid, with the top left at (0 . 0). COMMAND is the
-corresponding interactive function")
+corresponding interactive function.")
(defvar strokes-load-hook nil
- "Function or functions to be called when `strokes' is loaded.")
+ "Functions to be called when Strokes is loaded.")
;;; ### NOT IMPLEMENTED YET ###
;;(defvar edit-strokes-menu
@@ -473,10 +474,10 @@ Compare `strokes-global-set-stroke'."
(defun strokes-get-grid-position (stroke-extent position &optional grid-resolution)
"Map POSITION to a new grid position.
-Do so based on its STROKE-EXTENT and GRID-RESOLUTION.
+Do so based on its STROKE-EXTENT and GRID-RESOLUTION.
STROKE-EXTENT as a list \(\(XMIN . YMIN\) \(XMAX . YMAX\)\).
If POSITION is a `strokes-lift', then it is itself returned.
-Optional GRID-RESOLUTION may be used in place of STROKES-GRID-RESOLUTION.
+Optional GRID-RESOLUTION may be used in place of `strokes-grid-resolution'.
The grid is a square whose dimension is [0,GRID-RESOLUTION)."
(cond ((consp position) ; actual pixel location
(let ((grid-resolution (or grid-resolution strokes-grid-resolution))
@@ -566,7 +567,7 @@ The return value is a list ((XMIN . YMIN) (XMAX . YMAX))."
(defun strokes-renormalize-to-grid (positions &optional grid-resolution)
"Map POSITIONS to a new grid whose dimensions are based on GRID-RESOLUTION.
POSITIONS is a list of positions and stroke-lifts.
-Optional GRID-RESOLUTION may be used in place of STROKES-GRID-RESOLUTION.
+Optional GRID-RESOLUTION may be used in place of `strokes-grid-resolution'.
The grid is a square whose dimension is [0,GRID-RESOLUTION)."
(or grid-resolution (setq grid-resolution strokes-grid-resolution))
(let ((stroke-extent (strokes-get-stroke-extent positions)))
@@ -726,7 +727,7 @@ Optional PROMPT in minibuffer displays before and during stroke reading.
This function will display the stroke interactively as it is being
entered in the strokes buffer if the variable
`strokes-use-strokes-buffer' is non-nil.
-Optional EVENT is acceptable as the starting event of the stroke"
+Optional EVENT is acceptable as the starting event of the stroke."
(save-excursion
(let ((pix-locs nil)
(grid-locs nil)
@@ -790,7 +791,7 @@ Optional PROMPT in minibuffer displays before and during stroke reading.
Note that a complex stroke allows the user to pen-up and pen-down. This
is implemented by allowing the user to paint with button 1 or button 2 and
then complete the stroke with button 3.
-Optional EVENT is acceptable as the starting event of the stroke"
+Optional EVENT is acceptable as the starting event of the stroke."
(save-excursion
(save-window-excursion
(set-window-configuration strokes-window-configuration)
@@ -892,11 +893,12 @@ This must be bound to a mouse event."
;;;###autoload
(defun strokes-help ()
- "Get instruction on using the `strokes' package."
+ "Get instruction on using the Strokes package."
(interactive)
(with-output-to-temp-buffer "*Help with Strokes*"
(princ
- "This is help for the strokes package.
+ (substitute-command-keys
+ "This is help for the strokes package.
------------------------------------------------------------
@@ -986,7 +988,7 @@ You can change this location by setting the variable `strokes-file'.
You will be prompted to save them when you exit Emacs, or you can save
them with
-> M-x strokes-save-strokes
+> M-x strokes-prompt-user-save-strokes
Your strokes get loaded automatically when you enable `strokes-mode'.
You can also load in your user-defined strokes with
@@ -1024,7 +1026,7 @@ o Strokes are a bit computer-dependent in that they depend somewhat on
variable which many people wanted to see was
`strokes-use-strokes-buffer' which allows the user to use strokes
silently--without displaying the strokes. All variables can be set
- by customizing the group `strokes' via \[customize-group].")
+ by customizing the group `strokes' via \\[customize-group]."))
(set-buffer standard-output)
(help-mode)
(print-help-return-message)))
@@ -1422,8 +1424,6 @@ Encode/decode your strokes with \\[strokes-encode-buffer],
"Face for strokes characters."
:version "21.1"
:group 'strokes)
-;; backward-compatibility alias
-(put 'strokes-char-face 'face-alias 'strokes-char)
(put 'strokes 'char-table-extra-slots 0)
(defconst strokes-char-table (make-char-table 'strokes) ;
diff --git a/lisp/subr.el b/lisp/subr.el
index 666dc8e671..61340283c9 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -1,7 +1,7 @@
;;; subr.el --- basic lisp subroutines for Emacs
;; Copyright (C) 1985, 1986, 1992, 1994, 1995, 1999, 2000, 2001, 2002, 2003,
-;; 2004, 2005 Free Software Foundation, Inc.
+;; 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: internal
@@ -1598,7 +1598,7 @@ Strip text properties from the inserted text according to
If STRING has a non-nil `yank-handler' property on the first character,
the normal insert behavior is modified in various ways. The value of
-the yank-handler property must be a list with one to five elements
+the yank-handler property must be a list with one to four elements
with the following format: (FUNCTION PARAM NOEXCLUDE UNDO).
When FUNCTION is present and non-nil, it is called instead of `insert'
to insert the string. FUNCTION takes one argument--the object to insert.
@@ -1846,14 +1846,14 @@ is allowed once again."
(defmacro while-no-input (&rest body)
"Execute BODY only as long as there's no pending input.
If input arrives, that ends the execution of BODY,
-and `while-no-input' returns nil. If BODY finishes,
-`while-no-input' returns whatever value BODY produced."
+and `while-no-input' returns t. Quitting makes it return nil.
+If BODY finishes, `while-no-input' returns whatever value BODY produced."
(declare (debug t) (indent 0))
(let ((catch-sym (make-symbol "input")))
`(with-local-quit
(catch ',catch-sym
(let ((throw-on-input ',catch-sym))
- (when (sit-for 0 0 t)
+ (or (not (sit-for 0 0 t))
,@body))))))
(defmacro combine-after-change-calls (&rest body)
@@ -2180,9 +2180,10 @@ arguments with the same names of function `replace-match'. If START
is non-nil, start replacements at that index in STRING.
REP is either a string used as the NEWTEXT arg of `replace-match' or a
-function. If it is a function it is applied to each match to generate
-the replacement passed to `replace-match'; the match-data at this
-point are such that match 0 is the function's argument.
+function. If it is a function, it is called with the actual text of each
+match, and its value is used as the replacement text. When REP is called,
+the match-data are the result of matching REGEXP against a substring
+of STRING.
To replace only the first match (if any), make REGEXP match up to \\'
and replace a sub-expression, e.g.
@@ -2669,9 +2670,9 @@ don't change the volume setting of the sound device.
:device DEVICE - play sound on DEVICE. If not specified,
a system-dependent default device name is used."
- (unless (fboundp 'play-sound-internal)
- (error "This Emacs binary lacks sound support"))
- (play-sound-internal sound))
+ (if (fboundp 'play-sound-internal)
+ (play-sound-internal sound)
+ (error "This Emacs binary lacks sound support")))
(defun define-mail-user-agent (symbol composefunc sendfunc
&optional abortfunc hookvar)
@@ -2864,5 +2865,210 @@ convenience wrapper around `make-progress-reporter' and friends.
(progress-reporter-done ,temp2)
nil ,@(cdr (cdr spec)))))
+
+;;;; Compare Version Strings
+
+(defvar version-separator "."
+ "*Specify the string used to separate the version elements.
+
+Usually the separator is \".\", but it can be any other string.")
+
+
+(defvar version-regexp-alist
+ '(("^a\\(lpha\\)?$" . -3)
+ ("^b\\(eta\\)?$" . -2)
+ ("^\\(pre\\|rc\\)$" . -1))
+ "*Specify association between non-numeric version part and a priority.
+
+This association is used to handle version string like \"1.0pre2\",
+\"0.9alpha1\", etc. It's used by `version-to-list' (which see) to convert the
+non-numeric part to an integer. For example:
+
+ String Version Integer List Version
+ \"1.0pre2\" (1 0 -1 2)
+ \"1.0PRE2\" (1 0 -1 2)
+ \"22.8beta3\" (22 8 -2 3)
+ \"22.8Beta3\" (22 8 -2 3)
+ \"0.9alpha1\" (0 9 -3 1)
+ \"0.9AlphA1\" (0 9 -3 1)
+ \"0.9alpha\" (0 9 -3)
+
+Each element has the following form:
+
+ (REGEXP . PRIORITY)
+
+Where:
+
+REGEXP regexp used to match non-numeric part of a version string.
+
+PRIORITY negative integer which indicate the non-numeric priority.")
+
+
+(defun version-to-list (ver)
+ "Convert version string VER into an integer list.
+
+The version syntax is given by the following EBNF:
+
+ VERSION ::= NUMBER ( SEPARATOR NUMBER )*.
+
+ NUMBER ::= (0|1|2|3|4|5|6|7|8|9)+.
+
+ SEPARATOR ::= `version-separator' (which see)
+ | `version-regexp-alist' (which see).
+
+As an example of valid version syntax:
+
+ 1.0pre2 1.0.7.5 22.8beta3 0.9alpha1
+
+As an example of invalid version syntax:
+
+ 1.0prepre2 1.0..7.5 22.8X3 alpha3.2 .5
+
+As an example of version convertion:
+
+ String Version Integer List Version
+ \"1.0.7.5\" (1 0 7 5)
+ \"1.0pre2\" (1 0 -1 2)
+ \"1.0PRE2\" (1 0 -1 2)
+ \"22.8beta3\" (22 8 -2 3)
+ \"22.8Beta3\" (22 8 -2 3)
+ \"0.9alpha1\" (0 9 -3 1)
+ \"0.9AlphA1\" (0 9 -3 1)
+ \"0.9alpha\" (0 9 -3)
+
+See documentation for `version-separator' and `version-regexp-alist'."
+ (or (and (stringp ver) (not (string= ver "")))
+ (error "Invalid version string: '%s'" ver))
+ (save-match-data
+ (let ((i 0)
+ case-fold-search ; ignore case in matching
+ lst s al)
+ (while (and (setq s (string-match "[0-9]+" ver i))
+ (= s i))
+ ;; handle numeric part
+ (setq lst (cons (string-to-number (substring ver i (match-end 0)))
+ lst)
+ i (match-end 0))
+ ;; handle non-numeric part
+ (when (and (setq s (string-match "[^0-9]+" ver i))
+ (= s i))
+ (setq s (substring ver i (match-end 0))
+ i (match-end 0))
+ ;; handle alpha, beta, pre, etc. separator
+ (unless (string= s version-separator)
+ (setq al version-regexp-alist)
+ (while (and al (not (string-match (caar al) s)))
+ (setq al (cdr al)))
+ (or al (error "Invalid version syntax: '%s'" ver))
+ (setq lst (cons (cdar al) lst)))))
+ (if (null lst)
+ (error "Invalid version syntax: '%s'" ver)
+ (nreverse lst)))))
+
+
+(defun version-list-< (l1 l2)
+ "Return t if integer list L1 is lesser than L2.
+
+Note that integer list (1) is equal to (1 0), (1 0 0), (1 0 0 0),
+etc. That is, the trailing zeroes are irrelevant. Also, integer
+list (1) is greater than (1 -1) which is greater than (1 -2)
+which is greater than (1 -3)."
+ (while (and l1 l2 (= (car l1) (car l2)))
+ (setq l1 (cdr l1)
+ l2 (cdr l2)))
+ (cond
+ ;; l1 not null and l2 not null
+ ((and l1 l2) (< (car l1) (car l2)))
+ ;; l1 null and l2 null ==> l1 length = l2 length
+ ((and (null l1) (null l2)) nil)
+ ;; l1 not null and l2 null ==> l1 length > l2 length
+ (l1 (< (version-list-not-zero l1) 0))
+ ;; l1 null and l2 not null ==> l2 length > l1 length
+ (t (< 0 (version-list-not-zero l2)))))
+
+
+(defun version-list-= (l1 l2)
+ "Return t if integer list L1 is equal to L2.
+
+Note that integer list (1) is equal to (1 0), (1 0 0), (1 0 0 0),
+etc. That is, the trailing zeroes are irrelevant. Also, integer
+list (1) is greater than (1 -1) which is greater than (1 -2)
+which is greater than (1 -3)."
+ (while (and l1 l2 (= (car l1) (car l2)))
+ (setq l1 (cdr l1)
+ l2 (cdr l2)))
+ (cond
+ ;; l1 not null and l2 not null
+ ((and l1 l2) nil)
+ ;; l1 null and l2 null ==> l1 length = l2 length
+ ((and (null l1) (null l2)))
+ ;; l1 not null and l2 null ==> l1 length > l2 length
+ (l1 (zerop (version-list-not-zero l1)))
+ ;; l1 null and l2 not null ==> l2 length > l1 length
+ (t (zerop (version-list-not-zero l2)))))
+
+
+(defun version-list-<= (l1 l2)
+ "Return t if integer list L1 is lesser than or equal to L2.
+
+Note that integer list (1) is equal to (1 0), (1 0 0), (1 0 0 0),
+etc. That is, the trailing zeroes are irrelevant. Also, integer
+list (1) is greater than (1 -1) which is greater than (1 -2)
+which is greater than (1 -3)."
+ (while (and l1 l2 (= (car l1) (car l2)))
+ (setq l1 (cdr l1)
+ l2 (cdr l2)))
+ (cond
+ ;; l1 not null and l2 not null
+ ((and l1 l2) (< (car l1) (car l2)))
+ ;; l1 null and l2 null ==> l1 length = l2 length
+ ((and (null l1) (null l2)))
+ ;; l1 not null and l2 null ==> l1 length > l2 length
+ (l1 (<= (version-list-not-zero l1) 0))
+ ;; l1 null and l2 not null ==> l2 length > l1 length
+ (t (<= 0 (version-list-not-zero l2)))))
+
+(defun version-list-not-zero (lst)
+ "Return the first non-zero element of integer list LST.
+
+If all LST elements are zeroes or LST is nil, return zero."
+ (while (and lst (zerop (car lst)))
+ (setq lst (cdr lst)))
+ (if lst
+ (car lst)
+ ;; there is no element different of zero
+ 0))
+
+
+(defun version< (v1 v2)
+ "Return t if version V1 is lesser than V2.
+
+Note that version string \"1\" is equal to \"1.0\", \"1.0.0\", \"1.0.0.0\",
+etc. That is, the trailing \".0\"s are irrelevant. Also, version string \"1\"
+is greater than \"1pre\" which is greater than \"1beta\" which is greater than
+\"1alpha\"."
+ (version-list-< (version-to-list v1) (version-to-list v2)))
+
+
+(defun version<= (v1 v2)
+ "Return t if version V1 is lesser than or equal to V2.
+
+Note that version string \"1\" is equal to \"1.0\", \"1.0.0\", \"1.0.0.0\",
+etc. That is, the trailing \".0\"s are irrelevant. Also, version string \"1\"
+is greater than \"1pre\" which is greater than \"1beta\" which is greater than
+\"1alpha\"."
+ (version-list-<= (version-to-list v1) (version-to-list v2)))
+
+(defun version= (v1 v2)
+ "Return t if version V1 is equal to V2.
+
+Note that version string \"1\" is equal to \"1.0\", \"1.0.0\", \"1.0.0.0\",
+etc. That is, the trailing \".0\"s are irrelevant. Also, version string \"1\"
+is greater than \"1pre\" which is greater than \"1beta\" which is greater than
+\"1alpha\"."
+ (version-list-= (version-to-list v1) (version-to-list v2)))
+
+
+
;; arch-tag: f7e0e6e5-70aa-4897-ae72-7a3511ec40bc
;;; subr.el ends here
diff --git a/lisp/tabify.el b/lisp/tabify.el
index 78ee80bee1..8480983988 100644
--- a/lisp/tabify.el
+++ b/lisp/tabify.el
@@ -1,6 +1,7 @@
;;; tabify.el --- tab conversion commands for Emacs
-;; Copyright (C) 1985, 1994 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1994, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
diff --git a/lisp/talk.el b/lisp/talk.el
index 771beff682..a008a0ef3f 100644
--- a/lisp/talk.el
+++ b/lisp/talk.el
@@ -1,6 +1,6 @@
;;; talk.el --- allow several users to talk to each other through Emacs
-;; Copyright (C) 1995 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: comm, frames
diff --git a/lisp/tar-mode.el b/lisp/tar-mode.el
index 041f0fddc1..4362e97af0 100644
--- a/lisp/tar-mode.el
+++ b/lisp/tar-mode.el
@@ -1,7 +1,7 @@
;;; tar-mode.el --- simple editing of tar files from GNU emacs
-;; Copyright (C) 1990,91,93,94,95,96,97,98,99,2000,01,2004
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Jamie Zawinski <jwz@lucid.com>
;; Maintainer: FSF
@@ -1120,7 +1120,7 @@ to make your changes permanent."
(descriptor tar-superior-descriptor)
subfile-size)
;; We must make the current buffer unibyte temporarily to avoid
- ;; multibyte->unibyte conversion in `insert-buffer'.
+ ;; multibyte->unibyte conversion in `insert-buffer-substring'.
(set-buffer-multibyte nil)
(setq subfile-size (buffer-size))
(set-buffer tar-superior-buffer)
@@ -1144,7 +1144,7 @@ to make your changes permanent."
(delete-region data-start data-end)
;; insert the new data...
(goto-char data-start)
- (insert-buffer subfile)
+ (insert-buffer-substring subfile)
(setq subfile-size
(encode-coding-region
data-start (+ data-start subfile-size) coding))
diff --git a/lisp/tempo.el b/lisp/tempo.el
index 3f5687d0d0..4939715a31 100644
--- a/lisp/tempo.el
+++ b/lisp/tempo.el
@@ -1,6 +1,7 @@
;;; tempo.el --- Flexible template insertion
-;; Copyright (C) 1994, 1995, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: David K}gedal <davidk@lysator.liu.se>
;; Created: 16 Feb 1994
@@ -117,7 +118,7 @@
(defcustom tempo-interactive nil
"*Prompt user for strings in templates.
If this variable is non-nil, `tempo-insert' prompts the
-user for text to insert in the templates"
+user for text to insert in the templates."
:type 'boolean
:group 'tempo)
@@ -133,7 +134,7 @@ In Transient Mark mode, this option is unused."
(defcustom tempo-show-completion-buffer t
"*If non-nil, show a buffer with possible completions, when only
-a partial completion can be found"
+a partial completion can be found."
:type 'boolean
:group 'tempo)
@@ -148,17 +149,17 @@ disappears at the next keypress; otherwise, it remains forever."
(defvar tempo-insert-string-functions nil
"List of functions to run when inserting a string.
Each function is called with a single arg, STRING and should return
-another string. This could be used for making all strings upcase by
+another string. This could be used for making all strings upcase by
setting it to '(upcase), for example.")
(defvar tempo-tags nil
- "An association list with tags and corresponding templates")
+ "An association list with tags and corresponding templates.")
(defvar tempo-local-tags '((tempo-tags . nil))
"A list of locally installed tag completion lists.
It is a association list where the car of every element is a symbol
-whose variable value is a template list. The cdr part, if non-nil, is a
-function or a regexp that defines the string to match. See the
+whose variable value is a template list. The cdr part, if non-nil,
+is a function or a regexp that defines the string to match. See the
documentation for the function `tempo-complete-tag' for more info.
`tempo-tags' is always in the last position in this list.")
@@ -175,8 +176,8 @@ documentation for the function `tempo-complete-tag' for more info.
(defvar tempo-match-finder "\\b\\([[:word:]]+\\)\\="
"The regexp or function used to find the string to match against tags.
-If `tempo-match-finder is a string, it should contain a regular
-expression with at least one \\( \\) pair. When searching for tags,
+If `tempo-match-finder' is a string, it should contain a regular
+expression with at least one \\( \\) pair. When searching for tags,
`tempo-complete-tag' calls `re-search-backward' with this string, and
the string between the first \\( and \\) is used for matching against
each string in the tag list. If one is found, the whole text between
@@ -229,51 +230,50 @@ NAME is a string that contains the name of the template, ELEMENTS is a
list of elements in the template, TAG is the tag used for completion,
DOCUMENTATION is the documentation string for the insertion command
created, and TAGLIST (a symbol) is the tag list that TAG (if provided)
-should be added to). If TAGLIST is nil and TAG is non-nil, TAG is
-added to `tempo-tags'
+should be added to. If TAGLIST is nil and TAG is non-nil, TAG is
+added to `tempo-tags'.
The elements in ELEMENTS can be of several types:
- - A string. It is sent to the hooks in `tempo-insert-string-functions',
+ - A string: It is sent to the hooks in `tempo-insert-string-functions',
and the result is inserted.
- - The symbol 'p. This position is saved in `tempo-marks'.
- - The symbol 'r. If `tempo-insert' is called with ON-REGION non-nil
- the current region is placed here. Otherwise it works like 'p.
- - (p PROMPT <NAME> <NOINSERT>) If `tempo-interactive' is non-nil, the
+ - The symbol `p': This position is saved in `tempo-marks'.
+ - The symbol `r': If `tempo-insert' is called with ON-REGION non-nil
+ the current region is placed here. Otherwise it works like `p'.
+ - (p PROMPT <NAME> <NOINSERT>): If `tempo-interactive' is non-nil, the
user is prompted in the minibuffer with PROMPT for a string to be
- inserted. If the optional parameter NAME is non-nil, the text is
- saved for later insertion with the `s' tag. If there already is
+ inserted. If the optional parameter NAME is non-nil, the text is
+ saved for later insertion with the `s' tag. If there already is
something saved under NAME that value is used instead and no
- prompting is made. If NOINSERT is provided and non-nil, nothing is
- inserted, but text is still saved when a NAME is provided. For
- clarity, the symbol 'noinsert should be used as argument.
- - (P PROMPT <NAME> <NOINSERT>) Works just like the previous tag, but
- forces tempo-interactive to be true.
- - (r PROMPT <NAME> <NOINSERT>) like the previous, but if
+ prompting is made. If NOINSERT is provided and non-nil, nothing is
+ inserted, but text is still saved when a NAME is provided. For
+ clarity, the symbol `noinsert' should be used as argument.
+ - (P PROMPT <NAME> <NOINSERT>): Works just like the previous tag, but
+ forces `tempo-interactive' to be true.
+ - (r PROMPT <NAME> <NOINSERT>): Like the previous tag, but if
`tempo-interactive' is nil and `tempo-insert' is called with
- ON-REGION non-nil, the current region is placed here. This usually
+ ON-REGION non-nil, the current region is placed here. This usually
happens when you call the template function with a prefix argument.
- - (s NAME) Inserts text previously read with the (p ..) construct.
- Finds the insertion saved under NAME and inserts it. Acts like 'p
+ - (s NAME): Inserts text previously read with the (p ..) construct.
+ Finds the insertion saved under NAME and inserts it. Acts like `p'
if tempo-interactive is nil.
- - '& If there is only whitespace between the line start and point,
- nothing happens. Otherwise a newline is inserted.
- - '% If there is only whitespace between point and end-of-line
- nothing happens. Otherwise a newline is inserted.
- - 'n inserts a newline.
- - '> The line is indented using `indent-according-to-mode'. Note that
- you often should place this item after the text you want on the
- line.
- - 'r> Like r, but it also indents the region.
- - 'n> Inserts a newline and indents line.
- - 'o Like '% but leaves the point before the newline.
- - nil. It is ignored.
- - Anything else. It is evaluated and the result is treated as an
- element to be inserted. One additional tag is useful for these
- cases. If an expression returns a list '(l foo bar), the elements
- after 'l will be inserted according to the usual rules. This makes
+ - `&': If there is only whitespace between the line start and point,
+ nothing happens. Otherwise a newline is inserted.
+ - `%': If there is only whitespace between point and end of line,
+ nothing happens. Otherwise a newline is inserted.
+ - `n': Inserts a newline.
+ - `>': The line is indented using `indent-according-to-mode'. Note
+ that you often should place this item after the text you want on
+ the line.
+ - `r>': Like `r', but it also indents the region.
+ - `n>': Inserts a newline and indents line.
+ - `o': Like `%' but leaves the point before the newline.
+ - nil: It is ignored.
+ - Anything else: It is evaluated and the result is treated as an
+ element to be inserted. One additional tag is useful for these
+ cases. If an expression returns a list '(l foo bar), the elements
+ after `l' will be inserted according to the usual rules. This makes
it possible to return several elements from one expression."
-
(let* ((template-name (intern (concat "tempo-template-"
name)))
(command-name template-name))
@@ -296,15 +296,15 @@ The elements in ELEMENTS can be of several types:
(defun tempo-insert-template (template on-region)
"Insert a template.
TEMPLATE is the template to be inserted. If ON-REGION is non-nil the
-`r' elements are replaced with the current region. In Transient Mark
+`r' elements are replaced with the current region. In Transient Mark
mode, ON-REGION is ignored and assumed true if the region is active."
(unwind-protect
(progn
(if (or (and (boundp 'transient-mark-mode) ; For Emacs
transient-mark-mode
mark-active)
- (and (boundp 'zmacs-regions) ; For XEmacs
- zmacs-regions (mark)))
+ (if (featurep 'xemacs)
+ (and zmacs-regions (mark))))
(setq on-region t))
(and on-region
(set-marker tempo-region-start (min (mark) (point)))
@@ -399,9 +399,9 @@ possible."
;;; tempo-insert-prompt
(defun tempo-insert-prompt-compat (prompt)
- "Compatibility hack for tempo-insert-prompt.
+ "Compatibility hack for `tempo-insert-prompt'.
PROMPT can be either a prompt string, or a list of arguments to
-tempo-insert-prompt, or nil."
+`tempo-insert-prompt', or nil."
(if (consp prompt) ; not nil either
(apply 'tempo-insert-prompt prompt)
(tempo-insert-prompt prompt)))
@@ -410,12 +410,12 @@ tempo-insert-prompt, or nil."
"Prompt for a text string and insert it in the current buffer.
If the variable `tempo-interactive' is non-nil the user is prompted
for a string in the minibuffer, which is then inserted in the current
-buffer. If `tempo-interactive' is nil, the current point is placed on
+buffer. If `tempo-interactive' is nil, the current point is placed on
`tempo-mark'.
PROMPT is the prompt string, SAVE-NAME is a name to save the inserted
-text under. If the optional argument NO-INSERT is non-nil, no text i
-inserted. This can be useful when there is a SAVE-NAME.
+text under. If the optional argument NO-INSERT is non-nil, no text is
+inserted. This can be useful when there is a SAVE-NAME.
If there already is a value for SAVE-NAME, it is used and the user is
never prompted."
@@ -448,8 +448,7 @@ never prompted."
;;; tempo-is-user-element
(defun tempo-is-user-element (element)
- "Tries all the user-defined element handlers in
-`tempo-user-elements'"
+ "Tries all the user-defined element handlers in `tempo-user-elements'."
;; Sigh... I need (some list)
(catch 'found
(mapcar (function (lambda (handler)
@@ -531,7 +530,7 @@ and insert the results."
;;; tempo-insert-mark
(defun tempo-insert-mark (mark)
- "Insert a mark `tempo-marks' while keeping it sorted"
+ "Insert a mark `tempo-marks' while keeping it sorted."
(cond ((null tempo-marks) (setq tempo-marks (list mark)))
((< mark (car tempo-marks)) (setq tempo-marks (cons mark tempo-marks)))
(t (let ((lp tempo-marks))
@@ -603,8 +602,8 @@ TAG-LIST is a symbol whose variable value is a tag list created with
COMPLETION-FUNCTION is an obsolete option for specifying an optional
function or string that is used by `\\[tempo-complete-tag]' to find a
-string to match the tag against. It has the same definition as the
-variable `tempo-match-finder'. In this version, supplying a
+string to match the tag against. It has the same definition as the
+variable `tempo-match-finder'. In this version, supplying a
COMPLETION-FUNCTION just sets `tempo-match-finder' locally."
(let ((old (assq tag-list tempo-local-tags)))
(if old
@@ -647,7 +646,7 @@ If `tempo-dirty-collection' is nil, the old collection is reused."
(defun tempo-find-match-string (finder)
"Find a string to be matched against a tag list.
-FINDER is a function or a string. Returns (STRING . POS), or nil
+FINDER is a function or a string. Returns (STRING . POS), or nil
if no reasonable string is found."
(cond ((stringp finder)
(let (successful)
@@ -671,7 +670,7 @@ if no reasonable string is found."
All the tags in the tag lists in `tempo-local-tags'
\(this includes `tempo-tags') are searched for a match for the text
before the point. The way the string to match for is determined can
-be altered with the variable `tempo-match-finder'. If
+be altered with the variable `tempo-match-finder'. If
`tempo-match-finder' returns nil, then the results are the same as
no match at all.
diff --git a/lisp/term.el b/lisp/term.el
index 047db5708a..9d6ee5a4e9 100644
--- a/lisp/term.el
+++ b/lisp/term.el
@@ -1,6 +1,7 @@
;;; term.el --- general command interpreter in a window stuff
-;;; Copyright (C) 1988, 1990, 1992, 1994, 1995, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1988, 1990, 1992, 1994, 1995, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Per Bothner <per@bothner.com>
;; Maintainer: Dan Nicolaescu <dann@ics.uci.edu>, Per Bothner <per@bothner.com>
@@ -1102,6 +1103,8 @@ Entry to this mode runs the hooks on `term-mode-hook'."
(make-local-variable 'term-current-face)
(make-local-variable 'term-pending-frame)
(setq term-pending-frame nil)
+ ;; Cua-mode's keybindings interfere with the term keybindings, disable it.
+ (set (make-local-variable 'cua-mode) nil)
(run-mode-hooks 'term-mode-hook)
(term-if-xemacs
(set-buffer-menubar
diff --git a/lisp/term/AT386.el b/lisp/term/AT386.el
index fc86e8bcaf..7e3ed15ce2 100644
--- a/lisp/term/AT386.el
+++ b/lisp/term/AT386.el
@@ -3,7 +3,7 @@
;; Author: Eric S. Raymond <esr@snark.thyrsus.com>
;; Keywords: terminals
-;; Copyright (C) 1992 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
@@ -28,34 +28,36 @@
;;; Code:
-(if (boundp 'AT386-keypad-map)
- nil
- ;; The terminal initialization should already have set up some keys
- (setq AT386-keypad-map (lookup-key (terminal-local-value 'local-function-key-map nil) "\e["))
- (if (not (keymapp AT386-keypad-map))
- (error "What? Your AT386 termcap/terminfo has no keycaps in it"))
-
- ;; Equivalents of these are set up automatically by termcap/terminfo
- ;; (define-key AT386-keypad-map "A" [up])
- ;; (define-key AT386-keypad-map "B" [down])
- ;; (define-key AT386-keypad-map "C" [right])
- ;; (define-key AT386-keypad-map "D" [left])
-
- ;; These would be set up by terminfo, but not termcap
- (define-key AT386-keypad-map "H" [home])
- (define-key AT386-keypad-map "Y" [end])
- (define-key AT386-keypad-map "U" [next]) ;; PgDn
- (define-key AT386-keypad-map "V" [prior]) ;; PgUp
- (define-key AT386-keypad-map "@" [insert]) ;; Ins key
-
- ;; These are not normally set up by either
- (define-key AT386-keypad-map "G" [kp-5]) ;; Unlabeled center key
- (define-key AT386-keypad-map "S" [kp-subtract])
- (define-key AT386-keypad-map "T" [kp-add])
-
- ;; Arrange for the ALT key to be equivalent to ESC
- (define-key (terminal-local-value 'local-function-key-map nil) "\eN" [27]) ; ALT map
- )
+(defun terminal-init-AT386 ()
+ "Terminal initialization function for AT386."
+ (if (boundp 'AT386-keypad-map)
+ nil
+ ;; The terminal initialization should already have set up some keys
+ (setq AT386-keypad-map (lookup-key (terminal-local-value 'local-function-key-map nil) "\e["))
+ (if (not (keymapp AT386-keypad-map))
+ (error "What? Your AT386 termcap/terminfo has no keycaps in it"))
+
+ ;; Equivalents of these are set up automatically by termcap/terminfo
+ ;; (define-key AT386-keypad-map "A" [up])
+ ;; (define-key AT386-keypad-map "B" [down])
+ ;; (define-key AT386-keypad-map "C" [right])
+ ;; (define-key AT386-keypad-map "D" [left])
+
+ ;; These would be set up by terminfo, but not termcap
+ (define-key AT386-keypad-map "H" [home])
+ (define-key AT386-keypad-map "Y" [end])
+ (define-key AT386-keypad-map "U" [next]) ;; PgDn
+ (define-key AT386-keypad-map "V" [prior]) ;; PgUp
+ (define-key AT386-keypad-map "@" [insert]) ;; Ins key
+
+ ;; These are not normally set up by either
+ (define-key AT386-keypad-map "G" [kp-5]) ;; Unlabeled center key
+ (define-key AT386-keypad-map "S" [kp-subtract])
+ (define-key AT386-keypad-map "T" [kp-add])
+
+ ;; Arrange for the ALT key to be equivalent to ESC
+ (define-key (terminal-local-value 'local-function-key-map nil) "\eN" [27]) ; ALT map
+ ))
;;; arch-tag: abec1b03-582f-49f8-b8cb-e2fd52ea4bd7
;;; AT386.el ends here
diff --git a/lisp/term/README b/lisp/term/README
index 76c64435af..581f321d3b 100644
--- a/lisp/term/README
+++ b/lisp/term/README
@@ -8,7 +8,12 @@ that exists, the last hyphen and what follows it is stripped. If that doesn't
yield a file that exists, the previous hyphen is stripped, and so on until all
hyphens are gone. For example, if the terminal type is `aaa-48-foo', Emacs
will try first `term/aaa-48-foo.el', then `term/aaa-48.el' and finally
-`term/aaa.el'.
+`term/aaa.el'. Each terminal specific file should contain a function
+named terminal-init-TERMINALNAME (eg terminal-init-aaa-48 for
+term/aaa-48.el) that Emacs will call in order to initialize the
+terminal. The terminal files should not contain any top level forms
+that are executed when the file is loaded, all the initialization
+actions are performed by the terminal-init-TERMINALNAME functions.
When writing terminal packages, there are some things it is good to keep in
mind.
diff --git a/lisp/term/apollo.el b/lisp/term/apollo.el
index 1d04fd3524..1e0e6f0a1f 100644
--- a/lisp/term/apollo.el
+++ b/lisp/term/apollo.el
@@ -1,6 +1,7 @@
;; -*- no-byte-compile: t -*-
-
-(load "term/vt100" nil t)
+(defun terminal-init-apollo ()
+ "Terminal initialization function for apollo."
+ (terminal-init-vt100))
;;; arch-tag: c72f446f-e6b7-4749-90a4-bd68632adacf
;;; apollo.el ends here
diff --git a/lisp/term/bobcat.el b/lisp/term/bobcat.el
index b11a4ff830..82401f7bf7 100644
--- a/lisp/term/bobcat.el
+++ b/lisp/term/bobcat.el
@@ -1,7 +1,10 @@
;; -*- no-byte-compile: t -*-
-;;; HP terminals usually encourage using ^H as the rubout character
-(keyboard-translate ?\177 ?\^h)
-(keyboard-translate ?\^h ?\177)
+
+(defun terminal-init-bobcat ()
+ "Terminal initialization function for bobcat."
+ ;; HP terminals usually encourage using ^H as the rubout character
+ (keyboard-translate ?\177 ?\^h)
+ (keyboard-translate ?\^h ?\177))
;;; arch-tag: 754e4520-0a3e-4e6e-8ca5-9481b1f85cf7
;;; bobcat.el ends here
diff --git a/lisp/term/cygwin.el b/lisp/term/cygwin.el
new file mode 100644
index 0000000000..3bdd5d3aa0
--- /dev/null
+++ b/lisp/term/cygwin.el
@@ -0,0 +1,10 @@
+;;; cygwin.el --- support for the Cygwin terminal -*- no-byte-compile: t -*-
+
+;;; The Cygwin terminal can't really display underlines.
+
+(defun terminal-init-cygwin ()
+ "Terminal initialization function for cygwin."
+ (tty-no-underline))
+
+;; arch-tag: ca81ce67-3c41-4883-a29b-4c3d64a21191
+;;; cygwin.el ends here
diff --git a/lisp/term/internal.el b/lisp/term/internal.el
index 398d848aeb..bbc19bb1b3 100644
--- a/lisp/term/internal.el
+++ b/lisp/term/internal.el
@@ -1,6 +1,7 @@
;;; internal.el --- support for PC internal terminal -*- coding: raw-text; no-byte-compile: t -*-
-;; Copyright (C) 1993, 1994, 1998, 1999, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 1998, 1999, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Morten Welinder <terra@diku.dk>
diff --git a/lisp/term/iris-ansi.el b/lisp/term/iris-ansi.el
index 4d99c3a355..42f0912ed2 100644
--- a/lisp/term/iris-ansi.el
+++ b/lisp/term/iris-ansi.el
@@ -1,6 +1,6 @@
;;; iris-ansi.el --- configure Emacs for SGI xwsh and winterm apps -*- no-byte-compile: t -*-
-;; Copyright (C) 1997 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Dan Nicolaescu <dann@ics.uci.edu>
@@ -135,10 +135,10 @@
(define-key iris-function-map "\e[070q" [?\M-=])
;; I don't know what to do with those.
- ;(define-key iris-function-map "^H" [<del>])
- ;(define-key iris-function-map "^H" [S-<del>])
- ;(define-key iris-function-map "\177" [C-<del>])
- ;(define-key iris-function-map "\e[071q" [M-<del>])
+ ;;(define-key iris-function-map "^H" [<del>])
+ ;;(define-key iris-function-map "^H" [S-<del>])
+ ;;(define-key iris-function-map "\177" [C-<del>])
+ ;;(define-key iris-function-map "\e[071q" [M-<del>])
(define-key iris-function-map "\e[Z" [?\S-\t])
(define-key iris-function-map "\e[072q" [?\C-\t])
@@ -329,12 +329,14 @@
(define-key iris-function-map "\e[196q" [C-delete])
(define-key iris-function-map "\e[197q" [M-delete]))
-;; Use inheritance to let the main keymap override these defaults.
-;; This way we don't override terminfo-derived settings or settings
-;; made in the .emacs file.
-(let ((m (copy-keymap iris-function-map)))
- (set-keymap-parent m (keymap-parent (terminal-local-value 'local-function-key-map nil)))
- (set-keymap-parent (terminal-local-value 'local-function-key-map nil) m))
+(defun terminal-init-iris-ansi ()
+ "Terminal initialization function for iris-ansi."
+ ;; Use inheritance to let the main keymap override these defaults.
+ ;; This way we don't override terminfo-derived settings or settings
+ ;; made in the .emacs file.
+ (let ((m (copy-keymap iris-function-map)))
+ (set-keymap-parent m (keymap-parent (terminal-local-value 'local-function-key-map nil)))
+ (set-keymap-parent (terminal-local-value 'local-function-key-map nil) m)))
;;; arch-tag: b1d0e73a-bb7d-47be-9fb2-6fb126469a1b
;;; iris-ansi.el ends here
diff --git a/lisp/term/linux.el b/lisp/term/linux.el
index 71b9e0d4bc..7fa9a96e9b 100644
--- a/lisp/term/linux.el
+++ b/lisp/term/linux.el
@@ -1,19 +1,21 @@
;; -*- no-byte-compile: t -*-
;; The Linux console handles Latin-1 by default.
-(unless (terminal-coding-system)
- (set-terminal-coding-system 'iso-latin-1))
+(defun terminal-init-linux ()
+ "Terminal initialization function for linux."
+ (unless (terminal-coding-system)
+ (set-terminal-coding-system 'iso-latin-1))
-;; It can't really display underlines.
-(tty-no-underline)
+ ;; It can't really display underlines.
+ (tty-no-underline)
-;; Make Latin-1 input characters work, too.
-;; Meta will continue to work, because the kernel
-;; turns that into Escape.
+ ;; Make Latin-1 input characters work, too.
+ ;; Meta will continue to work, because the kernel
+ ;; turns that into Escape.
-(let ((value (current-input-mode)))
- ;; The third arg only matters in that it is not t or nil.
- (set-input-mode (nth 0 value) (nth 1 value) 'iso-latin-1 (nth 3 value)))
+ (let ((value (current-input-mode)))
+ ;; The third arg only matters in that it is not t or nil.
+ (set-input-mode (nth 0 value) (nth 1 value) 'iso-latin-1 (nth 3 value))))
;;; arch-tag: 5d0c4f63-739b-4862-abf3-041fe42adb8f
;;; linux.el ends here
diff --git a/lisp/term/lk201.el b/lisp/term/lk201.el
index 84d5660cb5..960793ce99 100644
--- a/lisp/term/lk201.el
+++ b/lisp/term/lk201.el
@@ -75,12 +75,13 @@
(define-key lk201-function-map "\eOx" [kp-8])
(define-key lk201-function-map "\eOy" [kp-9]))
-;; Use inheritance to let the main keymap override these defaults.
-;; This way we don't override terminfo-derived settings or settings
-;; made in the .emacs file.
-(let ((m (copy-keymap lk201-function-map)))
- (set-keymap-parent m (keymap-parent (terminal-local-value 'local-function-key-map nil)))
- (set-keymap-parent (terminal-local-value 'local-function-key-map nil) m))
+(defun terminal-init-lk201 ()
+ ;; Use inheritance to let the main keymap override these defaults.
+ ;; This way we don't override terminfo-derived settings or settings
+ ;; made in the .emacs file.
+ (let ((m (copy-keymap lk201-function-map)))
+ (set-keymap-parent m (keymap-parent (terminal-local-value 'local-function-key-map nil)))
+ (set-keymap-parent (terminal-local-value 'local-function-key-map nil) m)))
;;; arch-tag: 7ffb4444-6a23-43e1-b457-43cf4f673c0d
;;; lk201.el ends here
diff --git a/lisp/term/mac-win.el b/lisp/term/mac-win.el
index 8b538050b2..3762b13d80 100644
--- a/lisp/term/mac-win.el
+++ b/lisp/term/mac-win.el
@@ -1,7 +1,7 @@
;;; mac-win.el --- parse switches controlling interface with Mac window system -*-coding: iso-2022-7bit;-*-
-;; Copyright (C) 1999, 2000, 2002, 2003, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Andrew Choi <akochoi@mac.com>
;; Keywords: terminals
@@ -79,6 +79,9 @@
(require 'fontset)
(require 'dnd)
+(defvar mac-charset-info-alist)
+(defvar mac-services-selection)
+(defvar mac-system-script-code)
(defvar x-invocation-args)
(defvar x-command-line-resources nil)
@@ -1378,6 +1381,17 @@ in `selection-converter-alist', which see."
(save-buffer) ; It pops up the save dialog.
)
+(defun mac-services-mail-selection ()
+ (interactive)
+ (compose-mail)
+ (rfc822-goto-eoh)
+ (forward-line 1)
+ (insert (x-selection-value mac-services-selection) "\n"))
+
+(defun mac-services-mail-to ()
+ (interactive)
+ (compose-mail (x-selection-value mac-services-selection)))
+
(defun mac-services-insert-text ()
(interactive)
(let ((text (x-selection-value mac-services-selection)))
@@ -1394,6 +1408,10 @@ in `selection-converter-alist', which see."
'mac-services-open-file)
(define-key mac-application-menu-map [services perform open-selection]
'mac-services-open-selection)
+(define-key mac-application-menu-map [services perform mail-selection]
+ 'mac-services-mail-selection)
+(define-key mac-application-menu-map [services perform mail-to]
+ 'mac-services-mail-to)
(define-key mac-application-menu-map [services paste]
'mac-services-insert-text)
(define-key mac-application-menu-map [preferences] 'customize)
@@ -1487,7 +1505,7 @@ in `selection-converter-alist', which see."
(char-table-extra-slot translation-table 0)))
(let
- ((encoding-vector
+ ((encoding-vector
(vconcat
(make-vector 32 nil)
;; mac-dingbats (32..126) -> emacs-mule mapping
@@ -1547,54 +1565,52 @@ in `selection-converter-alist', which see."
(if mac-encoded
(aset table c mac-encoded))))))))
+;; We assume none of official dim2 charsets (0x90..0x99) are encoded
+;; to these fonts.
+
(define-ccl-program ccl-encode-mac-roman-font
`(0
- (if (r0 != ,(charset-id 'ascii))
- (if (r0 <= ?\x8f)
- (translate-character mac-roman-encoder r0 r1)
- ((r1 <<= 7)
- (r1 |= r2)
- (translate-character mac-roman-encoder r0 r1)))))
+ (if (r0 <= ?\xef)
+ (translate-character mac-roman-encoder r0 r1)
+ ((r1 <<= 7)
+ (r1 |= r2)
+ (translate-character mac-roman-encoder r0 r1))))
"CCL program for Mac Roman font")
(define-ccl-program ccl-encode-mac-centraleurroman-font
`(0
- (if (r0 != ,(charset-id 'ascii))
- (if (r0 <= ?\x8f)
- (translate-character encode-mac-centraleurroman r0 r1)
- ((r1 <<= 7)
- (r1 |= r2)
- (translate-character encode-mac-centraleurroman r0 r1)))))
+ (if (r0 <= ?\xef)
+ (translate-character encode-mac-centraleurroman r0 r1)
+ ((r1 <<= 7)
+ (r1 |= r2)
+ (translate-character encode-mac-centraleurroman r0 r1))))
"CCL program for Mac Central European Roman font")
(define-ccl-program ccl-encode-mac-cyrillic-font
`(0
- (if (r0 != ,(charset-id 'ascii))
- (if (r0 <= ?\x8f)
- (translate-character encode-mac-cyrillic r0 r1)
- ((r1 <<= 7)
- (r1 |= r2)
- (translate-character encode-mac-cyrillic r0 r1)))))
+ (if (r0 <= ?\xef)
+ (translate-character encode-mac-cyrillic r0 r1)
+ ((r1 <<= 7)
+ (r1 |= r2)
+ (translate-character encode-mac-cyrillic r0 r1))))
"CCL program for Mac Cyrillic font")
(define-ccl-program ccl-encode-mac-symbol-font
`(0
- (if (r0 != ,(charset-id 'ascii))
- (if (r0 <= ?\x8f)
- (translate-character mac-symbol-encoder r0 r1)
- ((r1 <<= 7)
- (r1 |= r2)
- (translate-character mac-symbol-encoder r0 r1)))))
+ (if (r0 <= ?\xef)
+ (translate-character mac-symbol-encoder r0 r1)
+ ((r1 <<= 7)
+ (r1 |= r2)
+ (translate-character mac-symbol-encoder r0 r1))))
"CCL program for Mac Symbol font")
(define-ccl-program ccl-encode-mac-dingbats-font
`(0
- (if (r0 != ,(charset-id 'ascii))
- (if (r0 <= ?\x8f)
- (translate-character mac-dingbats-encoder r0 r1)
- ((r1 <<= 7)
- (r1 |= r2)
- (translate-character mac-dingbats-encoder r0 r1)))))
+ (if (r0 <= ?\xef)
+ (translate-character mac-dingbats-encoder r0 r1)
+ ((r1 <<= 7)
+ (r1 |= r2)
+ (translate-character mac-dingbats-encoder r0 r1))))
"CCL program for Mac Dingbats font")
@@ -1604,35 +1620,80 @@ in `selection-converter-alist', which see."
mac-font-encoder-list)
font-ccl-encoder-alist))
+(defconst mac-char-fontspec-list
+ ;; Directly operate on a char-table instead of a fontset so that it
+ ;; may not create a dummy fontset.
+ (let ((template (make-char-table 'fontset)))
+ (dolist
+ (font-encoder
+ (nreverse
+ (mapcar (lambda (lst)
+ (cons (cons (nth 3 lst) (nth 0 lst)) (nth 1 lst)))
+ mac-font-encoder-list)))
+ (let ((font (car font-encoder))
+ (encoder (cdr font-encoder)))
+ (map-char-table
+ (lambda (key val)
+ (or (null val)
+ (generic-char-p key)
+ (memq (char-charset key)
+ '(ascii eight-bit-control eight-bit-graphic))
+ (aset template key font)))
+ (get encoder 'translation-table))))
+
+ ;; Like fontset-info, but extend a range only if its "to" part is
+ ;; the predecessor of the current char.
+ (let* ((last '((0 nil)))
+ (accumulator last)
+ last-char-or-range last-char last-elt)
+ (map-char-table
+ (lambda (char elt)
+ (when elt
+ (setq last-char-or-range (car (car last))
+ last-char (if (consp last-char-or-range)
+ (cdr last-char-or-range)
+ last-char-or-range)
+ last-elt (cdr (car last)))
+ (if (and (eq elt last-elt)
+ (= char (1+ last-char))
+ (eq (char-charset char) (char-charset last-char)))
+ (if (consp last-char-or-range)
+ (setcdr last-char-or-range char)
+ (setcar (car last) (cons last-char char)))
+ (setcdr last (list (cons char elt)))
+ (setq last (cdr last)))))
+ template)
+ (cdr accumulator))))
+
(defun fontset-add-mac-fonts (fontset &optional base-family)
+ "Add font-specs for Mac fonts to FONTSET.
+The added font-specs are determined by BASE-FAMILY and the value
+of `mac-char-fontspec-list', which is a list
+of (CHARACTER-OR-RANGE . (FAMILY-FORMAT . REGISTRY)). If
+BASE-FAMILY is nil, the font family in the added font-specs is
+also nil. If BASE-FAMILY is a string, `%s' in FAMILY-FORMAT is
+replaced with the string. Otherwise, `%s' in FAMILY-FORMAT is
+replaced with the ASCII font family name in FONTSET."
(if base-family
- (setq base-family (downcase base-family))
- (let ((ascii-font
- (downcase (x-resolve-font-name
- (fontset-font fontset (charset-id 'ascii))))))
- (setq base-family (aref (x-decompose-font-name ascii-font)
- xlfd-regexp-family-subnum))))
-;; (if (not (string-match "^fontset-" fontset))
-;; (setq fontset
-;; (concat "fontset-" (aref (x-decompose-font-name fontset)
-;; xlfd-regexp-encoding-subnum))))
- (dolist
- (font-encoder
- (nreverse
- (mapcar (lambda (lst)
- (cons (cons (format (nth 3 lst) base-family) (nth 0 lst))
- (nth 1 lst)))
- mac-font-encoder-list)))
- (let ((font (car font-encoder))
- (encoder (cdr font-encoder)))
- (map-char-table
- (lambda (key val)
- (or (null val)
- (generic-char-p key)
- (memq (char-charset key)
- '(ascii eight-bit-control eight-bit-graphic))
- (set-fontset-font fontset key font)))
- (get encoder 'translation-table)))))
+ (if (stringp base-family)
+ (setq base-family (downcase base-family))
+ (let ((ascii-font (fontset-font fontset (charset-id 'ascii))))
+ (if ascii-font
+ (setq base-family
+ (aref (x-decompose-font-name
+ (downcase (x-resolve-font-name ascii-font)))
+ xlfd-regexp-family-subnum))))))
+ (let (fontspec-cache fontspec)
+ (dolist (char-fontspec mac-char-fontspec-list)
+ (setq fontspec (cdr (assq (cdr char-fontspec) fontspec-cache)))
+ (when (null fontspec)
+ (setq fontspec
+ (cons (and base-family
+ (format (car (cdr char-fontspec)) base-family))
+ (cdr (cdr char-fontspec))))
+ (setq fontspec-cache (cons (cons (cdr char-fontspec) fontspec)
+ fontspec-cache)))
+ (set-fontset-font fontset (car char-fontspec) fontspec))))
(defun create-fontset-from-mac-roman-font (font &optional resolved-font
fontset-name)
@@ -1649,11 +1710,14 @@ an appropriate name is generated automatically.
It returns a name of the created fontset."
(let ((fontset
(create-fontset-from-ascii-font font resolved-font fontset-name)))
- (fontset-add-mac-fonts fontset)
+ (fontset-add-mac-fonts fontset t)
fontset))
;; Setup the default fontset.
(setup-default-fontset)
+;; Add Mac-encoding fonts unless ETL fonts are installed.
+(unless (x-list-fonts "*-iso8859-1")
+ (fontset-add-mac-fonts "fontset-default"))
;; Create a fontset that uses mac-roman font. With this fontset,
;; characters decoded from mac-roman encoding (ascii, latin-iso8859-1,
@@ -1661,7 +1725,7 @@ It returns a name of the created fontset."
(create-fontset-from-fontset-spec
"-etl-fixed-medium-r-normal-*-16-*-*-*-*-*-fontset-mac,
ascii:-*-Monaco-*-*-*-*-12-*-*-*-*-*-mac-roman")
-(fontset-add-mac-fonts "fontset-mac")
+(fontset-add-mac-fonts "fontset-mac" t)
;; Create fontset specified in X resources "Fontset-N" (N is 0, 1, ...).
(create-fontset-from-x-resource)
diff --git a/lisp/term/news.el b/lisp/term/news.el
index d5afab190d..2a62a85d5b 100644
--- a/lisp/term/news.el
+++ b/lisp/term/news.el
@@ -1,6 +1,7 @@
;;; news.el --- keypad and function key bindings for the Sony NEWS keyboard -*- no-byte-compile: t -*-
-;; Copyright (C) 1989, 1993 Free Software Foundation, Inc.
+;; Copyright (C) 1989, 1993, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: FSF
;; Keywords: terminals
@@ -28,47 +29,49 @@
;;; Code:
-(if (boundp 'news-fkey-prefix)
- nil
- ;; The terminal initialization should already have set up some keys
- (setq news-fkey-prefix (lookup-key (terminal-local-value 'local-function-key-map nil) "\eO"))
- (if (not (keymapp news-fkey-prefix))
- (error "What? Your news termcap/terminfo has no keycaps in it"))
+(defun terminal-init-news ()
+ "Terminal initialization function for news."
+ (if (boundp 'news-fkey-prefix)
+ nil
+ ;; The terminal initialization should already have set up some keys
+ (setq news-fkey-prefix (lookup-key (terminal-local-value 'local-function-key-map nil) "\eO"))
+ (if (not (keymapp news-fkey-prefix))
+ (error "What? Your news termcap/terminfo has no keycaps in it"))
- ;; Termcap or terminfo will set these
- ;; (define-key news-fkey-prefix "P" [f1])
- ;; (define-key news-fkey-prefix "Q" [f2])
- ;; (define-key news-fkey-prefix "R" [f3])
- ;; (define-key news-fkey-prefix "S" [f4])
- ;; (define-key news-fkey-prefix "T" [f5])
- ;; (define-key news-fkey-prefix "U" [f6])
- ;; (define-key news-fkey-prefix "V" [f7])
- ;; (define-key news-fkey-prefix "W" [f8])
- ;; (define-key news-fkey-prefix "X" [f9])
- ;; (define-key news-fkey-prefix "Y" [f10])
+ ;; Termcap or terminfo will set these
+ ;; (define-key news-fkey-prefix "P" [f1])
+ ;; (define-key news-fkey-prefix "Q" [f2])
+ ;; (define-key news-fkey-prefix "R" [f3])
+ ;; (define-key news-fkey-prefix "S" [f4])
+ ;; (define-key news-fkey-prefix "T" [f5])
+ ;; (define-key news-fkey-prefix "U" [f6])
+ ;; (define-key news-fkey-prefix "V" [f7])
+ ;; (define-key news-fkey-prefix "W" [f8])
+ ;; (define-key news-fkey-prefix "X" [f9])
+ ;; (define-key news-fkey-prefix "Y" [f10])
- ;; Terminfo will set these
- (define-key news-fkey-prefix "a" [execute])
- (define-key news-fkey-prefix "b" [select])
- (define-key news-fkey-prefix "c" [cancel])
- (define-key news-fkey-prefix "M" [kp-enter])
- (define-key news-fkey-prefix "q" [kp-1])
- (define-key news-fkey-prefix "s" [kp-3])
- (define-key news-fkey-prefix "u" [kp-5])
- (define-key news-fkey-prefix "w" [kp-7])
- (define-key news-fkey-prefix "y" [kp-9])
+ ;; Terminfo will set these
+ (define-key news-fkey-prefix "a" [execute])
+ (define-key news-fkey-prefix "b" [select])
+ (define-key news-fkey-prefix "c" [cancel])
+ (define-key news-fkey-prefix "M" [kp-enter])
+ (define-key news-fkey-prefix "q" [kp-1])
+ (define-key news-fkey-prefix "s" [kp-3])
+ (define-key news-fkey-prefix "u" [kp-5])
+ (define-key news-fkey-prefix "w" [kp-7])
+ (define-key news-fkey-prefix "y" [kp-9])
- ;; These aren't in either termcap or terminfo's repertoire
- (define-key news-fkey-prefix "m" [kp-subtract])
- (define-key news-fkey-prefix "k" [kp-add])
- (define-key news-fkey-prefix "l" [kp-separator])
- (define-key news-fkey-prefix "n" [kp-decimal])
- (define-key news-fkey-prefix "p" [kp-0])
- (define-key news-fkey-prefix "r" [kp-2])
- (define-key news-fkey-prefix "t" [kp-4])
- (define-key news-fkey-prefix "v" [kp-6])
- (define-key news-fkey-prefix "x" [kp-8])
- )
+ ;; These aren't in either termcap or terminfo's repertoire
+ (define-key news-fkey-prefix "m" [kp-subtract])
+ (define-key news-fkey-prefix "k" [kp-add])
+ (define-key news-fkey-prefix "l" [kp-separator])
+ (define-key news-fkey-prefix "n" [kp-decimal])
+ (define-key news-fkey-prefix "p" [kp-0])
+ (define-key news-fkey-prefix "r" [kp-2])
+ (define-key news-fkey-prefix "t" [kp-4])
+ (define-key news-fkey-prefix "v" [kp-6])
+ (define-key news-fkey-prefix "x" [kp-8])
+ ))
;;; arch-tag: bfe141a0-623b-4b42-b753-5d9353776c5e
;;; news.el ends here
diff --git a/lisp/term/pc-win.el b/lisp/term/pc-win.el
index 529903d06b..bdaef8813e 100644
--- a/lisp/term/pc-win.el
+++ b/lisp/term/pc-win.el
@@ -1,6 +1,7 @@
;;; pc-win.el --- setup support for `PC windows' (whatever that is)
-;; Copyright (C) 1994, 1996, 1997, 1999, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1996, 1997, 1999, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Morten Welinder <terra@diku.dk>
;; Maintainer: FSF
diff --git a/lisp/term/rxvt.el b/lisp/term/rxvt.el
index bb85c79f21..017dad2e7a 100644
--- a/lisp/term/rxvt.el
+++ b/lisp/term/rxvt.el
@@ -1,6 +1,6 @@
;;; rxvt.el --- define function key sequences and standard colors for rxvt
-;; Copyright (C) 2002 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Eli Zaretskii
;; Keywords: terminals
@@ -56,8 +56,10 @@
(define-key rxvt-function-map "\e[19~" [f8])
(define-key rxvt-function-map "\e[20~" [f9])
(define-key rxvt-function-map "\e[21~" [f10])
- (define-key rxvt-function-map "\e[23~" [f11])
- (define-key rxvt-function-map "\e[24~" [f12])
+ ;; The strings emitted by f11 and f12 are the same as the strings
+ ;; emitted by S-f1 and S-f2, so don't define f11 and f12.
+ ;; (define-key rxvt-function-map "\e[23~" [f11])
+ ;; (define-key rxvt-function-map "\e[24~" [f12])
(define-key rxvt-function-map "\e[29~" [print])
(define-key rxvt-function-map "\e[11^" [C-f1])
@@ -70,23 +72,42 @@
(define-key rxvt-function-map "\e[19^" [C-f8])
(define-key rxvt-function-map "\e[20^" [C-f9])
(define-key rxvt-function-map "\e[21^" [C-f10])
- (define-key rxvt-function-map "\e[23^" [C-f11])
- (define-key rxvt-function-map "\e[24^" [C-f12])
- (define-key rxvt-function-map "\e[29~" [print])
-
- (define-key rxvt-function-map "\e[2;2~" [S-insert])
- (define-key rxvt-function-map "\e[3$" [S-delete])
+ (define-key rxvt-function-map "\e[23~" [S-f1])
+ (define-key rxvt-function-map "\e[24~" [S-f2])
+ (define-key rxvt-function-map "\e[25~" [S-f3])
+ (define-key rxvt-function-map "\e[26~" [S-f4])
+ (define-key rxvt-function-map "\e[28~" [S-f5])
+ (define-key rxvt-function-map "\e[29~" [S-f6])
+ (define-key rxvt-function-map "\e[31~" [S-f7])
+ (define-key rxvt-function-map "\e[32~" [S-f8])
+ (define-key rxvt-function-map "\e[33~" [S-f9])
+ (define-key rxvt-function-map "\e[34~" [S-f10])
+
+ (define-key rxvt-function-map "\e[23^" [C-S-f1])
+ (define-key rxvt-function-map "\e[24^" [C-S-f2])
+ (define-key rxvt-function-map "\e[25^" [C-S-f3])
+ (define-key rxvt-function-map "\e[26^" [C-S-f4])
+ (define-key rxvt-function-map "\e[28^" [C-S-f5])
+ (define-key rxvt-function-map "\e[29^" [C-S-f6])
+ (define-key rxvt-function-map "\e[31^" [C-S-f7])
+ (define-key rxvt-function-map "\e[32^" [C-S-f8])
+ (define-key rxvt-function-map "\e[33^" [C-S-f9])
+ (define-key rxvt-function-map "\e[34^" [C-S-f10])
(define-key rxvt-function-map "\e[2^" [C-insert])
(define-key rxvt-function-map "\e[3^" [C-delete])
(define-key rxvt-function-map "\e[5^" [C-prior])
(define-key rxvt-function-map "\e[6^" [C-next])
+ (define-key rxvt-function-map "\e[7^" [C-home])
+ (define-key rxvt-function-map "\e[8^" [C-end])
(define-key rxvt-function-map "\eOd" [C-left])
(define-key rxvt-function-map "\eOc" [C-right])
(define-key rxvt-function-map "\eOa" [C-up])
(define-key rxvt-function-map "\eOb" [C-down])
+ (define-key rxvt-function-map "\e[2;2~" [S-insert])
+ (define-key rxvt-function-map "\e[3$" [S-delete])
(define-key rxvt-function-map "\e[5$" [S-prior])
(define-key rxvt-function-map "\e[6$" [S-next])
(define-key rxvt-function-map "\e[8$" [S-end])
@@ -96,13 +117,61 @@
(define-key rxvt-function-map "\e[a" [S-up])
(define-key rxvt-function-map "\e[b" [S-down]))
-;; Use inheritance to let the main keymap override those defaults.
-;; This way we don't override terminfo-derived settings or settings
-;; made in the .emacs file.
-(let ((m (copy-keymap rxvt-function-map)))
- (set-keymap-parent m (keymap-parent (terminal-local-value 'local-function-key-map nil)))
- (set-keymap-parent (terminal-local-value 'local-function-key-map nil) m))
-
+(defun terminal-init-rxvt ()
+ "Terminal initialization function for rxvt."
+ ;; The terminal intialization C code file might have initialized
+ ;; function keys F11->F42 from the termcap/terminfo information. On
+ ;; a PC-style keyboard these keys correspond to
+ ;; MODIFIER-FUNCTION_KEY, where modifier is S-, C-, C-S-. The
+ ;; code here subsitutes the corresponding defintions in
+ ;; function-key-map. This substitution is needed because if a key
+ ;; definition if found in function-key-map, there are no further
+ ;; lookups in other keymaps.
+ (substitute-key-definition [f11] [S-f1] function-key-map)
+ (substitute-key-definition [f12] [S-f2] function-key-map)
+ (substitute-key-definition [f13] [S-f3] function-key-map)
+ (substitute-key-definition [f14] [S-f4] function-key-map)
+ (substitute-key-definition [f15] [S-f5] function-key-map)
+ (substitute-key-definition [f16] [S-f6] function-key-map)
+ (substitute-key-definition [f17] [S-f7] function-key-map)
+ (substitute-key-definition [f18] [S-f8] function-key-map)
+ (substitute-key-definition [f19] [S-f9] function-key-map)
+ (substitute-key-definition [f20] [S-f10] function-key-map)
+
+ (substitute-key-definition [f23] [C-f1] function-key-map)
+ (substitute-key-definition [f24] [C-f2] function-key-map)
+ (substitute-key-definition [f25] [C-f3] function-key-map)
+ (substitute-key-definition [f26] [C-f4] function-key-map)
+ (substitute-key-definition [f27] [C-f5] function-key-map)
+ (substitute-key-definition [f28] [C-f6] function-key-map)
+ (substitute-key-definition [f29] [C-f7] function-key-map)
+ (substitute-key-definition [f30] [C-f8] function-key-map)
+ (substitute-key-definition [f31] [C-f9] function-key-map)
+ (substitute-key-definition [f32] [C-f10] function-key-map)
+
+ (substitute-key-definition [f33] [C-S-f1] function-key-map)
+ (substitute-key-definition [f34] [C-S-f2] function-key-map)
+ (substitute-key-definition [f35] [C-S-f3] function-key-map)
+ (substitute-key-definition [f36] [C-S-f4] function-key-map)
+ (substitute-key-definition [f37] [C-S-f5] function-key-map)
+ (substitute-key-definition [f38] [C-S-f6] function-key-map)
+ (substitute-key-definition [f39] [C-S-f7] function-key-map)
+ (substitute-key-definition [f40] [C-S-f8] function-key-map)
+ (substitute-key-definition [f41] [C-S-f9] function-key-map)
+ (substitute-key-definition [f42] [C-S-f10] function-key-map)
+
+ ;; Use inheritance to let the main keymap override those defaults.
+ ;; This way we don't override terminfo-derived settings or settings
+ ;; made in the .emacs file.
+ (let ((m (copy-keymap rxvt-function-map)))
+ (set-keymap-parent m (keymap-parent (terminal-local-value 'local-function-key-map nil)))
+ (set-keymap-parent (terminal-local-value 'local-function-key-map nil) m))
+
+ ;; Initialize colors and background mode.
+ (rxvt-register-default-colors)
+ (rxvt-set-background-mode)
+ ;; This recomputes all the default faces given the colors we've just set up.
+ (tty-set-up-initial-frame-faces))
;; Set up colors, for those versions of rxvt that support it.
(defvar rxvt-standard-colors
@@ -176,11 +245,5 @@ for the currently selected frame."
(setq default-frame-background-mode 'dark)))
(frame-set-background-mode (selected-frame))))
-;; Do it!
-(rxvt-register-default-colors)
-(rxvt-set-background-mode)
-;; This recomputes all the default faces given the colors we've just set up.
-(tty-set-up-initial-frame-faces)
-
;;; arch-tag: 20cf2fb6-6318-4bab-9dbf-1d15048f2257
;;; rxvt.el ends here
diff --git a/lisp/term/sun-mouse.el b/lisp/term/sun-mouse.el
index d0126404a2..a55c890232 100644
--- a/lisp/term/sun-mouse.el
+++ b/lisp/term/sun-mouse.el
@@ -1,6 +1,6 @@
;;; sun-mouse.el --- mouse handling for Sun windows
-;; Copyright (C) 1987 Free Software Foundation, Inc.
+;; Copyright (C) 1987, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Jeff Peck
;; Maintainer: FSF
@@ -58,6 +58,11 @@ Setting to nil limits the scrollbar to the edge or vertical dividing bar.")
"Returns a new mousemap."
(cons 'mousemap nil))
+;;; initialize mouse maps
+(defvar current-global-mousemap (make-mousemap))
+(defvar current-local-mousemap nil)
+(make-variable-buffer-local 'current-local-mousemap)
+
(defun copy-mousemap (mousemap)
"Return a copy of mousemap."
(copy-alist mousemap))
@@ -668,13 +673,6 @@ just close the window, and wait for reopening."
(if stuffstring (send-string-to-terminal stuffstring))
(send-string-to-terminal "\033[2t") ; To close EmacsTool window.
(run-hooks 'suspend-resume-hook))
-;;;
-;;; initialize mouse maps
-;;;
-
-(make-variable-buffer-local 'current-local-mousemap)
-(setq-default current-local-mousemap nil)
-(defvar current-global-mousemap (make-mousemap))
(provide 'sun-mouse)
(provide 'term/sun-mouse) ; have to (require 'term/sun-mouse)
diff --git a/lisp/term/sun.el b/lisp/term/sun.el
index 1701847551..38134d2cd4 100644
--- a/lisp/term/sun.el
+++ b/lisp/term/sun.el
@@ -1,6 +1,7 @@
;;; sun.el --- keybinding for standard default sunterm keys
-;; Copyright (C) 1987, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1987, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Jeff Peck <peck@sun.com>
;; Keywords: terminals
@@ -93,58 +94,6 @@
;;
(defvar sun-raw-prefix (make-sparse-keymap))
-(define-key (terminal-local-value 'local-function-key-map nil) "\e[" sun-raw-prefix)
-
-(define-key sun-raw-prefix "210z" [r3])
-(define-key sun-raw-prefix "213z" [r6])
-(define-key sun-raw-prefix "214z" [r7])
-(define-key sun-raw-prefix "216z" [r9])
-(define-key sun-raw-prefix "218z" [r11])
-(define-key sun-raw-prefix "220z" [r13])
-(define-key sun-raw-prefix "222z" [r15])
-(define-key sun-raw-prefix "193z" [redo])
-(define-key sun-raw-prefix "194z" [props])
-(define-key sun-raw-prefix "195z" [undo])
-;; (define-key sun-raw-prefix "196z" 'ignore) ; Expose-down
-;; (define-key sun-raw-prefix "197z" [put])
-;; (define-key sun-raw-prefix "198z" 'ignore) ; Open-down
-;; (define-key sun-raw-prefix "199z" [get])
-(define-key sun-raw-prefix "200z" [find])
-;; (define-key sun-raw-prefix "201z" 'kill-region-and-unmark) ; Delete
-(define-key sun-raw-prefix "224z" [f1])
-(define-key sun-raw-prefix "225z" [f2])
-(define-key sun-raw-prefix "226z" [f3])
-(define-key sun-raw-prefix "227z" [f4])
-(define-key sun-raw-prefix "228z" [f5])
-(define-key sun-raw-prefix "229z" [f6])
-(define-key sun-raw-prefix "230z" [f7])
-(define-key sun-raw-prefix "231z" [f8])
-(define-key sun-raw-prefix "232z" [f9])
-(define-key sun-raw-prefix "233z" [f10])
-(define-key sun-raw-prefix "234z" [f11])
-(define-key sun-raw-prefix "235z" [f12])
-(define-key sun-raw-prefix "A" [up]) ; R8
-(define-key sun-raw-prefix "B" [down]) ; R14
-(define-key sun-raw-prefix "C" [right]) ; R12
-(define-key sun-raw-prefix "D" [left]) ; R10
-
-(global-set-key [r3] 'backward-page)
-(global-set-key [r6] 'forward-page)
-(global-set-key [r7] 'beginning-of-buffer)
-(global-set-key [r9] 'scroll-down)
-(global-set-key [r11] 'recenter)
-(global-set-key [r13] 'end-of-buffer)
-(global-set-key [r15] 'scroll-up)
-(global-set-key [redo] 'redraw-display) ;FIXME: collides with default.
-(global-set-key [props] 'list-buffers)
-(global-set-key [put] 'sun-select-region)
-(global-set-key [get] 'sun-yank-selection)
-(global-set-key [find] 'exchange-point-and-mark)
-(global-set-key [f3] 'scroll-down-in-place)
-(global-set-key [f4] 'scroll-up-in-place)
-(global-set-key [f6] 'shrink-window)
-(global-set-key [f7] 'enlarge-window)
-
;; Since .emacs gets loaded before this file, a hook is supplied
;; for you to put your own bindings in.
@@ -152,13 +101,6 @@
(defvar sun-raw-prefix-hooks nil
"List of forms to evaluate after setting sun-raw-prefix.")
-(when sun-raw-prefix-hooks
- (message "sun-raw-prefix-hooks is obsolete! Use term-setup-hook instead!")
- (let ((hooks sun-raw-prefix-hooks))
- (while hooks
- (eval (car hooks))
- (setq hooks (cdr hooks)))))
-
;;; This section adds definitions for the emacstool users
;; emacstool event filter converts function keys to C-x*{c}{lrt}
@@ -188,44 +130,6 @@
(defvar suntool-map (make-sparse-keymap)
"*Keymap for Emacstool bindings.")
-(define-key suntool-map "gr" 'beginning-of-buffer) ; r7
-(define-key suntool-map "iR" 'backward-page) ; R9
-(define-key suntool-map "ir" 'scroll-down) ; r9
-(define-key suntool-map "kr" 'recenter) ; r11
-(define-key suntool-map "mr" 'end-of-buffer) ; r13
-(define-key suntool-map "oR" 'forward-page) ; R15
-(define-key suntool-map "or" 'scroll-up) ; r15
-(define-key suntool-map "b\M-L" 'rerun-prev-command) ; M-AGAIN
-(define-key suntool-map "b\M-l" 'prev-complex-command) ; M-Again
-(define-key suntool-map "bl" 'redraw-display) ; Again
-(define-key suntool-map "cl" 'list-buffers) ; Props
-(define-key suntool-map "dl" 'undo) ; Undo
-(define-key suntool-map "el" 'ignore) ; Expose-Open
-(define-key suntool-map "fl" 'sun-select-region) ; Put
-(define-key suntool-map "f," 'copy-region-as-kill) ; C-Put
-(define-key suntool-map "gl" 'ignore) ; Open-Open
-(define-key suntool-map "hl" 'sun-yank-selection) ; Get
-(define-key suntool-map "h," 'yank) ; C-Get
-(define-key suntool-map "il" 'research-forward) ; Find
-(define-key suntool-map "i," 're-search-forward) ; C-Find
-(define-key suntool-map "i\M-l" 'research-backward) ; M-Find
-(define-key suntool-map "i\M-," 're-search-backward) ; C-M-Find
-
-(define-key suntool-map "jL" 'yank) ; DELETE
-(define-key suntool-map "jl" 'kill-region-and-unmark) ; Delete
-(define-key suntool-map "j\M-l" 'exchange-point-and-mark); M-Delete
-(define-key suntool-map "j,"
- (lambda () (interactive) (pop-mark))) ; C-Delete
-
-(define-key suntool-map "fT" 'shrink-window-horizontally) ; T6
-(define-key suntool-map "gT" 'enlarge-window-horizontally) ; T7
-(define-key suntool-map "ft" 'shrink-window) ; t6
-(define-key suntool-map "gt" 'enlarge-window) ; t7
-(define-key suntool-map "cT" (lambda (n) (interactive "p") (scroll-down n)))
-(define-key suntool-map "dT" (lambda (n) (interactive "p") (scroll-up n)))
-(define-key suntool-map "ct" 'scroll-down-in-place) ; t3
-(define-key suntool-map "dt" 'scroll-up-in-place) ; t4
-(define-key ctl-x-map "*" suntool-map)
;; Since .emacs gets loaded before this file, a hook is supplied
;; for you to put your own bindings in.
@@ -233,13 +137,6 @@
(defvar suntool-map-hooks nil
"List of forms to evaluate after setting suntool-map.")
-(when suntool-map-hooks
- (message "suntool-map-hooks is obsolete! Use term-setup-hook instead!")
- (let ((hooks suntool-map-hooks))
- (while hooks
- (eval (car hooks))
- (setq hooks (cdr hooks)))))
-
;;
;; If running under emacstool, arrange to call suspend-emacstool
;; instead of suspend-emacs.
@@ -251,6 +148,115 @@
(autoload 'sun-mouse-handler "sun-mouse"
"Sun Emacstool handler for mouse blips (not loaded)." t)
+(defun terminal-init-sun ()
+ "Terminal initialization function for sun."
+ (define-key (terminal-local-value 'local-function-key-map nil) "\e[" sun-raw-prefix)
+
+ (define-key sun-raw-prefix "210z" [r3])
+ (define-key sun-raw-prefix "213z" [r6])
+ (define-key sun-raw-prefix "214z" [r7])
+ (define-key sun-raw-prefix "216z" [r9])
+ (define-key sun-raw-prefix "218z" [r11])
+ (define-key sun-raw-prefix "220z" [r13])
+ (define-key sun-raw-prefix "222z" [r15])
+ (define-key sun-raw-prefix "193z" [redo])
+ (define-key sun-raw-prefix "194z" [props])
+ (define-key sun-raw-prefix "195z" [undo])
+ ;; (define-key sun-raw-prefix "196z" 'ignore) ; Expose-down
+ ;; (define-key sun-raw-prefix "197z" [put])
+ ;; (define-key sun-raw-prefix "198z" 'ignore) ; Open-down
+ ;; (define-key sun-raw-prefix "199z" [get])
+ (define-key sun-raw-prefix "200z" [find])
+ ;; (define-key sun-raw-prefix "201z" 'kill-region-and-unmark) ; Delete
+ (define-key sun-raw-prefix "224z" [f1])
+ (define-key sun-raw-prefix "225z" [f2])
+ (define-key sun-raw-prefix "226z" [f3])
+ (define-key sun-raw-prefix "227z" [f4])
+ (define-key sun-raw-prefix "228z" [f5])
+ (define-key sun-raw-prefix "229z" [f6])
+ (define-key sun-raw-prefix "230z" [f7])
+ (define-key sun-raw-prefix "231z" [f8])
+ (define-key sun-raw-prefix "232z" [f9])
+ (define-key sun-raw-prefix "233z" [f10])
+ (define-key sun-raw-prefix "234z" [f11])
+ (define-key sun-raw-prefix "235z" [f12])
+ (define-key sun-raw-prefix "A" [up]) ; R8
+ (define-key sun-raw-prefix "B" [down]) ; R14
+ (define-key sun-raw-prefix "C" [right]) ; R12
+ (define-key sun-raw-prefix "D" [left]) ; R10
+
+ (global-set-key [r3] 'backward-page)
+ (global-set-key [r6] 'forward-page)
+ (global-set-key [r7] 'beginning-of-buffer)
+ (global-set-key [r9] 'scroll-down)
+ (global-set-key [r11] 'recenter)
+ (global-set-key [r13] 'end-of-buffer)
+ (global-set-key [r15] 'scroll-up)
+ (global-set-key [redo] 'redraw-display) ;FIXME: collides with default.
+ (global-set-key [props] 'list-buffers)
+ (global-set-key [put] 'sun-select-region)
+ (global-set-key [get] 'sun-yank-selection)
+ (global-set-key [find] 'exchange-point-and-mark)
+ (global-set-key [f3] 'scroll-down-in-place)
+ (global-set-key [f4] 'scroll-up-in-place)
+ (global-set-key [f6] 'shrink-window)
+ (global-set-key [f7] 'enlarge-window)
+
+ (when sun-raw-prefix-hooks
+ (message "sun-raw-prefix-hooks is obsolete! Use term-setup-hook instead!")
+ (let ((hooks sun-raw-prefix-hooks))
+ (while hooks
+ (eval (car hooks))
+ (setq hooks (cdr hooks)))))
+
+ (define-key suntool-map "gr" 'beginning-of-buffer) ; r7
+ (define-key suntool-map "iR" 'backward-page) ; R9
+ (define-key suntool-map "ir" 'scroll-down) ; r9
+ (define-key suntool-map "kr" 'recenter) ; r11
+ (define-key suntool-map "mr" 'end-of-buffer) ; r13
+ (define-key suntool-map "oR" 'forward-page) ; R15
+ (define-key suntool-map "or" 'scroll-up) ; r15
+ (define-key suntool-map "b\M-L" 'rerun-prev-command) ; M-AGAIN
+ (define-key suntool-map "b\M-l" 'prev-complex-command) ; M-Again
+ (define-key suntool-map "bl" 'redraw-display) ; Again
+ (define-key suntool-map "cl" 'list-buffers) ; Props
+ (define-key suntool-map "dl" 'undo) ; Undo
+ (define-key suntool-map "el" 'ignore) ; Expose-Open
+ (define-key suntool-map "fl" 'sun-select-region) ; Put
+ (define-key suntool-map "f," 'copy-region-as-kill) ; C-Put
+ (define-key suntool-map "gl" 'ignore) ; Open-Open
+ (define-key suntool-map "hl" 'sun-yank-selection) ; Get
+ (define-key suntool-map "h," 'yank) ; C-Get
+ (define-key suntool-map "il" 'research-forward) ; Find
+ (define-key suntool-map "i," 're-search-forward) ; C-Find
+ (define-key suntool-map "i\M-l" 'research-backward) ; M-Find
+ (define-key suntool-map "i\M-," 're-search-backward) ; C-M-Find
+
+ (define-key suntool-map "jL" 'yank) ; DELETE
+ (define-key suntool-map "jl" 'kill-region-and-unmark) ; Delete
+ (define-key suntool-map "j\M-l" 'exchange-point-and-mark) ; M-Delete
+ (define-key suntool-map "j,"
+ (lambda () (interactive) (pop-mark))) ; C-Delete
+
+ (define-key suntool-map "fT" 'shrink-window-horizontally) ; T6
+ (define-key suntool-map "gT" 'enlarge-window-horizontally) ; T7
+ (define-key suntool-map "ft" 'shrink-window) ; t6
+ (define-key suntool-map "gt" 'enlarge-window) ; t7
+ (define-key suntool-map "cT" (lambda (n) (interactive "p") (scroll-down n)))
+ (define-key suntool-map "dT" (lambda (n) (interactive "p") (scroll-up n)))
+ (define-key suntool-map "ct" 'scroll-down-in-place) ; t3
+ (define-key suntool-map "dt" 'scroll-up-in-place) ; t4
+ (define-key ctl-x-map "*" suntool-map)
+
+ (when suntool-map-hooks
+ (message "suntool-map-hooks is obsolete! Use term-setup-hook instead!")
+ (let ((hooks suntool-map-hooks))
+ (while hooks
+ (eval (car hooks))
+ (setq hooks (cdr hooks)))))
+
+ (define-key ctl-x-map "\C-@" 'sun-mouse-once))
+
(defun emacstool-init ()
"Set up Emacstool window, if you know you are in an emacstool."
;; Make sure sun-mouse and sun-fns are loaded.
@@ -272,7 +278,6 @@
(interactive)
(emacstool-init)
(sun-mouse-handler)) ; Now, execute this mouse blip.
-(define-key ctl-x-map "\C-@" 'sun-mouse-once)
;;; arch-tag: db761d47-fd7d-42b4-aae1-04fa116b6ba6
;;; sun.el ends here
diff --git a/lisp/term/sup-mouse.el b/lisp/term/sup-mouse.el
index cf4de57587..54da5b3450 100644
--- a/lisp/term/sup-mouse.el
+++ b/lisp/term/sup-mouse.el
@@ -1,6 +1,7 @@
;;; sup-mouse.el --- supdup mouse support for lisp machines
-;; Copyright (C) Free Software Foundation 1985, 1986
+;; Copyright (C) 1985, 1986, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Wolfgang Rupprecht
;; Maintainer: FSF
diff --git a/lisp/term/tty-colors.el b/lisp/term/tty-colors.el
index 9a5eb5aa83..6fcf5d3edb 100644
--- a/lisp/term/tty-colors.el
+++ b/lisp/term/tty-colors.el
@@ -1,6 +1,7 @@
;;; tty-colors.el --- color support for character terminals
-;; Copyright (C) 1999, 2000, 2001, 2002, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Eli Zaretskii
;; Maintainer: FSF
@@ -61,6 +62,8 @@
;;; Code:
+(defvar msdos-color-values)
+
;; The following list is taken from rgb.txt distributed with X.
;;
;; WARNING: Some colors, such as "lightred", do not appear in this
diff --git a/lisp/term/tvi970.el b/lisp/term/tvi970.el
index 30bc6184d7..8d8ef51c4a 100644
--- a/lisp/term/tvi970.el
+++ b/lisp/term/tvi970.el
@@ -3,7 +3,7 @@
;; Author: Jim Blandy <jimb@occs.cs.oberlin.edu>, January 1992
;; Keywords: terminals
-;; Copyright (C) 1992 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
@@ -28,76 +28,80 @@
;;; Code:
-(or (lookup-key (terminal-local-value 'local-function-key-map nil) "\e[")
- (define-key (terminal-local-value 'local-function-key-map nil) "\e[" (make-keymap)))
-;; (or (lookup-key (terminal-local-value 'local-function-key-map nil) "\eO")
-;; (define-key (terminal-local-value 'local-function-key-map nil) "\eO" (make-keymap)))
-
-;; Miscellaneous keys
-(mapcar (function (lambda (key-binding)
- (define-key (terminal-local-value 'local-function-key-map nil)
- (car key-binding) (nth 1 key-binding))))
- '(
- ;; These are set up by termcap or terminfo
- ;; ("\eOP" [kp-f1])
- ;; ("\eOQ" [kp-f2])
- ;; ("\eOR" [kp-f3])
- ;; ("\eOS" [kp-f4])
-
- ;; These might br set by terminfo
- ("\e[H" [home])
- ("\e[Z" [backtab])
- ("\e[i" [print])
- ("\e[@" [insert])
- ("\e[L" [insertline])
- ("\e[M" [deleteline])
- ("\e[U" [next]) ;; actually the `page' key
-
- ;; These won't be set up by either
- ("\eOm" [kp-subtract])
- ("\eOl" [kp-separator])
- ("\eOn" [kp-decimal])
- ("\eOM" [kp-enter])
-
- ;; These won't be set up by either either
- ("\e[K" [key_eol]) ;; Not an X keysym
- ("\e[J" [key_eos]) ;; Not an X keysym
- ("\e[2J" [key_clear]) ;; Not an X keysym
- ("\e[P" [key_dc]) ;; Not an X keysym
- ("\e[g" [S-tab]) ;; Not an X keysym
- ("\e[2N" [clearentry]) ;; Not an X keysym
- ("\e[2K" [S-clearentry]) ;; Not an X keysym
- ("\e[E" [?\C-j]) ;; Not an X keysym
- ("\e[g" [S-backtab]) ;; Not an X keysym
- ("\e[?1i" [key_sprint]) ;; Not an X keysym
- ("\e[4h" [key_sic]) ;; Not an X keysym
- ("\e[4l" [S-delete]) ;; Not an X keysym
- ("\e[Q" [S-insertline]) ;; Not an X keysym
- ("\e[1Q" [key_sdl]) ;; Not an X keysym
- ("\e[19l" [key_seol]) ;; Not an X keysym
- ("\e[19h" [S-erasepage]) ;; Not an X keysym
- ("\e[V" [S-page]) ;; Not an X keysym
- ("\eS" [send]) ;; Not an X keysym
- ("\e5" [S-send]) ;; Not an X keysym
- ))
-
-;; The numeric keypad keys.
-(let ((i 0))
- (while (< i 10)
- (define-key (terminal-local-value 'local-function-key-map nil)
- (format "\eO%c" (+ i ?p))
- (vector (intern (format "kp-%d" i))))
- (setq i (1+ i))))
-;; The numbered function keys.
-(let ((i 0))
- (while (< i 16)
- (define-key (terminal-local-value 'local-function-key-map nil)
- (format "\e?%c" (+ i ?a))
- (vector (intern (format "f%d" (1+ i)))))
- (define-key (terminal-local-value 'local-function-key-map nil)
- (format "\e?%c" (+ i ?A))
- (vector (intern (format "S-f%d" (1+ i)))))
- (setq i (1+ i))))
+(defun terminal-init-tvi970 ()
+ "Terminal initialization function for tvi970."
+ (or (lookup-key (terminal-local-value 'local-function-key-map nil) "\e[")
+ (define-key (terminal-local-value 'local-function-key-map nil) "\e[" (make-keymap)))
+ ;; (or (lookup-key (terminal-local-value 'local-function-key-map nil) "\eO")
+ ;; (define-key (terminal-local-value 'local-function-key-map nil) "\eO" (make-keymap)))
+
+ ;; Miscellaneous keys
+ (mapcar (function (lambda (key-binding)
+ (define-key (terminal-local-value 'local-function-key-map nil)
+ (car key-binding) (nth 1 key-binding))))
+ '(
+ ;; These are set up by termcap or terminfo
+ ;; ("\eOP" [kp-f1])
+ ;; ("\eOQ" [kp-f2])
+ ;; ("\eOR" [kp-f3])
+ ;; ("\eOS" [kp-f4])
+
+ ;; These might br set by terminfo
+ ("\e[H" [home])
+ ("\e[Z" [backtab])
+ ("\e[i" [print])
+ ("\e[@" [insert])
+ ("\e[L" [insertline])
+ ("\e[M" [deleteline])
+ ("\e[U" [next]) ;; actually the `page' key
+
+ ;; These won't be set up by either
+ ("\eOm" [kp-subtract])
+ ("\eOl" [kp-separator])
+ ("\eOn" [kp-decimal])
+ ("\eOM" [kp-enter])
+
+ ;; These won't be set up by either either
+ ("\e[K" [key_eol]) ;; Not an X keysym
+ ("\e[J" [key_eos]) ;; Not an X keysym
+ ("\e[2J" [key_clear]) ;; Not an X keysym
+ ("\e[P" [key_dc]) ;; Not an X keysym
+ ("\e[g" [S-tab]) ;; Not an X keysym
+ ("\e[2N" [clearentry]) ;; Not an X keysym
+ ("\e[2K" [S-clearentry]) ;; Not an X keysym
+ ("\e[E" [?\C-j]) ;; Not an X keysym
+ ("\e[g" [S-backtab]) ;; Not an X keysym
+ ("\e[?1i" [key_sprint]) ;; Not an X keysym
+ ("\e[4h" [key_sic]) ;; Not an X keysym
+ ("\e[4l" [S-delete]) ;; Not an X keysym
+ ("\e[Q" [S-insertline]) ;; Not an X keysym
+ ("\e[1Q" [key_sdl]) ;; Not an X keysym
+ ("\e[19l" [key_seol]) ;; Not an X keysym
+ ("\e[19h" [S-erasepage]) ;; Not an X keysym
+ ("\e[V" [S-page]) ;; Not an X keysym
+ ("\eS" [send]) ;; Not an X keysym
+ ("\e5" [S-send]) ;; Not an X keysym
+ ))
+
+ ;; The numeric keypad keys.
+ (let ((i 0))
+ (while (< i 10)
+ (define-key (terminal-local-value 'local-function-key-map nil)
+ (format "\eO%c" (+ i ?p))
+ (vector (intern (format "kp-%d" i))))
+ (setq i (1+ i))))
+ ;; The numbered function keys.
+ (let ((i 0))
+ (while (< i 16)
+ (define-key (terminal-local-value 'local-function-key-map nil)
+ (format "\e?%c" (+ i ?a))
+ (vector (intern (format "f%d" (1+ i)))))
+ (define-key (terminal-local-value 'local-function-key-map nil)
+ (format "\e?%c" (+ i ?A))
+ (vector (intern (format "S-f%d" (1+ i)))))
+ (setq i (1+ i))))
+
+ (tvi970-set-keypad-mode 1))
;;; Should keypad numbers send ordinary digits or distinct escape sequences?
@@ -121,7 +125,5 @@ With a negative argument, select numeric keypad mode."
(> (prefix-numeric-value arg) 0)))
(send-string-to-terminal (if tvi970-keypad-numeric "\e=" "\e>")))
-(tvi970-set-keypad-mode 1)
-
;;; arch-tag: c1334cf0-1462-41c3-a963-c077d175f8f0
;;; tvi970.el ends here
diff --git a/lisp/term/vt100.el b/lisp/term/vt100.el
index dfe011c0f6..9822bd6e5a 100644
--- a/lisp/term/vt100.el
+++ b/lisp/term/vt100.el
@@ -1,6 +1,7 @@
;;; vt100.el --- define VT100 function key sequences in function-key-map
-;; Copyright (C) 1989, 1993 Free Software Foundation, Inc.
+;; Copyright (C) 1989, 1993, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: FSF
;; Keywords: terminals
@@ -36,7 +37,10 @@
;;; Code:
;; Set up function-key-map entries that termcap and terminfo don't know.
-(load "term/lk201" nil t)
+
+(defun terminal-init-vt100 ()
+ "Terminal initialization function for vt100."
+ (terminal-init-lk201))
;;; Controlling the screen width.
(defvar vt100-wide-mode (= (frame-width) 132)
diff --git a/lisp/term/vt102.el b/lisp/term/vt102.el
index 887f63837e..ba4ac80c92 100644
--- a/lisp/term/vt102.el
+++ b/lisp/term/vt102.el
@@ -1,6 +1,8 @@
;; -*- no-byte-compile: t -*-
-(load "term/vt100" nil t)
+(defun terminal-init-vt102 ()
+ "Terminal initialization function for vt102."
+ (terminal-init-vt100))
;;; arch-tag: 6e839cfc-125a-4574-82f1-c23a51f7c50f
;;; vt102.el ends here
diff --git a/lisp/term/vt125.el b/lisp/term/vt125.el
index 458e0dafc2..369dc5f28b 100644
--- a/lisp/term/vt125.el
+++ b/lisp/term/vt125.el
@@ -1,6 +1,8 @@
;; -*- no-byte-compile: t -*-
-(load "term/vt100" nil t)
+(defun terminal-init-vt125 ()
+ "Terminal initialization function for vt125."
+ (terminal-init-vt100))
;;; arch-tag: 1d92d70f-dd55-4a1d-9088-e215a4883801
;;; vt125.el ends here
diff --git a/lisp/term/vt200.el b/lisp/term/vt200.el
index e33b4f2905..1d62e34759 100644
--- a/lisp/term/vt200.el
+++ b/lisp/term/vt200.el
@@ -1,10 +1,11 @@
;; -*- no-byte-compile: t -*-
;; For our purposes we can treat the vt200 and vt100 almost alike.
;; Most differences are handled by the termcap entry.
-(load "term/vt100" nil t)
-
-;; Make F11 an escape key.
-(define-key (terminal-local-value 'local-function-key-map nil) "\e[23~" [?\e])
+(defun terminal-init-vt200 ()
+ "Terminal initialization function for vt200."
+ (terminal-init-vt100)
+ ;; Make F11 an escape key.
+ (define-key (terminal-local-value 'local-function-key-map nil) "\e[23~" [?\e]))
;;; arch-tag: 0f78f583-9f32-4237-b106-28bcfff21d89
;;; vt200.el ends here
diff --git a/lisp/term/vt201.el b/lisp/term/vt201.el
index bd1f8c3545..c98b98ba8c 100644
--- a/lisp/term/vt201.el
+++ b/lisp/term/vt201.el
@@ -1,10 +1,11 @@
;; -*- no-byte-compile: t -*-
;; For our purposes we can treat the vt200 and vt100 almost alike.
;; Most differences are handled by the termcap entry.
-(load "term/vt100" nil t)
-
-;; Make F11 an escape key.
-(define-key (terminal-local-value 'local-function-key-map nil) "\e[23~" [?\e])
+(defun terminal-init-vt201 ()
+ "Terminal initialization function for vt201."
+ (terminal-init-vt100)
+ ;; Make F11 an escape key.
+ (define-key (terminal-local-value 'local-function-key-map nil) "\e[23~" [?\e]))
;;; arch-tag: a6abb38f-60ea-449e-a9e9-3fb8572c52ae
;;; vt201.el ends here
diff --git a/lisp/term/vt220.el b/lisp/term/vt220.el
index de03b5f749..a2a374692c 100644
--- a/lisp/term/vt220.el
+++ b/lisp/term/vt220.el
@@ -1,10 +1,11 @@
;; -*- no-byte-compile: t -*-
;; For our purposes we can treat the vt200 and vt100 almost alike.
;; Most differences are handled by the termcap entry.
-(load "term/vt100" nil t)
-
-;; Make F11 an escape key.
-(define-key (terminal-local-value 'local-function-key-map nil) "\e[23~" [?\e])
+(defun terminal-init-vt220 ()
+ "Terminal initialization function for vt220."
+ (terminal-init-vt100)
+ ;; Make F11 an escape key.
+ (define-key (terminal-local-value 'local-function-key-map nil) "\e[23~" [?\e]))
;;; arch-tag: 98fc4867-a20d-46a1-a276-d7be31e49871
;;; vt220.el ends here
diff --git a/lisp/term/vt240.el b/lisp/term/vt240.el
index f54b47efa5..808cc07204 100644
--- a/lisp/term/vt240.el
+++ b/lisp/term/vt240.el
@@ -1,10 +1,11 @@
;; -*- no-byte-compile: t -*-
;; For our purposes we can treat the vt200 and vt100 almost alike.
;; Most differences are handled by the termcap entry.
-(load "term/vt100" nil t)
-
-;; Make F11 an escape key.
-(define-key (terminal-local-value 'local-function-key-map nil) "\e[23~" [?\e])
+(defun terminal-init-vt240 ()
+ "Terminal initialization function for vt240."
+ (terminal-init-vt100)
+ ;; Make F11 an escape key.
+ (define-key (terminal-local-value 'local-function-key-map nil) "\e[23~" [?\e]))
;;; arch-tag: d9f88e9c-02dc-49ff-871c-a415f08e4eb7
;;; vt240.el ends here
diff --git a/lisp/term/vt300.el b/lisp/term/vt300.el
index 8af8940b1f..593daf5524 100644
--- a/lisp/term/vt300.el
+++ b/lisp/term/vt300.el
@@ -1,8 +1,9 @@
;; -*- no-byte-compile: t -*-
-(load "term/vt100" nil t)
-
-;; Make F11 an escape key.
-(define-key (terminal-local-value 'local-function-key-map nil) "\e[23~" [?\e])
+(defun terminal-init-vt300 ()
+ "Terminal initialization function for vt300."
+ (terminal-init-vt100)
+ ;; Make F11 an escape key.
+ (define-key (terminal-local-value 'local-function-key-map nil) "\e[23~" [?\e]))
;;; arch-tag: 876831c9-a6f2-444a-b033-706e6fbc149f
;;; vt300.el ends here
diff --git a/lisp/term/vt320.el b/lisp/term/vt320.el
index 38da9f795d..a4d2186080 100644
--- a/lisp/term/vt320.el
+++ b/lisp/term/vt320.el
@@ -1,8 +1,9 @@
;; -*- no-byte-compile: t -*-
-(load "term/vt100" nil t)
-
-;; Make F11 an escape key.
-(define-key (terminal-local-value 'local-function-key-map nil) "\e[23~" [?\e])
+(defun terminal-init-vt320 ()
+ "Terminal initialization function for vt320."
+ (terminal-init-vt100)
+ ;; Make F11 an escape key.
+ (define-key (terminal-local-value 'local-function-key-map nil) "\e[23~" [?\e]))
;;; arch-tag: f9f4c954-0b9e-45f9-b450-a320d32abd9c
;;; vt320.el ends here
diff --git a/lisp/term/vt400.el b/lisp/term/vt400.el
index 1e77851ce5..bb0afeef0b 100644
--- a/lisp/term/vt400.el
+++ b/lisp/term/vt400.el
@@ -1,8 +1,9 @@
;; -*- no-byte-compile: t -*-
-(load "term/vt100" nil t)
-
-;; Make F11 an escape key.
-(define-key (terminal-local-value 'local-function-key-map nil) "\e[23~" [?\e])
+(defun terminal-init-vt400 ()
+ "Terminal initialization function for vt400."
+ (terminal-init-vt100)
+ ;; Make F11 an escape key.
+ (define-key (terminal-local-value 'local-function-key-map nil) "\e[23~" [?\e]))
;;; arch-tag: a70809c5-6b21-42cc-ba20-536683e5e7d5
;;; vt400.el ends here
diff --git a/lisp/term/vt420.el b/lisp/term/vt420.el
index cac216d682..b67b25b7bd 100644
--- a/lisp/term/vt420.el
+++ b/lisp/term/vt420.el
@@ -1,8 +1,9 @@
;; -*- no-byte-compile: t -*-
-(load "term/vt100" nil t)
-
-;; Make F11 an escape key.
-(define-key (terminal-local-value 'local-function-key-map nil) "\e[23~" [?\e])
+(defun terminal-init-vt420
+ "Terminal initialization function for vt420."
+ (terminal-init-vt100)
+ ;; Make F11 an escape key.
+ (define-key (terminal-local-value 'local-function-key-map nil) "\e[23~" [?\e]))
;;; arch-tag: df2f897c-3a12-4b3c-9259-df089f96c160
;;; vt420.el ends here
diff --git a/lisp/term/w32-win.el b/lisp/term/w32-win.el
index 844fc087dc..ffa7d606a9 100644
--- a/lisp/term/w32-win.el
+++ b/lisp/term/w32-win.el
@@ -1,6 +1,7 @@
;;; w32-win.el --- parse switches controlling interface with W32 window system
-;; Copyright (C) 1993, 1994, 2003, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Kevin Gallo
;; Keywords: terminals
@@ -79,6 +80,8 @@
(require 'dnd)
(require 'code-pages)
+(defvar xlfd-regexp-registry-subnum)
+
;; Conditional on new-fontset so bootstrapping works on non-GUI compiles
(if (fboundp 'new-fontset)
(require 'fontset))
@@ -108,8 +111,8 @@ Switch to a buffer editing the last file dropped."
(y (cdr coords)))
(if (and (> x 0) (> y 0))
(set-frame-selected-window nil window))
- (mapcar (lambda (file-name)
- (dnd-handle-one-url window 'private
+ (mapcar (lambda (file-name)
+ (dnd-handle-one-url window 'private
(concat "file:" file-name)))
(car (cdr (cdr event)))))
(raise-frame)))
diff --git a/lisp/term/wyse50.el b/lisp/term/wyse50.el
index b41cd9d10b..9ab9cb0f6e 100644
--- a/lisp/term/wyse50.el
+++ b/lisp/term/wyse50.el
@@ -1,6 +1,7 @@
;;; wyse50.el --- terminal support code for Wyse 50 -*- no-byte-compile: t -*-
-;; Copyright (C) 1989, 1993, 1994 Free Software Foundation, Inc.
+;; Copyright (C) 1989, 1993, 1994, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Daniel Pfeiffer <occitan@esperanto.org>,
;; Jim Blandy <jimb@occs.cs.oberlin.edu>
@@ -37,74 +38,92 @@
;;; Code:
-(define-key (terminal-local-value 'local-function-key-map nil) "\C-a" (make-keymap))
-(mapcar (function (lambda (key-definition)
- (define-key (terminal-local-value 'local-function-key-map nil)
- (car key-definition) (nth 1 key-definition))))
- '(
- ;; These might be set up by termcap and terminfo
- ("\C-k" [up])
- ("\C-j" [down])
- ("\C-l" [right])
- ("\C-h" [left])
- ("\^a@\^m" [f1])
- ("\^aA\^m" [f2])
- ("\^aB\^m" [f3])
- ("\^aC\^m" [f4])
- ("\^aD\^m" [f5])
- ("\^aE\^m" [f6])
- ("\^aF\^m" [f7])
- ("\^aG\^m" [f8])
- ("\^aH\^m" [f9])
-
- ;; These might be set up by terminfo
- ("\eK" [next])
- ("\eT" [clearline])
- ("\^^" [home])
- ("\e\^^" [end])
- ("\eQ" [insert])
- ("\eE" [insertline])
- ("\eR" [deleteline])
- ("\eP" [print])
- ("\er" [replace])
- ("\^aI\^m" [f10])
- ("\^aJ\^m" [f11])
- ("\^aK\^m" [f12])
- ("\^aL\^m" [f13])
- ("\^aM\^m" [f14])
- ("\^aN\^m" [f15])
- ("\^aO\^m" [f16])
- ("\^a`\^m" [f17])
- ("\^aa\^m" [f18])
- ("\^ab\^m" [f19])
- ("\^ac\^m" [f20])
- ("\^ad\^m" [f21])
- ("\^ae\^m" [f22])
- ("\^af\^m" [f23])
- ("\^ag\^m" [f24])
- ("\^ah\^m" [f25])
- ("\^ai\^m" [f26])
- ("\^aj\^m" [f27])
- ("\^ak\^m" [f28])
- ("\^al\^m" [f29])
- ("\^am\^m" [f30])
- ("\^an\^m" [f31])
- ("\^ao\^m" [f32])
-
- ;; Terminfo may know about these, but X won't
- ("\eI" [key-stab]) ;; Not an X keysym
- ("\eJ" [key-snext]) ;; Not an X keysym
- ("\eY" [key-clear]) ;; Not an X keysym
-
- ;; These are totally strange :-)
- ("\eW" [?\C-?]) ;; Not an X keysym
- ("\^a\^k\^m" [funct-up]) ;; Not an X keysym
- ("\^a\^j\^m" [funct-down]) ;; Not an X keysym
- ("\^a\^l\^m" [funct-right]) ;; Not an X keysym
- ("\^a\^h\^m" [funct-left]) ;; Not an X keysym
- ("\^a\^m\^m" [funct-return]) ;; Not an X keysym
- ("\^a\^i\^m" [funct-tab]) ;; Not an X keysym
-))
+(defun terminal-init-wyse50 ()
+ "Terminal initialization function for wyse50."
+ (define-key (terminal-local-value 'local-function-key-map nil) "\C-a" (make-keymap))
+ (mapcar (function (lambda (key-definition)
+ (define-key (terminal-local-value 'local-function-key-map nil)
+ (car key-definition) (nth 1 key-definition))))
+ '(
+ ;; These might be set up by termcap and terminfo
+ ("\C-k" [up])
+ ("\C-j" [down])
+ ("\C-l" [right])
+ ("\C-h" [left])
+ ("\^a@\^m" [f1])
+ ("\^aA\^m" [f2])
+ ("\^aB\^m" [f3])
+ ("\^aC\^m" [f4])
+ ("\^aD\^m" [f5])
+ ("\^aE\^m" [f6])
+ ("\^aF\^m" [f7])
+ ("\^aG\^m" [f8])
+ ("\^aH\^m" [f9])
+
+ ;; These might be set up by terminfo
+ ("\eK" [next])
+ ("\eT" [clearline])
+ ("\^^" [home])
+ ("\e\^^" [end])
+ ("\eQ" [insert])
+ ("\eE" [insertline])
+ ("\eR" [deleteline])
+ ("\eP" [print])
+ ("\er" [replace])
+ ("\^aI\^m" [f10])
+ ("\^aJ\^m" [f11])
+ ("\^aK\^m" [f12])
+ ("\^aL\^m" [f13])
+ ("\^aM\^m" [f14])
+ ("\^aN\^m" [f15])
+ ("\^aO\^m" [f16])
+ ("\^a`\^m" [f17])
+ ("\^aa\^m" [f18])
+ ("\^ab\^m" [f19])
+ ("\^ac\^m" [f20])
+ ("\^ad\^m" [f21])
+ ("\^ae\^m" [f22])
+ ("\^af\^m" [f23])
+ ("\^ag\^m" [f24])
+ ("\^ah\^m" [f25])
+ ("\^ai\^m" [f26])
+ ("\^aj\^m" [f27])
+ ("\^ak\^m" [f28])
+ ("\^al\^m" [f29])
+ ("\^am\^m" [f30])
+ ("\^an\^m" [f31])
+ ("\^ao\^m" [f32])
+
+ ;; Terminfo may know about these, but X won't
+ ("\eI" [key-stab]) ;; Not an X keysym
+ ("\eJ" [key-snext]) ;; Not an X keysym
+ ("\eY" [key-clear]) ;; Not an X keysym
+
+ ;; These are totally strange :-)
+ ("\eW" [?\C-?]) ;; Not an X keysym
+ ("\^a\^k\^m" [funct-up]) ;; Not an X keysym
+ ("\^a\^j\^m" [funct-down]) ;; Not an X keysym
+ ("\^a\^l\^m" [funct-right]) ;; Not an X keysym
+ ("\^a\^h\^m" [funct-left]) ;; Not an X keysym
+ ("\^a\^m\^m" [funct-return]) ;; Not an X keysym
+ ("\^a\^i\^m" [funct-tab]) ;; Not an X keysym
+ ))
+
+ ;; Miscellaneous hacks
+
+ ;; This is an ugly hack for a nasty problem:
+ ;; Wyse 50 takes one character cell to store video attributes (which seems to
+ ;; explain width 79 rather than 80, column 1 is not used!!!).
+ ;; On killing (C-x C-c) the end inverse code (on column 1 of line 24)
+ ;; of the mode line is overwritten AFTER all the y-or-n questions.
+ ;; This causes the attribute to remain in effect until the mode line has
+ ;; scrolled of the screen. Suspending (C-z) does not cause this problem.
+ ;; On such terminals, Emacs should sacrifice the first and last character of
+ ;; each mode line, rather than a whole screen column!
+ (add-hook 'kill-emacs-hook
+ (function (lambda () (interactive)
+ (send-string-to-terminal
+ (concat "\ea23R" (1+ (frame-width)) "C\eG0"))))))
(defun enable-arrow-keys ()
"To be called by term-setup-hook. Overrides 6 Emacs standard keys
@@ -131,22 +150,5 @@ M-r M-x move-to-window-line, Funct up-arrow or down-arrow are similar
("\er" nil)))
(fset 'enable-arrow-keys nil))
-
-;;; Miscellaneous hacks
-
-;;; This is an ugly hack for a nasty problem:
-;;; Wyse 50 takes one character cell to store video attributes (which seems to
-;;; explain width 79 rather than 80, column 1 is not used!!!).
-;;; On killing (C-x C-c) the end inverse code (on column 1 of line 24)
-;;; of the mode line is overwritten AFTER all the y-or-n questions.
-;;; This causes the attribute to remain in effect until the mode line has
-;;; scrolled of the screen. Suspending (C-z) does not cause this problem.
-;;; On such terminals, Emacs should sacrifice the first and last character of
-;;; each mode line, rather than a whole screen column!
-(add-hook 'kill-emacs-hook
- (function (lambda () (interactive)
- (send-string-to-terminal
- (concat "\ea23R" (1+ (frame-width)) "C\eG0")))))
-
;;; arch-tag: b6a05d37-eead-4cf6-b997-0f956c68881c
;;; wyse50.el ends here
diff --git a/lisp/term/x-win.el b/lisp/term/x-win.el
index 681bb5e600..efafbafffb 100644
--- a/lisp/term/x-win.el
+++ b/lisp/term/x-win.el
@@ -1,6 +1,7 @@
;;; x-win.el --- parse relevant switches and set up for X -*-coding: iso-2022-7bit;-*-
-;; Copyright (C) 1993, 1994, 2001, 2002, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: FSF
;; Keywords: terminals, i18n
@@ -86,6 +87,10 @@
(require 'server)
(defvar x-invocation-args)
+(defvar x-keysym-table)
+(defvar x-selection-timeout)
+(defvar x-session-id)
+(defvar x-session-previous-id)
(defvar x-command-line-resources nil)
diff --git a/lisp/term/xterm.el b/lisp/term/xterm.el
index eb511201fc..43d95e1dee 100644
--- a/lisp/term/xterm.el
+++ b/lisp/term/xterm.el
@@ -1,6 +1,6 @@
;;; xterm.el --- define function key sequences and standard colors for xterm
-;; Copyright (C) 1995, 2002, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: FSF
;; Keywords: terminals
@@ -31,151 +31,144 @@
(defvar xterm-function-map nil
"Function key map overrides for xterm.")
-;; The terminal intialization C code file might have initialized
-;; function keys F13->F60 from the termcap/terminfo information. On
-;; a PC-style keyboard these keys correspond to
-;; MODIFIER-FUNCTION_KEY, where modifier is S-, C, A-, C-S-. The
-;; code here subsitutes the corresponding defintions in
-;; function-key-map. This substitution is needed because if a key
-;; definition if found in function-key-map, there are no further
-;; lookups in other keymaps.
-(let ((m (terminal-local-value 'local-function-key-map nil)))
- (substitute-key-definition [f13] [S-f1] m)
- (substitute-key-definition [f14] [S-f2] m)
- (substitute-key-definition [f15] [S-f3] m)
- (substitute-key-definition [f16] [S-f4] m)
- (substitute-key-definition [f17] [S-f5] m)
- (substitute-key-definition [f18] [S-f6] m)
- (substitute-key-definition [f19] [S-f7] m)
- (substitute-key-definition [f20] [S-f8] m)
- (substitute-key-definition [f21] [S-f9] m)
- (substitute-key-definition [f22] [S-f10] m)
- (substitute-key-definition [f23] [S-f11] m)
- (substitute-key-definition [f24] [S-f12] m)
-
- (substitute-key-definition [f25] [C-f1] m)
- (substitute-key-definition [f26] [C-f2] m)
- (substitute-key-definition [f27] [C-f3] m)
- (substitute-key-definition [f28] [C-f4] m)
- (substitute-key-definition [f29] [C-f5] m)
- (substitute-key-definition [f30] [C-f6] m)
- (substitute-key-definition [f31] [C-f7] m)
- (substitute-key-definition [f32] [C-f8] m)
- (substitute-key-definition [f33] [C-f9] m)
- (substitute-key-definition [f34] [C-f10] m)
- (substitute-key-definition [f35] [C-f11] m)
- (substitute-key-definition [f36] [C-f12] m)
-
- (substitute-key-definition [f37] [C-S-f1] m)
- (substitute-key-definition [f38] [C-S-f2] m)
- (substitute-key-definition [f39] [C-S-f3] m)
- (substitute-key-definition [f40] [C-S-f4] m)
- (substitute-key-definition [f41] [C-S-f5] m)
- (substitute-key-definition [f42] [C-S-f6] m)
- (substitute-key-definition [f43] [C-S-f7] m)
- (substitute-key-definition [f44] [C-S-f8] m)
- (substitute-key-definition [f45] [C-S-f9] m)
- (substitute-key-definition [f46] [C-S-f10] m)
- (substitute-key-definition [f47] [C-S-f11] m)
- (substitute-key-definition [f48] [C-S-f12] m)
-
- (substitute-key-definition [f49] [A-f1] m)
- (substitute-key-definition [f50] [A-f2] m)
- (substitute-key-definition [f51] [A-f3] m)
- (substitute-key-definition [f52] [A-f4] m)
- (substitute-key-definition [f53] [A-f5] m)
- (substitute-key-definition [f54] [A-f6] m)
- (substitute-key-definition [f55] [A-f7] m)
- (substitute-key-definition [f56] [A-f8] m)
- (substitute-key-definition [f57] [A-f9] m)
- (substitute-key-definition [f58] [A-f10] m)
- (substitute-key-definition [f59] [A-f11] m)
- (substitute-key-definition [f60] [A-f12] m))
-
;; Make reloads faster.
(unless xterm-function-map
(setq xterm-function-map (make-sparse-keymap))
-
+ ;; xterm from X.org 6.8.2 uses these key definitions.
+ (define-key map "\eOP" [f1])
+ (define-key map "\eOQ" [f2])
+ (define-key map "\eOR" [f3])
+ (define-key map "\eOS" [f4])
+ (define-key map "\e[15~" [f5])
+ (define-key map "\e[17~" [f6])
+ (define-key map "\e[18~" [f7])
+ (define-key map "\e[19~" [f8])
+ (define-key map "\e[20~" [f9])
+ (define-key map "\e[21~" [f10])
+ (define-key map "\e[23~" [f11])
+ (define-key map "\e[24~" [f12])
+
+ (define-key map "\eO2P" [S-f1])
+ (define-key map "\eO2Q" [S-f2])
+ (define-key map "\eO2R" [S-f3])
+ (define-key map "\eO2S" [S-f4])
+ (define-key map "\e[15;2~" [S-f5])
+ (define-key map "\e[17;2~" [S-f6])
+ (define-key map "\e[18;2~" [S-f7])
+ (define-key map "\e[19;2~" [S-f8])
+ (define-key map "\e[20;2~" [S-f9])
+ (define-key map "\e[21;2~" [S-f10])
+ (define-key map "\e[23;2~" [S-f11])
+ (define-key map "\e[24;2~" [S-f12])
+
+ (define-key map "\eO5P" [C-f1])
+ (define-key map "\eO5Q" [C-f2])
+ (define-key map "\eO5R" [C-f3])
+ (define-key map "\eO5S" [C-f4])
+ (define-key map "\e[15;5~" [C-f5])
+ (define-key map "\e[17;5~" [C-f6])
+ (define-key map "\e[18;5~" [C-f7])
+ (define-key map "\e[19;5~" [C-f8])
+ (define-key map "\e[20;5~" [C-f9])
+ (define-key map "\e[21;5~" [C-f10])
+ (define-key map "\e[23;5~" [C-f11])
+ (define-key map "\e[24;5~" [C-f12])
+
+ (define-key map "\eO6P" [C-S-f1])
+ (define-key map "\eO6Q" [C-S-f2])
+ (define-key map "\eO6R" [C-S-f3])
+ (define-key map "\eO6S" [C-S-f4])
+ (define-key map "\e[15;6~" [C-S-f5])
+ (define-key map "\e[17;6~" [C-S-f6])
+ (define-key map "\e[18;6~" [C-S-f7])
+ (define-key map "\e[19;6~" [C-S-f8])
+ (define-key map "\e[20;6~" [C-S-f9])
+ (define-key map "\e[21;6~" [C-S-f10])
+ (define-key map "\e[23;6~" [C-S-f11])
+ (define-key map "\e[24;6~" [C-S-f12])
+
+ (define-key map "\eO3P" [A-f1])
+ (define-key map "\eO3Q" [A-f2])
+ (define-key map "\eO3R" [A-f3])
+ (define-key map "\eO3S" [A-f4])
+ (define-key map "\e[15;3~" [A-f5])
+ (define-key map "\e[17;3~" [A-f6])
+ (define-key map "\e[18;3~" [A-f7])
+ (define-key map "\e[19;3~" [A-f8])
+ (define-key map "\e[20;3~" [A-f9])
+ (define-key map "\e[21;3~" [A-f10])
+ (define-key map "\e[23;3~" [A-f11])
+ (define-key map "\e[24;3~" [A-f12])
+
+ (define-key map "\eOA" [up])
+ (define-key map "\eOB" [down])
+ (define-key map "\eOC" [right])
+ (define-key map "\eOD" [left])
+ (define-key map "\eOF" [end])
+ (define-key map "\eOH" [home])
+
+ (define-key map "\e[1;2A" [S-up])
+ (define-key map "\e[1;2B" [S-down])
+ (define-key map "\e[1;2C" [S-right])
+ (define-key map "\e[1;2D" [S-left])
+ (define-key map "\e[1;2F" [S-end])
+ (define-key map "\e[1;2H" [S-home])
+
+ (define-key map "\e[1;5A" [C-up])
+ (define-key map "\e[1;5B" [C-down])
+ (define-key map "\e[1;5C" [C-right])
+ (define-key map "\e[1;5D" [C-left])
+ (define-key map "\e[1;5F" [C-end])
+ (define-key map "\e[1;5H" [C-home])
+
+ (define-key map "\e[1;6A" [C-S-up])
+ (define-key map "\e[1;6B" [C-S-down])
+ (define-key map "\e[1;6C" [C-S-right])
+ (define-key map "\e[1;6D" [C-S-left])
+ (define-key map "\e[1;6F" [C-S-end])
+ (define-key map "\e[1;6H" [C-S-home])
+
+ (define-key map "\e[1;3A" [A-up])
+ (define-key map "\e[1;3B" [A-down])
+ (define-key map "\e[1;3C" [A-right])
+ (define-key map "\e[1;3D" [A-left])
+ (define-key map "\e[1;3F" [A-end])
+ (define-key map "\e[1;3H" [A-home])
+
+ (define-key map "\e[2~" [insert])
+ (define-key map "\e[3~" [delete])
+ (define-key map "\e[5~" [prior])
+ (define-key map "\e[6~" [next])
+
+ (define-key map "\e[2;2~" [S-insert])
+ (define-key map "\e[3;2~" [S-delete])
+ (define-key map "\e[5;2~" [S-prior])
+ (define-key map "\e[6;2~" [S-next])
+
+ (define-key map "\e[2;5~" [C-insert])
+ (define-key map "\e[3;5~" [C-delete])
+ (define-key map "\e[5;5~" [C-prior])
+ (define-key map "\e[6;5~" [C-next])
+
+ (define-key map "\e[2;6~" [C-S-insert])
+ (define-key map "\e[3;6~" [C-S-delete])
+ (define-key map "\e[5;6~" [C-S-prior])
+ (define-key map "\e[6;6~" [C-S-next])
+
+ (define-key map "\e[2;3~" [A-insert])
+ (define-key map "\e[3;3~" [A-delete])
+ (define-key map "\e[5;3~" [A-prior])
+ (define-key map "\e[6;3~" [A-next])
+
+ (define-key map "\e[4~" [select])
+ (define-key map "\e[29~" [print])
+
+ ;; Other versions of xterm might emit these.
(define-key xterm-function-map "\e[A" [up])
(define-key xterm-function-map "\e[B" [down])
(define-key xterm-function-map "\e[C" [right])
(define-key xterm-function-map "\e[D" [left])
(define-key xterm-function-map "\e[1~" [home])
- (define-key xterm-function-map "\e[2~" [insert])
- (define-key xterm-function-map "\e[3~" [delete])
- (define-key xterm-function-map "\e[4~" [select])
- (define-key xterm-function-map "\e[5~" [prior])
- (define-key xterm-function-map "\e[6~" [next])
- (define-key xterm-function-map "\e[11~" [f1])
- (define-key xterm-function-map "\e[12~" [f2])
- (define-key xterm-function-map "\e[13~" [f3])
- (define-key xterm-function-map "\e[14~" [f4])
- (define-key xterm-function-map "\e[15~" [f5])
- (define-key xterm-function-map "\e[17~" [f6])
- (define-key xterm-function-map "\e[18~" [f7])
- (define-key xterm-function-map "\e[19~" [f8])
- (define-key xterm-function-map "\e[20~" [f9])
- (define-key xterm-function-map "\e[21~" [f10])
- (define-key xterm-function-map "\e[23~" [f11])
- (define-key xterm-function-map "\e[24~" [f12])
- (define-key xterm-function-map "\e[29~" [print])
-
- (define-key xterm-function-map "\eOP" [f1])
- (define-key xterm-function-map "\eOQ" [f2])
- (define-key xterm-function-map "\eOR" [f3])
- (define-key xterm-function-map "\eOS" [f4])
-
- (define-key xterm-function-map "\eO2P" [S-f1])
- (define-key xterm-function-map "\eO2Q" [S-f2])
- (define-key xterm-function-map "\eO2R" [S-f3])
- (define-key xterm-function-map "\eO2S" [S-f4])
- (define-key xterm-function-map "\e[15;2~" [S-f5])
- (define-key xterm-function-map "\e[17;2~" [S-f6])
- (define-key xterm-function-map "\e[18;2~" [S-f7])
- (define-key xterm-function-map "\e[19;2~" [S-f8])
- (define-key xterm-function-map "\e[20;2~" [S-f9])
- (define-key xterm-function-map "\e[21;2~" [S-f10])
- (define-key xterm-function-map "\e[23;2~" [S-f11])
- (define-key xterm-function-map "\e[24;2~" [S-f12])
-
- (define-key xterm-function-map "\eO5P" [C-f1])
- (define-key xterm-function-map "\eO5Q" [C-f2])
- (define-key xterm-function-map "\eO5R" [C-f3])
- (define-key xterm-function-map "\eO5S" [C-f4])
- (define-key xterm-function-map "\e[15;5~" [C-f5])
- (define-key xterm-function-map "\e[17;5~" [C-f6])
- (define-key xterm-function-map "\e[18;5~" [C-f7])
- (define-key xterm-function-map "\e[19;5~" [C-f8])
- (define-key xterm-function-map "\e[20;5~" [C-f9])
- (define-key xterm-function-map "\e[21;5~" [C-f10])
- (define-key xterm-function-map "\e[23;5~" [C-f11])
- (define-key xterm-function-map "\e[24;5~" [C-f12])
-
- (define-key xterm-function-map "\eO6P" [C-S-f1])
- (define-key xterm-function-map "\eO6Q" [C-S-f2])
- (define-key xterm-function-map "\eO6R" [C-S-f3])
- (define-key xterm-function-map "\eO6S" [C-S-f4])
- (define-key xterm-function-map "\e[15;6~" [C-S-f5])
- (define-key xterm-function-map "\e[17;6~" [C-S-f6])
- (define-key xterm-function-map "\e[18;6~" [C-S-f7])
- (define-key xterm-function-map "\e[19;6~" [C-S-f8])
- (define-key xterm-function-map "\e[20;6~" [C-S-f9])
- (define-key xterm-function-map "\e[21;6~" [C-S-f10])
- (define-key xterm-function-map "\e[23;6~" [C-S-f11])
- (define-key xterm-function-map "\e[24;6~" [C-S-f12])
-
- (define-key xterm-function-map "\eO3P" [A-f1])
- (define-key xterm-function-map "\eO3Q" [A-f2])
- (define-key xterm-function-map "\eO3R" [A-f3])
- (define-key xterm-function-map "\eO3S" [A-f4])
- (define-key xterm-function-map "\e[15;3~" [A-f5])
- (define-key xterm-function-map "\e[17;3~" [A-f6])
- (define-key xterm-function-map "\e[18;3~" [A-f7])
- (define-key xterm-function-map "\e[19;3~" [A-f8])
- (define-key xterm-function-map "\e[20;3~" [A-f9])
- (define-key xterm-function-map "\e[21;3~" [A-f10])
- (define-key xterm-function-map "\e[23;3~" [A-f11])
- (define-key xterm-function-map "\e[24;3~" [A-f12])
(define-key xterm-function-map "\e[1;2A" [S-up])
(define-key xterm-function-map "\e[1;2B" [S-down])
@@ -191,67 +184,94 @@
(define-key xterm-function-map "\e[1;5F" [C-end])
(define-key xterm-function-map "\e[1;5H" [C-home])
- (define-key xterm-function-map "\e[1;6A" [C-S-up])
- (define-key xterm-function-map "\e[1;6B" [C-S-down])
- (define-key xterm-function-map "\e[1;6C" [C-S-right])
- (define-key xterm-function-map "\e[1;6D" [C-S-left])
- (define-key xterm-function-map "\e[1;6F" [C-S-end])
- (define-key xterm-function-map "\e[1;6H" [C-S-home])
-
- (define-key xterm-function-map "\e[1;3A" [A-up])
- (define-key xterm-function-map "\e[1;3B" [A-down])
- (define-key xterm-function-map "\e[1;3C" [A-right])
- (define-key xterm-function-map "\e[1;3D" [A-left])
- (define-key xterm-function-map "\e[1;3F" [A-end])
- (define-key xterm-function-map "\e[1;3H" [A-home])
-
- (define-key xterm-function-map "\e[2;2~" [S-insert])
- (define-key xterm-function-map "\e[3;2~" [S-delete])
- (define-key xterm-function-map "\e[5;2~" [S-prior])
- (define-key xterm-function-map "\e[6;2~" [S-next])
-
- (define-key xterm-function-map "\e[2;5~" [C-insert])
- (define-key xterm-function-map "\e[3;5~" [C-delete])
- (define-key xterm-function-map "\e[5;5~" [C-prior])
- (define-key xterm-function-map "\e[6;5~" [C-next])
-
- (define-key xterm-function-map "\e[2;6~" [C-S-insert])
- (define-key xterm-function-map "\e[3;6~" [C-S-delete])
- (define-key xterm-function-map "\e[5;6~" [C-S-prior])
- (define-key xterm-function-map "\e[6;6~" [C-S-next])
-
- (define-key xterm-function-map "\e[2;3~" [A-insert])
- (define-key xterm-function-map "\e[3;3~" [A-delete])
- (define-key xterm-function-map "\e[5;3~" [A-prior])
- (define-key xterm-function-map "\e[6;3~" [A-next])
-
- (define-key xterm-function-map "\eOA" [up])
- (define-key xterm-function-map "\eOB" [down])
- (define-key xterm-function-map "\eOC" [right])
- (define-key xterm-function-map "\eOD" [left])
- (define-key xterm-function-map "\eOF" [end])
- (define-key xterm-function-map "\eOH" [home])
-
- (define-key xterm-function-map "\eO2A" [S-up])
- (define-key xterm-function-map "\eO2B" [S-down])
- (define-key xterm-function-map "\eO2C" [S-right])
- (define-key xterm-function-map "\eO2D" [S-left])
- (define-key xterm-function-map "\eO2F" [S-end])
- (define-key xterm-function-map "\eO2H" [S-home])
-
- (define-key xterm-function-map "\eO5A" [C-up])
- (define-key xterm-function-map "\eO5B" [C-down])
- (define-key xterm-function-map "\eO5C" [C-right])
- (define-key xterm-function-map "\eO5D" [C-left])
- (define-key xterm-function-map "\eO5F" [C-end])
- (define-key xterm-function-map "\eO5H" [C-home]))
-
-;; Use inheritance to let the main keymap override those defaults.
-;; This way we don't override terminfo-derived settings or settings
-;; made in the .emacs file.
-(let ((m (copy-keymap xterm-function-map)))
- (set-keymap-parent m (keymap-parent (terminal-local-value 'local-function-key-map nil)))
- (set-keymap-parent (terminal-local-value 'local-function-key-map nil) m))
+ (define-key map "\e[11~" [f1])
+ (define-key map "\e[12~" [f2])
+ (define-key map "\e[13~" [f3])
+ (define-key map "\e[14~" [f4]))
+
+(defun terminal-init-xterm ()
+ "Terminal initialization function for xterm."
+ ;; rxvt terminals sometimes set the TERM variable to "xterm", but
+ ;; rxvt's keybindings that are incompatible with xterm's. It is
+ ;; better in that case to use rxvt's initializion function.
+ (if (and (server-getenv "COLORTERM")
+ (string-match "\\`rxvt" (server-getenv "COLORTERM")))
+ (progn
+ (eval-when-compile (load "term/rxvt"))
+ (terminal-init-rxvt))
+
+ ;; The terminal intialization C code file might have initialized
+ ;; function keys F13->F60 from the termcap/terminfo information. On
+ ;; a PC-style keyboard these keys correspond to
+ ;; MODIFIER-FUNCTION_KEY, where modifier is S-, C, A-, C-S-. The
+ ;; code here subsitutes the corresponding defintions in
+ ;; function-key-map. This substitution is needed because if a key
+ ;; definition if found in function-key-map, there are no further
+ ;; lookups in other keymaps.
+ (let ((m (terminal-local-value 'local-function-key-map nil)))
+ (substitute-key-definition [f13] [S-f1] m)
+ (substitute-key-definition [f14] [S-f2] m)
+ (substitute-key-definition [f15] [S-f3] m)
+ (substitute-key-definition [f16] [S-f4] m)
+ (substitute-key-definition [f17] [S-f5] m)
+ (substitute-key-definition [f18] [S-f6] m)
+ (substitute-key-definition [f19] [S-f7] m)
+ (substitute-key-definition [f20] [S-f8] m)
+ (substitute-key-definition [f21] [S-f9] m)
+ (substitute-key-definition [f22] [S-f10] m)
+ (substitute-key-definition [f23] [S-f11] m)
+ (substitute-key-definition [f24] [S-f12] m)
+
+ (substitute-key-definition [f25] [C-f1] m)
+ (substitute-key-definition [f26] [C-f2] m)
+ (substitute-key-definition [f27] [C-f3] m)
+ (substitute-key-definition [f28] [C-f4] m)
+ (substitute-key-definition [f29] [C-f5] m)
+ (substitute-key-definition [f30] [C-f6] m)
+ (substitute-key-definition [f31] [C-f7] m)
+ (substitute-key-definition [f32] [C-f8] m)
+ (substitute-key-definition [f33] [C-f9] m)
+ (substitute-key-definition [f34] [C-f10] m)
+ (substitute-key-definition [f35] [C-f11] m)
+ (substitute-key-definition [f36] [C-f12] m)
+
+ (substitute-key-definition [f37] [C-S-f1] m)
+ (substitute-key-definition [f38] [C-S-f2] m)
+ (substitute-key-definition [f39] [C-S-f3] m)
+ (substitute-key-definition [f40] [C-S-f4] m)
+ (substitute-key-definition [f41] [C-S-f5] m)
+ (substitute-key-definition [f42] [C-S-f6] m)
+ (substitute-key-definition [f43] [C-S-f7] m)
+ (substitute-key-definition [f44] [C-S-f8] m)
+ (substitute-key-definition [f45] [C-S-f9] m)
+ (substitute-key-definition [f46] [C-S-f10] m)
+ (substitute-key-definition [f47] [C-S-f11] m)
+ (substitute-key-definition [f48] [C-S-f12] m)
+
+ (substitute-key-definition [f49] [A-f1] m)
+ (substitute-key-definition [f50] [A-f2] m)
+ (substitute-key-definition [f51] [A-f3] m)
+ (substitute-key-definition [f52] [A-f4] m)
+ (substitute-key-definition [f53] [A-f5] m)
+ (substitute-key-definition [f54] [A-f6] m)
+ (substitute-key-definition [f55] [A-f7] m)
+ (substitute-key-definition [f56] [A-f8] m)
+ (substitute-key-definition [f57] [A-f9] m)
+ (substitute-key-definition [f58] [A-f10] m)
+ (substitute-key-definition [f59] [A-f11] m)
+ (substitute-key-definition [f60] [A-f12] m))
+
+ ;; Use inheritance to let the main keymap override those defaults.
+ ;; This way we don't override terminfo-derived settings or settings
+ ;; made in the .emacs file.
+ (let ((m (copy-keymap xterm-function-map)))
+ (set-keymap-parent m (keymap-parent (terminal-local-value 'local-function-key-map nil)))
+ (set-keymap-parent (terminal-local-value 'local-function-key-map nil) m))
+
+ ;; Do it!
+ (xterm-register-default-colors)
+ ;; This recomputes all the default faces given the colors we've just set up.
+ (tty-set-up-initial-frame-faces)))
;; Set up colors, for those versions of xterm that support it.
(defvar xterm-standard-colors
@@ -369,38 +389,5 @@ versions of xterm."
;; right colors, so clear them.
(clear-face-cache)))
-;; rxvt puts the default colors into an environment variable
-;; COLORFGBG. We use this to set the background mode in a more
-;; intelligent way than the default guesswork in startup.el.
-(defun xterm-rxvt-set-background-mode ()
- "Set background mode as appropriate for the default rxvt colors."
- (let ((fgbg (server-getenv "COLORFGBG"))
- bg rgb)
- (setq default-frame-background-mode 'light)
- (when (and fgbg
- (string-match ".*;\\([0-9][0-9]?\\)\\'" fgbg))
- (setq bg (string-to-number (substring fgbg (match-beginning 1))))
- ;; The next line assumes that xterm-standard-colors are ordered
- ;; by the color index in the ascending order!
- (setq rgb (car (cddr (nth bg xterm-standard-colors))))
- ;; See the commentary in frame-set-background-mode about the
- ;; computation below.
- (if (< (apply '+ rgb)
- ;; The following line assumes that white is the 15th
- ;; color in xterm-standard-colors.
- (* (apply '+ (car (cddr (nth 15 xterm-standard-colors)))) 0.6))
- (setq default-frame-background-mode 'dark)))
- (frame-set-background-mode (selected-frame))))
-
-;; Do it!
-(xterm-register-default-colors)
-;; If this xterm is actually a disguised rxvt, be more intelligent about
-;; determining the background mode.
-(and (server-getenv "COLORTERM")
- (string-match "\\`rxvt" (server-getenv "COLORTERM"))
- (xterm-rxvt-set-background-mode))
-;; This recomputes all the default faces given the colors we've just set up.
-(tty-set-up-initial-frame-faces)
-
;; arch-tag: 12e7ebdd-1e6c-4b25-b0f9-35ace25e855a
;;; xterm.el ends here
diff --git a/lisp/terminal.el b/lisp/terminal.el
index d9ba5d3f72..75d0c7acbd 100644
--- a/lisp/terminal.el
+++ b/lisp/terminal.el
@@ -1,6 +1,7 @@
;;; terminal.el --- terminal emulator for GNU Emacs
-;; Copyright (C) 1986, 1987, 1988, 1989, 1993, 1994 Free Software Foundation, Inc.
+;; Copyright (C) 1986, 1987, 1988, 1989, 1993, 1994, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Richard Mlynarik <mly@eddie.mit.edu>
;; Maintainer: FSF
diff --git a/lisp/textmodes/artist.el b/lisp/textmodes/artist.el
index 245658b62b..ea43f71e75 100644
--- a/lisp/textmodes/artist.el
+++ b/lisp/textmodes/artist.el
@@ -1,6 +1,7 @@
;;; artist.el --- draw ascii graphics with your mouse
-;; Copyright (C) 2000, 2001, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Tomas Abrahamsson <tab@lysator.liu.se>
;; Maintainer: Tomas Abrahamsson <tab@lysator.liu.se>
@@ -198,6 +199,7 @@
(defconst artist-version "1.2.6")
(defconst artist-maintainer-address "tab@lysator.liu.se")
+(defvar x-pointer-crosshair)
(eval-and-compile
(condition-case ()
@@ -403,7 +405,7 @@ Example:
:type 'integer)
-(defvar artist-spray-chars '(?\ ?. ?- ?+ ?m ?% ?* ?#)
+(defvar artist-spray-chars '(?\s ?. ?- ?+ ?m ?% ?* ?#)
;; This is a defvar, not a defcustom, since the custom
;; package shows lists of characters as a lists of integers,
;; which is confusing
@@ -1388,9 +1390,9 @@ Keymap summary
(while (< i 256)
(aset artist-replacement-table i i)
(setq i (1+ i))))
- (aset artist-replacement-table ?\n ?\ )
- (aset artist-replacement-table ?\t ?\ )
- (aset artist-replacement-table 0 ?\ )
+ (aset artist-replacement-table ?\n ?\s)
+ (aset artist-replacement-table ?\t ?\s)
+ (aset artist-replacement-table 0 ?\s)
(make-local-variable 'artist-key-is-drawing)
(make-local-variable 'artist-key-endpoint1)
(make-local-variable 'artist-key-poly-point-list)
@@ -2012,7 +2014,7 @@ With optional argument SEE-THRU, set to non-nil, text in the buffer
(blink-matching-paren nil))
(while char-list
(let ((c (car char-list)))
- (if (and see-thru (= (aref artist-replacement-table c) ?\ ))
+ (if (and see-thru (= (aref artist-replacement-table c) ?\s))
(artist-move-to-xy (1+ (artist-current-column))
(artist-current-line))
(artist-replace-char c)))
@@ -3068,26 +3070,26 @@ An endpoint is a cons pair, (ENDPOINT-X . ENDPOINT-Y)."
(defun artist-vap-find-endpoints-horiz (x y)
"Find endpoints for a horizontal line through X, Y.
An endpoint is a cons pair, (ENDPOINT-X . ENDPOINT-Y)."
- (list (artist-vap-find-endpoint x y 1 0 '(?- ?+) '(? ))
- (artist-vap-find-endpoint x y -1 0 '(?- ?+) '(? ))))
+ (list (artist-vap-find-endpoint x y 1 0 '(?- ?+) '(?\s))
+ (artist-vap-find-endpoint x y -1 0 '(?- ?+) '(?\s))))
(defun artist-vap-find-endpoints-vert (x y)
"Find endpoints for a vertical line through X, Y.
An endpoint is a cons pair, (ENDPOINT-X . ENDPOINT-Y)."
- (list (artist-vap-find-endpoint x y 0 1 '(?| ?+) '(? ))
- (artist-vap-find-endpoint x y 0 -1 '(?| ?+) '(? ))))
+ (list (artist-vap-find-endpoint x y 0 1 '(?| ?+) '(?\s))
+ (artist-vap-find-endpoint x y 0 -1 '(?| ?+) '(?\s))))
(defun artist-vap-find-endpoints-swne (x y)
"Find endpoints for a diagonal line (made by /'s) through X, Y.
An endpoint is a cons pair, (ENDPOINT-X . ENDPOINT-Y)."
- (list (artist-vap-find-endpoint x y 1 -1 '(?/ ?X) '(? ))
- (artist-vap-find-endpoint x y -1 1 '(?/ ?X) '(? ))))
+ (list (artist-vap-find-endpoint x y 1 -1 '(?/ ?X) '(?\s))
+ (artist-vap-find-endpoint x y -1 1 '(?/ ?X) '(?\s))))
(defun artist-vap-find-endpoints-nwse (x y)
"Find endpoints for a diagonal line (made by \\'s) through X, Y.
An endpoint is a cons pair, (ENDPOINT-X . ENDPOINT-Y)."
- (list (artist-vap-find-endpoint x y 1 1 '(?\\ ?X) '(? ))
- (artist-vap-find-endpoint x y -1 -1 '(?\\ ?X) '(? ))))
+ (list (artist-vap-find-endpoint x y 1 1 '(?\\ ?X) '(?\s))
+ (artist-vap-find-endpoint x y -1 -1 '(?\\ ?X) '(?\s))))
(defun artist-vap-find-endpoints (x y)
@@ -4453,7 +4455,7 @@ If N is negative, move backward."
(defun artist-select-erase-char (c)
"Set current erase character to be C."
(interactive "cType char to use when erasing (type RET for normal): ")
- (cond ((eq c ?\r) (setq artist-erase-char ?\ )
+ (cond ((eq c ?\r) (setq artist-erase-char ?\s)
(message "Normal erasing"))
(t (setq artist-erase-char c)
(message "Erasing with \"%c\"" c)))
diff --git a/lisp/textmodes/bib-mode.el b/lisp/textmodes/bib-mode.el
index a6d47589d3..6609673289 100644
--- a/lisp/textmodes/bib-mode.el
+++ b/lisp/textmodes/bib-mode.el
@@ -1,6 +1,6 @@
;;; bib-mode.el --- major mode for editing bib files
-;; Copyright (C) 1989 Free Software Foundation, Inc.
+;; Copyright (C) 1989, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: bib
diff --git a/lisp/textmodes/bibtex.el b/lisp/textmodes/bibtex.el
index de387e8654..6f7fe0dec9 100644
--- a/lisp/textmodes/bibtex.el
+++ b/lisp/textmodes/bibtex.el
@@ -1,7 +1,7 @@
;;; bibtex.el --- BibTeX mode for GNU Emacs
-;; Copyright (C) 1992, 1994, 1995, 1996, 1997, 1998, 1999, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1994, 1995, 1996, 1997, 1998, 1999, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Stefan Schoef <schoef@offis.uni-oldenburg.de>
;; Bengt Martensson <bengt@mathematik.uni-Bremen.de>
diff --git a/lisp/textmodes/conf-mode.el b/lisp/textmodes/conf-mode.el
index 75249f7b54..8c009921d0 100644
--- a/lisp/textmodes/conf-mode.el
+++ b/lisp/textmodes/conf-mode.el
@@ -1,6 +1,8 @@
;;; conf-mode.el --- Simple major mode for editing conf/ini/properties files
-;; Copyright (C) 2004 by Daniel Pfeiffer <occitan@esperanto.org>
+;; Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+
+;; Author: Daniel Pfeiffer <occitan@esperanto.org>
;; Keywords: conf ini windows java
;; This file is part of GNU Emacs.
@@ -31,6 +33,8 @@
(require 'newcomment)
+(defvar outline-heading-end-regexp)
+
;; Variables:
(defgroup conf nil
@@ -227,15 +231,15 @@ whitespace.")
(if (>= arg 0)
(progn
(indent-to-column arg)
- (or (not conf-assignment-space) (memq (char-before (point)) '(? ?\t)) (insert ? ))
- (insert conf-assignment-sign (if (and conf-assignment-space (not (eolp))) ?\ "")))
- (insert (if conf-assignment-space ?\ "") conf-assignment-sign)
+ (or (not conf-assignment-space) (memq (char-before (point)) '(?\s ?\t)) (insert ?\s))
+ (insert conf-assignment-sign (if (and conf-assignment-space (not (eolp))) ?\s "")))
+ (insert (if conf-assignment-space ?\s "") conf-assignment-sign)
(unless (eolp)
(indent-to-column (- arg))
- (or (not conf-assignment-space) (memq (char-before (point)) '(? ?\t)) (insert ? ))))
+ (or (not conf-assignment-space) (memq (char-before (point)) '(?\s ?\t)) (insert ?\s))))
(unless (eolp)
(if (>= (current-column) (abs arg))
- (insert ? )
+ (insert ?\s)
(indent-to-column (abs arg))))))
(forward-line))))
diff --git a/lisp/textmodes/dns-mode.el b/lisp/textmodes/dns-mode.el
index a6f3517d72..12f99ba090 100644
--- a/lisp/textmodes/dns-mode.el
+++ b/lisp/textmodes/dns-mode.el
@@ -1,5 +1,6 @@
;;; dns-mode.el --- a mode for viewing/editing Domain Name System master files
-;; Copyright (c) 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
+
+;; Copyright (C) 2000, 2001, 2004, 2005 Free Software Foundation, Inc.
;; Author: Simon Josefsson <simon@josefsson.org>
;; Keywords: DNS master zone file SOA
diff --git a/lisp/textmodes/enriched.el b/lisp/textmodes/enriched.el
index 61960e9d97..dc8d4c96b2 100644
--- a/lisp/textmodes/enriched.el
+++ b/lisp/textmodes/enriched.el
@@ -1,6 +1,7 @@
;;; enriched.el --- read and save files in text/enriched format
-;; Copyright (c) 1994, 1995, 1996, 2002, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 1996, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Boris Goldowsky <boris@gnu.org>
;; Keywords: wp, faces
diff --git a/lisp/textmodes/fill.el b/lisp/textmodes/fill.el
index 9997b2a166..11ddfc0e96 100644
--- a/lisp/textmodes/fill.el
+++ b/lisp/textmodes/fill.el
@@ -1,7 +1,7 @@
;;; fill.el --- fill commands for Emacs -*- coding: iso-2022-7bit -*-
;; Copyright (C) 1985, 1986, 1992, 1994, 1995, 1996, 1997, 1999, 2001, 2002,
-;; 2003, 2004, 2005 Free Software Foundation, Inc.
+;; 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: wp
@@ -163,7 +163,7 @@ Remove indentation from each line."
;; This is quick, but loses when a tab follows the end of a sentence.
;; Actually, it is difficult to tell that from "Mr.\tSmith".
;; Blame the typist.
- (subst-char-in-region beg end ?\t ?\ )
+ (subst-char-in-region beg end ?\t ?\s)
(while (and (< (point) end)
(re-search-forward end-spc-re end t))
(delete-region
@@ -282,7 +282,7 @@ act as a paragraph-separator."
(string-match comment-start-skip
first-line-prefix)))
first-line-prefix
- (make-string (string-width first-line-prefix) ?\ ))))
+ (make-string (string-width first-line-prefix) ?\s))))
;; But either way, reject it if it indicates the start
;; of a paragraph when text follows it.
(if (not (eq 0 (string-match paragraph-start
@@ -312,7 +312,7 @@ places."
(backward-char 1)
(or (looking-at "[([{,A+,b+(B]")
;; Don't cut right after a single-letter word.
- (and (memq (preceding-char) '(?\t ?\ ))
+ (and (memq (preceding-char) '(?\t ?\s))
(eq (char-syntax (following-char)) ?w)))))))
(defcustom fill-nobreak-predicate nil
@@ -439,10 +439,10 @@ Point is moved to just past the fill prefix on the first line."
(sentence-end-without-space-list
(string-to-list sentence-end-without-space)))
(while (re-search-forward eol-double-space-re to t)
- (or (>= (point) to) (memq (char-before) '(?\t ?\ ))
+ (or (>= (point) to) (memq (char-before) '(?\t ?\s))
(memq (char-after (match-beginning 0))
sentence-end-without-space-list)
- (insert-and-inherit ?\ ))))
+ (insert-and-inherit ?\s))))
(goto-char from)
(if enable-multibyte-characters
@@ -471,7 +471,7 @@ Point is moved to just past the fill prefix on the first line."
(goto-char from)
(skip-chars-forward " \t")
;; Then change all newlines to spaces.
- (subst-char-in-region from to ?\n ?\ )
+ (subst-char-in-region from to ?\n ?\s)
(if (and nosqueeze (not (eq justify 'full)))
nil
(canonically-space-region (or squeeze-after (point)) to)
@@ -830,10 +830,10 @@ can take care of filling. JUSTIFY is used as in `fill-paragraph'."
(if has-code-and-comment
(concat
(if (not indent-tabs-mode)
- (make-string (current-column) ?\ )
+ (make-string (current-column) ?\s)
(concat
(make-string (/ (current-column) tab-width) ?\t)
- (make-string (% (current-column) tab-width) ?\ )))
+ (make-string (% (current-column) tab-width) ?\s)))
(buffer-substring (point) comin))
(buffer-substring (line-beginning-position) comin))))
beg end)
@@ -1223,7 +1223,7 @@ otherwise it is made canonical."
(while (> count 0)
(skip-chars-forward " ")
(insert-and-inherit
- (make-string (/ curr-fracspace nspaces) ?\ ))
+ (make-string (/ curr-fracspace nspaces) ?\s))
(search-forward " " nil t)
(setq count (1- count)
curr-fracspace
@@ -1282,8 +1282,8 @@ in the paragraph.
When calling from a program, pass range to fill as first two arguments.
-Optional third and fourth arguments JUSTIFY and MAIL-FLAG:
-JUSTIFY to justify paragraphs (prefix arg),
+Optional third and fourth arguments JUSTIFYP and CITATION-REGEXP:
+JUSTIFYP to justify paragraphs (prefix arg).
When filling a mail message, pass a regexp for CITATION-REGEXP
which will match the prefix of a line which is a citation marker
plus whitespace, but no other kind of prefix.
diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el
index 6b7b549240..b6b7339c94 100644
--- a/lisp/textmodes/flyspell.el
+++ b/lisp/textmodes/flyspell.el
@@ -1,6 +1,7 @@
;;; flyspell.el --- on-the-fly spell checker
-;; Copyright (C) 1998, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Manuel Serrano <Manuel.Serrano@sophia.inria.fr>
;; Maintainer: FSF
@@ -76,7 +77,9 @@ Non-nil means use highlight, nil means use minibuffer messages."
:type 'boolean)
(defcustom flyspell-mark-duplications-flag t
- "*Non-nil means Flyspell reports a repeated word as an error."
+ "*Non-nil means Flyspell reports a repeated word as an error.
+Detection of repeated words is not implemented in
+\"large\" regions; see `flyspell-large-region'."
:group 'flyspell
:type 'boolean)
@@ -237,10 +240,13 @@ If the region is smaller than this number of characters,
flyspell methods. Else, if the region is large, a new Ispell process is
spawned for speed.
+Doubled words are not detected in a large region, because Ispell
+does not check for them.
+
If `flyspell-large-region' is nil, all regions are treated as small."
:group 'flyspell
:version "21.1"
- :type '(choice number boolean))
+ :type '(choice number (const :tag "All small" nil)))
(defcustom flyspell-insert-function (function insert)
"*Function for inserting word by flyspell upon correction."
@@ -450,6 +456,7 @@ See also `flyspell-duplicate-distance'."
;*---------------------------------------------------------------------*/
;* flyspell-mode ... */
;*---------------------------------------------------------------------*/
+;;;###autoload(defvar flyspell-mode nil)
;;;###autoload
(define-minor-mode flyspell-mode
"Minor mode performing on-the-fly spelling checking.
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index ff0cecf5af..8bd8ed2d69 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -1,7 +1,7 @@
;;; ispell.el --- interface to International Ispell Versions 3.1 and 3.2
-;; Copyright (C) 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Ken Stevens <k.stevens@ieee.org>
;; Maintainer: Ken Stevens <k.stevens@ieee.org>
@@ -201,6 +201,8 @@
;;; Code:
+(defvar mail-yank-prefix)
+
;;; Custom.el macros require recompiling this when they are not present.
;;; Add in backward compatible custom support.
(eval-when-compile
@@ -862,9 +864,113 @@ and added as a submenu of the \"Edit\" menu.")
)
"Non-nil means that the OS supports asynchronous processes.")
+;; Make ispell.el work better with aspell.
+
+(defvar ispell-have-aspell-dictionaries nil
+ "Non-nil if we have queried Aspell for dictionaries at least once.")
+
+(defun ispell-find-aspell-dictionaries ()
+ "Find Aspell's dictionaries, and record in `ispell-dictionary-alist'."
+ (interactive)
+ (unless ispell-really-aspell
+ (error "This function only works with aspell"))
+ (let ((dictionaries
+ (split-string
+ (with-temp-buffer
+ (call-process ispell-program-name nil t nil "dicts")
+ (buffer-string)))))
+ (setq ispell-dictionary-alist
+ (mapcar #'ispell-aspell-find-dictionary dictionaries))
+ (ispell-aspell-add-aliases)
+ ;; Add a default entry
+ (let* ((english-dict (assoc "en" ispell-dictionary-alist))
+ (default-dict (cons nil (cdr english-dict))))
+ (push default-dict ispell-dictionary-alist))
+ (setq ispell-have-aspell-dictionaries t)))
+
+(defvar ispell-aspell-data-dir nil
+ "Data directory of Aspell.")
+
+(defvar ispell-aspell-dict-dir nil
+ "Dictionary directory of Aspell.")
+
+(defun ispell-get-aspell-config-value (key)
+ "Return value of Aspell configuration option KEY.
+Assumes that value contains no whitespace."
+ (with-temp-buffer
+ (call-process ispell-program-name nil t nil "config" key)
+ (car (split-string (buffer-string)))))
+
+(defun ispell-aspell-find-dictionary (dict-name)
+ (let* ((lang ;; Strip out region, variant, etc.
+ (and (string-match "^[[:alpha:]]+" dict-name)
+ (match-string 0 dict-name)))
+ (data-file
+ (concat (or ispell-aspell-data-dir
+ (setq ispell-aspell-data-dir
+ (ispell-get-aspell-config-value "data-dir")))
+ "/" lang ".dat"))
+ otherchars)
+ ;; This file really should exist; there is no sensible recovery.
+ (with-temp-buffer
+ (insert-file-contents data-file)
+ ;; There is zero or one line with special characters declarations.
+ (when (search-forward-regexp "^special" nil t)
+ (let ((specials (split-string
+ (buffer-substring (point)
+ (progn (end-of-line) (point))))))
+ ;; The line looks like: special ' -** - -** . -** : -*-
+ ;; -** means that this character
+ ;; - doesn't appear at word start
+ ;; * may appear in the middle of a word
+ ;; * may appear at word end
+ ;; `otherchars' is about the middle case.
+ (while specials
+ (when (eq (aref (cadr specials) 1) ?*)
+ (push (car specials) otherchars))
+ (setq specials (cddr specials))))))
+ (list dict-name
+ "[[:alpha:]]"
+ "[^[:alpha:]]"
+ (regexp-opt otherchars)
+ t ; We can't tell, so set this to t
+ (list "-d" dict-name "--encoding=utf-8")
+ nil ; aspell doesn't support this
+ ;; Here we specify the encoding to use while communicating with
+ ;; aspell. This doesn't apply to command line arguments, so
+ ;; just don't pass words to spellcheck as arguments...
+ 'utf-8)))
+
+(defun ispell-aspell-add-aliases ()
+ "Find aspell's dictionary aliases and add them to `ispell-dictionary-alist'."
+ (let ((aliases (file-expand-wildcards
+ (concat (or ispell-aspell-dict-dir
+ (setq ispell-aspell-dict-dir
+ (ispell-get-aspell-config-value "dict-dir")))
+ "/*.alias"))))
+ (dolist (alias-file aliases)
+ (with-temp-buffer
+ (insert-file-contents alias-file)
+ ;; Look for a line "add FOO.multi", extract FOO
+ (when (search-forward-regexp "^add \\([^.]+\\)\\.multi" nil t)
+ (let* ((aliasname (file-name-sans-extension
+ (file-name-nondirectory alias-file)))
+ (already-exists-p (assoc aliasname ispell-dictionary-alist))
+ (realname (match-string 1))
+ (realdict (assoc realname ispell-dictionary-alist)))
+ (when (and realdict (not already-exists-p))
+ (push (cons aliasname (cdr realdict)) ispell-dictionary-alist))))))))
+
(defun ispell-valid-dictionary-list ()
"Returns a list of valid dictionaries.
The variable `ispell-library-directory' defines the library location."
+ ;; If Ispell is really Aspell, query it for the dictionary list.
+ (when (and (not ispell-have-aspell-dictionaries)
+ (condition-case ()
+ (progn (ispell-check-version) t)
+ (error nil))
+ ispell-really-aspell)
+ (ispell-find-aspell-dictionaries))
(let ((dicts (append ispell-local-dictionary-alist ispell-dictionary-alist))
(dict-list (cons "default" nil))
name load-dict)
@@ -875,7 +981,9 @@ The variable `ispell-library-directory' defines the library location."
(if (and
name
;; include all dictionaries if lib directory not known.
- (or (not ispell-library-directory)
+ ;; For Aspell, we already know which dictionaries exist.
+ (or ispell-really-aspell
+ (not ispell-library-directory)
(file-exists-p (concat ispell-library-directory
"/" name ".hash"))
(file-exists-p (concat ispell-library-directory "/" name ".has"))
@@ -887,36 +995,11 @@ The variable `ispell-library-directory' defines the library location."
(setq dict-list (cons name dict-list))))
dict-list))
-;;;###autoload
-(if ispell-menu-map-needed
- (let ((dicts (if (fboundp 'ispell-valid-dictionary-list)
- (ispell-valid-dictionary-list)
- ;; This case is used in loaddefs.el
- ;; since ispell-valid-dictionary-list isn't defined then.
- (mapcar (lambda (x) (or (car x) "default"))
- ispell-dictionary-alist)))
- (dict-map (make-sparse-keymap "Dictionaries")))
- (setq ispell-menu-map (make-sparse-keymap "Spell"))
- ;; add the dictionaries to the bottom of the list.
- (if (not dicts)
- (define-key ispell-menu-map [default]
- '("Select Default Dict"
- "Dictionary for which Ispell was configured"
- . (lambda () (interactive)
- (ispell-change-dictionary "default")))))
- (fset 'ispell-dict-map dict-map)
- (define-key ispell-menu-map [dictionaries]
- `(menu-item "Select Dict" ispell-dict-map))
- (dolist (name dicts)
- (define-key dict-map (vector (intern name))
- (cons (concat "Select " (capitalize name) " Dict")
- `(lambda () (interactive)
- (ispell-change-dictionary ,name)))))))
-
;;; define commands in menu in opposite order you want them to appear.
;;;###autoload
(if ispell-menu-map-needed
(progn
+ (setq ispell-menu-map (make-sparse-keymap "Spell"))
(define-key ispell-menu-map [ispell-change-dictionary]
'(menu-item "Change Dictionary..." ispell-change-dictionary
:help "Supply explicit dictionary file name"))
@@ -1491,7 +1574,8 @@ quit spell session exited."
(funcall ispell-format-word word)))
(and (fboundp 'extent-at)
(extent-at start)
- (delete-extent (extent-at start))))
+ (and (fboundp 'delete-extent)
+ (delete-extent (extent-at start)))))
((stringp poss)
(or quietly
(message "%s is correct because of root %s"
@@ -1499,13 +1583,15 @@ quit spell session exited."
(funcall ispell-format-word poss)))
(and (fboundp 'extent-at)
(extent-at start)
- (delete-extent (extent-at start))))
+ (and (fboundp 'delete-extent)
+ (delete-extent (extent-at start)))))
((null poss) (message "Error in ispell process"))
(ispell-check-only ; called from ispell minor mode.
(if (fboundp 'make-extent)
- (let ((ext (make-extent start end)))
- (set-extent-property ext 'face ispell-highlight-face)
- (set-extent-property ext 'priority 2000))
+ (if (fboundp 'set-extent-property)
+ (let ((ext (make-extent start end)))
+ (set-extent-property ext 'face ispell-highlight-face)
+ (set-extent-property ext 'priority 2000)))
(beep)
(message "%s is incorrect"(funcall ispell-format-word word))))
(t ; prompt for correct word.
@@ -1659,7 +1745,10 @@ Global `ispell-quit' set to start location to continue spell session."
;; setup the *Choices* buffer with valid data.
(save-excursion
(set-buffer (get-buffer-create ispell-choices-buffer))
- (setq mode-line-format (concat "-- %b -- word: " word))
+ (setq mode-line-format
+ (concat "-- %b -- word: " word
+ " -- dict: " (or ispell-current-dictionary "default")
+ " -- prog: " (file-name-nondirectory ispell-program-name)))
;; XEmacs: no need for horizontal scrollbar in choices window
(with-no-warnings
(and (fboundp 'set-specifier)
@@ -1819,9 +1908,10 @@ Global `ispell-quit' set to start location to continue spell session."
(erase-buffer)
(setq count ?0
skipped 0
- mode-line-format (concat
- "-- %b -- word: "
- new-word)
+ mode-line-format
+ (concat "-- %b -- word: " new-word
+ " -- dict: "
+ ispell-alternate-dictionary)
miss (lookup-words new-word)
choices miss
line ispell-choices-win-default-height)
@@ -2062,9 +2152,13 @@ Optional second argument contains the dictionary to use; the default is
(while (search-backward "*" nil t) (insert "."))
(setq word (buffer-string))
(erase-buffer))
- (setq status (if lookup-dict
- (call-process prog nil t nil args word lookup-dict)
- (call-process prog nil t nil args word)))
+ (setq status (apply 'call-process prog nil t nil
+ (nconc (if (and args (> (length args) 0))
+ (list args)
+ (if look-p nil
+ (list "-e")))
+ (list word)
+ (if lookup-dict (list lookup-dict)))))
;; grep returns status 1 and no output when word not found, which
;; is a perfectly normal thing.
(if (stringp status)
@@ -2512,9 +2606,10 @@ Return nil if spell session is quit,
(rstart (make-marker)))
(unwind-protect
(save-excursion
- (message "Spell checking %s using %s dictionary..."
+ (message "Spell checking %s using %s with %s dictionary..."
(if (and (= reg-start (point-min)) (= reg-end (point-max)))
(buffer-name) "region")
+ (file-name-nondirectory ispell-program-name)
(or ispell-current-dictionary "default"))
;; Returns cursor to original location.
(save-window-excursion
@@ -2532,7 +2627,8 @@ Return nil if spell session is quit,
(set-marker skip-region-start (- (point) (length key)))
(goto-char reg-start)))
(let (message-log-max)
- (message "Continuing spelling check using %s dictionary..."
+ (message "Continuing spelling check using %s with %s dictionary..."
+ (file-name-nondirectory ispell-program-name)
(or ispell-current-dictionary "default")))
(set-marker rstart reg-start)
(set-marker ispell-region-end reg-end)
@@ -2609,7 +2705,9 @@ Return nil if spell session is quit,
(if (not recheckp) (set-marker ispell-region-end nil))
;; Only save if successful exit.
(ispell-pdict-save ispell-silently-savep)
- (message "Spell-checking done")))))
+ (message "Spell-checking using %s with %s dictionary done"
+ (file-name-nondirectory ispell-program-name)
+ (or ispell-current-dictionary "default"))))))
(defun ispell-begin-skip-region-regexp ()
@@ -2960,7 +3058,8 @@ Returns the sum shift due to changes in word replacements."
))
(if (not ispell-quit)
(let (message-log-max)
- (message "Continuing spelling check using %s dictionary..."
+ (message "Continuing spelling check using %s with %s dictionary..."
+ (file-name-nondirectory ispell-program-name)
(or ispell-current-dictionary "default"))))
(sit-for 0)
(setq start (marker-position line-start)
diff --git a/lisp/textmodes/makeinfo.el b/lisp/textmodes/makeinfo.el
index bbea460cf6..542c4829e9 100644
--- a/lisp/textmodes/makeinfo.el
+++ b/lisp/textmodes/makeinfo.el
@@ -1,6 +1,7 @@
;;; makeinfo.el --- run makeinfo conveniently
-;; Copyright (C) 1991, 1993, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 1991, 1993, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Robert J. Chassell
;; Maintainer: FSF
@@ -49,6 +50,10 @@
(require 'compile)
(require 'info)
+(defvar tex-end-of-header)
+(defvar tex-start-of-header)
+
+
(defgroup makeinfo nil
"Run makeinfo conveniently."
:group 'docs)
@@ -170,22 +175,27 @@ command to gain use of `next-error'."
makeinfo-options
" "
makeinfo-temp-file)
- "Use `makeinfo-buffer' to gain use of the `next-error' command"
- nil
+ t
'makeinfo-compilation-sentinel-region)))))))
-;;; Actually run makeinfo. COMMAND is the command to run.
-;;; ERROR-MESSAGE is what to say when next-error can't find another error.
-;;; If PARSE-ERRORS is non-nil, do try to parse error messages.
-(defun makeinfo-compile (command error-message parse-errors sentinel)
- (let ((buffer
- (compile-internal command error-message nil
- (and (not parse-errors)
- ;; If we do want to parse errors, pass nil.
- ;; Otherwise, use this function, which won't
- ;; ever find any errors.
- (lambda (&rest ignore)
- (setq compilation-error-list nil))))))
+(defun makeinfo-next-error (arg reset)
+ "This function is used to disable `next-error' if the user has
+used `makeinfo-region'. Since the compilation process is used on
+a temporary file in that case, calling `next-error' would give
+nonsensical results."
+ (error "Use `makeinfo-buffer' to gain use of the `next-error' command"))
+
+;; Actually run makeinfo. COMMAND is the command to run. If
+;; DISABLE-ERRORS is non-nil, disable `next-error' by setting
+;; `next-error-function' to `makeinfo-next-error' in the compilation
+;; buffer.
+(defun makeinfo-compile (command disable-errors sentinel)
+ (let ((buffer (compilation-start command)))
+ (with-current-buffer buffer
+ (setq next-error-function
+ (if disable-errors
+ 'makeinfo-next-error
+ 'compilation-next-error-function)))
(set-process-sentinel (get-buffer-process buffer) sentinel)))
;; Delete makeinfo-temp-file after processing is finished,
@@ -248,9 +258,8 @@ Use the \\[next-error] command to move to the next error
(save-excursion
(makeinfo-compile
(concat makeinfo-run-command " " makeinfo-options
- " " buffer-file-name)
- "No more errors."
- t
+ " " buffer-file-name)
+ nil
'makeinfo-compilation-sentinel-buffer)))
(defun makeinfo-compilation-sentinel-buffer (proc msg)
diff --git a/lisp/textmodes/nroff-mode.el b/lisp/textmodes/nroff-mode.el
index 48de6b3243..05a740ee39 100644
--- a/lisp/textmodes/nroff-mode.el
+++ b/lisp/textmodes/nroff-mode.el
@@ -1,6 +1,7 @@
;;; nroff-mode.el --- GNU Emacs major mode for editing nroff source
-;; Copyright (C) 1985, 86, 94, 95, 97, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1994, 1995, 1997, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: wp
diff --git a/lisp/textmodes/org.el b/lisp/textmodes/org.el
index 1709b1554a..6150ac6ccc 100644
--- a/lisp/textmodes/org.el
+++ b/lisp/textmodes/org.el
@@ -1,11 +1,11 @@
-;; org.el --- Outline-based notes management and organizer
+;;; org.el --- Outline-based notes management and organizer
;; Carstens outline-mode for keeping track of everything.
;; Copyright (c) 2004, 2005 Free Software Foundation
;;
;; Author: Carsten Dominik <dominik at science dot uva dot nl>
;; Keywords: outlines, hypermedia, calendar
;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/
-;; Version: 3.13
+;; Version: 3.15
;;
;; This file is part of GNU Emacs.
;;
@@ -21,8 +21,8 @@
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;; Commentary:
@@ -80,6 +80,19 @@
;;
;; Changes:
;; -------
+;; Version 3.15
+;; - QUOTE keyword at the beginning of an entry causes fixed-width export
+;; of unmodified entry text. `C-c :' toggles this keyword.
+;; - New face `org-special-keyword' which is used for COMMENT, QUOTE,
+;; DEADLINE and SCHEDULED, and priority cookies. Default is only a weak
+;; color, to reduce the amount of aggressive color in the buffer.
+;;
+;; Version 3.14
+;; - Formulas for individual fields in table.
+;; - Automatic recalculation in calculating tables.
+;; - Named fields and columns in tables.
+;; - Fixed bug with calling `org-archive' several times in a row.
+;;
;; Version 3.13
;; - Efficiency improvements: Fewer table re-alignments needed.
;; - New special lines in tables, for defining names for individual cells.
@@ -180,9 +193,13 @@
(require 'time-date)
(require 'easymenu)
+(defvar calc-embedded-close-formula)
+(defvar calc-embedded-open-formula)
+(defvar font-lock-unfontify-region-function)
+
;;; Customization variables
-(defvar org-version "3.13"
+(defvar org-version "3.15"
"The version number of the file org.el.")
(defun org-version ()
(interactive)
@@ -381,6 +398,15 @@ Changes become only effective after restarting Emacs."
:group 'org-keywords
:type 'string)
+(defcustom org-quote-string "QUOTE"
+ "Entries starting with this keyword will be exported in fixed-width font.
+Quoting applies only to the text in the entry following the headline, and does
+not extend beyond the next headline, even if that is lower level.
+An entry can be toggled between QUOTE and normal with
+\\[org-toggle-fixed-width-section]"
+ :group 'org-keywords
+ :type 'string)
+
(defcustom org-after-todo-state-change-hook nil
"Hook which is run after the state of a TODO item was changed.
The new state (a string with a todo keyword, or nil) is available in the
@@ -1215,6 +1241,20 @@ line will be formatted with <th> tags."
:group 'org-table
:type 'boolean)
+(defcustom org-table-tab-recognizes-table.el t
+ "Non-nil means, TAB will automatically notice a table.el table.
+When it sees such a table, it moves point into it and - if necessary -
+calls `table-recognize-table'."
+ :group 'org-table
+ :type 'boolean)
+
+;; FIXME: Should this one be in another group? Which one?
+(defcustom org-enable-fixed-width-editor t
+ "Non-nil means, lines starting with \":\" are treated as fixed-width.
+This currently only means, they are never auto-wrapped.
+When nil, such lines will be treated like ordinary lines."
+ :group 'org-table
+ :type 'boolean)
(defgroup org-table-calculation nil
"Options concerning tables in Org-mode."
@@ -1284,29 +1324,10 @@ in table calculations, including symbolics etc."
:group 'org-table-calculation
:type 'boolean)
-(defcustom org-table-tab-recognizes-table.el t
- "Non-nil means, TAB will automatically notice a table.el table.
-When it sees such a table, it moves point into it and - if necessary -
-calls `table-recognize-table'."
- :group 'org-table
- :type 'boolean)
-
-(defcustom org-export-prefer-native-exporter-for-tables nil
- "Non-nil means, always export tables created with table.el natively.
-Natively means, use the HTML code generator in table.el.
-When nil, Org-mode's own HTML generator is used when possible (i.e. if
-the table does not use row- or column-spanning). This has the
-advantage, that the automatic HTML conversions for math symbols and
-sub/superscripts can be applied. Org-mode's HTML generator is also
-much faster."
- :group 'org-table
- :type 'boolean)
-
-(defcustom org-enable-fixed-width-editor t
- "Non-nil means, lines starting with \":\" are treated as fixed-width.
-This currently only means, they are never auto-wrapped.
-When nil, such lines will be treated like ordinary lines."
- :group 'org-table
+(defcustom org-table-allow-automatic-line-recalculation t
+ "Non-nil means, lines makred with |#| or |*| will be recomputed automatically.
+Automatically means, when TAB or RET or C-c C-c are pressed in the line."
+ :group 'org-table-calculation
:type 'boolean)
(defgroup org-export nil
@@ -1425,6 +1446,17 @@ This option can also be set with the +OPTIONS line, e.g. \"|:nil\"."
:group 'org-export
:type 'boolean)
+(defcustom org-export-prefer-native-exporter-for-tables nil
+ "Non-nil means, always export tables created with table.el natively.
+Natively means, use the HTML code generator in table.el.
+When nil, Org-mode's own HTML generator is used when possible (i.e. if
+the table does not use row- or column-spanning). This has the
+advantage, that the automatic HTML conversions for math symbols and
+sub/superscripts can be applied. Org-mode's HTML generator is also
+much faster."
+ :group 'org-export
+ :type 'boolean)
+
(defcustom org-export-html-table-tag
"<table border=1 cellspacing=0 cellpadding=6>"
"The HTML tag used to start a table.
@@ -1580,6 +1612,14 @@ Otherwise, the buffer will just be saved to a file and stay hidden."
"Face used for level 8 headlines."
:group 'org-faces)
+(defface org-special-keyword ;; font-lock-string-face
+ '((((type tty) (class color)) (:foreground "green"))
+ (((class color) (background light)) (:foreground "RosyBrown"))
+ (((class color) (background dark)) (:foreground "LightSalmon"))
+ (t (:italic t)))
+ "Face used for level 8 headlines."
+ :group 'org-faces)
+
(defface org-warning ;; font-lock-warning-face
'((((type tty) (class color)) (:foreground "red"))
(((class color) (background light)) (:foreground "Red" :bold t))
@@ -1906,17 +1946,22 @@ The following commands are available:
'(org-activate-dates (0 'org-link))
(list (concat "^\\*+[ \t]*" org-not-done-regexp)
'(1 'org-warning t))
- (list (concat "\\[#[A-Z]\\]") '(0 'org-warning t))
- (list (concat "\\<" org-deadline-string) '(0 'org-warning t))
- (list (concat "\\<" org-scheduled-string) '(0 'org-warning t))
+ (list (concat "\\[#[A-Z]\\]") '(0 'org-special-keyword t))
+; (list (concat "\\<" org-deadline-string) '(0 'org-warning t))
+; (list (concat "\\<" org-scheduled-string) '(0 'org-warning t))
+ (list (concat "\\<" org-deadline-string) '(0 'org-special-keyword t))
+ (list (concat "\\<" org-scheduled-string) '(0 'org-special-keyword t))
;; '("\\(\\s-\\|^\\)\\(\\*\\([a-zA-Z]+\\)\\*\\)\\([^a-zA-Z*]\\|$\\)"
;; (3 'bold))
;; '("\\(\\s-\\|^\\)\\(/\\([a-zA-Z]+\\)/\\)\\([^a-zA-Z*]\\|$\\)"
;; (3 'italic))
;; '("\\(\\s-\\|^\\)\\(_\\([a-zA-Z]+\\)_\\)\\([^a-zA-Z*]\\|$\\)"
;; (3 'underline))
- (list (concat "^\\*+[ \t]*\\<\\(" org-comment-string "\\)\\>")
- '(1 'org-warning t))
+; (list (concat "^\\*+[ \t]*\\<\\(" org-comment-string "\\)\\>")
+; '(1 'org-warning t))
+ (list (concat "^\\*+[ \t]*\\<\\(" org-comment-string
+ "\\|" org-quote-string "\\)\\>")
+ '(1 'org-special-keyword t))
'("^#.*" (0 'font-lock-comment-face t))
(if org-fontify-done-headline
(list (concat "^[*]+ +\\<\\(" org-done-string "\\)\\(.*\\)\\>")
@@ -1926,7 +1971,7 @@ The following commands are available:
'("^[ \t]*\\(\\(|\\|\\+-[-+]\\).*\\S-\\)"
(1 'org-table t))
'("^[ \t]*\\(:.*\\)" (1 'org-table t))
- '("| *\\(=[^|\n]*\\)" (1 'org-formula t))
+ '("| *\\(:?=[^|\n]*\\)" (1 'org-formula t))
'("^[ \t]*| *\\([#!$*_^]\\) *|" (1 'org-formula t))
)))
(set (make-local-variable 'org-font-lock-keywords)
@@ -2203,7 +2248,7 @@ or nil."
(shrink-window-if-larger-than-buffer (get-buffer-window "*Help*"))
(setq buffer-read-only nil)
(erase-buffer)
- (insert-buffer buf)
+ (insert-buffer-substring buf)
(let ((org-startup-truncated t)
(org-startup-folded t)
(org-startup-with-deadline-check nil))
@@ -2634,7 +2679,10 @@ heading be marked DONE, and the current time will be added."
(setq level (match-end 0))
(setq heading nil level 0))
(save-excursion
- (org-copy-subtree) ; We first only copy, in case something goes wrong
+ ;; We first only copy, in case something goes wrong
+ ;; we need to protect this-command, to avoid kill-region sets it,
+ ;; which would lead to duplication of subtrees
+ (let (this-command) (org-copy-subtree))
(set-buffer buffer)
;; Enforce org-mode for the archive buffer
(if (not (eq major-mode 'org-mode))
@@ -2691,7 +2739,7 @@ heading be marked DONE, and the current time will be added."
(if (not (eq this-buffer buffer)) (save-buffer))))
;; Here we are back in the original buffer. Everything seems to have
;; worked. So now cut the tree and finish up.
- (org-cut-subtree)
+ (let (this-command) (org-cut-subtree))
(if (looking-at "[ \t]*$") (kill-line))
(message "Subtree archived %s"
(if (eq this-buffer buffer)
@@ -2717,7 +2765,6 @@ At all other locations, this simply calls `ispell-complete-word'."
(skip-chars-backward "a-zA-Z0-9_:$")
(point)))
(texp (equal (char-before beg) ?\\))
- (form (equal (char-before beg) ?=))
(opt (equal (buffer-substring (max (point-at-bol) (- beg 2))
beg)
"#+"))
@@ -2734,9 +2781,6 @@ At all other locations, this simply calls `ispell-complete-word'."
(texp
(setq type :tex)
org-html-entities)
- (form
- (setq type :form)
- '(("sum") ("sumv") ("sumh")))
((string-match "\\`\\*+[ \t]*\\'"
(buffer-substring (point-at-bol) beg))
(setq type :todo)
@@ -4001,7 +4045,7 @@ With prefix ARG, go back that many times `org-agenda-ndays'."
(get-text-property (point) 'org-marker))
(org-agenda-show)))
-(defvar org-disable-diary nil) ;Dynamically-scoped param.
+(defvar org-disable-agenda-to-diary nil) ;Dynamically-scoped param.
(defun org-get-entries-from-diary (date)
"Get the (Emacs Calendar) diary entries for DATE."
@@ -4009,8 +4053,10 @@ With prefix ARG, go back that many times `org-agenda-ndays'."
(diary-display-hook '(fancy-diary-display))
(list-diary-entries-hook
(cons 'org-diary-default-entry list-diary-entries-hook))
+ (diary-file-name-prefix-function nil) ; turn this feature off
+ (diary-modify-entry-list-string-function 'org-modify-diary-entry-string)
entries
- (org-disable-diary t))
+ (org-disable-agenda-to-diary t))
(save-excursion
(save-window-excursion
(list-diary-entries date 1)))
@@ -4064,35 +4110,43 @@ date. Itt also removes lines that contain only whitespace."
(if (re-search-forward "^Org-mode dummy\n?" nil t)
(replace-match "")))
-;; Advise the add-to-diary-list function to allow org to jump to
-;; diary entries. Wrapped into eval-after-load to avoid loading
-;; advice unnecessarily
+;; Make sure entries from the diary have the right text properties.
(eval-after-load "diary-lib"
- '(defadvice add-to-diary-list (before org-mark-diary-entry activate)
- "Make the position visible."
- (if (and org-disable-diary ;; called from org-agenda
- (stringp string)
- (buffer-file-name))
- (add-text-properties
- 0 (length string)
- (list 'mouse-face 'highlight
- 'keymap org-agenda-keymap
- 'help-echo
- (format
- "mouse-2 or RET jump to diary file %s"
- (abbreviate-file-name (buffer-file-name)))
- 'org-agenda-diary-link t
- 'org-marker (org-agenda-new-marker (point-at-bol)))
- string))))
+ '(if (boundp 'diary-modify-entry-list-string-function)
+ ;; We can rely on the hook, nothing to do
+ nil
+ ;; Hook not avaiable, must use advice to make this work
+ (defadvice add-to-diary-list (before org-mark-diary-entry activate)
+ "Make the position visible."
+ (if (and org-disable-agenda-to-diary ;; called from org-agenda
+ (stringp string)
+ (buffer-file-name))
+ (setq string (org-modify-diary-entry-string string))))))
+
+(defun org-modify-diary-entry-string (string)
+ "Add text properties to string, allowing org-mode to act on it."
+ (add-text-properties
+ 0 (length string)
+ (list 'mouse-face 'highlight
+ 'keymap org-agenda-keymap
+ 'help-echo
+ (format
+ "mouse-2 or RET jump to diary file %s"
+ (abbreviate-file-name (buffer-file-name)))
+ 'org-agenda-diary-link t
+ 'org-marker (org-agenda-new-marker (point-at-bol)))
+ string)
+ string)
(defun org-diary-default-entry ()
"Add a dummy entry to the diary.
Needed to avoid empty dates which mess up holiday display."
;; Catch the error if dealing with the new add-to-diary-alist
- (condition-case nil
- (add-to-diary-list original-date "Org-mode dummy" "")
- (error
- (add-to-diary-list original-date "Org-mode dummy" "" nil))))
+ (when org-disable-agenda-to-diary
+ (condition-case nil
+ (add-to-diary-list original-date "Org-mode dummy" "")
+ (error
+ (add-to-diary-list original-date "Org-mode dummy" "" nil)))))
(defun org-add-file (&optional file)
"Add current file to the list of files in variable `org-agenda-files'.
@@ -4226,11 +4280,12 @@ function from a program - use `org-agenda-get-day-entries' instead."
file rtn results)
;; If this is called during org-agenda, don't return any entries to
;; the calendar. Org Agenda will list these entries itself.
- (if org-disable-diary (setq files nil))
+ (if org-disable-agenda-to-diary (setq files nil))
(while (setq file (pop files))
(setq rtn (apply 'org-agenda-get-day-entries file date args))
(setq results (append results rtn)))
- (concat (org-finalize-agenda-entries results) "\n")))
+ (if results
+ (concat (org-finalize-agenda-entries results) "\n"))))
(defun org-agenda-get-day-entries (file date &rest args)
"Does the work for `org-diary' and `org-agenda'.
@@ -5816,6 +5871,8 @@ See also the variable `org-reverse-note-order'."
"Detects a table line marked for automatic recalculation.")
(defconst org-table-recalculate-regexp "^[ \t]*| *[#*] *\\(|\\|$\\)"
"Detects a table line marked for automatic recalculation.")
+(defconst org-table-calculate-mark-regexp "^[ \t]*| *[!$^_#*] *\\(|\\|$\\)"
+ "Detects a table line marked for automatic recalculation.")
(defconst org-table-hline-regexp "^[ \t]*|-"
"Detects an org-type table hline.")
(defconst org-table1-hline-regexp "^[ \t]*\\+-[-+]"
@@ -6119,7 +6176,7 @@ Optional argument NEW may specify text to replace the current field content."
(cond
((and (not new) org-table-may-need-update)) ; Realignment will happen anyway
((org-at-table-hline-p)
- ;; FIXME: I use to enforce realign here, but I think this is not needed.
+ ;; FIXME: I used to enforce realign here, but I think this is not needed.
;; (setq org-table-may-need-update t)
)
((and (not new)
@@ -6133,15 +6190,17 @@ Optional argument NEW may specify text to replace the current field content."
(let* ((pos (point)) s
(col (org-table-current-column))
(num (nth (1- col) org-table-last-alignment))
- l f n o upd)
+ l f n o e)
(when (> col 0)
(skip-chars-backward "^|\n")
- (if (looking-at " *\\([^|\n]*?\\) *|")
+ (if (looking-at " *\\([^|\n]*?\\) *\\(|\\|$\\)")
(progn
(setq s (match-string 1)
o (match-string 0)
- l (max 1 (- (match-end 0) (match-beginning 0) 3)))
- (setq f (format (if num " %%%ds |" " %%-%ds |") l)
+ l (max 1 (- (match-end 0) (match-beginning 0) 3))
+ e (not (= (match-beginning 2) (match-end 2))))
+ (setq f (format (if num " %%%ds %s" " %%-%ds %s")
+ l (if e "|" (setq org-table-may-need-update t) ""))
n (format f s t t))
(if new
(if (<= (length new) l)
@@ -6254,7 +6313,7 @@ integer, it will be incremented while copying."
(progn
(if (and org-table-copy-increment
(string-match "^[0-9]+$" txt))
- (setq txt (format "%d" (+ (string-to-int txt) 1))))
+ (setq txt (format "%d" (+ (string-to-number txt) 1))))
(insert txt)
(org-table-maybe-recalculate-line)
(org-table-align))
@@ -6980,91 +7039,186 @@ If NLAST is a number, only the NLAST fields will actually be summed."
((equal n 0) nil)
(t n))))
+(defun org-table-get-vertical-vector (desc &optional tbeg col)
+ "Get a calc vector from a column, accorting to desctiptor DESC.
+Optional arguments TBEG and COL can give the beginning of the table and
+the current column, to avoid unnecessary parsing."
+ (save-excursion
+ (or tbeg (setq tbeg (org-table-begin)))
+ (or col (setq col (org-table-current-column)))
+ (let (beg end nn n n1 n2 l (thisline (org-current-line)) hline-list)
+ (cond
+ ((string-match "\\(I+\\)\\(-\\(I+\\)\\)?" desc)
+ (setq n1 (- (match-end 1) (match-beginning 1)))
+ (if (match-beginning 3)
+ (setq n2 (- (match-end 2) (match-beginning 3))))
+ (setq n (if n2 (max n1 n2) n1))
+ (setq n1 (if n2 (min n1 n2)))
+ (setq nn n)
+ (while (and (> nn 0)
+ (re-search-backward org-table-hline-regexp tbeg t))
+ (push (org-current-line) hline-list)
+ (setq nn (1- nn)))
+ (setq hline-list (nreverse hline-list))
+ (goto-line (nth (1- n) hline-list))
+ (when (re-search-forward org-table-dataline-regexp)
+ (org-table-goto-column col)
+ (setq beg (point)))
+ (goto-line (if n1 (nth (1- n1) hline-list) thisline))
+ (when (re-search-backward org-table-dataline-regexp)
+ (org-table-goto-column col)
+ (setq end (point)))
+ (setq l (apply 'append (org-table-copy-region beg end)))
+ (concat "[" (mapconcat (lambda (x) (setq x (org-trim x))
+ (if (equal x "") "0" x))
+ l ",") "]"))
+ ((string-match "\\([0-9]+\\)-\\([0-9]+\\)" desc)
+ (setq n1 (string-to-number (match-string 1 desc))
+ n2 (string-to-number (match-string 2 desc)))
+ (beginning-of-line 1)
+ (save-excursion
+ (when (re-search-backward org-table-dataline-regexp tbeg t n1)
+ (org-table-goto-column col)
+ (setq beg (point))))
+ (when (re-search-backward org-table-dataline-regexp tbeg t n2)
+ (org-table-goto-column col)
+ (setq end (point)))
+ (setq l (apply 'append (org-table-copy-region beg end)))
+ (concat "[" (mapconcat
+ (lambda (x) (setq x (org-trim x))
+ (if (equal x "") "0" x))
+ l ",") "]"))
+ ((string-match "\\([0-9]+\\)" desc)
+ (beginning-of-line 1)
+ (when (re-search-backward org-table-dataline-regexp tbeg t
+ (string-to-number (match-string 0 desc)))
+ (org-table-goto-column col)
+ (org-trim (org-table-get-field))))))))
+
(defvar org-table-formula-history nil)
-(defun org-table-get-formula (&optional equation)
+(defvar org-table-column-names nil
+ "Alist with column names, derived from the `!' line.")
+(defvar org-table-column-name-regexp nil
+ "Regular expression matching the current column names.")
+(defvar org-table-local-parameters nil
+ "Alist with parameter names, derived from the `$' line.")
+(defvar org-table-named-field-locations nil
+ "Alist with locations of named fields.")
+
+(defun org-table-get-formula (&optional equation named)
"Read a formula from the minibuffer, offer stored formula as default."
- (let* ((col (org-table-current-column))
+ (let* ((name (car (rassoc (list (org-current-line)
+ (org-table-current-column))
+ org-table-named-field-locations)))
+ (scol (if named
+ (if name name
+ (error "Not in a named field"))
+ (int-to-string (org-table-current-column))))
+ (dummy (and name (not named)
+ (not (y-or-n-p "Replace named-field formula with column equation? " ))
+ (error "Abort")))
(org-table-may-need-update nil)
(stored-list (org-table-get-stored-formulas))
- (stored (cdr (assoc col stored-list)))
+ (stored (cdr (assoc scol stored-list)))
(eq (cond
((and stored equation (string-match "^ *= *$" equation))
stored)
((stringp equation)
equation)
(t (read-string
- "Formula: " (or stored "") 'org-table-formula-history
- stored)))))
- (if (not (string-match "\\S-" eq))
- (error "Empty formula"))
+ (format "%s formula $%s=" (if named "Field" "Column") scol)
+ (or stored "") 'org-table-formula-history
+ ;stored
+ ))))
+ mustsave)
+ (when (not (string-match "\\S-" eq))
+ ;; remove formula
+ (setq stored-list (delq (assoc scol stored-list) stored-list))
+ (org-table-store-formulas stored-list)
+ (error "Formula removed"))
(if (string-match "^ *=?" eq) (setq eq (replace-match "" t t eq)))
(if (string-match " *$" eq) (setq eq (replace-match "" t t eq)))
+ (if (and name (not named))
+ ;; We set the column equation, delete the named one.
+ (setq stored-list (delq (assoc name stored-list) stored-list)
+ mustsave t))
(if stored
- (setcdr (assoc col stored-list) eq)
- (setq stored-list (cons (cons col eq) stored-list)))
- (if (not (equal stored eq))
+ (setcdr (assoc scol stored-list) eq)
+ (setq stored-list (cons (cons scol eq) stored-list)))
+ (if (or mustsave (not (equal stored eq)))
(org-table-store-formulas stored-list))
eq))
(defun org-table-store-formulas (alist)
"Store the list of formulas below the current table."
- (setq alist (sort alist (lambda (a b) (< (car a) (car b)))))
+ (setq alist (sort alist (lambda (a b) (string< (car a) (car b)))))
(save-excursion
(goto-char (org-table-end))
(if (looking-at "\\([ \t]*\n\\)*#\\+TBLFM:.*\n?")
(delete-region (point) (match-end 0)))
(insert "#+TBLFM: "
(mapconcat (lambda (x)
- (concat "$" (int-to-string (car x)) "=" (cdr x)))
+ (concat "$" (car x) "=" (cdr x)))
alist "::")
"\n")))
(defun org-table-get-stored-formulas ()
- "Return an alist withh the t=stored formulas directly after current table."
+ "Return an alist with the t=stored formulas directly after current table."
(interactive)
- (let (col eq eq-alist strings string)
+ (let (scol eq eq-alist strings string seen)
(save-excursion
(goto-char (org-table-end))
(when (looking-at "\\([ \t]*\n\\)*#\\+TBLFM: *\\(.*\\)")
(setq strings (org-split-string (match-string 2) " *:: *"))
(while (setq string (pop strings))
- (if (string-match "\\$\\([0-9]+\\) *= *\\(.*[^ \t]\\)" string)
- (setq col (string-to-number (match-string 1 string))
- eq (match-string 2 string)
- eq-alist (cons (cons col eq) eq-alist))))))
- eq-alist))
+ (when (string-match "\\$\\([a-zA-Z0-9]+\\) *= *\\(.*[^ \t]\\)" string)
+ (setq scol (match-string 1 string)
+ eq (match-string 2 string)
+ eq-alist (cons (cons scol eq) eq-alist))
+ (if (member scol seen)
+ (error "Double definition `$%s=' in TBLFM line, please fix by hand" scol)
+ (push scol seen))))))
+ (nreverse eq-alist)))
(defun org-table-modify-formulas (action &rest columns)
"Modify the formulas stored below the current table.
ACTION can be `remove', `insert', `swap'. For `swap', two column numbers are
expected, for the other action only a single column number is needed."
(let ((list (org-table-get-stored-formulas))
- (nmax (length (org-split-string (buffer-substring (point-at-bol) (point-at-eol))
- "|")))
- col col1 col2)
+ (nmax (length (org-split-string
+ (buffer-substring (point-at-bol) (point-at-eol))
+ "|")))
+ col col1 col2 scol si sc1 sc2)
(cond
((null list)) ; No action needed if there are no stored formulas
((eq action 'remove)
- (setq col (car columns))
- (org-table-replace-in-formulas list col "INVALID")
- (if (assoc col list) (setq list (delq (assoc col list) list)))
+ (setq col (car columns)
+ scol (int-to-string col))
+ (org-table-replace-in-formulas list scol "INVALID")
+ (if (assoc scol list) (setq list (delq (assoc scol list) list)))
(loop for i from (1+ col) upto nmax by 1 do
- (org-table-replace-in-formulas list i (1- i))
- (if (assoc i list) (setcar (assoc i list) (1- i)))))
+ (setq si (int-to-string i))
+ (org-table-replace-in-formulas list si (int-to-string (1- i)))
+ (if (assoc si list) (setcar (assoc si list)
+ (int-to-string (1- i))))))
((eq action 'insert)
(setq col (car columns))
(loop for i from nmax downto col by 1 do
- (org-table-replace-in-formulas list i (1+ i))
- (if (assoc i list) (setcar (assoc i list) (1+ i)))))
+ (setq si (int-to-string i))
+ (org-table-replace-in-formulas list si (int-to-string (1+ i)))
+ (if (assoc si list) (setcar (assoc si list)
+ (int-to-string (1+ i))))))
((eq action 'swap)
- (setq col1 (car columns) col2 (nth 1 columns))
- (org-table-replace-in-formulas list col1 "Z")
- (org-table-replace-in-formulas list col2 col1)
- (org-table-replace-in-formulas list "Z" col2)
- (if (assoc col1 list) (setcar (assoc col1 list) "Z"))
- (if (assoc col2 list) (setcar (assoc col2 list) col1))
- (if (assoc "Z" list) (setcar (assoc "Z" list) col2)))
+ (setq col1 (car columns) col2 (nth 1 columns)
+ sc1 (int-to-string col1) sc2 (int-to-string col2))
+ ;; Hopefully, ZqZ will never be a name in a table... FIXME:
+ (org-table-replace-in-formulas list sc1 "ZqZ")
+ (org-table-replace-in-formulas list sc2 sc1)
+ (org-table-replace-in-formulas list "ZqZ" sc2)
+ (if (assoc sc1 list) (setcar (assoc sc1 list) "ZqZ"))
+ (if (assoc sc2 list) (setcar (assoc sc2 list) sc1))
+ (if (assoc "ZqZ" list) (setcar (assoc "ZqZ" list) sc2)))
(t (error "Invalid action in `org-table-modify-formulas'")))
(if list (org-table-store-formulas list))))
@@ -7079,20 +7233,14 @@ expected, for the other action only a single column number is needed."
(setq s (replace-match s2 t t s)))
(setcdr elt s))))
-(defvar org-table-column-names nil
- "Alist with column names, derived from the `!' line.")
-(defvar org-table-column-name-regexp nil
- "Regular expression matching the current column names.")
-(defvar org-table-local-parameters nil
- "Alist with parameter names, derived from the `$' line.")
-
(defun org-table-get-specials ()
"Get the column nmaes and local parameters for this table."
(save-excursion
(let ((beg (org-table-begin)) (end (org-table-end))
- names name fields fields1 field cnt c v)
+ names name fields fields1 field cnt c v line col)
(setq org-table-column-names nil
- org-table-local-parameters nil)
+ org-table-local-parameters nil
+ org-table-named-field-locations nil)
(goto-char beg)
(when (re-search-forward "^[ \t]*| *! *\\(|.*\\)" end t)
(setq names (org-split-string (match-string 1) " *| *")
@@ -7117,13 +7265,15 @@ expected, for the other action only a single column number is needed."
fields (org-split-string (match-string 2) " *| *"))
(save-excursion
(beginning-of-line (if (equal c "_") 2 0))
+ (setq line (org-current-line) col 1)
(and (looking-at "^[ \t]*|[^|]*\\(|.*\\)")
(setq fields1 (org-split-string (match-string 1) " *| *"))))
- (while (setq field (pop fields))
- (setq v (pop fields1))
- (if (and (stringp field) (stringp v)
- (string-match "^[a-zA-Z][a-zA-Z0-9]*$" field))
- (push (cons field v) org-table-local-parameters)))))))
+ (while (and fields1 (setq field (pop fields)))
+ (setq v (pop fields1) col (1+ col))
+ (when (and (stringp field) (stringp v)
+ (string-match "^[a-zA-Z][a-zA-Z0-9]*$" field))
+ (push (cons field v) org-table-local-parameters)
+ (push (list field line col) org-table-named-field-locations)))))))
(defun org-this-word ()
;; Get the current word
@@ -7133,46 +7283,18 @@ expected, for the other action only a single column number is needed."
(buffer-substring-no-properties beg end))))
(defun org-table-maybe-eval-formula ()
- "Check if the current field starts with \"=\" and evaluate the formula."
+ "Check if the current field starts with \"=\" or \":=\".
+If yes, store the formula and apply it."
;; We already know we are in a table. Get field will only return a formula
;; when appropriate. It might return a separator line, but no problem.
(when org-table-formula-evaluate-inline
(let* ((field (org-trim (or (org-table-get-field) "")))
- (dfield (downcase field))
- col bolpos nlast)
- (when (equal (string-to-char field) ?=)
- (if (string-match "^\\(=sum[vh]?\\)\\([0-9]+\\)$" dfield)
- (setq nlast (1+ (string-to-number (match-string 2 dfield)))
- dfield (match-string 1 dfield)))
- (cond
- ((equal dfield "=sumh")
- (org-table-get-field
- nil (org-table-sum
- (save-excursion (org-table-goto-column 1) (point))
- (point) nlast)))
- ((member dfield '("=sum" "=sumv"))
- (setq col (org-table-current-column)
- bolpos (point-at-bol))
- (org-table-get-field
- nil (org-table-sum
- (save-excursion
- (goto-char (org-table-begin))
- (if (re-search-forward org-table-dataline-regexp bolpos t)
- (progn
- (goto-char (match-beginning 0))
- (org-table-goto-column col)
- (point))
- (error "No datalines above current")))
- (point) nlast)))
- ((and (string-match "^ *=" field)
- (fboundp 'calc-eval))
- (org-table-eval-formula nil field)))))))
-
-(defvar org-last-recalc-undo-list nil)
-(defcustom org-table-allow-line-recalculation t
- "FIXME:"
- :group 'org-table
- :type 'boolean)
+ named eq)
+ (when (string-match "^:?=\\(.+\\)" field)
+ (setq named (equal (string-to-char field) ?:)
+ eq (match-string 1 field))
+ (if (fboundp 'calc-eval)
+ (org-table-eval-formula (if named '(4) nil) eq))))))
(defvar org-recalc-commands nil
"List of commands triggering the reccalculation of a line.
@@ -7210,8 +7332,10 @@ of the new mark."
(col (org-table-current-column))
(forcenew (car (assoc newchar org-recalc-marks)))
epos new)
- (if l1 (setq newchar (char-to-string (read-char-exclusive "Change region to what mark? Type # * ! $ or SPC: "))
- forcenew (car (assoc newchar org-recalc-marks))))
+ (when l1
+ (message "Change region to what mark? Type # * ! $ or SPC: ")
+ (setq newchar (char-to-string (read-char-exclusive))
+ forcenew (car (assoc newchar org-recalc-marks))))
(if (and newchar (not forcenew))
(error "Invalid NEWCHAR `%s' in `org-table-rotate-recalc-marks'"
newchar))
@@ -7248,7 +7372,7 @@ of the new mark."
(defun org-table-maybe-recalculate-line ()
"Recompute the current line if marked for it, and if we haven't just done it."
(interactive)
- (and org-table-allow-line-recalculation
+ (and org-table-allow-automatic-line-recalculation
(not (and (memq last-command org-recalc-commands)
(equal org-last-recalc-line (org-current-line))))
(save-excursion (beginning-of-line 1)
@@ -7273,7 +7397,7 @@ When nil, simply write \"#ERROR\" in corrupted fields.")
(cons var (cons value modes)))
modes)
-(defun org-table-eval-formula (&optional ndown equation
+(defun org-table-eval-formula (&optional arg equation
suppress-align suppress-const
suppress-store)
"Replace the table field value at the cursor by the result of a calculation.
@@ -7283,64 +7407,46 @@ most exciting program ever written for GNU Emacs. So you need to have calc
installed in order to use this function.
In a table, this command replaces the value in the current field with the
-result of a formula. While nowhere near the computation options of a
-spreadsheet program, this is still very useful. There is no automatic
-updating of a calculated field, but the table will remember the last
-formula for each column. The command needs to be applied again after
-changing input fields.
-
-When called, the command first prompts for a formula, which is read in the
-minibuffer. Previously entered formulas are available through the history
-list, and the last used formula for each column is offered as a default.
+result of a formula. It also installes the formula as the \"current\" column
+formula, by storing it in a special line below the table. When called
+with a `C-u' prefix, the current field must ba a named field, and the
+formula is installed as valid in only this specific field.
+
+When called, the command first prompts for a formula, which is read in
+the minibuffer. Previously entered formulas are available through the
+history list, and the last used formula is offered as a default.
These stored formulas are adapted correctly when moving, inserting, or
deleting columns with the corresponding commands.
The formula can be any algebraic expression understood by the calc package.
-Before evaluation, variable substitution takes place: \"$\" is replaced by
-the field the cursor is currently in, and $1..$n reference the fields in
-the current row. Values from a *different* row can *not* be referenced
-here, so the command supports only horizontal computing. The formula can
-contain an optional printf format specifier after a semicolon, to reformat
-the result.
-
-A few examples for formulas:
- $1+$2 Sum of first and second field
- $1+$2;%.2f Same, and format result to two digits after dec.point
- exp($2)+exp($1) Math functions can be used
- $;%.1f Reformat current cell to 1 digit after dec.point
- ($3-32)*5/9 degrees F -> C conversion
-
-When called with a raw \\[universal-argument] prefix, the formula is applied to the current
-field, and to the same same column in all following rows, until reaching a
-horizontal line or the end of the table. When the command is called with a
-numeric prefix argument (like M-3 or C-7 or \\[universal-argument] 24), the formula is applied
-to the current row, and to the following n-1 rows (but not beyond a
-separator line).
-
-This function can also be called from Lisp programs and offers two additional
-Arguments: EQUATION can be the formula to apply. If this argument is given,
-the user will not be prompted. SUPPRESS-ALIGN is used to speed-up
-recursive calls by by-passing unnecessary aligns. SUPPRESS-CONST suppresses
-the interpretation of constants in the formula. SUPPRESS-STORE means the
-formula should not be stored, either because it is already stored, or because
-it is a modified equation that should not overwrite the stored one."
+For details, see the Org-mode manual.
+
+This function can also be called from Lisp programs and offers
+additional Arguments: EQUATION can be the formula to apply. If this
+argument is given, the user will not be prompted. SUPPRESS-ALIGN is
+used to speed-up recursive calls by by-passing unnecessary aligns.
+SUPPRESS-CONST suppresses the interpretation of constants in the
+formula, assuming that this has been done already outside the fuction.
+SUPPRESS-STORE means the formula should not be stored, either because
+it is already stored, or because it is a modified equation that should
+not overwrite the stored one."
(interactive "P")
- (setq ndown (if (equal ndown '(4)) 10000 (prefix-numeric-value ndown)))
(require 'calc)
(org-table-check-inside-data-field)
(org-table-get-specials)
(let* (fields
+ (ndown (if (integerp arg) arg 1))
(org-table-automatic-realign nil)
(case-fold-search nil)
(down (> ndown 1))
(formula (if (and equation suppress-store)
equation
- (org-table-get-formula equation)))
+ (org-table-get-formula equation (equal arg '(4)))))
(n0 (org-table-current-column))
(modes (copy-sequence org-calc-default-modes))
n form fmt x ev orig c)
;; Parse the format string. Since we have a lot of modes, this is
- ;; a lot of work.
+ ;; a lot of work. However, I think calc still uses most of the time.
(if (string-match ";" formula)
(let ((tmp (org-split-string formula ";")))
(setq formula (car tmp)
@@ -7374,15 +7480,23 @@ it is a modified equation that should not overwrite the stored one."
fields)))
(setq ndown (1- ndown))
(setq form (copy-sequence formula))
+ ;; Insert the references to fields in same row
(while (string-match "\\$\\([0-9]+\\)?" form)
(setq n (if (match-beginning 1)
- (string-to-int (match-string 1 form))
+ (string-to-number (match-string 1 form))
n0)
x (nth (1- n) fields))
(unless x (error "Invalid field specifier \"%s\""
(match-string 0 form)))
(if (equal x "") (setq x "0"))
(setq form (replace-match (concat "(" x ")") t t form)))
+ ;; Insert ranges in current column
+ (while (string-match "\\&[-I0-9]+" form)
+ (setq form (replace-match
+ (save-match-data
+ (org-table-get-vertical-vector (match-string 0 form)
+ nil n0))
+ t t form)))
(setq ev (calc-eval (cons form modes)
(if org-table-formula-numbers-only 'num)))
@@ -7424,24 +7538,32 @@ $1-> %s\n" orig formula form))
(unless (org-at-table-p) (error "Not at a table"))
(org-table-get-specials)
(let* ((eqlist (sort (org-table-get-stored-formulas)
- (lambda (a b) (< (car a) (car b)))))
+ (lambda (a b) (string< (car a) (car b)))))
(inhibit-redisplay t)
(line-re org-table-dataline-regexp)
(thisline (+ (if (bolp) 1 0) (count-lines (point-min) (point))))
(thiscol (org-table-current-column))
- beg end entry eql (cnt 0))
+ beg end entry eqlnum eqlname eql (cnt 0) eq a name)
;; Insert constants in all formulas
(setq eqlist
(mapcar (lambda (x)
(setcdr x (org-table-formula-substitute-names (cdr x)))
x)
eqlist))
+ ;; Split the equation list
+ (while (setq eq (pop eqlist))
+ (if (<= (string-to-char (car eq)) ?9)
+ (push eq eqlnum)
+ (push eq eqlname)))
+ (setq eqlnum (nreverse eqlnum) eqlname (nreverse eqlname))
(if all
(progn
(setq end (move-marker (make-marker) (1+ (org-table-end))))
(goto-char (setq beg (org-table-begin)))
- (if (re-search-forward org-table-recalculate-regexp end t)
+ (if (re-search-forward org-table-calculate-mark-regexp end t)
+ ;; This is a table with marked lines, only compute selected lines
(setq line-re org-table-recalculate-regexp)
+ ;; Move forward to the first non-header line
(if (and (re-search-forward org-table-dataline-regexp end t)
(re-search-forward org-table-hline-regexp end t)
(re-search-forward org-table-dataline-regexp end t))
@@ -7452,23 +7574,37 @@ $1-> %s\n" orig formula form))
(goto-char beg)
(and all (message "Re-applying formulas to full table..."))
(while (re-search-forward line-re end t)
- (unless (string-match "^ *[!$] *$" (org-table-get-field 1))
+ (unless (string-match "^ *[_^!$] *$" (org-table-get-field 1))
;; Unprotected line, recalculate
(and all (message "Re-applying formulas to full table...(line %d)"
(setq cnt (1+ cnt))))
(setq org-last-recalc-line (org-current-line))
- (setq eql eqlist)
+ (setq eql eqlnum)
(while (setq entry (pop eql))
(goto-line org-last-recalc-line)
- (org-table-goto-column (car entry) nil 'force)
+ (org-table-goto-column (string-to-number (car entry)) nil 'force)
(org-table-eval-formula nil (cdr entry) 'noalign 'nocst 'nostore))))
(goto-line thisline)
(org-table-goto-column thiscol)
(or noalign (and org-table-may-need-update (org-table-align))
- (and all (message "Re-applying formulas to %d lines...done" cnt)))))
+ (and all (message "Re-applying formulas to %d lines...done" cnt)))
+ ;; Now do the names fields
+ (while (setq eq (pop eqlname))
+ (setq name (car eq)
+ a (assoc name org-table-named-field-locations))
+ (when a
+ (message "Re-applying formula to named field: %s" name)
+ (goto-line (nth 1 a))
+ (org-table-goto-column (nth 2 a))
+ (org-table-eval-formula nil (cdr eq) 'noalign 'nocst 'nostore)))
+ ;; back to initial position
+ (goto-line thisline)
+ (org-table-goto-column thiscol)
+ (or noalign (and org-table-may-need-update (org-table-align))
+ (and all (message "Re-applying formulas...done")))))
(defun org-table-formula-substitute-names (f)
- "Replace $const with values in stirng F."
+ "Replace $const with values in string F."
(let ((start 0) a n1 n2 nn1 nn2 s (f1 f))
;; First, check for column names
(while (setq start (string-match org-table-column-name-regexp f start))
@@ -7505,6 +7641,136 @@ Parameters get priority."
(and (fboundp 'constants-get) (constants-get const))
"#UNDEFINED_NAME"))
+(defvar org-edit-formulas-map (make-sparse-keymap))
+(define-key org-edit-formulas-map "\C-c\C-c" 'org-finish-edit-formulas)
+(define-key org-edit-formulas-map "\C-c\C-q" 'org-abort-edit-formulas)
+(define-key org-edit-formulas-map "\C-c?" 'org-show-variable)
+
+(defvar org-pos)
+(defvar org-window-configuration)
+
+(defun org-table-edit-formulas ()
+ "Edit the formulas of the current table in a separate buffer."
+ (interactive)
+ (unless (org-at-table-p)
+ (error "Not at a table"))
+ (org-table-get-specials)
+ (let ((eql (org-table-get-stored-formulas))
+ (pos (move-marker (make-marker) (point)))
+ (wc (current-window-configuration))
+ entry loc s)
+ (switch-to-buffer-other-window "*Edit Formulas*")
+ (erase-buffer)
+ (fundamental-mode)
+ (set (make-local-variable 'org-pos) pos)
+ (set (make-local-variable 'org-window-configuration) wc)
+ (use-local-map org-edit-formulas-map)
+ (setq s "# Edit formulas and finish with `C-c C-c'.
+# Use `C-u C-c C-c' to also appy them immediately to the entire table.
+# Use `C-c ?' to get information about $name at point.
+# To cancel editing, press `C-c C-q'.\n")
+ (put-text-property 0 (length s) 'face 'font-lock-comment-face s)
+ (insert s)
+ (while (setq entry (pop eql))
+ (when (setq loc (assoc (car entry) org-table-named-field-locations))
+ (setq s (format "# Named formula, referring to column %d in line %d\n"
+ (nth 2 loc) (nth 1 loc)))
+ (put-text-property 0 (length s) 'face 'font-lock-comment-face s)
+ (insert s))
+ (setq s (concat "$" (car entry) "=" (cdr entry) "\n"))
+ (remove-text-properties 0 (length s) '(face nil) s)
+ (insert s))
+ (goto-char (point-min))
+ (message "Edit formulas and finish with `C-c C-c'.")))
+
+(defun org-show-variable ()
+ "Show the location/value of the $ expression at point."
+ (interactive)
+ (let (var (pos org-pos) (win (selected-window)) e)
+ (save-excursion
+ (or (looking-at "\\$") (skip-chars-backward "$a-zA-Z0-9"))
+ (if (looking-at "\\$\\([a-zA-Z0-9]+\\)")
+ (setq var (match-string 1))
+ (error "No variable at point")))
+ (cond
+ ((setq e (assoc var org-table-named-field-locations))
+ (switch-to-buffer-other-window (marker-buffer pos))
+ (goto-line (nth 1 e))
+ (org-table-goto-column (nth 2 e))
+ (select-window win)
+ (message "Named field, column %d of line %d" (nth 2 e) (nth 1 e)))
+ ((setq e (assoc var org-table-column-names))
+ (switch-to-buffer-other-window (marker-buffer pos))
+ (goto-char pos)
+ (goto-char (org-table-begin))
+ (if (re-search-forward (concat "^[ \t]*| *! *.*?| *\\(" var "\\) *|")
+ (org-table-end) t)
+ (progn
+ (goto-char (match-beginning 1))
+ (message "Named column (column %s)" (cdr e)))
+ (error "Column name not found"))
+ (select-window win))
+ ((string-match "^[0-9]$" var)
+ ;; column number
+ (switch-to-buffer-other-window (marker-buffer pos))
+ (goto-char pos)
+ (goto-char (org-table-begin))
+ (recenter 1)
+ (if (re-search-forward org-table-dataline-regexp
+ (org-table-end) t)
+ (progn
+ (goto-char (match-beginning 0))
+ (org-table-goto-column (string-to-number var))
+ (message "Column %s" var))
+ (error "Column name not found"))
+ (select-window win))
+ ((setq e (assoc var org-table-local-parameters))
+ (switch-to-buffer-other-window (marker-buffer pos))
+ (goto-char pos)
+ (goto-char (org-table-begin))
+ (if (re-search-forward (concat "^[ \t]*| *\\$ *.*?| *\\(" var "=\\)") nil t)
+ (progn
+ (goto-char (match-beginning 1))
+ (message "Local parameter."))
+ (error "Parameter not found"))
+ (select-window win))
+ (t
+ (cond
+ ((setq e (assoc var org-table-formula-constants))
+ (message "Constant: $%s=%s in `org-table-formula-constants'." var (cdr e)))
+ ((setq e (and (fboundp 'constants-get) (constants-get var)))
+ (message "Constant: $%s=%s, retrieved from `constants.el'." var e))
+ (t (error "Undefined name $%s" var)))))))
+
+(defun org-finish-edit-formulas (&optional arg)
+ "Parse the buffer for formula definitions and install them.
+With prefix ARG, apply the new formulas to the table."
+ (interactive "P")
+ (let ((pos org-pos) eql)
+ (goto-char (point-min))
+ (while (re-search-forward "^\\$\\([a-zA-Z0-9]+\\) *= *\\(.*?\\) *$" nil t)
+ (push (cons (match-string 1) (match-string 2)) eql))
+ (set-window-configuration org-window-configuration)
+ (select-window (get-buffer-window (marker-buffer pos)))
+ (goto-char pos)
+ (unless (org-at-table-p)
+ (error "Lost table position - cannot install formulae"))
+ (org-table-store-formulas eql)
+ (move-marker pos nil)
+ (kill-buffer "*Edit Formulas*")
+ (if arg
+ (org-table-recalculate 'all)
+ (message "New formulas installed - press C-u C-c C-c to apply."))))
+
+(defun org-abort-edit-formulas ()
+ "Abort editing formulas, without installing the changes."
+ (interactive)
+ (let ((pos org-pos))
+ (set-window-configuration org-window-configuration)
+ (select-window (get-buffer-window (marker-buffer pos)))
+ (goto-char pos)
+ (message "Formula editing aborted without installing changes")))
+
;;; The orgtbl minor mode
;; Define a minor mode which can be used in other modes in order to
@@ -7578,7 +7844,7 @@ table editor in arbitrary modes.")
(and c (setq minor-mode-map-alist
(cons c (delq c minor-mode-map-alist)))))
(set (make-local-variable (quote org-table-may-need-update)) t)
- (make-local-hook (quote before-change-functions))
+ (make-local-hook (quote before-change-functions)) ; needed for XEmacs
(add-hook 'before-change-functions 'org-before-change-function
nil 'local)
(set (make-local-variable 'org-old-auto-fill-inhibit-regexp)
@@ -7657,6 +7923,7 @@ to execute outside of tables."
'("\C-c+" org-table-sum)
'("\C-c|" org-table-toggle-vline-visibility)
'("\C-c=" org-table-eval-formula)
+ '("\C-c'" org-table-edit-formulas)
'("\C-c*" org-table-recalculate)
'([(control ?#)] org-table-rotate-recalc-marks)))
elt key fun cmd)
@@ -7714,8 +7981,9 @@ to execute outside of tables."
["Paste Rectangle" org-paste-special :active (org-at-table-p) :keys "C-c C-y"]
["Fill Rectangle" org-table-wrap-region :active (org-at-table-p) :keys "C-c C-q"])
"--"
- ["Eval Formula" org-table-eval-formula :active (org-at-table-p) :keys "C-c ="]
- ["Eval Formula Down " (org-table-eval-formula '(4)) :active (org-at-table-p) :keys "C-u C-c ="]
+ ["Set Column Formula" org-table-eval-formula :active (org-at-table-p) :keys "C-c ="]
+ ["Set Named Field Formula" (org-table-eval-formula '(4)) :active (org-at-table-p) :keys "C-u C-c ="]
+ ["Edit Formulas" org-table-edit-formulas :active (org-at-table-p) :keys "C-c '"]
["Recalculate line" org-table-recalculate :active (org-at-table-p) :keys "C-c *"]
["Recalculate all" (org-table-recalculate '(4)) :active (org-at-table-p) :keys "C-u C-c *"]
["Toggle Recalculate Mark" org-table-rotate-recalc-marks :active (org-at-table-p) :keys "C-c #"]
@@ -8395,14 +8663,13 @@ Does include HTML export options as well as TODO and CATEGORY stuff."
(insert s)))
(defun org-toggle-fixed-width-section (arg)
- "Toggle the fixed-width indicator at the beginning of lines in the region.
-If there is no active region, only acts on the current line.
-If the first non-white character in the first line of the region is a
-vertical bar \"|\", then the command removes the bar from all lines in
-the region. If the first character is not a bar, the command adds a
-bar to all lines, in the column given by the beginning of the region.
-
-If there is a numerical prefix ARG, create ARG new lines starting with \"|\"."
+ "Toggle the fixed-width export.
+If there is no active region, the QUOTE keyword at the current headline is
+inserted or removed. When present, it causes the text between this headline
+and the next to be exported as fixed-width text, and unmodified.
+If there is an active region, this command adds or removes a colon as the
+first character of this line. If the first character of a line is a colon,
+this line is also exported in fixed-width font."
(interactive "P")
(let* ((cc 0)
(regionp (org-region-active-p))
@@ -8411,23 +8678,33 @@ If there is a numerical prefix ARG, create ARG new lines starting with \"|\"."
(nlines (or arg (if (and beg end) (count-lines beg end) 1)))
(re "[ \t]*\\(:\\)")
off)
- (save-excursion
- (goto-char beg)
- (setq cc (current-column))
- (beginning-of-line 1)
- (setq off (looking-at re))
- (while (> nlines 0)
- (setq nlines (1- nlines))
- (beginning-of-line 1)
- (cond
- (arg
- (move-to-column cc t)
- (insert ":\n")
- (forward-line -1))
- ((and off (looking-at re))
- (replace-match "" t t nil 1))
- ((not off) (move-to-column cc t) (insert ":")))
- (forward-line 1)))))
+ (if regionp
+ (save-excursion
+ (goto-char beg)
+ (setq cc (current-column))
+ (beginning-of-line 1)
+ (setq off (looking-at re))
+ (while (> nlines 0)
+ (setq nlines (1- nlines))
+ (beginning-of-line 1)
+ (cond
+ (arg
+ (move-to-column cc t)
+ (insert ":\n")
+ (forward-line -1))
+ ((and off (looking-at re))
+ (replace-match "" t t nil 1))
+ ((not off) (move-to-column cc t) (insert ":")))
+ (forward-line 1)))
+ (save-excursion
+ (org-back-to-heading)
+ (if (looking-at (concat outline-regexp
+ "\\( +\\<" org-quote-string "\\>\\)"))
+ (replace-match "" t t nil 1)
+ (if (looking-at outline-regexp)
+ (progn
+ (goto-char (match-end 0))
+ (insert " " org-quote-string))))))))
(defun org-export-as-html-and-open (arg)
"Export the outline as HTML and immediately open it with a browser.
@@ -8456,28 +8733,30 @@ headlines. The default is 3. Lower levels will become bulleted lists."
(setq-default org-deadline-line-regexp org-deadline-line-regexp)
(setq-default org-done-string org-done-string)
(let* ((region-p (org-region-active-p))
- (region
- (buffer-substring
- (if region-p (region-beginning) (point-min))
- (if region-p (region-end) (point-max))))
- (all_lines
- (org-skip-comments (org-split-string region "[\r\n]")))
- (lines (org-export-find-first-heading-line all_lines))
- (level 0) (line "") (origline "") txt todo
- (umax nil)
- (filename (concat (file-name-sans-extension (buffer-file-name))
- ".html"))
- (buffer (find-file-noselect filename))
- (levels-open (make-vector org-level-max nil))
- (date (format-time-string "%Y/%m/%d" (current-time)))
+ (region
+ (buffer-substring
+ (if region-p (region-beginning) (point-min))
+ (if region-p (region-end) (point-max))))
+ (all_lines
+ (org-skip-comments (org-split-string region "[\r\n]")))
+ (lines (org-export-find-first-heading-line all_lines))
+ (level 0) (line "") (origline "") txt todo
+ (umax nil)
+ (filename (concat (file-name-sans-extension (buffer-file-name))
+ ".html"))
+ (buffer (find-file-noselect filename))
+ (levels-open (make-vector org-level-max nil))
+ (date (format-time-string "%Y/%m/%d" (current-time)))
(time (format-time-string "%X" (current-time)))
- (author user-full-name)
+ (author user-full-name)
(title (buffer-name))
- (options nil)
+ (options nil)
+ (quote-re (concat "^\\*+[ \t]*" org-quote-string "\\>"))
+ (inquote nil)
(email user-mail-address)
- (language org-export-default-language)
+ (language org-export-default-language)
(text nil)
- (lang-words nil)
+ (lang-words nil)
(head-count 0) cnt
(start 0)
table-open type
@@ -8491,22 +8770,22 @@ headlines. The default is 3. Lower levels will become bulleted lists."
;; Search for the export key lines
(org-parse-key-lines)
(setq lang-words (or (assoc language org-export-language-setup)
- (assoc "en" org-export-language-setup)))
+ (assoc "en" org-export-language-setup)))
;; Switch to the output buffer
(if (or hidden (not org-export-html-show-new-buffer))
- (set-buffer buffer)
+ (set-buffer buffer)
(switch-to-buffer-other-window buffer))
(erase-buffer)
(fundamental-mode)
(let ((case-fold-search nil))
(if options (org-parse-export-options options))
(setq umax (if arg (prefix-numeric-value arg)
- org-export-headline-levels))
+ org-export-headline-levels))
;; File header
(insert (format
- "<html lang=\"%s\"><head>
+ "<html lang=\"%s\"><head>
<title>%s</title>
<meta http-equiv=\"Content-Type\" content=\"text/html\">
<meta name=generator content=\"Org-mode\">
@@ -8514,15 +8793,15 @@ headlines. The default is 3. Lower levels will become bulleted lists."
<meta name=author content=\"%s\">
</head><body>
"
- language (org-html-expand title) date time author))
+ language (org-html-expand title) date time author))
(if title (insert (concat "<H1 align=\"center\">"
(org-html-expand title) "</H1>\n")))
(if author (insert (concat (nth 1 lang-words) ": " author "\n")))
(if email (insert (concat "<a href=\"mailto:" email "\">&lt;"
- email "&gt;</a>\n")))
+ email "&gt;</a>\n")))
(if (or author email) (insert "<br>\n"))
(if (and date time) (insert (concat (nth 2 lang-words) ": "
- date " " time "<br>\n")))
+ date " " time "<br>\n")))
(if text (insert (concat "<p>\n" (org-html-expand text))))
(if org-export-with-toc
(progn
@@ -8577,123 +8856,141 @@ headlines. The default is 3. Lower levels will become bulleted lists."
))
(setq head-count 0)
(org-init-section-numbers)
+
(while (setq line (pop lines) origline line)
- ;; Protect the links
- (setq start 0)
- (while (string-match org-link-maybe-angles-regexp line start)
- (setq start (match-end 0))
- (setq line (replace-match
- (concat "\000" (match-string 1 line) "\000")
- t t line)))
-
- ;; replace "<" and ">" by "&lt;" and "&gt;"
- ;; handle @<..> HTML tags (replace "@&gt;..&lt;" by "<..>")
- (setq line (org-html-expand line))
-
- ;; Verbatim lines
- (if (and org-export-with-fixed-width
- (string-match "^[ \t]*:\\(.*\\)" line))
+ ;; end of quote?
+ (when (and inquote (string-match "^\\*+" line))
+ (insert "</pre>\n")
+ (setq inquote nil))
+ ;; inquote
+ (if inquote
(progn
- (let ((l (match-string 1 line)))
- (while (string-match " " l)
- (setq l (replace-match "&nbsp;" t t l)))
- (insert "\n<span style='font-family:Courier'>"
- l "</span>"
- (if (and lines
- (not (string-match "^[ \t]+\\(:.*\\)"
- (car lines))))
- "<br>\n" "\n"))))
+ (insert line "\n")
+ (setq line (org-html-expand line))) ;;????? FIXME: not needed?
+
+ ;; Protect the links
(setq start 0)
- (while (string-match org-protected-link-regexp line start)
- (setq start (- (match-end 0) 2))
- (setq type (match-string 1 line))
- (cond
- ((member type '("http" "https" "ftp" "mailto" "news"))
- ;; standard URL
- (setq line (replace-match
-; "<a href=\"\\1:\\2\">&lt;\\1:\\2&gt;</a>"
- "<a href=\"\\1:\\2\">\\1:\\2</a>"
- nil nil line)))
- ((string= type "file")
- ;; FILE link
- (let* ((filename (match-string 2 line))
- (abs-p (file-name-absolute-p filename))
- (thefile (if abs-p (expand-file-name filename) filename))
- (thefile (save-match-data
- (if (string-match ":[0-9]+$" thefile)
- (replace-match "" t t thefile)
- thefile)))
- (file-is-image-p
- (save-match-data
- (string-match (org-image-file-name-regexp) thefile))))
+ (while (string-match org-link-maybe-angles-regexp line start)
+ (setq start (match-end 0))
+ (setq line (replace-match
+ (concat "\000" (match-string 1 line) "\000")
+ t t line)))
+
+ ;; replace "<" and ">" by "&lt;" and "&gt;"
+ ;; handle @<..> HTML tags (replace "@&gt;..&lt;" by "<..>")
+ (setq line (org-html-expand line))
+
+ ;; Verbatim lines
+ (if (and org-export-with-fixed-width
+ (string-match "^[ \t]*:\\(.*\\)" line))
+ (progn
+ (let ((l (match-string 1 line)))
+ (while (string-match " " l)
+ (setq l (replace-match "&nbsp;" t t l)))
+ (insert "\n<span style='font-family:Courier'>"
+ l "</span>"
+ (if (and lines
+ (not (string-match "^[ \t]+\\(:.*\\)"
+ (car lines))))
+ "<br>\n" "\n"))))
+
+ (setq start 0)
+ (while (string-match org-protected-link-regexp line start)
+ (setq start (- (match-end 0) 2))
+ (setq type (match-string 1 line))
+ (cond
+ ((member type '("http" "https" "ftp" "mailto" "news"))
+ ;; standard URL
(setq line (replace-match
- (if (and org-export-html-inline-images
- file-is-image-p)
- (concat "<img src=\"" thefile "\"/>")
- (concat "<a href=\"" thefile "\">\\1:\\2</a>"))
- nil nil line))))
-
- ((member type '("bbdb" "vm" "wl" "rmail" "gnus" "shell"))
- (setq line (replace-match
- "<i>&lt;\\1:\\2&gt;</i>" nil nil line)))))
-
- ;; TODO items
- (if (and (string-match org-todo-line-regexp line)
- (match-beginning 2))
- (if (equal (match-string 2 line) org-done-string)
+ ; "<a href=\"\\1:\\2\">&lt;\\1:\\2&gt;</a>"
+ "<a href=\"\\1:\\2\">\\1:\\2</a>"
+ nil nil line)))
+ ((string= type "file")
+ ;; FILE link
+ (let* ((filename (match-string 2 line))
+ (abs-p (file-name-absolute-p filename))
+ (thefile (if abs-p (expand-file-name filename) filename))
+ (thefile (save-match-data
+ (if (string-match ":[0-9]+$" thefile)
+ (replace-match "" t t thefile)
+ thefile)))
+ (file-is-image-p
+ (save-match-data
+ (string-match (org-image-file-name-regexp) thefile))))
(setq line (replace-match
- "<span style='color:green'>\\2</span>"
- nil nil line 2))
- (setq line (replace-match "<span style='color:red'>\\2</span>"
- nil nil line 2))))
+ (if (and org-export-html-inline-images
+ file-is-image-p)
+ (concat "<img src=\"" thefile "\"/>")
+ (concat "<a href=\"" thefile "\">\\1:\\2</a>"))
+ nil nil line))))
- ;; DEADLINES
- (if (string-match org-deadline-line-regexp line)
- (progn
- (if (save-match-data
- (string-match "<a href"
- (substring line 0 (match-beginning 0))))
- nil ; Don't do the replacement - it is inside a link
- (setq line (replace-match "<span style='color:red'>\\&</span>"
- nil nil line 1)))))
+ ((member type '("bbdb" "vm" "wl" "rmail" "gnus" "shell"))
+ (setq line (replace-match
+ "<i>&lt;\\1:\\2&gt;</i>" nil nil line)))))
+
+ ;; TODO items
+ (if (and (string-match org-todo-line-regexp line)
+ (match-beginning 2))
+ (if (equal (match-string 2 line) org-done-string)
+ (setq line (replace-match
+ "<span style='color:green'>\\2</span>"
+ nil nil line 2))
+ (setq line (replace-match "<span style='color:red'>\\2</span>"
+ nil nil line 2))))
+
+ ;; DEADLINES
+ (if (string-match org-deadline-line-regexp line)
+ (progn
+ (if (save-match-data
+ (string-match "<a href"
+ (substring line 0 (match-beginning 0))))
+ nil ; Don't do the replacement - it is inside a link
+ (setq line (replace-match "<span style='color:red'>\\&</span>"
+ nil nil line 1)))))
- (cond
- ((string-match "^\\(\\*+\\)[ \t]*\\(.*\\)" line)
- ;; This is a headline
- (setq level (- (match-end 1) (match-beginning 1))
- txt (match-string 2 line))
- (if (<= level umax) (setq head-count (+ head-count 1)))
- (org-html-level-start level txt umax
- (and org-export-with-toc (<= level umax))
- head-count))
-
- ((and org-export-with-tables
- (string-match "^\\([ \t]*\\)\\(|\\|\\+-+\\+\\)" line))
- (if (not table-open)
- ;; New table starts
- (setq table-open t table-buffer nil table-orig-buffer nil))
- ;; Accumulate lines
- (setq table-buffer (cons line table-buffer)
- table-orig-buffer (cons origline table-orig-buffer))
- (when (or (not lines)
- (not (string-match "^\\([ \t]*\\)\\(|\\|\\+-+\\+\\)"
- (car lines))))
- (setq table-open nil
- table-buffer (nreverse table-buffer)
- table-orig-buffer (nreverse table-orig-buffer))
- (insert (org-format-table-html table-buffer table-orig-buffer))))
- (t
- ;; Normal lines
- ;; Lines starting with "-", and empty lines make new paragraph.
- (if (string-match "^ *-\\|^[ \t]*$" line) (insert "<p>"))
- (insert line (if org-export-preserve-breaks "<br>\n" "\n"))))
- ))
- (if org-export-html-with-timestamp
- (insert org-export-html-html-helper-timestamp))
- (insert "</body>\n</html>\n")
- (normal-mode)
- (save-buffer)
- (goto-char (point-min)))))
+
+ (cond
+ ((string-match "^\\(\\*+\\)[ \t]*\\(.*\\)" line)
+ ;; This is a headline
+ (setq level (- (match-end 1) (match-beginning 1))
+ txt (match-string 2 line))
+ (if (<= level umax) (setq head-count (+ head-count 1)))
+ (org-html-level-start level txt umax
+ (and org-export-with-toc (<= level umax))
+ head-count)
+ ;; QUOTES
+ (when (string-match quote-re line)
+ (insert "<pre>")
+ (setq inquote t)))
+
+ ((and org-export-with-tables
+ (string-match "^\\([ \t]*\\)\\(|\\|\\+-+\\+\\)" line))
+ (if (not table-open)
+ ;; New table starts
+ (setq table-open t table-buffer nil table-orig-buffer nil))
+ ;; Accumulate lines
+ (setq table-buffer (cons line table-buffer)
+ table-orig-buffer (cons origline table-orig-buffer))
+ (when (or (not lines)
+ (not (string-match "^\\([ \t]*\\)\\(|\\|\\+-+\\+\\)"
+ (car lines))))
+ (setq table-open nil
+ table-buffer (nreverse table-buffer)
+ table-orig-buffer (nreverse table-orig-buffer))
+ (insert (org-format-table-html table-buffer table-orig-buffer))))
+ (t
+ ;; Normal lines
+ ;; Lines starting with "-", and empty lines make new paragraph.
+ ;; FIXME: Should we add + and *?
+ (if (string-match "^ *-\\|^[ \t]*$" line) (insert "<p>"))
+ (insert line (if org-export-preserve-breaks "<br>\n" "\n"))))
+ )))
+ (if org-export-html-with-timestamp
+ (insert org-export-html-html-helper-timestamp))
+ (insert "</body>\n</html>\n")
+ (normal-mode)
+ (save-buffer)
+ (goto-char (point-min)))))
(defun org-format-table-html (lines olines)
"Find out which HTML converter to use and return the HTML code."
@@ -9003,7 +9300,7 @@ stacked delimiters is N. Escaping delimiters is not possible."
(if (string-match "\\`[A-Z]\\'" number-string)
(aset org-section-numbers i
(- (string-to-char number-string) ?A -1))
- (aset org-section-numbers i (string-to-int number-string)))
+ (aset org-section-numbers i (string-to-number number-string)))
(pop numbers))
(setq i (1- i)))))
@@ -9101,6 +9398,7 @@ When LEVEL is non-nil, increase section numbers on that level."
(define-key org-mode-map "\C-c+" 'org-table-sum)
(define-key org-mode-map "\C-c|" 'org-table-toggle-vline-visibility)
(define-key org-mode-map "\C-c=" 'org-table-eval-formula)
+(define-key org-mode-map "\C-c'" 'org-table-edit-formulas)
(define-key org-mode-map "\C-c*" 'org-table-recalculate)
(define-key org-mode-map [(control ?#)] 'org-table-rotate-recalc-marks)
(define-key org-mode-map "\C-c~" 'org-table-create-with-table.el)
@@ -9385,11 +9683,14 @@ scanning the buffer for these lines and updating the information."
["Fill Rectangle" org-table-wrap-region (org-at-table-p)])
"--"
("Calculate"
- ["Eval Formula" org-table-eval-formula (org-at-table-p)]
- ["Eval Formula Down" (org-table-eval-formula '(4)) :active (org-at-table-p) :keys "C-u C-c ="]
+ ["Set Column Formula" org-table-eval-formula (org-at-table-p)]
+ ["Set Named Field Formula" (org-table-eval-formula '(4)) :active (org-at-table-p) :keys "C-u C-c ="]
+ ["Edit Formulas" org-table-edit-formulas (org-at-table-p)]
+ "--"
["Recalculate line" org-table-recalculate (org-at-table-p)]
["Recalculate all" (lambda () (interactive) (org-table-recalculate '(4))) :active (org-at-table-p) :keys "C-u C-c *"]
["Toggle Recalculate Mark" org-table-rotate-recalc-marks (org-at-table-p)]
+ "--"
["Sum Column/Rectangle" org-table-sum
(or (org-at-table-p) (org-region-active-p))]
["Which Column?" org-table-current-column (org-at-table-p)])
@@ -9768,14 +10069,23 @@ Show the heading too, if it is currently invisible."
"\\):[ \t]*"
(if org-noutline-p "\\(.+\\)" "\\([^\n\r]+\\)")))
-;; Advise the bookmark-jump function to make jump position visible
-;; Wrapped into eval-after-load to avoid loading advice unnecessarily
+;; Make `bookmark-jump' show the jump location if it was hidden.
(eval-after-load "bookmark"
- '(defadvice bookmark-jump (after org-make-visible activate)
- "Make the position visible."
- (and (eq major-mode 'org-mode)
- (org-invisible-p)
- (org-show-hierarchy-above))))
+ '(if (boundp 'bookmark-after-jump-hook)
+ ;; We can use the hook
+ (add-hook 'bookmark-after-jump-hook 'org-bookmark-jump-unhide)
+ ;; Hook not available, use advice
+ (defadvice bookmark-jump (after org-make-visible activate)
+ "Make the position visible."
+ (org-bookmark-jump-unhide))))
+
+(defun org-bookmark-jump-unhide ()
+ "Unhide the current position, to show the bookmark location."
+ (and (eq major-mode 'org-mode)
+ (or (org-invisible-p)
+ (save-excursion (goto-char (max (point-min) (1- (point))))
+ (org-invisible-p)))
+ (org-show-hierarchy-above)))
;;; Finish up
diff --git a/lisp/textmodes/page-ext.el b/lisp/textmodes/page-ext.el
index c8828e1a6d..365ed19d9c 100644
--- a/lisp/textmodes/page-ext.el
+++ b/lisp/textmodes/page-ext.el
@@ -1,6 +1,7 @@
;;; page-ext.el --- extended page handling commands
-;; Copyright (C) 1990, 1991, 1993, 1994 Free Software Foundation
+;; Copyright (C) 1990, 1991, 1993, 1994, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: Robert J. Chassell <bob@gnu.org>
;; Keywords: wp data
diff --git a/lisp/textmodes/page.el b/lisp/textmodes/page.el
index 712b1ef12a..ffb4c89f2d 100644
--- a/lisp/textmodes/page.el
+++ b/lisp/textmodes/page.el
@@ -1,6 +1,6 @@
;;; page.el --- page motion commands for Emacs
-;; Copyright (C) 1985 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: wp convenience
diff --git a/lisp/textmodes/paragraphs.el b/lisp/textmodes/paragraphs.el
index c4f7750fe7..f4af34fdab 100644
--- a/lisp/textmodes/paragraphs.el
+++ b/lisp/textmodes/paragraphs.el
@@ -1,7 +1,7 @@
;;; paragraphs.el --- paragraph and sentence parsing
-;; Copyright (C) 1985, 86, 87, 91, 94, 95, 96, 1997, 1999, 2000, 2001, 2004
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1987, 1991, 1994, 1995, 1996, 1997, 1999, 2000,
+;; 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: wp
@@ -358,7 +358,7 @@ If ARG is negative, point is put at end of this paragraph, mark is put
at beginning of this or a previous paragraph.
Interactively, if this command is repeated
-or (in Transient Mark mode) if the mark is active,
+or (in Transient Mark mode) if the mark is active,
it marks the next ARG paragraphs after the ones already marked."
(interactive "p\np")
(unless arg (setq arg 1))
diff --git a/lisp/textmodes/picture.el b/lisp/textmodes/picture.el
index fd788a772e..5d528dec10 100644
--- a/lisp/textmodes/picture.el
+++ b/lisp/textmodes/picture.el
@@ -1,6 +1,7 @@
;;; picture.el --- "Picture mode" -- editing using quarter-plane screen model
-;; Copyright (C) 1985, 1994, 2002, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1994, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: K. Shane Hartman
;; Maintainer: FSF
@@ -710,7 +711,7 @@ You can manipulate rectangles with these commands:
C-c C-r Draw a rectangular box around mark and point.
\\[copy-rectangle-to-register] Copies a rectangle to a register.
\\[advertised-undo] Can undo effects of rectangle overlay commands
- commands if invoked soon enough.
+ if invoked soon enough.
You can return to the previous mode with:
C-c C-c Which also strips trailing whitespace from every line.
Stripping is suppressed by supplying an argument.
diff --git a/lisp/textmodes/po.el b/lisp/textmodes/po.el
index cf80f02090..c9af801bef 100644
--- a/lisp/textmodes/po.el
+++ b/lisp/textmodes/po.el
@@ -1,6 +1,7 @@
;;; po.el --- basic support of PO translation files -*- coding: latin-1; -*-
-;; Copyright (C) 1995-1998, 2000-2002 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Authors: François Pinard <pinard@iro.umontreal.ca>,
;; Greg McGary <gkm@magilla.cichlid.com>,
diff --git a/lisp/textmodes/refbib.el b/lisp/textmodes/refbib.el
index 7fcfc44fb2..99e2b78099 100644
--- a/lisp/textmodes/refbib.el
+++ b/lisp/textmodes/refbib.el
@@ -1,8 +1,9 @@
;;; refbib.el --- convert refer-style references to ones usable by Latex bib
-;; Copyright (C) 1989, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1989, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Henry Kautz <kautz@research.att.com>
+;; Maintainer: FSF
;; Keywords: bib, tex
;; This file is part of GNU Emacs.
@@ -221,37 +222,49 @@ This is in addition to the `r2b-capitalize-title-stop-words'.")
(defvar r2b-error-found nil)
+(eval-when-compile
+ (defvar r2b-variables) (defvar r2bv-address) (defvar r2bv-annote)
+ (defvar r2bv-author) (defvar r2bv-booktitle) (defvar r2bv-date)
+ (defvar r2bv-decade) (defvar r2bv-editor) (defvar r2bv-entry-kind)
+ (defvar r2bv-institution) (defvar r2bv-journal) (defvar r2bv-keywords)
+ (defvar r2bv-kn) (defvar r2bv-month) (defvar r2bv-note)
+ (defvar r2bv-number) (defvar r2bv-ordering) (defvar r2bv-organization)
+ (defvar r2bv-pages) (defvar r2bv-primary-author) (defvar r2bv-publisher)
+ (defvar r2bv-school) (defvar r2bv-title) (defvar r2bv-title-first-word)
+ (defvar r2bv-tr) (defvar r2bv-type) (defvar r2bv-volume)
+ (defvar r2bv-where) (defvar r2bv-year))
+
(setq r2b-variables '(
- r2b-error-found
- r2bv-author
- r2bv-primary-author
- r2bv-date
- r2bv-year
- r2bv-decade
- r2bv-month
- r2bv-title
- r2bv-title-first-word
- r2bv-editor
- r2bv-annote
- r2bv-tr
- r2bv-address
- r2bv-institution
- r2bv-keywords
- r2bv-booktitle
- r2bv-journal
- r2bv-volume
- r2bv-number
- r2bv-pages
- r2bv-booktitle
- r2bv-kn
- r2bv-publisher
- r2bv-organization
- r2bv-school
- r2bv-type
- r2bv-where
- r2bv-note
- r2bv-ordering
- ))
+ r2b-error-found
+ r2bv-author
+ r2bv-primary-author
+ r2bv-date
+ r2bv-year
+ r2bv-decade
+ r2bv-month
+ r2bv-title
+ r2bv-title-first-word
+ r2bv-editor
+ r2bv-annote
+ r2bv-tr
+ r2bv-address
+ r2bv-institution
+ r2bv-keywords
+ r2bv-booktitle
+ r2bv-journal
+ r2bv-volume
+ r2bv-number
+ r2bv-pages
+ r2bv-booktitle
+ r2bv-kn
+ r2bv-publisher
+ r2bv-organization
+ r2bv-school
+ r2bv-type
+ r2bv-where
+ r2bv-note
+ r2bv-ordering
+ ))
(defun r2b-clear-variables ()
"Set all global vars used by r2b to nil."
@@ -632,14 +645,14 @@ but not a publisher."
)
-(defun r2b-convert-record (output-name)
- "Transform current bib entry and append to buffer OUTPUT;
-do \"M-x r2b-help\" for more info."
+(defun r2b-convert-record (output)
+ "Transform current bib entry and append to buffer OUTPUT.
+Do `\\[r2b-help]' for more info."
(interactive
(list (read-string "Output to buffer: " r2b-out-buf-name)))
(let (rec-end rec-begin not-done)
- (setq r2b-out-buf-name output-name)
- (setq r2b-out-buf (get-buffer-create output-name))
+ (setq r2b-out-buf-name output)
+ (setq r2b-out-buf (get-buffer-create output))
(setq r2b-in-buf (current-buffer))
(set-buffer r2b-out-buf)
(goto-char (point-max))
@@ -669,9 +682,9 @@ do \"M-x r2b-help\" for more info."
))
-(defun r2b-convert-buffer (output-name)
+(defun r2b-convert-buffer (output)
"Transform current buffer and append to buffer OUTPUT.
-Do `M-x r2b-help' for more info."
+Do `\\[r2b-help]' for more info."
(interactive
(list (read-string "Output to buffer: " r2b-out-buf-name)))
(save-excursion
@@ -682,7 +695,7 @@ Do `M-x r2b-help' for more info."
(goto-char (point-min))
(message "Working, please be patient...")
(sit-for 0)
- (while (r2b-convert-record output-name) t)
+ (while (r2b-convert-record output) t)
(message "Done, results in %s, errors in %s"
r2b-out-buf-name r2b-log-name)
)
diff --git a/lisp/textmodes/refer.el b/lisp/textmodes/refer.el
index 3ff01ef5c7..82f06576c1 100644
--- a/lisp/textmodes/refer.el
+++ b/lisp/textmodes/refer.el
@@ -1,6 +1,7 @@
;;; refer.el --- look up references in bibliography files
-;; Copyright (C) 1992, 1996, 2001, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1996, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Ashwin Ram <ashwin@cc.gatech.edu>
;; Maintainer: Gernot Heiser <gernot@acm.org>
diff --git a/lisp/textmodes/refill.el b/lisp/textmodes/refill.el
index d49513ccf3..bf8938a7ec 100644
--- a/lisp/textmodes/refill.el
+++ b/lisp/textmodes/refill.el
@@ -1,6 +1,6 @@
;;; refill.el --- `auto-fill' by refilling paragraphs on changes
-;; Copyright (C) 2000, 2003, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Dave Love <fx@gnu.org>
;; Maintainer: Miles Bader <miles@gnu.org>
diff --git a/lisp/textmodes/reftex-auc.el b/lisp/textmodes/reftex-auc.el
index 1c6741806f..f11d607f3e 100644
--- a/lisp/textmodes/reftex-auc.el
+++ b/lisp/textmodes/reftex-auc.el
@@ -1,6 +1,7 @@
;;; reftex-auc.el --- RefTeX's interface to AUCTeX
-;; Copyright (c) 1997, 1998, 1999, 2000, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Carsten Dominik <dominik@science.uva.nl>
;; Version: 4.28
@@ -75,7 +76,7 @@ What is being used depends upon `reftex-plug-into-AUCTeX'."
(defun reftex-arg-index-tag (optional &optional prompt &rest args)
- "Prompt for an index tag with completion.
+ "Prompt for an index tag with completion.
This is the name of an index, not the entry."
(let (tag taglist)
(setq prompt (concat (if optional "(Optional) " "")
@@ -85,8 +86,8 @@ This is the name of an index, not the entry."
;; Use RefTeX completion
(progn
(reftex-access-scan-info nil)
- (setq taglist
- (cdr (assoc 'index-tags
+ (setq taglist
+ (cdr (assoc 'index-tags
(symbol-value reftex-docstruct-symbol)))
tag (completing-read prompt (mapcar 'list taglist))))
;; Just ask like AUCTeX does.
@@ -131,7 +132,7 @@ argument identify one of multiple indices."
;; Replace AUCTeX functions with RefTeX functions.
;; Which functions are replaced is controlled by the variable
;; `reftex-plug-into-AUCTeX'.
-
+
(if (reftex-plug-flag 0)
(setq LaTeX-label-function 'reftex-label)
(setq LaTeX-label-function nil))
@@ -143,11 +144,11 @@ argument identify one of multiple indices."
(and (reftex-plug-flag 3)
(fboundp 'TeX-arg-cite)
(fset 'TeX-arg-cite 'reftex-arg-cite))
-
- (and (reftex-plug-flag 4)
+
+ (and (reftex-plug-flag 4)
(fboundp 'TeX-arg-index-tag)
(fset 'TeX-arg-index-tag 'reftex-arg-index-tag))
- (and (reftex-plug-flag 4)
+ (and (reftex-plug-flag 4)
(fboundp 'TeX-arg-index)
(fset 'TeX-arg-index 'reftex-arg-index)))
diff --git a/lisp/textmodes/reftex-cite.el b/lisp/textmodes/reftex-cite.el
index 6a15665ea2..08ee88e1a7 100644
--- a/lisp/textmodes/reftex-cite.el
+++ b/lisp/textmodes/reftex-cite.el
@@ -1,6 +1,7 @@
;;; reftex-cite.el --- creating citations with RefTeX
-;; Copyright (c) 1997, 1998, 1999, 2000, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Carsten Dominik <dominik@science.uva.nl>
;; Version: 4.28
@@ -69,7 +70,7 @@
(unless (eq (get 'reftex-default-bibliography :reftex-raw)
reftex-default-bibliography)
(put 'reftex-default-bibliography :reftex-expanded
- (reftex-locate-bibliography-files
+ (reftex-locate-bibliography-files
default-directory reftex-default-bibliography))
(put 'reftex-default-bibliography :reftex-raw
reftex-default-bibliography))
@@ -128,7 +129,7 @@
;; If RETURN is non-nil, just return the entry.
(let* ((re
- (if item
+ (if item
(concat "\\\\bibitem\\(\\[[^]]*\\]\\)?{" (regexp-quote key) "}")
(concat "@[a-zA-Z]+[ \t\n\r]*[{(][ \t\n\r]*" (regexp-quote key)
"[, \t\r\n}]")))
@@ -150,7 +151,7 @@
(when return
;; Just return the relevant entry
(if item (goto-char (match-end 0)))
- (setq return (buffer-substring
+ (setq return (buffer-substring
(point) (reftex-end-of-bib-entry item)))
(set-buffer buffer-conf)
(throw 'exit return))
@@ -166,9 +167,9 @@
(error "No BibTeX entry with citation key %s" key)))))
(defun reftex-end-of-bib-entry (item)
- (save-excursion
+ (save-excursion
(condition-case nil
- (if item
+ (if item
(progn (end-of-line)
(re-search-forward
"\\\\bibitem\\|\\end{thebibliography}")
@@ -189,16 +190,16 @@
;; Read a regexp, completing on known citation keys.
(setq default (regexp-quote (reftex-get-bibkey-default)))
- (setq re-list
- (split-string
- (completing-read
+ (setq re-list
+ (split-string
+ (completing-read
(concat
"Regex { && Regex...}: "
"[" default "]: ")
(if reftex-mode
(if (fboundp 'LaTeX-bibitem-list)
(LaTeX-bibitem-list)
- (cdr (assoc 'bibview-cache
+ (cdr (assoc 'bibview-cache
(symbol-value reftex-docstruct-symbol))))
nil)
nil nil nil 'reftex-cite-regexp-hist)
@@ -245,7 +246,7 @@
(error (goto-char key-point)
(throw 'search-again nil)))
(setq end-point (point))
-
+
;; Ignore @string, @comment and @c entries or things
;; outside entries
(when (or (string= (downcase (match-string 2)) "string")
@@ -254,12 +255,12 @@
(< (point) key-point)) ; this means match not in {}
(goto-char key-point)
(throw 'search-again nil))
-
+
;; Well, we have got a match
;;(setq entry (concat
;; (buffer-substring start-point (point)) "\n"))
(setq entry (buffer-substring start-point (point)))
-
+
;; Check if other regexp match as well
(setq re-list rest-re)
(while re-list
@@ -267,24 +268,24 @@
;; nope - move on
(throw 'search-again nil))
(pop re-list))
-
+
(setq alist (reftex-parse-bibtex-entry
nil start-point end-point))
(push (cons "&entry" entry) alist)
-
+
;; check for crossref entries
(if (assoc "crossref" alist)
(setq alist
(append
alist (reftex-get-crossref-alist alist))))
-
+
;; format the entry
(push (cons "&formatted" (reftex-format-bib-entry alist))
alist)
-
+
;; make key the first element
(push (reftex-get-bib-field "&key" alist) alist)
-
+
;; add it to the list
(push alist found-list)))))
(reftex-kill-temporary-buffers))))
@@ -347,7 +348,7 @@
(unless files
(error "Need file name to find thebibliography environment"))
(while (setq file (pop files))
- (setq buf (reftex-get-file-buffer-force
+ (setq buf (reftex-get-file-buffer-force
file (not reftex-keep-temporary-buffers)))
(unless buf
(error "No such file %s" file))
@@ -358,21 +359,21 @@
(save-restriction
(widen)
(goto-char (point-min))
- (while (re-search-forward
+ (while (re-search-forward
"\\(\\`\\|[\n\r]\\)[ \t]*\\\\begin{thebibliography}" nil t)
(beginning-of-line 2)
(setq start (point))
- (if (re-search-forward
+ (if (re-search-forward
"\\(\\`\\|[\n\r]\\)[ \t]*\\\\end{thebibliography}" nil t)
(progn
(beginning-of-line 1)
(setq end (point))))
(when (and start end)
- (setq entries
+ (setq entries
(append entries
(mapcar 'reftex-parse-bibitem
(delete ""
- (split-string
+ (split-string
(buffer-substring-no-properties start end)
"[ \t\n\r]*\\\\bibitem\\(\\[[^]]*]\\)*"))))))
(goto-char end)))))
@@ -381,16 +382,16 @@
;; Read a regexp, completing on known citation keys.
(setq default (regexp-quote (reftex-get-bibkey-default)))
- (setq re-list
- (split-string
- (completing-read
+ (setq re-list
+ (split-string
+ (completing-read
(concat
"Regex { && Regex...}: "
"[" default "]: ")
(if reftex-mode
(if (fboundp 'LaTeX-bibitem-list)
(LaTeX-bibitem-list)
- (cdr (assoc 'bibview-cache
+ (cdr (assoc 'bibview-cache
(symbol-value reftex-docstruct-symbol))))
nil)
nil nil nil 'reftex-cite-regexp-hist)
@@ -403,14 +404,14 @@
(error "Empty regular expression"))
(while (and (setq re (pop re-list)) entries)
- (setq entries
+ (setq entries
(delq nil (mapcar
(lambda (x)
(if (string-match re (cdr (assoc "&entry" x)))
x nil))
entries))))
- (setq entries
- (mapcar
+ (setq entries
+ (mapcar
(lambda (x)
(push (cons "&formatted" (reftex-format-bibitem x)) x)
(push (reftex-get-bib-field "&key" x) x)
@@ -654,9 +655,9 @@ While entering the regexp, completion on knows citation keys is possible.
;; FIXME: Unfortunately, this meens that commenting does not work right.
(pop selected-entries)
(let ((concat-keys (mapconcat 'car selected-entries ",")))
- (setq insert-entries
+ (setq insert-entries
(list (list concat-keys (cons "&key" concat-keys))))))
-
+
(unless no-insert
;; We shall insert this into the buffer...
@@ -683,7 +684,7 @@ While entering the regexp, completion on knows citation keys is possible.
;; it has to go. If there is only a single arg and empty, it can go
;; as well.
(when reftex-cite-cleanup-optional-args
- (cond
+ (cond
((string-match "\\([a-zA-Z0-9]\\)\\[\\]{" string)
(setq string (replace-match "\\1{" nil nil string)))
((string-match "\\[\\]\\(\\[[a-zA-Z0-9., ]+\\]\\)" string)
@@ -698,14 +699,14 @@ While entering the regexp, completion on knows citation keys is possible.
(delete-char 1))
;; Tell AUCTeX
- (when (and reftex-mode
+ (when (and reftex-mode
(fboundp 'LaTeX-add-bibitems)
reftex-plug-into-AUCTeX)
(apply 'LaTeX-add-bibitems (mapcar 'car selected-entries)))
-
+
;; Produce the cite-view strings
(when (and reftex-mode reftex-cache-cite-echo cite-view)
- (mapcar (lambda (entry)
+ (mapcar (lambda (entry)
(reftex-make-cite-echo-string entry docstruct-symbol))
selected-entries))
@@ -713,16 +714,16 @@ While entering the regexp, completion on knows citation keys is possible.
(set-marker reftex-select-return-marker nil)
(reftex-kill-buffer "*RefTeX Select*")
-
+
;; Check if the prefix arg was numeric, and call recursively
(when (integerp arg)
(if (> arg 1)
- (progn
+ (progn
(skip-chars-backward "}")
(decf arg)
(reftex-do-citation arg))
(forward-char 1)))
-
+
;; Return the citation key
(car (car selected-entries))))
@@ -736,7 +737,7 @@ While entering the regexp, completion on knows citation keys is possible.
(no-insert
;; Format does not really matter because nothing will be inserted.
(setq format "%l"))
-
+
((and (stringp macro)
(string-match "\\`\\\\cite\\|cite\\'" macro))
;; We are already inside a cite macro
@@ -757,7 +758,7 @@ While entering the regexp, completion on knows citation keys is possible.
(when (listp format)
(setq key
(or format-key
- (reftex-select-with-char
+ (reftex-select-with-char
"" (concat "SELECT A CITATION FORMAT\n\n"
(mapconcat
(lambda (x)
@@ -786,8 +787,8 @@ While entering the regexp, completion on knows citation keys is possible.
(let ((bibtype (reftex-bib-or-thebib))
found-list rtn key data selected-entries)
- (while
- (not
+ (while
+ (not
(catch 'done
;; Scan bibtex files
(setq found-list
@@ -802,20 +803,20 @@ While entering the regexp, completion on knows citation keys is possible.
(reftex-extract-bib-entries-from-thebibliography
(reftex-uniquify
(mapcar 'cdr
- (reftex-all-assq
+ (reftex-all-assq
'thebib (symbol-value reftex-docstruct-symbol))))))
(reftex-default-bibliography
(message "Using default bibliography")
(reftex-extract-bib-entries (reftex-default-bibliography)))
(t (error "No valid bibliography in this document, and no default available"))))
-
+
(unless found-list
(error "Sorry, no matches found"))
-
+
;; Remember where we came from
(setq reftex-call-back-to-this-buffer (current-buffer))
(set-marker reftex-select-return-marker (point))
-
+
;; Offer selection
(save-window-excursion
(delete-other-windows)
@@ -856,15 +857,15 @@ While entering the regexp, completion on knows citation keys is possible.
(goto-char 1))
((eq key ?A)
;; Take all (marked)
- (setq selected-entries
+ (setq selected-entries
(if reftex-select-marked
(mapcar 'car (nreverse reftex-select-marked))
found-list))
(throw 'done t))
((eq key ?a)
;; Take all (marked), and push the symbol 'concat
- (setq selected-entries
- (cons 'concat
+ (setq selected-entries
+ (cons 'concat
(if reftex-select-marked
(mapcar 'car (nreverse reftex-select-marked))
found-list)))
@@ -883,9 +884,9 @@ While entering the regexp, completion on knows citation keys is possible.
((or (eq key ?\C-m)
(eq key 'return))
;; Take selected
- (setq selected-entries
+ (setq selected-entries
(if reftex-select-marked
- (cons 'concat
+ (cons 'concat
(mapcar 'car (nreverse reftex-select-marked)))
(if data (list data) nil)))
(throw 'done t))
@@ -925,7 +926,7 @@ While entering the regexp, completion on knows citation keys is possible.
(let ((file (read-file-name "File to create: ")))
(find-file-other-window file)
(if (> (buffer-size) 0)
- (unless (yes-or-no-p
+ (unless (yes-or-no-p
(format "Overwrite non-empty file %s? " file))
(error "Abort")))
(erase-buffer)
@@ -950,7 +951,7 @@ While entering the regexp, completion on knows citation keys is possible.
reftex-mouse-selected-face
nil))
tmp len)
- (mapcar
+ (mapcar
(lambda (x)
(setq tmp (cdr (assoc "&formatted" x))
len (length tmp))
@@ -1045,7 +1046,7 @@ While entering the regexp, completion on knows citation keys is possible.
(defun reftex-make-cite-echo-string (entry docstruct-symbol)
;; Format a bibtex entry for the echo area and cache the result.
(let* ((key (reftex-get-bib-field "&key" entry))
- (string
+ (string
(let* ((reftex-cite-punctuation '(" " " & " " etal.")))
(reftex-format-citation entry reftex-cite-view-format)))
(cache (assq 'bibview-cache (symbol-value docstruct-symbol)))
@@ -1087,7 +1088,7 @@ While entering the regexp, completion on knows citation keys is possible.
(setq bibfile-list
(reftex-uniquify
(mapcar 'cdr
- (reftex-all-assq
+ (reftex-all-assq
'thebib (symbol-value reftex-docstruct-symbol))))
item t))
(reftex-default-bibliography
@@ -1098,10 +1099,10 @@ While entering the regexp, completion on knows citation keys is possible.
(setq bibfile-list (reftex-visited-files bibfile-list)))
(condition-case nil
- (reftex-pop-to-bibtex-entry
+ (reftex-pop-to-bibtex-entry
key bibfile-list (not reftex-keep-temporary-buffers) t item)
(error (ding))))
-
+
(select-window win)))
;;; Global BibTeX file
@@ -1130,7 +1131,7 @@ While entering the regexp, completion on knows citation keys is possible.
"Create a new BibTeX database file with all entries referenced in document.
The command prompts for a filename and writes the collected entries to
that file. Only entries referenced in the current document with
-any \\cite-like macros are used.
+any \\cite-like macros are used.
The sequence in the new file is the same as it was in the old database."
(interactive "FNew BibTeX file: ")
(let ((keys (reftex-all-used-citation-keys))
@@ -1144,7 +1145,7 @@ The sequence in the new file is the same as it was in the old database."
(save-restriction
(widen)
(goto-char (point-min))
- (while (re-search-forward
+ (while (re-search-forward
"^[ \t]*@[a-zA-Z]+[ \t]*{\\([^ \t\r\n]+\\),"
nil t)
(setq key (match-string 1)
@@ -1161,7 +1162,7 @@ The sequence in the new file is the same as it was in the old database."
keys (delete key keys)))))))))
(find-file-other-window bibfile)
(if (> (buffer-size) 0)
- (unless (yes-or-no-p
+ (unless (yes-or-no-p
(format "Overwrite non-empty file %s? " bibfile))
(error "Abort")))
(erase-buffer)
diff --git a/lisp/textmodes/reftex-dcr.el b/lisp/textmodes/reftex-dcr.el
index 2a518ae9d7..e4f09d0490 100644
--- a/lisp/textmodes/reftex-dcr.el
+++ b/lisp/textmodes/reftex-dcr.el
@@ -1,6 +1,7 @@
;;; reftex-dcr.el --- viewing cross references and citations with RefTeX
-;; Copyright (c) 1997, 1998, 1999, 2000, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Carsten Dominik <dominik@science.uva.nl>
;; Version: 4.28
diff --git a/lisp/textmodes/reftex-global.el b/lisp/textmodes/reftex-global.el
index f7f635aaf1..3b5c51d2c9 100644
--- a/lisp/textmodes/reftex-global.el
+++ b/lisp/textmodes/reftex-global.el
@@ -1,6 +1,7 @@
;;; reftex-global.el --- operations on entire documents with RefTeX
-;; Copyright (c) 1997, 1998, 1999, 2000, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Carsten Dominik <dominik@science.uva.nl>
;; Version: 4.28
@@ -31,6 +32,9 @@
(require 'reftex)
;;;
+(defvar isearch-next-buffer-function)
+(defvar TeX-master)
+
(defun reftex-create-tags-file ()
"Create TAGS file by running `etags' on the current document.
The TAGS file is also immediately visited with `visit-tags-table'."
@@ -136,7 +140,7 @@ No active TAGS table is required."
(set (make-local-variable 'TeX-master) master)
(erase-buffer)
(insert " MULTIPLE LABELS IN CURRENT DOCUMENT:\n")
- (insert
+ (insert
" Move point to label and type `r' to run a query-replace on the label\n"
" and its references. Type `q' to exit this buffer.\n\n")
(insert " LABEL FILE\n")
@@ -194,8 +198,8 @@ one with the `xr' package."
(not (yes-or-no-p "Replacing all simple labels in multiple files is risky. Continue? ")))
(error "Abort"))
;; Make the translation list
- (let* ((re-core (concat "\\("
- (mapconcat 'cdr reftex-typekey-to-prefix-alist "\\|")
+ (let* ((re-core (concat "\\("
+ (mapconcat 'cdr reftex-typekey-to-prefix-alist "\\|")
"\\)"))
(label-re (concat "\\`" re-core "\\([0-9]+\\)\\'"))
(search-re (concat "[{,]\\(" re-core "\\([0-9]+\\)\\)[,}]"))
@@ -228,11 +232,11 @@ one with the `xr' package."
(reftex-save-all-document-buffers)
;; First test to check for erros
- (setq n (reftex-translate
+ (setq n (reftex-translate
files search-re translate-alist error-fmt 'test))
;; Now the real thing.
- (if (yes-or-no-p
+ (if (yes-or-no-p
(format "Replace %d items at %d places in %d files? "
(length translate-alist) n (length files)))
(progn
@@ -250,9 +254,9 @@ one with the `xr' package."
(defun reftex-translate (files search-re translate-alist error-fmt test)
;; In FILES, look for SEARCH-RE and replace match 1 of it with
- ;; its association in TRANSLATE-ALSIT.
+ ;; its association in TRANSLATE-ALSIT.
;; If we do not find an association and TEST is non-nil, query
- ;; to ignore the problematic string.
+ ;; to ignore the problematic string.
;; If TEST is nil, it is ignored without query.
;; Return the number of replacements.
(let ((n 0) file label match-data buf macro pos cell)
@@ -278,7 +282,7 @@ one with the `xr' package."
(or (looking-at "\\\\ref")
(looking-at "\\\\[a-zA-Z]*ref\\(range\\)?[^a-zA-Z]")
(looking-at "\\\\ref[a-zA-Z]*[^a-zA-Z]")
- (looking-at (format
+ (looking-at (format
reftex-find-label-regexp-format
(regexp-quote label)))))
;; OK, we should replace it.
@@ -341,7 +345,7 @@ Also checks if buffers visiting the files are in read-only mode."
(defun reftex-isearch-wrap-function ()
(if (not isearch-word)
- (switch-to-buffer
+ (switch-to-buffer
(funcall isearch-next-buffer-function (current-buffer) t)))
(goto-char (if isearch-forward (point-min) (point-max))))
@@ -427,7 +431,7 @@ With no argument, this command toggles
`reftex-isearch-minor-mode' on iff ARG is positive."
(interactive "P")
(let ((old-reftex-isearch-minor-mode reftex-isearch-minor-mode))
- (setq reftex-isearch-minor-mode
+ (setq reftex-isearch-minor-mode
(not (or (and (null arg) reftex-isearch-minor-mode)
(<= (prefix-numeric-value arg) 0))))
(unless (eq reftex-isearch-minor-mode old-reftex-isearch-minor-mode)
@@ -458,7 +462,7 @@ With no argument, this command toggles
;; Force modeline redisplay.
(set-buffer-modified-p (buffer-modified-p))))
-(add-minor-mode 'reftex-isearch-minor-mode "/I" nil nil
+(add-minor-mode 'reftex-isearch-minor-mode "/I" nil nil
'reftex-isearch-minor-mode)
;;; arch-tag: 2dbf7633-92c8-4340-8656-7aa019d0f80d
diff --git a/lisp/textmodes/reftex-index.el b/lisp/textmodes/reftex-index.el
index a0bc2d8575..804672c184 100644
--- a/lisp/textmodes/reftex-index.el
+++ b/lisp/textmodes/reftex-index.el
@@ -1,6 +1,7 @@
;;; reftex-index.el --- index support with RefTeX
-;; Copyright (c) 1997, 1998, 1999, 2000, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Carsten Dominik <dominik@science.uva.nl>
;; Version: 4.28
@@ -31,6 +32,9 @@
(require 'reftex)
;;;
+(defvar reftex-index-phrases-marker)
+(defvar TeX-master)
+
;; START remove for XEmacs release
(defvar mark-active)
(defvar zmacs-regions)
@@ -52,13 +56,13 @@ which is part of AUCTeX, the string is first processed with the
(active (if (boundp 'zmacs-regions)
(and zmacs-regions (region-exists-p)) ; XEmacs
(and transient-mark-mode mark-active))) ; Emacs
- (beg (if active
+ (beg (if active
(region-beginning)
- (save-excursion
+ (save-excursion
(skip-syntax-backward "w\\") (point))))
(end (if active
(region-end)
- (save-excursion
+ (save-excursion
(skip-syntax-forward "w\\") (point))))
(sel (buffer-substring beg end))
(mathp (condition-case nil (texmathp) (error nil)))
@@ -89,7 +93,7 @@ which is part of AUCTeX, the string is first processed with the
;; Delete what is in the buffer and make the index entry
(delete-region beg end)
(reftex-index def-char full-entry def-tag sel)))))
-
+
(defun reftex-index (&optional char key tag sel no-insert)
"Query for an index macro and insert it along with its argments.
The index macros available are those defined in `reftex-index-macro' or
@@ -165,7 +169,7 @@ will prompt for other arguments."
;; OPT-ARGS is a list of optional argument indices, as given by
;; `reftex-parse-args'.
(let* ((opt (and (integerp itag) (member itag opt-args)))
- (index-tags (cdr (assq 'index-tags
+ (index-tags (cdr (assq 'index-tags
(symbol-value reftex-docstruct-symbol))))
(default (reftex-default-index))
(prompt (concat "Index tag"
@@ -179,17 +183,17 @@ will prompt for other arguments."
(defun reftex-index-select-tag ()
;; Have the user select an index tag.
;; FIXME: should we cache tag-alist, prompt and help?
- (let* ((index-tags (cdr (assoc 'index-tags
+ (let* ((index-tags (cdr (assoc 'index-tags
(symbol-value reftex-docstruct-symbol))))
(default (reftex-default-index)))
- (cond
+ (cond
((null index-tags)
(error "No index tags available"))
((= (length index-tags) 1)
;; Just one index, use it
(car index-tags))
-
+
((> (length index-tags) 1)
;; Several indices, ask.
(let* ((tags (copy-sequence index-tags))
@@ -210,12 +214,12 @@ will prompt for other arguments."
(unless (assq (aref tag i) tag-alist)
(push (list (aref tag i)
tag
- (concat (substring tag 0 i)
+ (concat (substring tag 0 i)
"[" (substring tag i (incf i)) "]"
(substring tag i)))
tag-alist)
(throw 'exit t)))
- (push (list (+ ?0 (incf cnt)) tag
+ (push (list (+ ?0 (incf cnt)) tag
(concat "[" (int-to-string cnt) "]:" tag))
tag-alist)))
(setq tag-alist (nreverse tag-alist))
@@ -230,7 +234,7 @@ will prompt for other arguments."
(if default
(format "[^M] %s (the default)\n" default)
"")
- (mapconcat (lambda(x)
+ (mapconcat (lambda(x)
(apply 'format "[%c] %s" x))
tag-alist "\n")))
;; Query the user for an index-tag
@@ -259,7 +263,7 @@ will prompt for other arguments."
key))
(defun reftex-index-update-taglist (newtag)
- ;; add NEWTAG to the list of available index tags.
+ ;; add NEWTAG to the list of available index tags.
(let ((cell (assoc 'index-tags (symbol-value reftex-docstruct-symbol))))
(and newtag (cdr cell) (not (member newtag (cdr cell)))
(push newtag (cdr cell)))))
@@ -340,7 +344,7 @@ _ ^ Add/Remove parent key (to make this item a subitem).
;; Note: This function just looks for the nearest match of the
;; context string and may fail if the entry moved and an identical
;; entry is close to the old position. Frequent rescans make this
- ;; safer.
+ ;; safer.
(let* ((file (nth 3 data))
(literal (nth 2 data))
(pos (nth 4 data))
@@ -388,7 +392,7 @@ With prefix 3, restrict index to region."
(calling-file (buffer-file-name))
(restriction
(or overriding-restriction
- (and (not redo)
+ (and (not redo)
(reftex-get-restriction current-prefix-arg docstruct))))
(locations
;; See if we are on an index macro as initial position
@@ -397,7 +401,7 @@ With prefix 3, restrict index to region."
(macro (car what-macro))
(here-I-am (when (member macro reftex-macros-with-index)
(save-excursion
- (goto-char (+ (cdr what-macro)
+ (goto-char (+ (cdr what-macro)
(length macro)))
(reftex-move-over-touching-args)
(reftex-where-am-I)))))
@@ -408,7 +412,7 @@ With prefix 3, restrict index to region."
(setq buffer-name (reftex-make-index-buffer-name index-tag))
;; Goto the buffer and put it into the correct mode
-
+
(when (or restriction current-prefix-arg)
(reftex-kill-buffer buffer-name))
@@ -501,7 +505,7 @@ SPC=view TAB=goto RET=goto+hide [e]dit [q]uit [r]escan [f]ollow [?]Help
;; Delete the entry at place
(and (bolp) (forward-char 1))
(delete-region (previous-single-property-change (1+ (point)) :data)
- (or (next-single-property-change (point) :data)
+ (or (next-single-property-change (point) :data)
(point-max))))
;; Walk through the list and insert all entries
@@ -522,7 +526,7 @@ SPC=view TAB=goto RET=goto+hide [e]dit [q]uit [r]escan [f]ollow [?]Help
(insert indent (nth 7 cell))
(when font
(setq to (point))
- (put-text-property
+ (put-text-property
(- (point) (length (nth 7 cell))) to
'face index-face)
(goto-char to))
@@ -550,7 +554,7 @@ SPC=view TAB=goto RET=goto+hide [e]dit [q]uit [r]escan [f]ollow [?]Help
(defun reftex-index-insert-new-letter (letter &optional font)
;; Start a new section in the index
(let ((from (point)))
- (insert "\n" letter letter letter
+ (insert "\n" letter letter letter
"-----------------------------------------------------------------")
(when font
(put-text-property from (point) 'face reftex-index-section-face))
@@ -627,10 +631,10 @@ SPC=view TAB=goto RET=goto+hide [e]dit [q]uit [r]escan [f]ollow [?]Help
(interactive "p")
(setq reftex-callback-fwd t)
(or (eobp) (forward-char 1))
- (goto-char (or (next-single-property-change (point) :data)
+ (goto-char (or (next-single-property-change (point) :data)
(point)))
(unless (get-text-property (point) :data)
- (goto-char (or (next-single-property-change (point) :data)
+ (goto-char (or (next-single-property-change (point) :data)
(point)))))
(defun reftex-index-previous (&optional arg)
"Move to previous selectable item."
@@ -773,7 +777,7 @@ When index is restricted, select the next section as restriction criterion."
(reftex-index-restrict-to-section t)
(setq reftex-index-restriction-indicator (nth 6 bor)
reftex-index-restriction-data
- (list bor
+ (list bor
(car (memq (assq 'toc (cdr (memq bor docstruct)))
docstruct))))
(reftex-index-revert))))
@@ -805,7 +809,7 @@ When index is restricted, select the previous section as restriction criterion."
show-window show-buffer match)
(unless data (error "Don't know which index entry to visit"))
-
+
(if (eq (car data) 'index)
(setq match (reftex-index-show-entry data no-revisit)))
@@ -876,7 +880,7 @@ When index is restricted, select the previous section as restriction criterion."
attr (nth 2 analyze))
(setf (nth 2 analyze) (if (string= attr bor) "" bor))
(setq new (apply 'concat analyze))
- (reftex-index-change-entry
+ (reftex-index-change-entry
new (if (string= (nth 2 analyze) bor)
"Entry is now START-OF-PAGE-RANGE"
"START-OF-PAGE-RANGE canceled"))))
@@ -934,7 +938,7 @@ When index is restricted, select the previous section as restriction criterion."
(t (setf (nth n analyze) (concat initial npart))))
(setq new (apply 'concat analyze))
;; Change the entry and insert the changed version into the index.
- (reftex-index-change-entry
+ (reftex-index-change-entry
new (if (string= npart "")
(format "Deleted: %s" opart)
(format "New value is: %s" npart)))))
@@ -948,14 +952,14 @@ When index is restricted, select the previous section as restriction criterion."
(unless data (error "Don't know which index entry to change"))
(setq old (nth 2 data)
key (nth 6 data)
- prefix (completing-read
- "Prefix: "
- (reftex-sublist-nth
+ prefix (completing-read
+ "Prefix: "
+ (reftex-sublist-nth
docstruct 6
(lambda (x)
(and (eq (car x) 'index)
(string= (nth 1 x) reftex-index-tag))) t)))
- (unless (string-match
+ (unless (string-match
(concat (regexp-quote (car reftex-index-special-chars)) "\\'")
prefix)
(setq prefix (concat prefix (car reftex-index-special-chars))))
@@ -995,7 +999,7 @@ When index is restricted, select the previous section as restriction criterion."
(defun reftex-index-change-entry (new &optional message)
;; Change the full context string of the index entry at point to
;; NEW. This actually edits the buffer where the entry is defined.
-
+
(let* ((data (get-text-property (point) :data))
old beg end info)
(unless data (error "Cannot change entry"))
@@ -1087,14 +1091,14 @@ When index is restricted, select the previous section as restriction criterion."
(if (eq char ?!)
(error "This <%s> index does not contain entries sorted before the letters"
reftex-index-tag)
- (error "This <%s> index does not contain entries starting with `%c'"
+ (error "This <%s> index does not contain entries starting with `%c'"
reftex-index-tag char)))))
-(easy-menu-define
+(easy-menu-define
reftex-index-menu reftex-index-map
"Menu for Index buffer"
`("Index"
- ["Goto section A-Z"
+ ["Goto section A-Z"
(message "To go to a section, just press any of: !%s"
reftex-index-section-letters) t]
["Show Entry" reftex-index-view-entry t]
@@ -1134,7 +1138,7 @@ When index is restricted, select the previous section as restriction criterion."
["Context" reftex-index-toggle-context :style toggle
:selected reftex-index-include-context]
"--"
- ["Follow Mode" reftex-index-toggle-follow :style toggle
+ ["Follow Mode" reftex-index-toggle-follow :style toggle
:selected reftex-index-follow-mode])
"--"
["Help" reftex-index-show-help t]))
@@ -1186,7 +1190,7 @@ You get a chance to edit the entry in the phrases buffer - finish with
(set-marker reftex-index-return-marker (point))
(reftex-index-selection-or-word arg 'phrase)
(if (eq major-mode 'reftex-index-phrases-mode)
- (message
+ (message
(substitute-command-keys
"Return to LaTeX with \\[reftex-index-phrases-save-and-return]"))))
@@ -1215,7 +1219,7 @@ If the buffer is non-empty, delete the old header first."
(sort (copy-sequence reftex-index-macro-alist)
(lambda (a b) (equal (car a) default-macro))))
macro entry key repeat)
-
+
(if master (set (make-local-variable 'TeX-master)
(file-name-nondirectory master)))
@@ -1228,7 +1232,7 @@ If the buffer is non-empty, delete the old header first."
(if (looking-at reftex-index-phrases-comment-regexp)
(beginning-of-line 2))
(while (looking-at "^[ \t]*$")
- (beginning-of-line 2))
+ (beginning-of-line 2))
(cond ((fboundp 'zmacs-activate-region) (zmacs-activate-region))
((boundp 'make-active) (setq mark-active t)))
(if (yes-or-no-p "Delete and rebuilt header ")
@@ -1304,7 +1308,7 @@ Here are all local bindings.
(setq major-mode 'reftex-index-phrases-mode
mode-name "Phrases")
(use-local-map reftex-index-phrases-map)
- (set (make-local-variable 'font-lock-defaults)
+ (set (make-local-variable 'font-lock-defaults)
reftex-index-phrases-font-lock-defaults)
(easy-menu-add reftex-index-phrases-menu reftex-index-phrases-map)
(set (make-local-variable 'reftex-index-phrases-marker) (make-marker))
@@ -1314,7 +1318,7 @@ Here are all local bindings.
;; Font Locking stuff
(let ((ss (if (featurep 'xemacs) 'secondary-selection ''secondary-selection)))
(setq reftex-index-phrases-font-lock-keywords
- (list
+ (list
(cons reftex-index-phrases-comment-regexp 'font-lock-comment-face)
(list reftex-index-phrases-macrodef-regexp
'(1 font-lock-type-face)
@@ -1338,11 +1342,10 @@ Here are all local bindings.
(setq reftex-index-phrases-font-lock-defaults
'((reftex-index-phrases-font-lock-keywords)
nil t nil beginning-of-line))
- (put 'reftex-index-phrases-mode 'font-lock-defaults
+ (put 'reftex-index-phrases-mode 'font-lock-defaults
reftex-index-phrases-font-lock-defaults) ; XEmacs
)
-(defvar reftex-index-phrases-marker)
(defun reftex-index-next-phrase (&optional arg)
"Index the next ARG phrases in the phrases buffer."
(interactive "p")
@@ -1401,10 +1404,10 @@ match, the user will be asked to confirm the replacement."
(move-marker reftex-index-phrases-marker
(match-beginning 0) (current-buffer))
;; Start the query-replace
- (reftex-query-index-phrase-globally
- files phrase macro-fmt
+ (reftex-query-index-phrase-globally
+ files phrase macro-fmt
index-key repeat as-words)
- (message "%s replaced"
+ (message "%s replaced"
(reftex-number replace-count "occurrence"))))))
(t (error "Cannot parse this line")))))
@@ -1447,7 +1450,7 @@ the document and stores the list in `reftex-index-phrases-files'."
(unless buf (error "Master file %s not found" master))
(set-buffer buf)
(reftex-access-scan-info)
- (setq reftex-index-phrases-files
+ (setq reftex-index-phrases-files
(reftex-all-document-files))))
;; Parse the files header for macro definitions
(setq reftex-index-phrases-macro-data nil)
@@ -1462,7 +1465,7 @@ the document and stores the list in `reftex-index-phrases-files'."
;; Reverse the list, so that the first macro is first
(if (null reftex-index-phrases-macro-data)
(error "No valid MACRO DEFINITION line in %s file (make sure to use TAB separators)" reftex-index-phrase-file-extension))
- (setq reftex-index-phrases-macro-data
+ (setq reftex-index-phrases-macro-data
(nreverse reftex-index-phrases-macro-data))
(goto-char (point-min)))))
@@ -1474,7 +1477,7 @@ you need to add/change text in an already indexed document and want to
index the new part without having to go over the unchanged parts again."
(interactive "r")
(let ((win-conf (current-window-configuration))
- (reftex-index-phrases-restrict-file (buffer-file-name)))
+ (reftex-index-phrases-restrict-file (buffer-file-name)))
(save-excursion
(save-restriction
(narrow-to-region beg end)
@@ -1497,7 +1500,7 @@ index the new part without having to go over the unchanged parts again."
(setq text (reftex-index-simplify-phrase text))
(goto-char (point-min))
(if (re-search-forward
- (concat "^\\(\\S-*\\)\t\\(" (regexp-quote text)
+ (concat "^\\(\\S-*\\)\t\\(" (regexp-quote text)
"\\) *[\t\n]") nil t)
(progn
(goto-char (match-end 2))
@@ -1527,7 +1530,7 @@ this function repeatedly."
(let* ((phrase (match-string 3))
(case-fold-search reftex-index-phrases-case-fold-search)
(re (reftex-index-phrases-find-dup-re phrase t)))
- (if (save-excursion
+ (if (save-excursion
(goto-char (point-min))
(and (re-search-forward re nil t)
(re-search-forward re nil t)))
@@ -1620,7 +1623,7 @@ this function repeatedly."
(progn
(princ (format " Superphrases: Phrase matches the following %s in the phrase buffer:\n"
(reftex-number ntimes2 "line")))
- (mapcar (lambda(x)
+ (mapcar (lambda(x)
(princ (format " Line %4d: %s\n" (car x) (cdr x))))
(nreverse superphrases))))))))
@@ -1673,7 +1676,7 @@ it first compares the macro identifying chars and then the phrases."
beg end)
(goto-char (point-min))
;; Find first and last phrase line in buffer
- (setq beg
+ (setq beg
(and (re-search-forward reftex-index-phrases-phrase-regexp12 nil t)
(match-beginning 0)))
(goto-char (point-max))
@@ -1700,15 +1703,15 @@ it first compares the macro identifying chars and then the phrases."
(if (string-match reftex-index-phrases-phrase-regexp12 a)
(progn
;; Extract macro char and phrase-or-key for a
- (setq ca (match-string 1 a)
- pa (downcase
+ (setq ca (match-string 1 a)
+ pa (downcase
(or (and reftex-index-phrases-sort-prefers-entry
(match-string 6 a))
(match-string 3 a))))
(if (string-match reftex-index-phrases-phrase-regexp12 b)
(progn
;; Extract macro char and phrase-or-key for b
- (setq cb (match-string 1 b)
+ (setq cb (match-string 1 b)
pb (downcase
(or (and reftex-index-phrases-sort-prefers-entry
(match-string 6 b))
@@ -1716,7 +1719,7 @@ it first compares the macro identifying chars and then the phrases."
(setq c-p (string< ca cb)
p-p (string< pa pb))
;; Do the right comparison, based on the value of `chars-first'
- ;; `chars-first' is bound locally in the calling function
+ ;; `chars-first' is bound locally in the calling function
(if chars-first
(if (string= ca cb) p-p c-p)
(if (string= pa pb) c-p p-p)))))
@@ -1727,7 +1730,7 @@ it first compares the macro identifying chars and then the phrases."
(not reftex-index-phrases-sort-in-blocks))))
(defvar reftex-index-phrases-menu)
-(defun reftex-index-make-phrase-regexp (phrase &optional
+(defun reftex-index-make-phrase-regexp (phrase &optional
as-words allow-newline)
"Return a regexp matching PHRASE, even if distributed over lines.
With optional arg AS-WORDS, require word boundary at beginning and end.
@@ -1738,12 +1741,12 @@ With optional arg ALLOW-NEWLINE, allow single newline between words."
"\\([ \t]+\\)")))
(concat (if (and as-words (string-match "\\`\\w" (car words)))
"\\(\\<\\|[`']\\)" "")
- (mapconcat (lambda (w) (regexp-quote
+ (mapconcat (lambda (w) (regexp-quote
(if reftex-index-phrases-case-fold-search
(downcase w)
w)))
words space-re)
- (if (and as-words
+ (if (and as-words
(string-match "\\w\\'" (nth (1- (length words)) words)))
"\\(\\>\\|'\\)" ""))))
@@ -1766,8 +1769,8 @@ Treats the logical `and' for index phrases."
(let ((index-keys (split-string (or index-key match)
reftex-index-phrases-logical-and-regexp)))
(concat
- (mapconcat (lambda (x)
- (format macro-fmt
+ (mapconcat (lambda (x)
+ (format macro-fmt
(format (if mathp reftex-index-math-format "%s") x)))
index-keys "")
(if repeat (reftex-index-simplify-phrase match) ""))))
@@ -1779,7 +1782,7 @@ Treats the logical `and' for index phrases."
(unless files (error "No files"))
(unwind-protect
(progn
- (switch-to-buffer-other-window (reftex-get-file-buffer-force
+ (switch-to-buffer-other-window (reftex-get-file-buffer-force
(car files)))
(catch 'no-more-files
(while (setq file (pop files))
@@ -1819,12 +1822,12 @@ AS-WORDS means, the search for PHRASE should require word boundaries at
both ends."
(let* ((re (reftex-index-make-phrase-regexp phrase as-words 'allow-newline))
(case-fold-search reftex-index-phrases-case-fold-search)
- (index-keys (split-string
+ (index-keys (split-string
(or index-key phrase)
reftex-index-phrases-logical-or-regexp))
(nkeys (length index-keys))
(ckey (nth 0 index-keys))
- (all-yes nil)
+ (all-yes nil)
match rpl char beg end mathp)
(unwind-protect
(while (re-search-forward re nil t)
@@ -1846,16 +1849,16 @@ both ends."
end)))
(throw 'next-match nil))
(reftex-highlight 0 (match-beginning 0) (match-end 0))
- (setq rpl
+ (setq rpl
(save-match-data
(reftex-index-make-replace-string
macro-fmt (match-string 0) ckey repeat mathp)))
- (while
+ (while
(not
(catch 'loop
(message "REPLACE: %s? (yn!qoe%s?)"
rpl
- (if (> nkeys 1)
+ (if (> nkeys 1)
(concat "1-" (int-to-string nkeys))
""))
(setq char (if all-yes ?y (read-char-exclusive)))
@@ -1889,7 +1892,7 @@ both ends."
((member char '(?o ?O))
;; Select a differnt macro
(let* ((nc (reftex-index-select-phrases-macro 2))
- (macro-data
+ (macro-data
(cdr (assoc nc reftex-index-phrases-macro-data)))
(macro-fmt (car macro-data))
(repeat (nth 1 macro-data)))
@@ -1907,7 +1910,7 @@ both ends."
;; Recursive edit
(save-match-data
(save-excursion
- (message
+ (message
(substitute-command-keys
"Recursive edit. Resume with \\[exit-recursive-edit]"))
(recursive-edit))))
@@ -2040,7 +2043,7 @@ Does not do a save-excursion."
("\C-i" . self-insert-command))
do (define-key reftex-index-phrases-map (car x) (cdr x)))
-(easy-menu-define
+(easy-menu-define
reftex-index-phrases-menu reftex-index-phrases-map
"Menu for Phrases buffer"
'("Phrases"
diff --git a/lisp/textmodes/reftex-parse.el b/lisp/textmodes/reftex-parse.el
index 76372dc1dd..b08d1e8799 100644
--- a/lisp/textmodes/reftex-parse.el
+++ b/lisp/textmodes/reftex-parse.el
@@ -1,6 +1,7 @@
;;; reftex-parse.el --- parser functions for RefTeX
-;; Copyright (c) 1997, 1998, 1999, 2000, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Carsten Dominik <dominik@science.uva.nl>
;; Version: 4.28
diff --git a/lisp/textmodes/reftex-ref.el b/lisp/textmodes/reftex-ref.el
index bc4260367d..edc284a306 100644
--- a/lisp/textmodes/reftex-ref.el
+++ b/lisp/textmodes/reftex-ref.el
@@ -1,6 +1,7 @@
;;; reftex-ref.el --- code to create labels and references with RefTeX
-;; Copyright (c) 1997, 1998, 1999, 2000, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Carsten Dominik <dominik@science.uva.nl>
;; Version: 4.28
diff --git a/lisp/textmodes/reftex-sel.el b/lisp/textmodes/reftex-sel.el
index 90f2e057aa..1c91d9a662 100644
--- a/lisp/textmodes/reftex-sel.el
+++ b/lisp/textmodes/reftex-sel.el
@@ -1,6 +1,7 @@
;;; reftex-sel.el --- the selection modes for RefTeX
-;; Copyright (c) 1997, 1998, 1999, 2000, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Carsten Dominik <dominik@science.uva.nl>
;; Version: 4.28
diff --git a/lisp/textmodes/reftex-toc.el b/lisp/textmodes/reftex-toc.el
index a9f1a280dc..6ebb110479 100644
--- a/lisp/textmodes/reftex-toc.el
+++ b/lisp/textmodes/reftex-toc.el
@@ -1,6 +1,7 @@
;;; reftex-toc.el --- RefTeX's table of contents mode
-;; Copyright (c) 1997, 1998, 1999, 2000, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Carsten Dominik <dominik@science.uva.nl>
;; Version: 4.28
@@ -35,6 +36,11 @@
"Keymap used for *toc* buffer.")
(defvar reftex-toc-menu)
+(defvar zmacs-regions)
+
+(defvar reftex-toc-include-labels-indicator nil)
+(defvar reftex-toc-include-index-indicator nil)
+(defvar reftex-toc-max-level-indicator nil)
(defun reftex-toc-mode ()
"Major mode for managing Table of Contents for LaTeX files.
@@ -80,9 +86,6 @@ Here are all local bindings.
(defvar reftex-last-window-height nil)
(defvar reftex-last-window-width nil)
-(defvar reftex-toc-include-labels-indicator nil)
-(defvar reftex-toc-include-index-indicator nil)
-(defvar reftex-toc-max-level-indicator nil)
(defvar reftex-toc-return-marker (make-marker)
"Marker which makes it possible to return from toc to old position.")
diff --git a/lisp/textmodes/reftex-vars.el b/lisp/textmodes/reftex-vars.el
index 5f39167bb4..170b77d9e3 100644
--- a/lisp/textmodes/reftex-vars.el
+++ b/lisp/textmodes/reftex-vars.el
@@ -1,6 +1,7 @@
;;; reftex-vars.el --- configuration variables for RefTeX
-;; Copyright (c) 1997, 1998, 1999, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1997, 1998, 1999, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Carsten Dominik <dominik@science.uva.nl>
;; Version: 4.28
diff --git a/lisp/textmodes/reftex.el b/lisp/textmodes/reftex.el
index a97d122c17..29f12116cd 100644
--- a/lisp/textmodes/reftex.el
+++ b/lisp/textmodes/reftex.el
@@ -1,6 +1,7 @@
;;; reftex.el --- minor mode for doing \label, \ref, \cite, \index in LaTeX
-;; Copyright (c) 1997, 1998, 1999, 2000, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Carsten Dominik <dominik@science.uva.nl>
;; Version: 4.28
@@ -288,6 +289,8 @@
(setq reftex-tables-dirty t)
(set symbol value)))
+(defvar font-lock-keywords)
+
;;; =========================================================================
;;;
diff --git a/lisp/textmodes/sgml-mode.el b/lisp/textmodes/sgml-mode.el
index b4e36b215e..d331ce05ff 100644
--- a/lisp/textmodes/sgml-mode.el
+++ b/lisp/textmodes/sgml-mode.el
@@ -1,7 +1,7 @@
;;; sgml-mode.el --- SGML- and HTML-editing modes
-;; Copyright (C) 1992, 1995, 1996, 1998, 2001, 2002, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1995, 1996, 1998, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: James Clark <jjc@jclark.com>
;; Maintainer: FSF
@@ -252,8 +252,6 @@ Any terminating `>' or `/' is not matched.")
'((t (:inherit font-lock-builtin-face)))
"`sgml-mode' face used to highlight the namespace part of identifiers."
:group 'sgml)
-;; backward-compatibility alias
-(put 'sgml-namespace-face 'face-alias 'sgml-namespace)
(defvar sgml-namespace-face 'sgml-namespace)
;; internal
@@ -903,8 +901,6 @@ With prefix argument ARG, repeat this ARG times."
(forward-list)))))))
-(autoload 'compile-internal "compile")
-
(defun sgml-validate (command)
"Validate an SGML document.
Runs COMMAND, a shell command, in a separate process asynchronously
@@ -921,7 +917,7 @@ and move to the line in the SGML document that caused it."
(file-name-nondirectory name))))))))
(setq sgml-saved-validate-command command)
(save-some-buffers (not compilation-ask-about-save) nil)
- (compile-internal command "No more errors"))
+ (compilation-start command))
(defsubst sgml-at-indentation-p ()
"Return true if point is at the first non-whitespace character on the line."
diff --git a/lisp/textmodes/spell.el b/lisp/textmodes/spell.el
index 9904698803..077e9b0fd3 100644
--- a/lisp/textmodes/spell.el
+++ b/lisp/textmodes/spell.el
@@ -1,6 +1,6 @@
;;; spell.el --- spelling correction interface for Emacs
-;; Copyright (C) 1985 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: wp, unix
diff --git a/lisp/textmodes/table.el b/lisp/textmodes/table.el
index 293df6d9c5..f45bcde668 100644
--- a/lisp/textmodes/table.el
+++ b/lisp/textmodes/table.el
@@ -1,12 +1,12 @@
;;; table.el --- create and edit WYSIWYG text based embedded tables
-;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Keywords: wp, convenience
;; Author: Takaaki Ota <Takaaki.Ota@am.sony.com>
;; Created: Sat Jul 08 2000 13:28:45 (PST)
-;; Revised: Fri Mar 18 2005 13:50:13 (PST)
+;; Revised: Sat Aug 06 2005 19:42:54 (CEST)
;; This file is part of GNU Emacs.
@@ -691,8 +691,6 @@ height."
"*Face used for table cell contents."
:tag "Cell Face"
:group 'table)
-;; backward-compatibility alias
-(put 'table-cell-face 'face-alias 'table-cell)
(defcustom table-cell-horizontal-chars "-="
"*Characters that may be used for table cell's horizontal border line."
@@ -843,9 +841,8 @@ simply by any key input."
:type 'hook
:group 'table-hooks)
-(defcustom table-yank-handler '(nil nil t nil)
- "*yank-handler for table."
- :group 'table)
+(defvar table-yank-handler '(nil nil t nil)
+ "Yank handler for tables.")
(setplist 'table-disable-incompatibility-warning nil)
diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el
index f9a2db0138..82e5a1cf5f 100644
--- a/lisp/textmodes/tex-mode.el
+++ b/lisp/textmodes/tex-mode.el
@@ -1,7 +1,7 @@
;;; tex-mode.el --- TeX, LaTeX, and SliTeX mode commands -*- coding: utf-8 -*-
;; Copyright (C) 1985, 1986, 1989, 1992, 1994, 1995, 1996, 1997, 1998, 1999,
-;; 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+;; 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: tex
@@ -36,6 +36,9 @@
(require 'cl)
(require 'skeleton))
+(defvar font-lock-comment-face)
+(defvar font-lock-doc-face)
+
(require 'shell)
(require 'compile)
@@ -1577,12 +1580,14 @@ Return the process in which TeX is running."
(star (string-match "\\*" cmd))
(string
(concat
- (if file
- (if star (concat (substring cmd 0 star)
- (shell-quote-argument file)
- (substring cmd (1+ star)))
- (concat cmd " " (shell-quote-argument file)))
- cmd)
+ (if (null file)
+ cmd
+ (if (file-name-absolute-p file)
+ (setq file (convert-standard-filename file)))
+ (if star (concat (substring cmd 0 star)
+ (shell-quote-argument file)
+ (substring cmd (1+ star)))
+ (concat cmd " " (shell-quote-argument file))))
(if background "&" ""))))
;; Switch to buffer before checking for subproc output in it.
(set-buffer buf)
@@ -1760,7 +1765,11 @@ FILE is typically the output DVI or PDF file."
(save-excursion
(goto-char (point-max))
(and (re-search-backward
- "(see the transcript file for additional information)" nil t)
+ (concat
+ "(see the transcript file for additional information)"
+ "\\|^Output written on .*"
+ (regexp-quote (file-name-nondirectory file))
+ " (.*)\\.") nil t)
(> (save-excursion
(or (re-search-backward "\\[[0-9]+\\]" nil t)
(point-min)))
diff --git a/lisp/textmodes/texinfmt.el b/lisp/textmodes/texinfmt.el
index 8425d691d7..d46d2f81fd 100644
--- a/lisp/textmodes/texinfmt.el
+++ b/lisp/textmodes/texinfmt.el
@@ -1,8 +1,8 @@
;;; texinfmt.el --- format Texinfo files into Info files
;; Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993,
-;; 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2005
-;; Free Software Foundation, Inc.
+;; 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: Robert J. Chassell <bug-texinfo@gnu.org>
;; Keywords: maint, tex, docs
diff --git a/lisp/textmodes/texinfo.el b/lisp/textmodes/texinfo.el
index 693ab4e608..a0dec65316 100644
--- a/lisp/textmodes/texinfo.el
+++ b/lisp/textmodes/texinfo.el
@@ -1,7 +1,7 @@
;;; texinfo.el --- major mode for editing Texinfo files
;; Copyright (C) 1985, 1988, 1989, 1990, 1991, 1992, 1993, 1996, 1997,
-;; 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
+;; 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Robert J. Chassell
;; Date: [See date below for texinfo-version]
@@ -42,6 +42,7 @@
`(defvar ,var ,value ,doc)))
(eval-when-compile (require 'tex-mode) (require 'cl))
+(defvar outline-heading-alist)
(defgroup texinfo nil
"Texinfo Mode."
diff --git a/lisp/textmodes/texnfo-upd.el b/lisp/textmodes/texnfo-upd.el
index dbd9b8a5c6..110981d33b 100644
--- a/lisp/textmodes/texnfo-upd.el
+++ b/lisp/textmodes/texnfo-upd.el
@@ -1,6 +1,7 @@
;;; texnfo-upd.el --- utilities for updating nodes and menus in Texinfo files
-;; Copyright (C) 1989, 1990, 1991, 1992, 2001, 2002, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 1989, 1990, 1991, 1992, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Robert J. Chassell
;; Maintainer: bug-texinfo@gnu.org
diff --git a/lisp/textmodes/text-mode.el b/lisp/textmodes/text-mode.el
index 0737f64f76..5e4cfc8847 100644
--- a/lisp/textmodes/text-mode.el
+++ b/lisp/textmodes/text-mode.el
@@ -1,6 +1,7 @@
;;; text-mode.el --- text mode, and its idiosyncratic commands
-;; Copyright (C) 1985, 1992, 1994 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1992, 1994, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: wp
diff --git a/lisp/textmodes/tildify.el b/lisp/textmodes/tildify.el
index 469cd73cd6..c317131d95 100644
--- a/lisp/textmodes/tildify.el
+++ b/lisp/textmodes/tildify.el
@@ -1,6 +1,7 @@
;;; tildify.el --- adding hard spaces into texts
-;; Copyright (C) 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Milan Zamazal <pdm@zamazal.org>
;; Version: 4.5
diff --git a/lisp/textmodes/two-column.el b/lisp/textmodes/two-column.el
index 30429638cb..1e83b7a725 100644
--- a/lisp/textmodes/two-column.el
+++ b/lisp/textmodes/two-column.el
@@ -1,6 +1,7 @@
;;; two-column.el --- minor mode for editing of two-column text
-;; Copyright (C) 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1993, 1994, 1995, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Daniel Pfeiffer <occitan@esperanto.org>
;; Adapted-By: ESR, Daniel Pfeiffer
diff --git a/lisp/textmodes/underline.el b/lisp/textmodes/underline.el
index c380c809a7..3c67307da5 100644
--- a/lisp/textmodes/underline.el
+++ b/lisp/textmodes/underline.el
@@ -1,6 +1,6 @@
;;; underline.el --- insert/remove underlining (done by overstriking) in Emacs
-;; Copyright (C) 1985 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: wp
diff --git a/lisp/thingatpt.el b/lisp/thingatpt.el
index eee7b85374..c76a3bf2d7 100644
--- a/lisp/thingatpt.el
+++ b/lisp/thingatpt.el
@@ -1,7 +1,7 @@
;;; thingatpt.el --- get the `thing' at point
-;; Copyright (C) 1991,92,93,94,95,96,97,1998,2000
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000
+;; 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Mike Williams <mikew@gopher.dosli.govt.nz>
;; Maintainer: FSF
diff --git a/lisp/thumbs.el b/lisp/thumbs.el
index 478fb0b652..0fa448d4d7 100644
--- a/lisp/thumbs.el
+++ b/lisp/thumbs.el
@@ -1,6 +1,6 @@
;;; thumbs.el --- Thumbnails previewer for images files
-;; Copyright 2004, 2005 Free Software Foundation, Inc
+;; Copyright (C) 2004, 2005 Free Software Foundation, Inc.
;; Author: Jean-Philippe Theberge <jphiltheberge@videotron.ca>
;; Keywords: Multimedia
@@ -138,23 +138,25 @@ this value can let another user see some of your images."
:group 'thumbs)
;; Initialize some variable, for later use.
-(defvar thumbs-current-tmp-filename
- nil
+(defvar thumbs-current-tmp-filename nil
"Temporary filename of current image.")
-(defvar thumbs-current-image-filename
- nil
+(make-variable-buffer-local 'thumbs-current-tmp-filename)
+
+(defvar thumbs-current-image-filename nil
"Filename of current image.")
-(defvar thumbs-current-image-size
- nil
+(make-variable-buffer-local 'thumbs-current-image-filename)
+
+(defvar thumbs-current-image-size nil
"Size of current image.")
-(defvar thumbs-image-num
- nil
+
+(defvar thumbs-image-num nil
"Number of current image.")
-(defvar thumbs-current-dir
- nil
+(make-variable-buffer-local 'thumbs-image-num)
+
+(defvar thumbs-current-dir nil
"Current directory.")
-(defvar thumbs-markedL
- nil
+
+(defvar thumbs-markedL nil
"List of marked files.")
(defalias 'thumbs-gensym
@@ -365,8 +367,8 @@ If MARKED is non-nil, the image is marked."
:conversion ,(if marked 'disabled)
:margin ,thumbs-margin)))
(insert-image i)
- (setq thumbs-current-image-size
- (image-size i t))))
+ (set (make-local-variable 'thumbs-current-image-size)
+ (image-size i t))))
(defun thumbs-insert-thumb (img &optional marked)
"Insert the thumbnail for IMG at point.
@@ -397,8 +399,7 @@ If MARKED is non-nil, the image is marked."
(thumbs-mode)
(thumbs-do-thumbs-insertion L)
(goto-char (point-min))
- (setq thumbs-current-dir default-directory)
- (make-variable-buffer-local 'thumbs-current-dir)))
+ (set (make-local-variable 'thumbs-current-dir) default-directory)))
;;;###autoload
(defun thumbs-show-all-from-dir (dir &optional reg same-window)
@@ -436,10 +437,6 @@ and SAME-WINDOW to show thumbs in the same window."
(setq thumbs-current-image-filename img
thumbs-current-tmp-filename nil
thumbs-image-num (or num 0))
- (make-variable-buffer-local 'thumbs-current-image-filename)
- (make-variable-buffer-local 'thumbs-current-tmp-filename)
- (make-variable-buffer-local 'thumbs-current-image-size)
- (make-variable-buffer-local 'thumbs-image-num)
(delete-region (point-min)(point-max))
(thumbs-insert-image img (thumbs-image-type img) 0)))
diff --git a/lisp/time-stamp.el b/lisp/time-stamp.el
index 5b763d2f0f..0f3aeb0689 100644
--- a/lisp/time-stamp.el
+++ b/lisp/time-stamp.el
@@ -1,7 +1,7 @@
;;; time-stamp.el --- Maintain last change time stamps in files edited by Emacs
-;; Copyright 1989, 1993, 1994, 1995, 1997, 2000, 2001
-;;; Free Software Foundation, Inc.
+;; Copyright (C) 1989, 1993, 1994, 1995, 1997, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
diff --git a/lisp/time.el b/lisp/time.el
index a6a4d771a2..b70e7f7b00 100644
--- a/lisp/time.el
+++ b/lisp/time.el
@@ -1,7 +1,7 @@
;;; time.el --- display time, load and mail indicator in mode line of Emacs -*-coding: utf-8 -*-
-;; Copyright (C) 1985, 86, 87, 93, 94, 96, 2000, 2001, 2002, 2003
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1996, 2000, 2001, 2002,
+;; 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
@@ -142,7 +142,7 @@ See `display-time-use-mail-icon' and `display-time-mail-face'.")
;; Fixme: Default to icon on graphical display?
(defcustom display-time-use-mail-icon nil
- "Non-nil means use an icon as the mail indicator on a graphic display.
+ "Non-nil means use an icon as mail indicator on a graphic display.
Otherwise use `display-time-mail-string'. The icon may consume less
of the mode line. It is specified by `display-time-mail-icon'."
:group 'display-time
@@ -161,7 +161,7 @@ This can use the Unicode letter character if you can display it."
string))
(defcustom display-time-format nil
- "*A string specifying the format for displaying the time in the mode line.
+ "*String specifying format for displaying the time in the mode line.
See the function `format-time-string' for an explanation of
how to write this string. If this is nil, the defaults
depend on `display-time-day-and-date' and `display-time-24hr-format'."
@@ -204,7 +204,7 @@ depend on `display-time-day-and-date' and `display-time-24hr-format'."
'local-map (make-mode-line-mouse-map 'mouse-2
read-mail-command)))
""))
- "*A list of expressions governing display of the time in the mode line.
+ "*List of expressions governing display of the time in the mode line.
For most purposes, you can control the time format using `display-time-format'
which is a more standard interface.
diff --git a/lisp/timezone.el b/lisp/timezone.el
index cd6e3ce769..7093aec22a 100644
--- a/lisp/timezone.el
+++ b/lisp/timezone.el
@@ -1,6 +1,7 @@
;;; timezone.el --- time zone package for GNU Emacs
-;; Copyright (C) 1990, 1991, 1992, 1993, 1996, 1999 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 1996, 1999, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Masanobu Umeda
;; Maintainer: umerin@mse.kyutech.ac.jp
@@ -149,7 +150,7 @@ Understands the following styles:
(time nil)
(zone nil)) ;This may be nil.
(cond ((string-match
- "\\([0-9]+\\)[ \t]+\\([^ \t,]+\\)[ \t]+\\([0-9]+\\)[ \t]+\\([0-9]+:[0-9:]+\\)[ \t]*\\([-+a-zA-Z0-9]+\\)" date)
+ "\\([0-9]+\\)[ \t]+\\([^ \t,]+\\)[ \t]+\\([0-9]+\\)[ \t]+\\([0-9]+:[0-9:]+\\)[ \t]+\\([-+a-zA-Z0-9]+\\)" date)
;; Styles: (1) and (2) with timezone and buggy timezone
;; This is most common in mail and news,
;; so it is worth trying first.
diff --git a/lisp/tmm.el b/lisp/tmm.el
index a55b11b17f..f73e3fa098 100644
--- a/lisp/tmm.el
+++ b/lisp/tmm.el
@@ -1,7 +1,7 @@
;;; tmm.el --- text mode access to menu-bar
-;; Copyright (C) 1994, 1995, 1996, 2000, 2001, 2002
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 1996, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Ilya Zakharevich <ilya@math.mps.ohio-state.edu>
;; Maintainer: FSF
diff --git a/lisp/toolbar/tool-bar.el b/lisp/toolbar/tool-bar.el
index 45c51532c9..487255a027 100644
--- a/lisp/toolbar/tool-bar.el
+++ b/lisp/toolbar/tool-bar.el
@@ -1,6 +1,7 @@
;;; tool-bar.el --- setting up the tool bar
;;
-;; Copyright (C) 2000, 2001, 2002, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;;
;; Author: Dave Love <fx@gnu.org>
;; Keywords: mouse frames
diff --git a/lisp/tooltip.el b/lisp/tooltip.el
index fabb154d7e..25032f69c4 100644
--- a/lisp/tooltip.el
+++ b/lisp/tooltip.el
@@ -1,7 +1,7 @@
;;; tooltip.el --- show tooltip windows
-;; Copyright (C) 1997, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Gerd Moellmann <gerd@acm.org>
;; Keywords: help c mouse tools
@@ -27,6 +27,8 @@
;;; Code:
+(defvar comint-prompt-regexp)
+
;;; Customizable settings
(defgroup tooltip nil
@@ -154,18 +156,15 @@ This might return nil if the event did not occur over a buffer."
;; set-buffer prevents redisplay optimizations, so every mouse motion
;; would be accompanied by a full redisplay.
-;;;###autoload
(define-minor-mode tooltip-mode
"Toggle Tooltip display.
With ARG, turn tooltip mode on if and only if ARG is positive."
:global t
- ;; If you change the :init-value below, you also need to change the
- ;; corresponding code in startup.el.
:init-value (not (or noninteractive
- (and (boundp 'emacs-quick-startup) emacs-quick-startup)
- (not (and (fboundp 'display-graphic-p)
- (display-graphic-p)))
+ emacs-basic-display
+ (not (display-graphic-p))
(not (fboundp 'x-show-tip))))
+ :initialize 'custom-initialize-safe-default
:group 'tooltip
(unless (or (null tooltip-mode) (fboundp 'x-show-tip))
(error "Sorry, tooltips are not yet available on this system"))
diff --git a/lisp/tree-widget.el b/lisp/tree-widget.el
index 407fb65ea4..049999a7b8 100644
--- a/lisp/tree-widget.el
+++ b/lisp/tree-widget.el
@@ -59,37 +59,52 @@
;; values, it is necessary to set the :args property to nil, then
;; redraw the tree.
;;
-;; :open-control (default `tree-widget-open-control')
-;; :close-control (default `tree-widget-close-control')
-;; :empty-control (default `tree-widget-empty-control')
-;; :leaf-control (default `tree-widget-leaf-control')
-;; :guide (default `tree-widget-guide')
-;; :end-guide (default `tree-widget-end-guide')
-;; :no-guide (default `tree-widget-no-guide')
-;; :handle (default `tree-widget-handle')
-;; :no-handle (default `tree-widget-no-handle')
-;; Those properties define the widgets used to draw the tree, and
-;; permit to customize its look and feel. For example, using
-;; `item' widgets with these :tag values:
+;; :open-icon (default `tree-widget-open-icon')
+;; :close-icon (default `tree-widget-close-icon')
+;; :empty-icon (default `tree-widget-empty-icon')
+;; :leaf-icon (default `tree-widget-leaf-icon')
+;; Those properties define the icon widgets associated to tree
+;; nodes. Icon widgets must derive from the `tree-widget-icon'
+;; widget. The :tag and :glyph-name property values are
+;; respectively used when drawing the text and graphic
+;; representation of the tree. The :tag value must be a string
+;; that represent a node icon, like "[+]" for example. The
+;; :glyph-name value must the name of an image found in the current
+;; theme, like "close" for example (see also the variable
+;; `tree-widget-theme').
;;
-;; open-control "[-] " (OC)
-;; close-control "[+] " (CC)
-;; empty-control "[X] " (EC)
-;; leaf-control "[>] " (LC)
-;; guide " |" (GU)
-;; noguide " " (NG)
-;; end-guide " `" (EG)
-;; handle "-" (HA)
-;; no-handle " " (NH)
+;; :guide (default `tree-widget-guide')
+;; :end-guide (default `tree-widget-end-guide')
+;; :no-guide (default `tree-widget-no-guide')
+;; :handle (default `tree-widget-handle')
+;; :no-handle (default `tree-widget-no-handle')
+;; Those properties define `item'-like widgets used to draw the
+;; tree guide lines. The :tag property value is used when drawing
+;; the text representation of the tree. The graphic look and feel
+;; is given by the images named "guide", "no-guide", "end-guide",
+;; "handle", and "no-handle" found in the current theme (see also
+;; the variable `tree-widget-theme').
;;
-;; A tree will look like this:
+;; These are the default :tag values for icons, and guide lines:
;;
-;; [-] 1 (OC :node)
-;; |-[+] 1.0 (GU+HA+CC :node)
-;; |-[X] 1.1 (GU+HA+EC :node)
-;; `-[-] 1.2 (EG+HA+OC :node)
-;; |-[>] 1.2.1 (NG+NH+GU+HA+LC child)
-;; `-[>] 1.2.2 (NG+NH+EG+HA+LC child)
+;; open-icon "[-]"
+;; close-icon "[+]"
+;; empty-icon "[X]"
+;; leaf-icon ""
+;; guide " |"
+;; no-guide " "
+;; end-guide " `"
+;; handle "-"
+;; no-handle " "
+;;
+;; The text representation of a tree looks like this:
+;;
+;; [-] 1 (open-icon :node)
+;; |-[+] 1.0 (guide+handle+close-icon :node)
+;; |-[X] 1.1 (guide+handle+empty-icon :node)
+;; `-[-] 1.2 (end-guide+handle+open-icon :node)
+;; |- 1.2.1 (no-guide+no-handle+guide+handle+leaf-icon leaf)
+;; `- 1.2.2 (no-guide+no-handle+end-guide+handle+leaf-icon leaf)
;;
;; By default, images will be used instead of strings to draw a
;; nice-looking tree. See the `tree-widget-image-enable',
@@ -133,19 +148,13 @@ The default is to use the \"tree-widget\" relative name."
(defcustom tree-widget-theme nil
"*Name of the theme where to look up for images.
It must be a sub directory of the directory specified in variable
-`tree-widget-themes-directory'. The default is \"default\". When an
-image is not found in this theme, the default theme is searched too.
-A complete theme must contain images with these file names with a
-supported extension (see also `tree-widget-image-formats'):
+`tree-widget-themes-directory'. The default theme is \"default\".
+When an image is not found in a theme, it is searched in the default
+theme.
+
+A complete theme must at least contain images with these file names
+with a supported extension (see also `tree-widget-image-formats'):
-\"open\"
- Represent an expanded node.
-\"close\"
- Represent a collapsed node.
-\"empty\"
- Represent an expanded node with no child.
-\"leaf\"
- Represent a leaf node.
\"guide\"
A vertical guide line.
\"no-guide\"
@@ -153,9 +162,21 @@ supported extension (see also `tree-widget-image-formats'):
\"end-guide\"
End of a vertical guide line.
\"handle\"
- Horizontal guide line that joins the vertical guide line to a node.
+ Horizontal guide line that joins the vertical guide line to an icon.
\"no-handle\"
- An invisible handle."
+ An invisible handle.
+
+Plus images whose name is given by the :glyph-name property of the
+icon widgets used to draw the tree. By default these images are used:
+
+\"open\"
+ Icon associated to an expanded tree.
+\"close\"
+ Icon associated to a collapsed tree.
+\"empty\"
+ Icon associated to an expanded tree with no child.
+\"leaf\"
+ Icon associated to a leaf node."
:type '(choice (const :tag "Default" nil)
(string :tag "Name"))
:group 'tree-widget)
@@ -171,6 +192,12 @@ supported extension (see also `tree-widget-image-formats'):
"*Default properties of XEmacs images."
:type 'plist
:group 'tree-widget)
+
+(defcustom tree-widget-space-width 0.5
+ "Amount of space between an icon image and a node widget.
+Must be a valid space :width display property."
+ :group 'tree-widget
+ :type 'sexp)
;;; Image support
;;
@@ -297,6 +324,8 @@ properties. Typically it should contain something like this:
'(:ascent center :mask (heuristic t))
))
+When there is no \"tree-widget-theme-setup\" library in the current
+theme directory, load the one from the default theme, if available.
Default global properties are provided for respectively Emacs and
XEmacs in the variables `tree-widget-image-properties-emacs', and
`tree-widget-image-properties-xemacs'."
@@ -308,12 +337,17 @@ XEmacs in the variables `tree-widget-image-properties-emacs', and
(file-name-directory file)) t t)
;; If properties have been setup, use them.
(unless (setq plist (aref tree-widget--theme 2))
- ;; By default, use supplied global properties.
- (setq plist (if (featurep 'xemacs)
- tree-widget-image-properties-xemacs
- tree-widget-image-properties-emacs))
- ;; Setup the cache.
- (tree-widget-set-image-properties plist)))
+ ;; Try from the default theme.
+ (load (expand-file-name "../default/tree-widget-theme-setup"
+ (file-name-directory file)) t t)
+ ;; If properties have been setup, use them.
+ (unless (setq plist (aref tree-widget--theme 2))
+ ;; By default, use supplied global properties.
+ (setq plist (if (featurep 'xemacs)
+ tree-widget-image-properties-xemacs
+ tree-widget-image-properties-emacs))
+ ;; Setup the cache.
+ (tree-widget-set-image-properties plist))))
plist))
(defconst tree-widget--cursors
@@ -321,10 +355,6 @@ XEmacs in the variables `tree-widget-image-properties-emacs', and
;; This feature works since Emacs 22, and ignored on older versions,
;; and XEmacs.
'(
- ("open" . hand )
- ("close" . hand )
- ("empty" . arrow)
- ("leaf" . arrow)
("guide" . arrow)
("no-guide" . arrow)
("end-guide" . arrow)
@@ -357,7 +387,8 @@ found."
;; Add the pointer shape
(cons :pointer
(cons
- (cdr (assoc name tree-widget--cursors))
+ (or (cdr (assoc name tree-widget--cursors))
+ 'hand)
(tree-widget-image-properties file)))))))))
nil)))))
@@ -395,40 +426,39 @@ Return the image found, or nil if not found."
"Keymap used inside node buttons.
Handle mouse button 1 click on buttons.")
-(define-widget 'tree-widget-control 'push-button
- "Basic widget other tree-widget node buttons are derived from."
+(define-widget 'tree-widget-icon 'push-button
+ "Basic widget other tree-widget icons are derived from."
:format "%[%t%]"
:button-keymap tree-widget-button-keymap ; XEmacs
:keymap tree-widget-button-keymap ; Emacs
+ :create 'tree-widget-icon-create
+ :action 'tree-widget-icon-action
+ :help-echo 'tree-widget-icon-help-echo
)
-(define-widget 'tree-widget-open-control 'tree-widget-control
- "Button for an expanded tree-widget node."
- :tag "[-] "
- ;;:tag-glyph (tree-widget-find-image "open")
- :notify 'tree-widget-close-node
- :help-echo "Collapse node"
+(define-widget 'tree-widget-open-icon 'tree-widget-icon
+ "Icon for an expanded tree-widget node."
+ :tag "[-]"
+ :glyph-name "open"
)
-(define-widget 'tree-widget-empty-control 'tree-widget-open-control
- "Button for an expanded tree-widget node with no child."
- :tag "[X] "
- ;;:tag-glyph (tree-widget-find-image "empty")
+(define-widget 'tree-widget-empty-icon 'tree-widget-icon
+ "Icon for an expanded tree-widget node with no child."
+ :tag "[X]"
+ :glyph-name "empty"
)
-(define-widget 'tree-widget-close-control 'tree-widget-control
- "Button for a collapsed tree-widget node."
- :tag "[+] "
- ;;:tag-glyph (tree-widget-find-image "close")
- :notify 'tree-widget-open-node
- :help-echo "Expand node"
+(define-widget 'tree-widget-close-icon 'tree-widget-icon
+ "Icon for a collapsed tree-widget node."
+ :tag "[+]"
+ :glyph-name "close"
)
-(define-widget 'tree-widget-leaf-control 'item
- "Representation of a tree-widget leaf node."
- :tag " " ;; Need at least one char to display the image :-(
- ;;:tag-glyph (tree-widget-find-image "leaf")
- :format "%t"
+(define-widget 'tree-widget-leaf-icon 'tree-widget-icon
+ "Icon for a tree-widget leaf node."
+ :tag ""
+ :glyph-name "leaf"
+ :button-face 'default
)
(define-widget 'tree-widget-guide 'item
@@ -454,7 +484,7 @@ Handle mouse button 1 click on buttons.")
(define-widget 'tree-widget-handle 'item
"Horizontal guide line that joins a vertical guide line to a node."
- :tag " "
+ :tag "-"
;;:tag-glyph (tree-widget-find-image "handle")
:format "%t"
)
@@ -473,10 +503,12 @@ Handle mouse button 1 click on buttons.")
:value-get 'widget-value-value-get
:value-delete 'widget-children-value-delete
:value-create 'tree-widget-value-create
- :open-control 'tree-widget-open-control
- :close-control 'tree-widget-close-control
- :empty-control 'tree-widget-empty-control
- :leaf-control 'tree-widget-leaf-control
+ :action 'tree-widget-action
+ :help-echo 'tree-widget-help-echo
+ :open-icon 'tree-widget-open-icon
+ :close-icon 'tree-widget-close-icon
+ :empty-icon 'tree-widget-empty-icon
+ :leaf-icon 'tree-widget-leaf-icon
:guide 'tree-widget-guide
:end-guide 'tree-widget-end-guide
:no-guide 'tree-widget-no-guide
@@ -553,32 +585,35 @@ WIDGET's :node sub-widget."
(widget-put arg :value (widget-value child))
;; Save properties specified in :keep.
(tree-widget-keep arg child)))))
-
-(defvar tree-widget-after-toggle-functions nil
- "Hooks run after toggling a tree-widget expansion.
-Each function will receive the tree-widget as its unique argument.
-This hook should be local in the buffer used to display widgets.")
-
-(defun tree-widget-close-node (widget &rest ignore)
- "Collapse the tree-widget, parent of WIDGET.
-WIDGET is, or derives from, a tree-widget-open-control widget.
-IGNORE other arguments."
- (let ((tree (widget-get widget :parent)))
- ;; Before to collapse the node, save children values so next open
- ;; can recover them.
- (tree-widget-children-value-save tree)
- (widget-put tree :open nil)
- (widget-value-set tree nil)
- (run-hook-with-args 'tree-widget-after-toggle-functions tree)))
-
-(defun tree-widget-open-node (widget &rest ignore)
- "Expand the tree-widget, parent of WIDGET.
-WIDGET is, or derives from, a tree-widget-close-control widget.
-IGNORE other arguments."
- (let ((tree (widget-get widget :parent)))
- (widget-put tree :open t)
- (widget-value-set tree t)
- (run-hook-with-args 'tree-widget-after-toggle-functions tree)))
+
+;;; Widget creation
+;;
+(defvar tree-widget-before-create-icon-functions nil
+ "Hooks run before to create a tree-widget icon.
+Each function is passed the icon widget not yet created.
+The value of the icon widget :node property is a tree :node widget or
+a leaf node widget, not yet created.
+This hook can be used to dynamically change properties of the icon and
+associated node widgets. For example, to dynamically change the look
+and feel of the tree-widget by changing the values of the :tag
+and :glyph-name properties of the icon widget.
+This hook should be local in the buffer setup to display widgets.")
+
+(defun tree-widget-icon-create (icon)
+ "Create the ICON widget."
+ (run-hook-with-args 'tree-widget-before-create-icon-functions icon)
+ (widget-put icon :tag-glyph
+ (tree-widget-find-image (widget-get icon :glyph-name)))
+ ;; Ensure there is at least one char to display the image.
+ (and (widget-get icon :tag-glyph)
+ (equal "" (or (widget-get icon :tag) ""))
+ (widget-put icon :tag " "))
+ (widget-default-create icon)
+ ;; Insert space between the icon and the node widget.
+ (insert-char ? 1)
+ (put-text-property
+ (1- (point)) (point)
+ 'display (list 'space :width tree-widget-space-width)))
(defun tree-widget-value-create (tree)
"Create the TREE tree-widget."
@@ -598,37 +633,34 @@ IGNORE other arguments."
(let ((args (widget-get tree :args))
(xpandr (or (widget-get tree :expander)
(widget-get tree :dynargs)))
- (leaf (widget-get tree :leaf-control))
(guide (widget-get tree :guide))
(noguide (widget-get tree :no-guide))
(endguide (widget-get tree :end-guide))
(handle (widget-get tree :handle))
(nohandle (widget-get tree :no-handle))
- (leafi (tree-widget-find-image "leaf"))
(guidi (tree-widget-find-image "guide"))
(noguidi (tree-widget-find-image "no-guide"))
(endguidi (tree-widget-find-image "end-guide"))
(handli (tree-widget-find-image "handle"))
- (nohandli (tree-widget-find-image "no-handle"))
- child)
+ (nohandli (tree-widget-find-image "no-handle")))
;; Request children at run time, when not already done.
(when (and (not args) xpandr)
(setq args (mapcar 'widget-convert (funcall xpandr tree)))
(widget-put tree :args args))
- ;; Insert the node "open" button.
+ ;; Create the icon widget for the expanded tree.
(push (widget-create-child-and-convert
- tree (widget-get
- tree (if args :open-control :empty-control))
- :tag-glyph (tree-widget-find-image
- (if args "open" "empty")))
+ tree (widget-get tree (if args :open-icon :empty-icon))
+ ;; At this point the node widget isn't yet created.
+ :node (setq node (widget-convert node)))
buttons)
- ;; Insert the :node element.
- (push (widget-create-child-and-convert tree node)
- children)
- ;; Insert children.
+ ;; Create the tree node widget.
+ (push (widget-create-child tree node) children)
+ ;; Update the icon :node with the created node widget.
+ (widget-put (car buttons) :node (car children))
+ ;; Create the tree children.
(while args
- (setq child (car args)
- args (cdr args))
+ (setq node (car args)
+ args (cdr args))
(and indent (insert-char ?\ indent))
;; Insert guide lines elements from previous levels.
(dolist (f (reverse flags))
@@ -644,30 +676,92 @@ IGNORE other arguments."
;; Insert the node handle line
(widget-create-child-and-convert
tree handle :tag-glyph handli)
- ;; If leaf node, insert a leaf node button.
- (unless (tree-widget-p child)
+ (if (tree-widget-p node)
+ ;; Create a sub-tree node.
+ (push (widget-create-child-and-convert
+ tree node :tree-widget--guide-flags
+ (cons (if args t) flags))
+ children)
+ ;; Create the icon widget for a leaf node.
(push (widget-create-child-and-convert
- tree leaf :tag-glyph leafi)
- buttons))
- ;; Finally, insert the child widget.
- (push (widget-create-child-and-convert
- tree child
- :tree-widget--guide-flags (cons (if args t) flags))
- children)))
+ tree (widget-get tree :leaf-icon)
+ ;; At this point the node widget isn't yet created.
+ :node (setq node (widget-convert
+ node :tree-widget--guide-flags
+ (cons (if args t) flags)))
+ :tree-widget--leaf-flag t)
+ buttons)
+ ;; Create the leaf node widget.
+ (push (widget-create-child tree node) children)
+ ;; Update the icon :node with the created node widget.
+ (widget-put (car buttons) :node (car children)))))
;;;; Collapsed node.
- ;; Insert the "closed" node button.
+ ;; Create the icon widget for the collapsed tree.
(push (widget-create-child-and-convert
- tree (widget-get tree :close-control)
- :tag-glyph (tree-widget-find-image "close"))
+ tree (widget-get tree :close-icon)
+ ;; At this point the node widget isn't yet created.
+ :node (setq node (widget-convert node)))
buttons)
- ;; Insert the :node element.
- (push (widget-create-child-and-convert tree node)
- children))
- ;; Save widget children and buttons. The :node child is the first
- ;; element in children.
+ ;; Create the tree node widget.
+ (push (widget-create-child tree node) children)
+ ;; Update the icon :node with the created node widget.
+ (widget-put (car buttons) :node (car children)))
+ ;; Save widget children and buttons. The tree-widget :node child
+ ;; is the first element in :children.
(widget-put tree :children (nreverse children))
- (widget-put tree :buttons buttons)
- ))
+ (widget-put tree :buttons buttons)))
+
+;;; Widget callbacks
+;;
+(defsubst tree-widget-leaf-node-icon-p (icon)
+ "Return non-nil if ICON is a leaf node icon.
+That is, if its :node property value is a leaf node widget."
+ (widget-get icon :tree-widget--leaf-flag))
+
+(defun tree-widget-icon-action (icon &optional event)
+ "Handle the ICON widget :action.
+If ICON :node is a leaf node it handles the :action. The tree-widget
+parent of ICON handles the :action otherwise.
+Pass the received EVENT to :action."
+ (let ((node (widget-get icon (if (tree-widget-leaf-node-icon-p icon)
+ :node :parent))))
+ (widget-apply node :action event)))
+
+(defun tree-widget-icon-help-echo (icon)
+ "Return the help-echo string of ICON.
+If ICON :node is a leaf node it handles the :help-echo. The tree-widget
+parent of ICON handles the :help-echo otherwise."
+ (let* ((node (widget-get icon (if (tree-widget-leaf-node-icon-p icon)
+ :node :parent)))
+ (help-echo (widget-get node :help-echo)))
+ (if (functionp help-echo)
+ (funcall help-echo node)
+ help-echo)))
+
+(defvar tree-widget-after-toggle-functions nil
+ "Hooks run after toggling a tree-widget expansion.
+Each function is passed a tree-widget. If the value of the :open
+property is non-nil the tree has been expanded, else collapsed.
+This hook should be local in the buffer setup to display widgets.")
+
+(defun tree-widget-action (tree &optional event)
+ "Handle the :action of the TREE tree-widget.
+That is, toggle expansion of the TREE tree-widget.
+Ignore the EVENT argument."
+ (let ((open (not (widget-get tree :open))))
+ (or open
+ ;; Before to collapse the node, save children values so next
+ ;; open can recover them.
+ (tree-widget-children-value-save tree))
+ (widget-put tree :open open)
+ (widget-value-set tree open)
+ (run-hook-with-args 'tree-widget-after-toggle-functions tree)))
+
+(defun tree-widget-help-echo (tree)
+ "Return the help-echo string of the TREE tree-widget."
+ (if (widget-get tree :open)
+ "Collapse node"
+ "Expand node"))
(provide 'tree-widget)
diff --git a/lisp/type-break.el b/lisp/type-break.el
index 4545351f5a..9c49a5b667 100644
--- a/lisp/type-break.el
+++ b/lisp/type-break.el
@@ -1,6 +1,7 @@
;;; type-break.el --- encourage rests from typing at appropriate intervals
-;; Copyright (C) 1994, 95, 97, 2000, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 1997, 2000, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Noah Friedman
;; Maintainer: Noah Friedman <friedman@splode.com>
diff --git a/lisp/uniquify.el b/lisp/uniquify.el
index 9e241a55f8..cc08ab7083 100644
--- a/lisp/uniquify.el
+++ b/lisp/uniquify.el
@@ -1,7 +1,7 @@
;;; uniquify.el --- unique buffer names dependent on file name
-;; Copyright (c) 1989, 1995, 1996, 1997, 2001, 2003, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1989, 1995, 1996, 1997, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Dick King <king@reasoning.com>
;; Maintainer: FSF
diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog
index 0313379814..ad0ee15020 100644
--- a/lisp/url/ChangeLog
+++ b/lisp/url/ChangeLog
@@ -1,3 +1,25 @@
+2005-09-01 Chong Yidong <cyd@stupidchicken.com>
+
+ * url-util.el (url-parse-query-string): New optional argument
+ allow-newlines allows decoding of newlines.
+
+ * url-mailto.el (url-mailto): Allow newlines in URL arguments.
+ Don't lose original "to" value when there is a "to" header.
+ Remove carriage return characters in message body.
+
+2005-08-24 Juanma Barranquero <lekktu@gmail.com>
+
+ * url-news.el (nntp-open-tls-stream, nntp-open-ssl-stream):
+ * url-http.el (url-http-cookies-sources): Defvar at compile time.
+
+2005-07-15 Richard M. Stallman <rms@gnu.org>
+
+ * url-http.el (url-http-parse-headers): Add :redirect arg-pair
+ when calling url-retrieve, to indicate a redirect.
+
+ * url.el (url-retrieve): The callback function can get an additional
+ keyword arg pair.
+
2005-07-04 Lute Kamstra <lute@gnu.org>
Update FSF's address in GPL notices.
diff --git a/lisp/url/url-about.el b/lisp/url/url-about.el
index d2fae55b14..c305bb31f7 100644
--- a/lisp/url/url-about.el
+++ b/lisp/url/url-about.el
@@ -1,6 +1,6 @@
;;; url-about.el --- Show internal URLs
-;; Copyright (c) 2001, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
;; Keywords: comm, data, processes, hypermedia
diff --git a/lisp/url/url-auth.el b/lisp/url/url-auth.el
index 336c28eab2..317f91c9a1 100644
--- a/lisp/url/url-auth.el
+++ b/lisp/url/url-auth.el
@@ -1,6 +1,7 @@
;;; url-auth.el --- Uniform Resource Locator authorization modules
-;; Copyright (c) 1996 - 1999 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Keywords: comm, data, processes, hypermedia
diff --git a/lisp/url/url-cache.el b/lisp/url/url-cache.el
index e80ba05939..40967446dd 100644
--- a/lisp/url/url-cache.el
+++ b/lisp/url/url-cache.el
@@ -1,6 +1,7 @@
;;; url-cache.el --- Uniform Resource Locator retrieval tool
-;; Copyright (c) 1996 - 1999 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Keywords: comm, data, processes, hypermedia
@@ -39,7 +40,7 @@
(if (file-exists-p file)
(not (file-directory-p file))
(file-directory-p (file-name-directory file)))))
-
+
(defun url-cache-prepare (file)
"Makes it possible to cache data in FILE.
Creates any necessary parent directories, deleting any non-directory files
@@ -70,7 +71,7 @@ FILE can be created or overwritten."
(if (url-cache-prepare fname)
(let ((coding-system-for-write 'binary))
(write-region (point-min) (point-max) fname nil 5)))))))
-
+
;;;###autoload
(defun url-is-cached (url)
"Return non-nil if the URL is cached."
diff --git a/lisp/url/url-cid.el b/lisp/url/url-cid.el
index 40307c49ea..abaf8dd9e7 100644
--- a/lisp/url/url-cid.el
+++ b/lisp/url/url-cid.el
@@ -1,6 +1,6 @@
;;; url-cid.el --- Content-ID URL loader
-;; Copyright (c) 1998 - 1999 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2004, 2005 Free Software Foundation, Inc.
;; Keywords: comm, data, processes
diff --git a/lisp/url/url-cookie.el b/lisp/url/url-cookie.el
index 314911f789..618f89e60e 100644
--- a/lisp/url/url-cookie.el
+++ b/lisp/url/url-cookie.el
@@ -1,6 +1,7 @@
;;; url-cookie.el --- Netscape Cookie support
-;; Copyright (c) 1996 - 1999,2004 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Keywords: comm, data, processes, hypermedia
diff --git a/lisp/url/url-dav.el b/lisp/url/url-dav.el
index 1b683124c9..2a6b28b9b3 100644
--- a/lisp/url/url-dav.el
+++ b/lisp/url/url-dav.el
@@ -1,6 +1,6 @@
;;; url-dav.el --- WebDAV support
-;; Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
;; Author: Bill Perry <wmperry@gnu.org>
;; Maintainer: Bill Perry <wmperry@gnu.org>
diff --git a/lisp/url/url-dired.el b/lisp/url/url-dired.el
index 5d5381db0b..7c635d13e3 100644
--- a/lisp/url/url-dired.el
+++ b/lisp/url/url-dired.el
@@ -1,6 +1,7 @@
;;; url-dired.el --- URL Dired minor mode
-;; Copyright (c) 1996 - 1999 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Keywords: comm, files
diff --git a/lisp/url/url-expand.el b/lisp/url/url-expand.el
index c8e17a524b..ca4b8c72ab 100644
--- a/lisp/url/url-expand.el
+++ b/lisp/url/url-expand.el
@@ -1,6 +1,6 @@
;;; url-expand.el --- expand-file-name for URLs
-;; Copyright (c) 1999 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2004, 2005 Free Software Foundation, Inc.
;; Keywords: comm, data, processes
diff --git a/lisp/url/url-file.el b/lisp/url/url-file.el
index 7e224bd142..44a4f8bd9f 100644
--- a/lisp/url/url-file.el
+++ b/lisp/url/url-file.el
@@ -1,6 +1,7 @@
;;; url-file.el --- File retrieval code
-;; Copyright (c) 1996 - 1999,2004 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Keywords: comm, data, processes
diff --git a/lisp/url/url-ftp.el b/lisp/url/url-ftp.el
index 966000249d..633f4ed40d 100644
--- a/lisp/url/url-ftp.el
+++ b/lisp/url/url-ftp.el
@@ -1,6 +1,7 @@
;;; url-ftp.el --- FTP wrapper
-;; Copyright (c) 1996 - 1999 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Keywords: comm, data, processes
diff --git a/lisp/url/url-gw.el b/lisp/url/url-gw.el
index e0ccbbdc4e..66ac39612f 100644
--- a/lisp/url/url-gw.el
+++ b/lisp/url/url-gw.el
@@ -1,6 +1,6 @@
;;; url-gw.el --- Gateway munging for URL loading
-;; Copyright (c) 1997, 1998, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998, 2004, 2005 Free Software Foundation, Inc.
;; Author: Bill Perry <wmperry@gnu.org>
;; Keywords: comm, data, processes
diff --git a/lisp/url/url-handlers.el b/lisp/url/url-handlers.el
index cc626a4cb4..bbbf19f53f 100644
--- a/lisp/url/url-handlers.el
+++ b/lisp/url/url-handlers.el
@@ -1,6 +1,7 @@
;;; url-handlers.el --- file-name-handler stuff for URL loading
-;; Copyright (c) 1996, 1997, 1998, 1999, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Keywords: comm, data, processes, hypermedia
diff --git a/lisp/url/url-history.el b/lisp/url/url-history.el
index 040f83ad2f..6da5dd9155 100644
--- a/lisp/url/url-history.el
+++ b/lisp/url/url-history.el
@@ -1,6 +1,7 @@
;;; url-history.el --- Global history tracking for URL package
-;; Copyright (c) 1996 - 1999,2004 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Keywords: comm, data, processes, hypermedia
diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el
index 92cbf41e76..14f5eab1b1 100644
--- a/lisp/url/url-http.el
+++ b/lisp/url/url-http.el
@@ -1,6 +1,6 @@
;;; url-http.el --- HTTP retrieval routines
-;; Copyright (c) 1999, 2001, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2001, 2004, 2005 Free Software Foundation, Inc.
;; Author: Bill Perry <wmperry@gnu.org>
;; Keywords: comm, data, processes
@@ -28,7 +28,8 @@
(eval-when-compile
(require 'cl)
- (defvar url-http-extra-headers))
+ (defvar url-http-extra-headers)
+ (defvar url-http-cookies-sources))
(require 'url-gw)
(require 'url-util)
(require 'url-parse)
@@ -501,8 +502,9 @@ should be shown to the user."
(url-request-data url-http-data)
(url-request-extra-headers url-http-extra-headers))
(url-retrieve redirect-uri url-callback-function
- (cons redirect-uri
- (cdr url-callback-arguments)))
+ (cons :redirect
+ (cons redirect-uri
+ url-callback-arguments)))
(url-mark-buffer-as-dead (current-buffer))))))
(4 ; Client error
;; 400 Bad Request
diff --git a/lisp/url/url-https.el b/lisp/url/url-https.el
index e7aeffde78..1777da0b6b 100644
--- a/lisp/url/url-https.el
+++ b/lisp/url/url-https.el
@@ -1,6 +1,6 @@
;;; url-https.el --- HTTP over SSL/TLS routines
-;; Copyright (c) 1999, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2004, 2005 Free Software Foundation, Inc.
;; Keywords: comm, data, processes
diff --git a/lisp/url/url-imap.el b/lisp/url/url-imap.el
index 9d923e1725..8d1b9b3877 100644
--- a/lisp/url/url-imap.el
+++ b/lisp/url/url-imap.el
@@ -1,6 +1,6 @@
;;; url-imap.el --- IMAP retrieval routines
-;; Copyright (c) 1999 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2004, 2005 Free Software Foundation, Inc.
;; Author: Simon Josefsson <jas@pdc.kth.se>
;; Keywords: comm, data, processes
diff --git a/lisp/url/url-irc.el b/lisp/url/url-irc.el
index dd88a85a03..a06bdff5bf 100644
--- a/lisp/url/url-irc.el
+++ b/lisp/url/url-irc.el
@@ -1,6 +1,7 @@
;;; url-irc.el --- IRC URL interface
-;; Copyright (c) 1996 - 1999 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Keywords: comm, data, processes
diff --git a/lisp/url/url-ldap.el b/lisp/url/url-ldap.el
index 9b7ce5c89b..ce7b7a9bab 100644
--- a/lisp/url/url-ldap.el
+++ b/lisp/url/url-ldap.el
@@ -1,5 +1,6 @@
;;; url-ldap.el --- LDAP Uniform Resource Locator retrieval code
-;; Copyright (c) 1998, 1999, 2004, 2005 Free Software Foundation, Inc.
+
+;; Copyright (C) 1998, 1999, 2004, 2005 Free Software Foundation, Inc.
;; Keywords: comm, data, processes
@@ -189,7 +190,7 @@ URL can be a URL string, or a URL vector of the type returned by
(setq binddn (cdr-safe (or (assoc "bindname" extensions)
(assoc "!bindname" extensions))))
-
+
;; Now, let's actually do something with it.
(setq results (cdr (ldap-search-internal
(list 'host (concat host ":" (number-to-string port))
diff --git a/lisp/url/url-mailto.el b/lisp/url/url-mailto.el
index fc3eb97e08..3316b7c4b9 100644
--- a/lisp/url/url-mailto.el
+++ b/lisp/url/url-mailto.el
@@ -1,6 +1,7 @@
;;; url-mail.el --- Mail Uniform Resource Locator retrieval code
-;; Copyright (c) 1996 - 1999 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Keywords: comm, data, processes
@@ -72,7 +73,7 @@
(setq headers-start (match-end 0)
to (url-unhex-string (substring url 0 (match-beginning 0)))
args (url-parse-query-string
- (substring url headers-start nil) t))
+ (substring url headers-start nil) t t))
(setq to (url-unhex-string url)))
(setq source-url (url-view-url t))
(if (and url-request-data (not (assoc "subject" args)))
@@ -83,16 +84,23 @@
(if (and source-url (not (assoc "x-url-from" args)))
(setq args (cons (list "x-url-from" source-url) args)))
- (if (assoc "to" args)
- (push (cdr (assoc "to" args)) to)
- (setq args (cons (list "to" to) args)))
+ (let ((tolist (assoc "to" args)))
+ (if tolist
+ (if (not (string= to ""))
+ (setcdr tolist
+ (list (concat to ", " (cadr tolist)))))
+ (setq args (cons (list "to" to) args))))
+
(setq subject (cdr-safe (assoc "subject" args)))
(if (fboundp url-mail-command) (funcall url-mail-command) (mail))
(while args
(if (string= (caar args) "body")
(progn
(goto-char (point-max))
- (insert (mapconcat 'identity (cdar args) "\n")))
+ (insert (mapconcat
+ #'(lambda (string)
+ (replace-regexp-in-string "\r\n" "\n" string))
+ (cdar args) "\n")))
(url-mail-goto-field (caar args))
(setq func (intern-soft (concat "mail-" (caar args))))
(insert (mapconcat 'identity (cdar args) ", ")))
diff --git a/lisp/url/url-methods.el b/lisp/url/url-methods.el
index a82d78db3a..e39ffa1eb5 100644
--- a/lisp/url/url-methods.el
+++ b/lisp/url/url-methods.el
@@ -1,6 +1,7 @@
;;; url-methods.el --- Load URL schemes as needed
-;; Copyright (c) 1996,1997,1998,1999,2004 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Keywords: comm, data, processes, hypermedia
diff --git a/lisp/url/url-misc.el b/lisp/url/url-misc.el
index e937c99a51..5041a40742 100644
--- a/lisp/url/url-misc.el
+++ b/lisp/url/url-misc.el
@@ -1,6 +1,7 @@
;;; url-misc.el --- Misc Uniform Resource Locator retrieval code
-;; Copyright (c) 1996,1997,1998,1999,2002 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2002, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Keywords: comm, data, processes
diff --git a/lisp/url/url-news.el b/lisp/url/url-news.el
index 969edf6f68..93a9dd5e50 100644
--- a/lisp/url/url-news.el
+++ b/lisp/url/url-news.el
@@ -1,6 +1,7 @@
;;; url-news.el --- News Uniform Resource Locator retrieval code
-;; Copyright (c) 1996 - 1999, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Keywords: comm, data, processes
@@ -29,7 +30,10 @@
(require 'nntp)
(autoload 'url-warn "url")
(autoload 'gnus-group-read-ephemeral-group "gnus-group")
-(eval-when-compile (require 'cl))
+(eval-when-compile
+ (require 'cl)
+ (defvar nntp-open-tls-stream)
+ (defvar nntp-open-ssl-stream))
(defgroup url-news nil
"News related options."
diff --git a/lisp/url/url-nfs.el b/lisp/url/url-nfs.el
index 0273415b8a..858cd029a8 100644
--- a/lisp/url/url-nfs.el
+++ b/lisp/url/url-nfs.el
@@ -1,6 +1,7 @@
;;; url-nfs.el --- NFS URL interface
-;; Copyright (c) 1996,1997,1998,1999,2004 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Keywords: comm, data, processes
diff --git a/lisp/url/url-ns.el b/lisp/url/url-ns.el
index d76c7cf459..3edbf2c84d 100644
--- a/lisp/url/url-ns.el
+++ b/lisp/url/url-ns.el
@@ -1,6 +1,6 @@
;;; url-ns.el --- Various netscape-ish functions for proxy definitions
-;; Copyright (c) 1997 - 1999 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998, 1999, 2004, 2005 Free Software Foundation, Inc.
;; Keywords: comm, data, processes, hypermedia
diff --git a/lisp/url/url-parse.el b/lisp/url/url-parse.el
index db85c43a38..bbe7f112ce 100644
--- a/lisp/url/url-parse.el
+++ b/lisp/url/url-parse.el
@@ -1,6 +1,7 @@
;;; url-parse.el --- Uniform Resource Locator parser
-;; Copyright (c) 1996,1997,1998,1999,2004 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Keywords: comm, data, processes
@@ -84,7 +85,7 @@
(defmacro url-set-full (urlobj val)
`(aset ,urlobj 8 ,val))
-
+
;;;###autoload
(defun url-recreate-url (urlobj)
"Recreate a URL string from the parsed URLOBJ."
diff --git a/lisp/url/url-privacy.el b/lisp/url/url-privacy.el
index e28a388dfa..7700bb1394 100644
--- a/lisp/url/url-privacy.el
+++ b/lisp/url/url-privacy.el
@@ -1,6 +1,7 @@
;;; url-privacy.el --- Global history tracking for URL package
-;; Copyright (c) 1996 - 1999 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Keywords: comm, data, processes, hypermedia
diff --git a/lisp/url/url-proxy.el b/lisp/url/url-proxy.el
index 1eb8f90bda..c5d7753daf 100644
--- a/lisp/url/url-proxy.el
+++ b/lisp/url/url-proxy.el
@@ -1,6 +1,6 @@
;;; url-proxy.el --- Proxy server support
-;; Copyright (c) 1999 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2004, 2005 Free Software Foundation, Inc.
;; Keywords: comm, data, processes, hypermedia
diff --git a/lisp/url/url-util.el b/lisp/url/url-util.el
index e64d328fd3..538eb3eca4 100644
--- a/lisp/url/url-util.el
+++ b/lisp/url/url-util.el
@@ -1,6 +1,7 @@
;;; url-util.el --- Miscellaneous helper routines for URL library
-;; Copyright (c) 1996,1997,1998,1999,2001,2004 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2001, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Bill Perry <wmperry@gnu.org>
;; Keywords: comm, data, processes
@@ -269,7 +270,7 @@ Will not do anything if `url-show-status' is nil."
(t (file-name-directory file))))
;;;###autoload
-(defun url-parse-query-string (query &optional downcase)
+(defun url-parse-query-string (query &optional downcase allow-newlines)
(let (retval pairs cur key val)
(setq pairs (split-string query "&"))
(while pairs
@@ -277,8 +278,10 @@ Will not do anything if `url-show-status' is nil."
pairs (cdr pairs))
(if (not (string-match "=" cur))
nil ; Grace
- (setq key (url-unhex-string (substring cur 0 (match-beginning 0)))
- val (url-unhex-string (substring cur (match-end 0) nil)))
+ (setq key (url-unhex-string (substring cur 0 (match-beginning 0))
+ allow-newlines))
+ (setq val (url-unhex-string (substring cur (match-end 0) nil)
+ allow-newlines))
(if downcase
(setq key (downcase key)))
(setq cur (assoc key retval))
diff --git a/lisp/url/url-vars.el b/lisp/url/url-vars.el
index 7666989917..53b8a5eef3 100644
--- a/lisp/url/url-vars.el
+++ b/lisp/url/url-vars.el
@@ -1,6 +1,7 @@
;;; url-vars.el --- Variables for Uniform Resource Locator tool
-;; Copyright (c) 1996,1997,1998,1999,2001,2004 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2001, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Keywords: comm, data, processes, hypermedia
diff --git a/lisp/url/url.el b/lisp/url/url.el
index 695aceb871..ef101fe6f2 100644
--- a/lisp/url/url.el
+++ b/lisp/url/url.el
@@ -1,7 +1,7 @@
;;; url.el --- Uniform Resource Locator retrieval tool
-;; Copyright (c) 1996, 1997, 1998, 1999, 2001, 2004, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1998, 1999, 2001, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Bill Perry <wmperry@gnu.org>
;; Keywords: comm, data, processes, hypermedia
@@ -56,7 +56,7 @@
(require 'url-parse)
(require 'url-util)
-;; Fixme: customize? convert-standard-filename?
+;; Fixme: customize? convert-standard-filename?
;;;###autoload
(defvar url-configuration-directory "~/.url")
@@ -71,7 +71,7 @@ Emacs."
(mailcap-parse-mailcaps)
(mailcap-parse-mimetypes)
-
+
;; Register all the authentication schemes we can handle
(url-register-auth-scheme "basic" nil 4)
(url-register-auth-scheme "digest" nil 7)
@@ -79,11 +79,11 @@ Emacs."
(setq url-cookie-file
(or url-cookie-file
(expand-file-name "cookies" url-configuration-directory)))
-
+
(setq url-history-file
(or url-history-file
(expand-file-name "history" url-configuration-directory)))
-
+
;; Parse the global history file if it exists, so that it can be used
;; for URL completion, etc.
(url-history-parse-history)
@@ -123,9 +123,14 @@ Emacs."
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun url-retrieve (url callback &optional cbargs)
"Retrieve URL asynchronously and call CALLBACK with CBARGS when finished.
-The callback is called when the object has been completely retrieved, with
+URL is either a string or a parsed URL.
+
+CALLBACK is called when the object has been completely retrieved, with
the current buffer containing the object, and any MIME headers associated
-with it. URL is either a string or a parsed URL.
+with it. Normally it gets the arguments in the list CBARGS.
+However, if what we find is a redirect, CALLBACK is given
+two additional args, `:redirect' and the redirected URL,
+followed by CBARGS.
Return the buffer URL will load into, or nil if the process has
already completed."
@@ -224,7 +229,7 @@ no further processing). URL is either a string or a parsed URL."
(message "Viewing externally")
(kill-buffer (current-buffer)))
(display-buffer (current-buffer))
- (add-hook 'kill-buffer-hook
+ (add-hook 'kill-buffer-hook
`(lambda () (mm-destroy-parts ',handle))
nil
t)))))
diff --git a/lisp/url/vc-dav.el b/lisp/url/vc-dav.el
index bfc532958b..926b90d5f3 100644
--- a/lisp/url/vc-dav.el
+++ b/lisp/url/vc-dav.el
@@ -1,6 +1,6 @@
;;; vc-dav.el --- vc.el support for WebDAV
-;; Copyright (C) 2001 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
;; Author: Bill Perry <wmperry@gnu.org>
;; Maintainer: Bill Perry <wmperry@gnu.org>
@@ -57,7 +57,7 @@ For a list of possible values, see `vc-state'."
;; _WE_ have a lock
'edited
(cdr (car locks)))))))
-
+
(defun vc-dav-checkout-model (url)
"Indicate whether URL needs to be \"checked out\" before it can be edited.
See `vc-checkout-model' for a list of possible values."
diff --git a/lisp/userlock.el b/lisp/userlock.el
index 5e2f337db0..37ff1f13ba 100644
--- a/lisp/userlock.el
+++ b/lisp/userlock.el
@@ -1,6 +1,7 @@
;;; userlock.el --- handle file access contention between multiple users
-;; Copyright (C) 1985, 1986 Free Software Foundation, inc.
+;; Copyright (C) 1985, 1986, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: internal
diff --git a/lisp/vc-arch.el b/lisp/vc-arch.el
index d59e714317..79056c4c94 100644
--- a/lisp/vc-arch.el
+++ b/lisp/vc-arch.el
@@ -1,7 +1,6 @@
;;; vc-arch.el --- VC backend for the Arch version-control system
-;; Copyright (C) 1995, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 2004, 2005 Free Software Foundation, Inc.
;; Author: FSF (see vc.el for full credits)
;; Maintainer: Stefan Monnier <monnier@gnu.org>
diff --git a/lisp/vc-cvs.el b/lisp/vc-cvs.el
index 1675935140..cf661f6276 100644
--- a/lisp/vc-cvs.el
+++ b/lisp/vc-cvs.el
@@ -1,7 +1,7 @@
;;; vc-cvs.el --- non-resident support for CVS version-control
-;; Copyright (C) 1995,98,99,2000,2001,02,2003, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1998, 1999, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: FSF (see vc.el for full credits)
;; Maintainer: Andre Spiegel <spiegel@gnu.org>
diff --git a/lisp/vc-hooks.el b/lisp/vc-hooks.el
index 5e8bf4f523..5872e2f199 100644
--- a/lisp/vc-hooks.el
+++ b/lisp/vc-hooks.el
@@ -1,7 +1,7 @@
;;; vc-hooks.el --- resident support for version-control
-;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2003, 2004
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2002,
+;; 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: FSF (see vc.el for full credits)
;; Maintainer: Andre Spiegel <spiegel@gnu.org>
diff --git a/lisp/vc-mcvs.el b/lisp/vc-mcvs.el
index e324cb7eb1..271cd01cbf 100644
--- a/lisp/vc-mcvs.el
+++ b/lisp/vc-mcvs.el
@@ -1,7 +1,6 @@
;;; vc-mcvs.el --- VC backend for the Meta-CVS version-control system
-;; Copyright (C) 1995, 1998, 1999, 2000, 2001, 2002, 2003, 2004
-;; Free Software Foundation, Inc.
+;; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: FSF (see vc.el for full credits)
;; Maintainer: Stefan Monnier <monnier@gnu.org>
diff --git a/lisp/vc-rcs.el b/lisp/vc-rcs.el
index e591baf3a2..e301804cf1 100644
--- a/lisp/vc-rcs.el
+++ b/lisp/vc-rcs.el
@@ -1,7 +1,7 @@
;;; vc-rcs.el --- support for RCS version-control
-;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-;; 2000, 2001, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+;; 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: FSF (see vc.el for full credits)
;; Maintainer: Andre Spiegel <spiegel@gnu.org>
diff --git a/lisp/vc-sccs.el b/lisp/vc-sccs.el
index c4a48274e3..e4d14d8ae7 100644
--- a/lisp/vc-sccs.el
+++ b/lisp/vc-sccs.el
@@ -1,7 +1,7 @@
;;; vc-sccs.el --- support for SCCS version-control
-;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-;; 2000, 2001, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+;; 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
;; Author: FSF (see vc.el for full credits)
;; Maintainer: Andre Spiegel <spiegel@gnu.org>
diff --git a/lisp/vc-svn.el b/lisp/vc-svn.el
index 9e0b3414a0..de34fa847e 100644
--- a/lisp/vc-svn.el
+++ b/lisp/vc-svn.el
@@ -1,7 +1,6 @@
;;; vc-svn.el --- non-resident support for Subversion version-control
-;; Copyright (C) 1995, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: FSF (see vc.el for full credits)
;; Maintainer: Stefan Monnier <monnier@gnu.org>
diff --git a/lisp/vc.el b/lisp/vc.el
index d4ece57a3d..a0b6ffa0ad 100644
--- a/lisp/vc.el
+++ b/lisp/vc.el
@@ -1,7 +1,7 @@
;;; vc.el --- drive a version-control system from within Emacs
-;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-;; 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000,
+;; 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: FSF (see below for full credits)
;; Maintainer: Andre Spiegel <spiegel@gnu.org>
diff --git a/lisp/vcursor.el b/lisp/vcursor.el
index fd7d141666..11ac28ae14 100644
--- a/lisp/vcursor.el
+++ b/lisp/vcursor.el
@@ -1,6 +1,7 @@
;;; vcursor.el --- manipulate an alternative ("virtual") cursor
-;; Copyright (C) 1994, 1996, 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1996, 1998, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Peter Stephenson <pws@ibmth.df.unipi.it>
;; Maintainer: FSF
@@ -356,7 +357,7 @@ disable the vcursor."
(defun vcursor-bind-keys (var value)
"Alter the value of the variable VAR to VALUE, binding keys as required.
-VAR is usually vcursor-key-bindings. Normally this function is called
+VAR is usually `vcursor-key-bindings'. Normally this function is called
on loading vcursor and from the customize package."
(set var value)
(cond
@@ -464,8 +465,8 @@ on loading vcursor and from the customize package."
(defcustom vcursor-key-bindings nil
"*How to bind keys when vcursor is loaded.
-If t, guess; if xterm, use bindings suitable for an X terminal; if
-oemacs, use bindings which work on a PC with Oemacs. If nil, don't
+If t, guess; if `xterm', use bindings suitable for an X terminal; if
+`oemacs', use bindings which work on a PC with Oemacs. If nil, don't
define any key bindings.
Default is nil."
@@ -514,7 +515,7 @@ scrolling set this. It is used by the `vcursor-auto-disable' code.")
(defvar vcursor-use-vcursor-map nil
"Non-nil if the vcursor map is mapped directly onto the main keymap.
-See vcursor-toggle-vcursor-map.")
+See `vcursor-toggle-vcursor-map'.")
(make-variable-buffer-local 'vcursor-use-vcursor-map)
(defvar vcursor-map nil "Keymap for vcursor command.")
@@ -575,7 +576,7 @@ With optional NOT-THIS non-nil never return the current window.
With NEW-WIN non-nil, display the virtual cursor buffer in another
window if the virtual cursor is not currently visible \(note, however,
-that this function never changes window-point\).
+that this function never changes `window-point'\).
With THIS-FRAME non-nil, don't search other frames for a new window
\(though if the vcursor is already off-frame then its current window is
@@ -674,15 +675,15 @@ another window. With LEAVE-W, use the current `vcursor-window'."
(insert text))
)
-(defun vcursor-relative-move (fn &rest args)
- "Use FUNCTION with arbitrary ARG1 ... to move the virtual cursor.
+(defun vcursor-relative-move (func &rest args)
+ "Call FUNC with arbitrary ARGS ... to move the virtual cursor.
This is called by most of the virtual-cursor motion commands."
(let (text opoint)
(save-excursion
(vcursor-locate)
(setq opoint (point))
- (apply fn args)
+ (apply func args)
(and (eq opoint (point-max)) (eq opoint (point))
(signal 'end-of-buffer nil))
(vcursor-move (point))
@@ -730,7 +731,7 @@ The vcursor will always appear in an unselected window."
)
(defun vcursor-scroll-down (&optional n)
- "Scroll down the vcursor window ARG lines or near-full screen if none.
+ "Scroll down the vcursor window ARG lines or near full screen if none.
The vcursor will always appear in an unselected window."
(interactive "P")
@@ -791,10 +792,10 @@ is visible in the current one."
(setq vcursor-last-command t)
)
-(defun vcursor-get-char-count (fn &rest args)
- "Apply FN to ARG1 ... and return the number of characters moved.
-Point is temporarily set to the virtual cursor position before FN is
-called.
+(defun vcursor-get-char-count (func &rest args)
+ "Apply FUNC to ARGS ... and return the number of characters moved.
+Point is temporarily set to the virtual cursor position before FUNC
+is called.
This is called by most of the virtual-cursor copying commands to find
out how much to copy."
@@ -803,7 +804,7 @@ out how much to copy."
(save-excursion
(set-buffer (overlay-buffer vcursor-overlay))
(let ((start (goto-char (overlay-start vcursor-overlay))))
- (- (progn (apply fn args) (point)) start)))
+ (- (progn (apply func args) (point)) start)))
)
;; Make sure the virtual cursor is active. Unless arg is non-nil,
@@ -822,13 +823,12 @@ Next time you use it, it will start from point.
With a positive prefix ARG, the first window in cyclic order
displaying the virtual cursor (or which was recently displaying the
-virtual cursor) will be deleted unless it's the selected
-window.
+virtual cursor) will be deleted unless it's the selected window.
With a negative prefix argument, enable the virtual cursor: make it
active at the same point as the real cursor.
-Copying mode is always turned off: the next use of the vcursor will
+Copying mode is always turned off: the next use of the vcursor will
not copy text until you turn it on again."
(interactive "P")
@@ -854,7 +854,7 @@ This is the next window cyclically after one currently showing the
virtual cursor, or else after the current selected window. If there
is no other window, the current window is split.
-Arguments N and optional ALL-FRAMES are the same as with other-window.
+Arguments N and optional ALL-FRAMES are the same as with `other-window'.
ALL-FRAMES is also used to decide whether to split the window."
(interactive "p")
@@ -1042,7 +1042,7 @@ ARG is as for `end-of-line'."
(defun vcursor-beginning-of-buffer (&optional arg)
"Move the virtual cursor to the beginning of its buffer.
-ARG is as for beginning-of-buffer."
+ARG is as for `beginning-of-buffer'."
(interactive "P")
(vcursor-relative-move
(lambda (arg)
@@ -1053,7 +1053,7 @@ ARG is as for beginning-of-buffer."
(defun vcursor-end-of-buffer (&optional arg)
"Move the virtual cursor to the end of its buffer.
-ARG is as for end-of-buffer.
+ARG is as for `end-of-buffer'.
Actually, the vcursor is moved to the second from last character or it
would be invisible."
diff --git a/lisp/version.el b/lisp/version.el
index d52e1e944c..b34a4c7cde 100644
--- a/lisp/version.el
+++ b/lisp/version.el
@@ -1,7 +1,7 @@
;;; version.el --- record version number of Emacs -*- no-byte-compile: t -*-
-;;; Copyright (C) 1985, 1992, 1994, 1995, 1999, 2000, 2001
-;;; Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1992, 1994, 1995, 1999, 2000, 2001, 2002,
+;; 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: internal
@@ -47,7 +47,7 @@ Time at which Emacs was dumped out.")
(defconst emacs-build-system (system-name))
-(defun emacs-version (&optional here) "\
+(defun emacs-version (&optional here) "\
Return string describing the version of Emacs that is running.
If optional argument HERE is non-nil, insert string at point.
Don't use this function in programs to choose actions according
@@ -84,7 +84,7 @@ to the system configuration; look at `system-configuration' instead."
;; We put version info into the executable in the form that `ident' uses.
(or (memq system-type '(vax-vms windows-nt))
- (purecopy (concat "\n$Id: " (subst-char-in-string ?\n ? (emacs-version))
+ (purecopy (concat "\n$Id: " (subst-char-in-string ?\n ?\s (emacs-version))
" $\n")))
;;Local variables:
diff --git a/lisp/view.el b/lisp/view.el
index c327dcdaa3..80c6207f27 100644
--- a/lisp/view.el
+++ b/lisp/view.el
@@ -1,7 +1,7 @@
;;; view.el --- peruse file or buffer without editing
-;; Copyright (C) 1985, 1989, 1994, 1995, 1997, 2000, 2001
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1989, 1994, 1995, 1997, 2000, 2001, 2002,
+;; 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: K. Shane Hartman
;; Maintainer: Inge Frick <inge@nada.kth.se>
diff --git a/lisp/vms-patch.el b/lisp/vms-patch.el
index 886b8572e7..b591c0d56f 100644
--- a/lisp/vms-patch.el
+++ b/lisp/vms-patch.el
@@ -1,6 +1,7 @@
;;; vms-patch.el --- override parts of files.el for VMS
-;; Copyright (C) 1986, 1992 Free Software Foundation, Inc.
+;; Copyright (C) 1986, 1992, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: vms
diff --git a/lisp/vmsproc.el b/lisp/vmsproc.el
index 9871daa7a5..aa96560ee4 100644
--- a/lisp/vmsproc.el
+++ b/lisp/vmsproc.el
@@ -1,6 +1,6 @@
;;; vmsproc.el --- run asynchronous VMS subprocesses under Emacs
-;; Copyright (C) 1986 Free Software Foundation, Inc.
+;; Copyright (C) 1986, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Mukesh Prasad
;; Maintainer: FSF
@@ -34,24 +34,21 @@
"String to insert to distinguish commands entered by user.")
(defvar subprocess-running nil)
-(defvar command-mode-map nil)
+(defvar subprocess-buf nil)
-(if command-mode-map
- nil
- (setq command-mode-map (make-sparse-keymap))
- (define-key command-mode-map "\C-m" 'command-send-input)
- (define-key command-mode-map "\C-u" 'command-kill-line))
+(defvar command-mode-map
+ (let ((map (make-sparse-keymap)))
+ (define-key map "\C-m" 'command-send-input)
+ (define-key map "\C-u" 'command-kill-line)
+ map))
(defun subprocess-input (name str)
"Handles input from a subprocess. Called by Emacs."
(if display-subprocess-window
(display-buffer subprocess-buf))
- (let ((old-buffer (current-buffer)))
- (set-buffer subprocess-buf)
+ (with-current-buffer subprocess-buf
(goto-char (point-max))
- (insert str)
- (insert ?\n)
- (set-buffer old-buffer)))
+ (insert str ?\n)))
(defun subprocess-exit (name)
"Called by Emacs upon subprocess exit."
@@ -65,8 +62,7 @@ the end."
(if subprocess-running
(return t))
(setq subprocess-buf (get-buffer-create "*COMMAND*"))
- (save-excursion
- (set-buffer subprocess-buf)
+ (with-current-buffer subprocess-buf
(use-local-map command-mode-map))
(setq subprocess-running (spawn-subprocess 1 'subprocess-input
'subprocess-exit))
@@ -81,25 +77,24 @@ the end."
(setq cmd (substring command 0 (string-match " " command)))
(setq args (substring command (string-match " " command)))
(call-process cmd nil buffer nil "*dcl*" args)))
-;BUGS: only the output up to the end of the first image activation is trapped.
-; (if (not subprocess-running)
-; (start-subprocess))
-; (save-excursion
-; (set-buffer buffer)
-; (let ((output-filename (concat "SYS$SCRATCH:OUTPUT-FOR-"
-; (getenv "USER") ".LISTING")))
-; (while (file-exists-p output-filename)
-; (delete-file output-filename))
-; (define-logical-name "SYS$OUTPUT" (concat output-filename "-NEW"))
-; (send-command-to-subprocess 1 command)
-; (send-command-to-subprocess 1 (concat
-; "RENAME " output-filename
-; "-NEW " output-filename))
-; (while (not (file-exists-p output-filename))
-; (sleep-for 1))
-; (define-logical-name "SYS$OUTPUT" nil)
-; (insert-file output-filename)
-; (delete-file output-filename))))
+ ;; BUGS: only the output up to the end of the first image activation is trapped.
+ ;; (if (not subprocess-running)
+ ;; (start-subprocess))
+ ;; (with-current-buffer buffer
+ ;; (let ((output-filename (concat "SYS$SCRATCH:OUTPUT-FOR-"
+ ;; (getenv "USER") ".LISTING")))
+ ;; (while (file-exists-p output-filename)
+ ;; (delete-file output-filename))
+ ;; (define-logical-name "SYS$OUTPUT" (concat output-filename "-NEW"))
+ ;; (send-command-to-subprocess 1 command)
+ ;; (send-command-to-subprocess 1 (concat
+ ;; "RENAME " output-filename
+ ;; "-NEW " output-filename))
+ ;; (while (not (file-exists-p output-filename))
+ ;; (sleep-for 1))
+ ;; (define-logical-name "SYS$OUTPUT" nil)
+ ;; (insert-file output-filename)
+ ;; (delete-file output-filename))))
(defun subprocess-command ()
"Starts asynchronous subprocess if not running and switches to its window."
@@ -115,8 +110,7 @@ the spawned subprocess. Otherwise brings back current
line to the last line for resubmission."
(interactive)
(beginning-of-line)
- (let ((current-line (buffer-substring (point)
- (progn (end-of-line) (point)))))
+ (let ((current-line (buffer-substring (point) (line-end-position))))
(if (eobp)
(progn
(if (not subprocess-running)
@@ -129,15 +123,16 @@ line to the last line for resubmission."
(progn (beginning-of-line) (insert command-prefix-string)))
(next-line 1))))
;; else -- if not at last line in buffer
- (end-of-buffer)
+ (goto-char (point-max))
(backward-char)
(next-line 1)
- (if (string-equal command-prefix-string
- (substring current-line 0 (length command-prefix-string)))
- (insert (substring current-line (length command-prefix-string)))
- (insert current-line)))))
+ (insert
+ (if (compare-strings command-prefix-string nil nil
+ current-line 0 (length command-prefix-string))
+ (substring current-line (length command-prefix-string))
+ current-line)))))
-(defun command-kill-line()
+(defun command-kill-line ()
"Kills the current line. Used in command mode."
(interactive)
(beginning-of-line)
@@ -145,5 +140,5 @@ line to the last line for resubmission."
(define-key esc-map "$" 'subprocess-command)
-;;; arch-tag: 600b2512-f903-4887-bcd2-e76b306f5b66
+;; arch-tag: 600b2512-f903-4887-bcd2-e76b306f5b66
;;; vmsproc.el ends here
diff --git a/lisp/vt-control.el b/lisp/vt-control.el
index ed65c93290..61d8ec32a7 100644
--- a/lisp/vt-control.el
+++ b/lisp/vt-control.el
@@ -1,6 +1,7 @@
;;; vt-control.el --- Common VTxxx control functions
-;; Copyright (C) 1993, 1994 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Rob Riepel <riepel@networking.stanford.edu>
;; Maintainer: Rob Riepel <riepel@networking.stanford.edu>
diff --git a/lisp/vt100-led.el b/lisp/vt100-led.el
index 805746dd49..0238962082 100644
--- a/lisp/vt100-led.el
+++ b/lisp/vt100-led.el
@@ -1,6 +1,6 @@
;;; vt100-led.el --- functions for LED control on VT-100 terminals & clones
-;; Copyright (C) 1988 Free Software Foundation, Inc.
+;; Copyright (C) 1988, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Howard Gayle
;; Maintainer: FSF
diff --git a/lisp/w32-fns.el b/lisp/w32-fns.el
index 28f268bf62..5b801e2983 100644
--- a/lisp/w32-fns.el
+++ b/lisp/w32-fns.el
@@ -1,6 +1,7 @@
;;; w32-fns.el --- Lisp routines for Windows NT
-;; Copyright (C) 1994, 2001, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Geoff Voelker <voelker@cs.washington.edu>
;; Keywords: internal
@@ -34,6 +35,8 @@
;;; Code:
+(defvar explicit-shell-file-name)
+
;; Map delete and backspace
(define-key function-key-map [backspace] "\177")
(define-key function-key-map [delete] "\C-d")
@@ -60,7 +63,7 @@ That includes all Windows systems except for 9X/Me."
(defun w32-shell-name ()
"Return the name of the shell being used."
- (or (and (boundp 'explicit-shell-file-name) explicit-shell-file-name)
+ (or (bound-and-true-p explicit-shell-file-name)
(getenv "ESHELL")
(getenv "SHELL")
(and (w32-using-nt) "cmd.exe")
@@ -272,7 +275,7 @@ shell requires it (see `w32-shell-dos-semantics')."
(defun set-w32-system-coding-system (coding-system)
"Set the coding system used by the Windows system to CODING-SYSTEM.
This is used for things like passing font names with non-ASCII
-characters in them to the system. For a list of possible values of
+characters in them to the system. For a list of possible values of
CODING-SYSTEM, use \\[list-coding-systems].
This function is provided for backward compatibility, since
@@ -355,8 +358,8 @@ This function is provided for backward compatibility, since
Creates entries in `w32-charset-info-alist'.
XLFD-CHARSET is a string which will appear in the XLFD font name to
identify the character set. WINDOWS-CHARSET is a symbol identifying
-the Windows character set this maps to. For the list of possible
-values, see the documentation for `w32-charset-info-alist'. CODEPAGE
+the Windows character set this maps to. For the list of possible
+values, see the documentation for `w32-charset-info-alist'. CODEPAGE
can be a numeric codepage that Windows uses to display the character
set, t for Unicode output with no codepage translation or nil for 8
bit output with no translation."
@@ -421,7 +424,7 @@ bit output with no translation."
(defun x-select-text (text &optional push)
"Make TEXT the last selected text.
If `x-select-enable-clipboard' is non-nil, copy the text to the system
-clipboard as well. Optional PUSH is ignored on Windows."
+clipboard as well. Optional PUSH is ignored on Windows."
(if x-select-enable-clipboard
(w32-set-clipboard-data text))
(setq x-last-selected-text text))
diff --git a/lisp/w32-vars.el b/lisp/w32-vars.el
index 8e998b9968..1b4ea8ee60 100644
--- a/lisp/w32-vars.el
+++ b/lisp/w32-vars.el
@@ -1,6 +1,6 @@
;;; w32-vars.el --- MS-Windows specific user options
-;; Copyright (C) 2002 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Jason Rumney <jasonr@gnu.org>
;; Keywords: internal
diff --git a/lisp/wdired.el b/lisp/wdired.el
index c22a8dff63..ef20ea6f9a 100644
--- a/lisp/wdired.el
+++ b/lisp/wdired.el
@@ -1,6 +1,6 @@
;;; wdired.el --- Rename files editing their names in dired buffers
-;; Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 2004, 2005 Free Software Foundation, Inc.
;; Filename: wdired.el
;; Author: Juan León Lahoz García <juanleon1@gmail.com>
diff --git a/lisp/whitespace.el b/lisp/whitespace.el
index f1255df948..d3ae080e48 100644
--- a/lisp/whitespace.el
+++ b/lisp/whitespace.el
@@ -1,6 +1,7 @@
;;; whitespace.el --- warn about and clean bogus whitespaces in the file
-;; Copyright (C) 1999, 2000, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Rajesh Vaidheeswarran <rv@gnu.org>
;; Keywords: convenience
@@ -109,32 +110,32 @@ visited by the buffers.")
(put 'whitespace-mode-line 'permanent-local nil)
(defvar whitespace-check-buffer-leading nil
- "Test leading whitespace for file in current buffer if t")
+ "Test leading whitespace for file in current buffer if t.")
(make-variable-buffer-local 'whitespace-check-buffer-leading)
(put 'whitespace-check-buffer-leading 'permanent-local nil)
(defvar whitespace-check-buffer-trailing nil
- "Test trailing whitespace for file in current buffer if t")
+ "Test trailing whitespace for file in current buffer if t.")
(make-variable-buffer-local 'whitespace-check-buffer-trailing)
(put 'whitespace-check-buffer-trailing 'permanent-local nil)
(defvar whitespace-check-buffer-indent nil
- "Test indentation whitespace for file in current buffer if t")
+ "Test indentation whitespace for file in current buffer if t.")
(make-variable-buffer-local 'whitespace-check-buffer-indent)
(put 'whitespace-check-buffer-indent 'permanent-local nil)
(defvar whitespace-check-buffer-spacetab nil
- "Test Space-followed-by-TABS whitespace for file in current buffer if t")
+ "Test Space-followed-by-TABS whitespace for file in current buffer if t.")
(make-variable-buffer-local 'whitespace-check-buffer-spacetab)
(put 'whitespace-check-buffer-spacetab 'permanent-local nil)
(defvar whitespace-check-buffer-ateol nil
- "Test end-of-line whitespace for file in current buffer if t")
+ "Test end-of-line whitespace for file in current buffer if t.")
(make-variable-buffer-local 'whitespace-check-buffer-ateol)
(put 'whitespace-check-buffer-ateol 'permanent-local nil)
(defvar whitespace-highlighted-space nil
- "The variable to store the extent to highlight")
+ "The variable to store the extent to highlight.")
(make-variable-buffer-local 'whitespace-highlighted-space)
(put 'whitespace-highlighted-space 'permanent-local nil)
@@ -142,61 +143,53 @@ visited by the buffers.")
(eval-when-compile
(if (not (fboundp 'defgroup))
(defmacro defgroup (sym memb doc &rest args)
- "Null macro for defgroup in all versions of Emacs that don't define
-defgroup"
+ "Null macro for `defgroup' in all versions of Emacs that don't define it."
t))
(if (not (fboundp 'defcustom))
(defmacro defcustom (sym val doc &rest args)
- "Macro to alias defcustom to defvar in all versions of Emacs that
-don't define defcustom"
+ "Macro to alias `defcustom' to `defvar' in all versions of Emacs that
+don't define it."
`(defvar ,sym ,val ,doc))))
-(if (fboundp 'make-overlay)
- (progn
- (defalias 'whitespace-make-overlay 'make-overlay)
- (defalias 'whitespace-overlay-put 'overlay-put)
- (defalias 'whitespace-delete-overlay 'delete-overlay)
- (defalias 'whitespace-overlay-start 'overlay-start)
- (defalias 'whitespace-overlay-end 'overlay-end)
- (defalias 'whitespace-mode-line-update 'force-mode-line-update))
- (defalias 'whitespace-make-overlay 'make-extent)
- (defalias 'whitespace-overlay-put 'set-extent-property)
- (defalias 'whitespace-delete-overlay 'delete-extent)
- (defalias 'whitespace-overlay-start 'extent-start)
- (defalias 'whitespace-overlay-end 'extent-end)
- (defalias 'whitespace-mode-line-update 'redraw-modeline))
-
-(if (featurep 'xemacs)
-(defgroup whitespace nil
- "Check for and fix five different types of whitespaces in source code."
- ;; Since XEmacs doesn't have a 'convenience group, use the next best group
- ;; which is 'editing?
- :link '(emacs-commentary-link "whitespace.el")
- :group 'editing)
+(defalias 'whitespace-make-overlay
+ (if (featurep 'xemacs) 'make-extent 'make-overlay))
+(defalias 'whitespace-overlay-put
+ (if (featurep 'xemacs) 'set-extent-property 'overlay-put))
+(defalias 'whitespace-delete-overlay
+ (if (featurep 'xemacs) 'delete-extent 'delete-overlay))
+(defalias 'whitespace-overlay-start
+ (if (featurep 'xemacs) 'extent-start 'overlay-start))
+(defalias 'whitespace-overlay-end
+ (if (featurep 'xemacs) 'extent-end 'overlay-end))
+(defalias 'whitespace-mode-line-update
+ (if (featurep 'xemacs) 'redraw-modeline 'force-mode-line-update))
+
(defgroup whitespace nil
"Check for and fix five different types of whitespaces in source code."
:version "21.1"
:link '(emacs-commentary-link "whitespace.el")
- :group 'convenience))
+ ;; Since XEmacs doesn't have a 'convenience group, use the next best group
+ ;; which is 'editing?
+ :group (if (featurep 'xemacs) 'editing 'convenience))
(defcustom whitespace-check-leading-whitespace t
- "Flag to check leading whitespace. This is the global for the system.
+ "Flag to check leading whitespace. This is the global for the system.
It can be overriden by setting a buffer local variable
-`whitespace-check-buffer-leading'"
+`whitespace-check-buffer-leading'."
:type 'boolean
:group 'whitespace)
(defcustom whitespace-check-trailing-whitespace t
- "Flag to check trailing whitespace. This is the global for the system.
+ "Flag to check trailing whitespace. This is the global for the system.
It can be overriden by setting a buffer local variable
-`whitespace-check-buffer-trailing'"
+`whitespace-check-buffer-trailing'."
:type 'boolean
:group 'whitespace)
(defcustom whitespace-check-spacetab-whitespace t
- "Flag to check space followed by a TAB. This is the global for the system.
+ "Flag to check space followed by a TAB. This is the global for the system.
It can be overriden by setting a buffer local variable
-`whitespace-check-buffer-spacetab'"
+`whitespace-check-buffer-spacetab'."
:type 'boolean
:group 'whitespace)
@@ -206,9 +199,9 @@ It can be overriden by setting a buffer local variable
:group 'whitespace)
(defcustom whitespace-check-indent-whitespace indent-tabs-mode
- "Flag to check indentation whitespace. This is the global for the system.
+ "Flag to check indentation whitespace. This is the global for the system.
It can be overriden by setting a buffer local variable
-`whitespace-check-buffer-indent'"
+`whitespace-check-buffer-indent'."
:type 'boolean
:group 'whitespace)
@@ -218,9 +211,9 @@ It can be overriden by setting a buffer local variable
:group 'whitespace)
(defcustom whitespace-check-ateol-whitespace t
- "Flag to check end-of-line whitespace. This is the global for the system.
+ "Flag to check end-of-line whitespace. This is the global for the system.
It can be overriden by setting a buffer local variable
-`whitespace-check-buffer-ateol'"
+`whitespace-check-buffer-ateol'."
:type 'boolean
:group 'whitespace)
@@ -242,9 +235,9 @@ determines a file to be clean."
:group 'whitespace)
(defcustom whitespace-abort-on-error nil
- "While writing a file, abort if the file is unclean. If
-`whitespace-auto-cleanup' is set, that takes precedence over this
-variable."
+ "While writing a file, abort if the file is unclean.
+If `whitespace-auto-cleanup' is set, that takes precedence over
+this variable."
:type 'boolean
:group 'whitespace)
@@ -277,7 +270,7 @@ Errors*' buffer before opening (or closing) another file."
tcl-mode tex-mode texinfo-mode
vrml-mode xml-mode)
- "Major Modes in which we turn on whitespace checking.
+ "Major modes in which we turn on whitespace checking.
These are mostly programming and documentation modes. But you may add other
modes that you want whitespaces checked in by adding something like the
@@ -608,17 +601,9 @@ whitespace problems."
(defun whitespace-buffer-leading-cleanup ()
"Remove any empty lines at the top of the file."
(save-excursion
- (let ((pmin nil)
- (pmax nil))
- (goto-char (point-min))
- (beginning-of-line)
- (setq pmin (point))
- (end-of-line)
- (setq pmax (point))
- (if (equal pmin pmax)
- (progn
- (kill-line)
- (whitespace-buffer-leading-cleanup))))))
+ (goto-char (point-min))
+ (skip-chars-forward "\n")
+ (delete-region (point-min) (point))))
(defun whitespace-buffer-trailing ()
"Check to see if are is more than one empty line at the bottom."
@@ -647,26 +632,11 @@ whitespace problems."
(defun whitespace-buffer-trailing-cleanup ()
"Delete all the empty lines at the bottom."
(save-excursion
- (let ((pmin nil)
- (pmax nil))
- (goto-char (point-max))
- (beginning-of-line)
- (setq pmin (point))
- (end-of-line)
- (setq pmax (point))
- (if (equal pmin pmax)
- (progn
- (goto-char (1- pmin))
- (beginning-of-line)
- (setq pmin (point))
- (end-of-line)
- (setq pmax (point))
- (if (equal pmin pmax)
- (progn
- (goto-char (1- (point-max)))
- (beginning-of-line)
- (kill-line)
- (whitespace-buffer-trailing-cleanup))))))))
+ (goto-char (point-max))
+ (skip-chars-backward "\n")
+ (if (not (bolp))
+ (forward-char 1))
+ (delete-region (point) (point-max))))
(defun whitespace-buffer-search (regexp)
"Search for any given whitespace REGEXP."
diff --git a/lisp/wid-browse.el b/lisp/wid-browse.el
index 17fe9c2421..c8a34140f6 100644
--- a/lisp/wid-browse.el
+++ b/lisp/wid-browse.el
@@ -1,6 +1,6 @@
;;; wid-browse.el --- functions for browsing widgets
;;
-;; Copyright (C) 1997 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;;
;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
;; Keywords: extensions
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index 062a788678..9c391ab117 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -1,6 +1,7 @@
;;; wid-edit.el --- Functions for creating and using widgets -*-byte-compile-dynamic: t;-*-
;;
-;; Copyright (C) 1996,97,1999,2000,01,02,2003, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 1999, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;;
;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
;; Maintainer: FSF
@@ -275,7 +276,7 @@ minibuffer."
(while (not (or (and (>= char ?0) (< char next-digit))
(eq value 'keyboard-quit)))
;; Unread a SPC to lead to our new menu.
- (setq unread-command-events (cons ?\ unread-command-events))
+ (setq unread-command-events (cons ?\s unread-command-events))
(setq keys (read-key-sequence title))
(setq value
(lookup-key overriding-terminal-local-map keys t)
@@ -377,7 +378,7 @@ new value.")
(end (widget-field-end field)))
(when size
(while (and (> end begin)
- (eq (char-after (1- end)) ?\ ))
+ (eq (char-after (1- end)) ?\s))
(setq end (1- end))))
(while (< begin end)
(let ((old (char-after begin)))
@@ -441,14 +442,8 @@ new value.")
(prog1 (progn ,@form)
(goto-char (point-max))))))
-(defface widget-inactive '((((class grayscale color)
- (background dark))
- (:foreground "light gray"))
- (((class grayscale color)
- (background light))
- (:foreground "dim gray"))
- (t
- (:slant italic)))
+(defface widget-inactive
+ '((t :inherit shadow))
"Face used for inactive widgets."
:group 'widget-faces)
;; backward-compatibility alias
@@ -802,8 +797,8 @@ The optional ARGS are additional keyword arguments."
&optional button-from button-to
&rest args)
"Return a widget of type TYPE with endpoint FROM TO.
-Optional ARGS are extra keyword arguments for TYPE.
-and TO will be used as the widgets end points. If optional arguments
+No text will be inserted to the buffer, instead the text between FROM
+and TO will be used as the widgets end points. If optional arguments
BUTTON-FROM and BUTTON-TO are given, these will be used as the widgets
button end points.
Optional ARGS are extra keyword arguments for TYPE."
@@ -1111,7 +1106,7 @@ the field."
:group 'widgets)
(defun widget-narrow-to-field ()
- "Narrow to field"
+ "Narrow to field."
(interactive)
(let ((field (widget-field-find (point))))
(if field
@@ -1219,7 +1214,7 @@ When not inside a field, move to the previous button or field."
(defun widget-field-find (pos)
"Return the field at POS.
-Unlike (get-char-property POS 'field) this, works with empty fields too."
+Unlike (get-char-property POS 'field), this works with empty fields too."
(let ((fields widget-field-list)
field found)
(while fields
@@ -1269,7 +1264,7 @@ Unlike (get-char-property POS 'field) this, works with empty fields too."
;; Field too small.
(save-excursion
(goto-char end)
- (insert-char ?\ (- (+ begin size) end))))
+ (insert-char ?\s (- (+ begin size) end))))
((> (- end begin) size)
;; Field too large and
(if (or (< (point) (+ begin size))
@@ -1280,7 +1275,7 @@ Unlike (get-char-property POS 'field) this, works with empty fields too."
(setq begin (point)))
(save-excursion
(goto-char end)
- (while (and (eq (preceding-char) ?\ )
+ (while (and (eq (preceding-char) ?\s)
(> (point) begin))
(delete-backward-char 1)))))))
(widget-specify-secret field))
@@ -1440,7 +1435,7 @@ If that does not exists, call the value of `widget-complete-field'."
((eq escape ?n)
(when (widget-get widget :indent)
(insert ?\n)
- (insert-char ? (widget-get widget :indent))))
+ (insert-char ?\s (widget-get widget :indent))))
((eq escape ?t)
(let ((image (widget-get widget :tag-glyph))
(tag (widget-get widget :tag)))
@@ -1504,7 +1499,7 @@ If that does not exists, call the value of `widget-complete-field'."
(when doc-text
(and (eq (preceding-char) ?\n)
(widget-get widget :indent)
- (insert-char ? (widget-get widget :indent)))
+ (insert-char ?\s (widget-get widget :indent)))
;; The `*' in the beginning is redundant.
(when (eq (aref doc-text 0) ?*)
(setq doc-text (substring doc-text 1)))
@@ -1757,7 +1752,7 @@ If END is omitted, it defaults to the length of LIST."
:action 'widget-url-link-action)
(defun widget-url-link-action (widget &optional event)
- "Open the url specified by WIDGET."
+ "Open the URL specified by WIDGET."
(browse-url (widget-value widget)))
;;; The `function-link' Widget.
@@ -1797,7 +1792,7 @@ If END is omitted, it defaults to the length of LIST."
:action 'widget-emacs-library-link-action)
(defun widget-emacs-library-link-action (widget &optional event)
- "Find the Emacs Library file specified by WIDGET."
+ "Find the Emacs library file specified by WIDGET."
(find-file (locate-library (widget-value widget))))
;;; The `emacs-commentary-link' Widget.
@@ -1878,7 +1873,7 @@ the earlier input."
(insert value)
(and size
(< (length value) size)
- (insert-char ?\ (- size (length value))))
+ (insert-char ?\s (- size (length value))))
(unless (memq widget widget-field-list)
(setq widget-field-new (cons widget widget-field-new)))
(move-marker (cdr overlay) (point))
@@ -1911,7 +1906,7 @@ the earlier input."
(while (and size
(not (zerop size))
(> to from)
- (eq (char-after (1- to)) ?\ ))
+ (eq (char-after (1- to)) ?\s))
(setq to (1- to)))
(let ((result (buffer-substring-no-properties from to)))
(when secret
@@ -1961,13 +1956,14 @@ the earlier input."
(args (widget-get widget :args))
(explicit (widget-get widget :explicit-choice))
current)
- (if (and explicit (equal value (widget-get widget :explicit-choice-value)))
+ (if explicit
(progn
;; If the user specified the choice for this value,
- ;; respect that choice as long as the value is the same.
+ ;; respect that choice.
(widget-put widget :children (list (widget-create-child-value
widget explicit value)))
- (widget-put widget :choice explicit))
+ (widget-put widget :choice explicit)
+ (widget-put widget :explicit-choice nil))
(while args
(setq current (car args)
args (cdr args))
@@ -2053,13 +2049,10 @@ when he invoked the menu."
(setq this-explicit t)
(widget-choose tag (reverse choices) event))))
(when current
- ;; If this was an explicit user choice,
- ;; record the choice, and the record the value it was made for.
- ;; widget-choice-value-create will respect this choice,
- ;; as long as the value is the same.
+ ;; If this was an explicit user choice, record the choice,
+ ;; so that widget-choice-value-create will respect it.
(when this-explicit
- (widget-put widget :explicit-choice current)
- (widget-put widget :explicit-choice-value (widget-get widget :value)))
+ (widget-put widget :explicit-choice current))
(widget-value-set widget (widget-default-get current))
(widget-setup)
(widget-apply widget :notify widget event)))
@@ -2192,7 +2185,7 @@ when he invoked the menu."
If the item is checked, CHOSEN is a cons whose cdr is the value."
(and (eq (preceding-char) ?\n)
(widget-get widget :indent)
- (insert-char ? (widget-get widget :indent)))
+ (insert-char ?\s (widget-get widget :indent)))
(widget-specify-insert
(let* ((children (widget-get widget :children))
(buttons (widget-get widget :buttons))
@@ -2372,7 +2365,7 @@ Return an alist of (TYPE MATCH)."
;; (setq type (widget-convert type))
(and (eq (preceding-char) ?\n)
(widget-get widget :indent)
- (insert-char ? (widget-get widget :indent)))
+ (insert-char ?\s (widget-get widget :indent)))
(widget-specify-insert
(let* ((value (widget-get widget :value))
(children (widget-get widget :children))
@@ -2550,7 +2543,7 @@ Return an alist of (TYPE MATCH)."
;; (let ((widget-push-button-gui widget-editable-list-gui))
(cond ((eq escape ?i)
(and (widget-get widget :indent)
- (insert-char ?\ (widget-get widget :indent)))
+ (insert-char ?\s (widget-get widget :indent)))
(apply 'widget-create-child-and-convert
widget 'insert-button
(widget-get widget :append-button-args)))
@@ -2662,7 +2655,7 @@ Return an alist of (TYPE MATCH)."
(widget-specify-insert
(save-excursion
(and (widget-get widget :indent)
- (insert-char ?\ (widget-get widget :indent)))
+ (insert-char ?\s (widget-get widget :indent)))
(insert (widget-get widget :entry-format)))
;; Parse % escapes in format.
(while (re-search-forward "%\\(.\\)" nil t)
@@ -2726,7 +2719,7 @@ Return an alist of (TYPE MATCH)."
value (cdr answer))
(and (eq (preceding-char) ?\n)
(widget-get widget :indent)
- (insert-char ?\ (widget-get widget :indent)))
+ (insert-char ?\s (widget-get widget :indent)))
(push (cond ((null answer)
(widget-create-child widget arg))
((widget-get arg :inline)
@@ -2865,7 +2858,7 @@ link for that string."
(narrow-to-region from to)
(goto-char (point-min))
(while (search-forward "\n" nil t)
- (insert-char ?\ indent)))))))
+ (insert-char ?\s indent)))))))
;;; The `documentation-string' Widget.
@@ -2885,7 +2878,7 @@ link for that string."
(let ((before (substring doc 0 (match-beginning 0)))
(after (substring doc (match-beginning 0)))
button)
- (insert before ?\ )
+ (insert before ?\s)
(widget-documentation-link-add widget start (point))
(setq button
(widget-create-child-and-convert
@@ -2899,7 +2892,7 @@ link for that string."
(when shown
(setq start (point))
(when (and indent (not (zerop indent)))
- (insert-char ?\ indent))
+ (insert-char ?\s indent))
(insert after)
(widget-documentation-link-add widget start (point)))
(widget-put widget :buttons (list button)))
@@ -3600,7 +3593,7 @@ example:
(widget-apply widget :notify widget event))))
(defun widget-color-notify (widget child &optional event)
- "Update the sample, and notofy the parent."
+ "Update the sample, and notify the parent."
(overlay-put (widget-get widget :sample-overlay)
'face (widget-apply widget :sample-face-get))
(widget-default-notify widget child event))
diff --git a/lisp/widget.el b/lisp/widget.el
index f6c8efa637..8e9b0977c0 100644
--- a/lisp/widget.el
+++ b/lisp/widget.el
@@ -1,6 +1,7 @@
;;; widget.el --- a library of user interface components
;;
-;; Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;;
;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
;; Keywords: help, extensions, faces, hypermedia
diff --git a/lisp/windmove.el b/lisp/windmove.el
index 785a7538a6..b3aacf62d5 100644
--- a/lisp/windmove.el
+++ b/lisp/windmove.el
@@ -1,6 +1,7 @@
;;; windmove.el --- directional window-selection routines
;;
-;; Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;;
;; Author: Hovav Shacham (hovav@cs.stanford.edu)
;; Created: 17 October 1998
@@ -206,11 +207,8 @@ placement bugs in old versions of Emacs."
;; rest.
;;
;; This work is done by `windmove-reference-loc'. It can figure out
-;; the locations of the corners by calling `window-edges', but to
-;; calculate the frame-based location of point, it calls the workhorse
-;; function `windmove-coordinates-of-position', which itself calls the
-;; incredibly hairy builtin `compute-motion'. There is a good deal of
-;; black magic in getting all the arguments to this function just right.
+;; the locations of the corners by calling `window-edges' combined
+;; with the result of `posn-at-point'.
;;
;; The second step is more messy. Conceptually, it is fairly simple:
;; if we know the reference location, and the coordinates of the
@@ -404,58 +402,6 @@ Returns the wrapped coordinate."
(windmove-constrain-around-range (cdr coord) min-y max-y)))))
-
-;; `windmove-coordinates-of-position' is stolen and modified from the
-;; Emacs 20 Lisp Reference Manual, section 27.2.5. It seems to work
-;; okay, although I am bothered by the fact that tab-offset (the cdr
-;; of the next-to- last argument) is set to 0. On the other hand, I
-;; can't find a single usage of `compute-motion' anywhere that doesn't
-;; set this component to zero, and I'm too lazy to grovel through the
-;; C source to figure out what's happening in the background. there
-;; also seems to be a good deal of fun in calculating the correct
-;; width of lines for telling `compute-motion' about; in particular,
-;; it seems we need to subtract 1 (for the continuation column) from
-;; the number that `window-width' gives, or continuation lines aren't
-;; counted correctly. I haven't seen anyone doing this before,
-;; though.
-;;
-;; Now updated for Emacs 21, based on the Emacs 21 Lisp Reference
-;; Manual, section 30.2.5. It is no longer necessary to subtract
-;; 1 for the usable width of the window.
-;; TODO: also handle minibuffer case, w/ `minibuffer-prompt-width'.
-(defun windmove-coordinates-of-position (pos)
- "Return the coordinates of position POS in the current window.
-Return the window-based coodinates in a cons pair: (HPOS . VPOS),
-where HPOS and VPOS are the zero-based x and y components of the
-screen location of POS.
-As an example, if point is in the top left corner of a window, then
-the return value from `windmove-coordinates-of-position' is (0 . 0)
-regardless of the where point is in the buffer and where the window
-is placed in the frame."
- (let ((big-hairy-result (compute-motion
- (window-start)
- '(0 . 0)
- pos
- nil ; (window-width window-height)
- nil ; window-width
- (cons (window-hscroll)
- 0) ; why zero?
- (selected-window))))
- (cons (nth 1 big-hairy-result) ; hpos, not vpos as documented
- (nth 2 big-hairy-result)))) ; vpos, not hpos as documented
-
-(defun windmove-coordinates-of-window-position (pos &optional window)
- "Return the coordinates of position POS in WINDOW.
-Return the window-based coodinates in a cons pair: (HPOS . VPOS),
-where HPOS and VPOS are the zero-based x and y components of the
-screen location of POS. If WINDOW is nil, return the coordinates in
-the currently selected window."
- (if (null window)
- (windmove-coordinates-of-position pos)
- (save-selected-window
- (select-window window)
- (windmove-coordinates-of-position pos))))
-
;; This calculates the reference location in the current window: the
;; frame-based (x . y) of either point, the top-left, or the
;; bottom-right of the window, depending on ARG.
@@ -482,9 +428,11 @@ supplied, if ARG is greater or smaller than zero, respectively."
((= effective-arg 0)
(windmove-coord-add
top-left
- (windmove-coordinates-of-window-position
- (window-point window)
- window)))))))
+ (let ((col-row
+ (posn-col-row
+ (posn-at-point (window-point window) window))))
+ (cons (- (car col-row) (window-hscroll window))
+ (cdr col-row)))))))))
;; This uses the reference location in the current window (calculated
;; by `windmove-reference-loc' above) to find a reference location
diff --git a/lisp/window.el b/lisp/window.el
index c31b314955..a0820bb7cf 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -1,7 +1,7 @@
;;; window.el --- GNU Emacs window commands aside from those written in C
-;; Copyright (C) 1985, 1989, 1992, 1993, 1994, 2000, 2001, 2002, 2004, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1989, 1992, 1993, 1994, 2000, 2001, 2002,
+;; 2003, 2004, 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: internal
diff --git a/lisp/winner.el b/lisp/winner.el
index c64d00d625..0fbd0221e4 100644
--- a/lisp/winner.el
+++ b/lisp/winner.el
@@ -1,6 +1,7 @@
;;; winner.el --- Restore old window configurations
-;; Copyright (C) 1997, 1998, 2001, 2004 Free Software Foundation. Inc.
+;; Copyright (C) 1997, 1998, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation. Inc.
;; Author: Ivar Rummelhoff <ivarru@math.uio.no>
;; Created: 27 Feb 1997
@@ -78,7 +79,7 @@
;;;###autoload
(defcustom winner-mode nil
- "Toggle winner-mode.
+ "Toggle Winner mode.
Setting this variable directly does not take effect;
use either \\[customize] or the function `winner-mode'."
:set #'(lambda (symbol value) (funcall symbol (or value 0)))
@@ -98,8 +99,7 @@ use either \\[customize] or the function `winner-mode'."
:group 'winner)
(defcustom winner-boring-buffers '("*Completions*")
- "`winner-undo' will not restore windows displaying any of these \
-buffers.
+ "`winner-undo' will not restore windows displaying any of these buffers.
You may want to include buffer names such as *Help*, *Apropos*,
*Buffer List*, *info* and *Compile-Log*."
:type '(repeat string)
@@ -108,7 +108,8 @@ You may want to include buffer names such as *Help*, *Apropos*,
- ;;;; Saving old configurations (internal variables and subroutines)
+
+;;;; Saving old configurations (internal variables and subroutines)
;;; Current configuration
@@ -162,13 +163,13 @@ You may want to include buffer names such as *Help*, *Apropos*,
;; Find the right ring. If it does not exist, create one.
(defsubst winner-ring (frame)
(or (cdr (assq frame winner-ring-alist))
- (progn
- (let ((ring (make-ring winner-ring-size)))
- (ring-insert ring (winner-configuration frame))
- (push (cons frame ring) winner-ring-alist)
- ring))))
+ (let ((ring (make-ring winner-ring-size)))
+ (ring-insert ring (winner-configuration frame))
+ (push (cons frame ring) winner-ring-alist)
+ ring)))
- ;; If the same command is called several times in a row,
+
+;; If the same command is called several times in a row,
;; we only save one window configuration.
(defvar winner-last-command nil)
@@ -176,7 +177,7 @@ You may want to include buffer names such as *Help*, *Apropos*,
(defvar winner-last-frames nil)
-(defun winner-equal (a b)
+(defsubst winner-equal (a b)
"Check whether two Winner configurations (as produced by
`winner-conf') are equal."
(equal (cdr a) (cdr b)))
@@ -240,7 +241,8 @@ You may want to include buffer names such as *Help*, *Apropos*,
- ;;;; Restoring configurations
+
+;;;; Restoring configurations
;; Works almost as `set-window-configuration',
;; but does not change the contents or the size of the minibuffer,
@@ -301,7 +303,8 @@ You may want to include buffer names such as *Help*, *Apropos*,
winner-point-alist)
(point)))))))
- ;; Make sure point does not end up in the minibuffer and delete
+
+;; Make sure point does not end up in the minibuffer and delete
;; windows displaying dead or boring buffers
;; (c.f. `winner-boring-buffers'). Return nil iff all the windows
;; should be deleted. Preserve correct points and marks.
@@ -410,7 +413,7 @@ With arg, turn Winner mode on if and only if arg is positive."
(defvar winner-undo-frame nil)
(defvar winner-pending-undo-ring nil
- "The ring currently used by winner undo.")
+ "The ring currently used by `winner-undo'.")
(defvar winner-undo-counter nil)
(defvar winner-undone-data nil) ; There confs have been passed.
@@ -437,7 +440,8 @@ In other words, \"undo\" changes in window configuration."
- (defun winner-undo-this () ; The heart of winner undo.
+
+(defun winner-undo-this () ; The heart of winner undo.
(loop
(cond
((>= winner-undo-counter (ring-length winner-pending-undo-ring))
@@ -467,7 +471,7 @@ In other words, \"undo\" changes in window configuration."
(ring-ref winner-pending-undo-ring 0)))
(unless (eq (selected-window) (minibuffer-window))
(message "Winner undid undo")))
- (t (error "Previous command was not a winner-undo"))))
+ (t (error "Previous command was not a `winner-undo'"))))
;;; To be evaluated when the package is loaded:
diff --git a/lisp/woman.el b/lisp/woman.el
index 9ad3b50e38..5ecc474430 100644
--- a/lisp/woman.el
+++ b/lisp/woman.el
@@ -1,6 +1,6 @@
;;; woman.el --- browse UN*X manual pages `wo (without) man'
-;; Copyright (C) 2000, 2002, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Francis J. Wright <F.J.Wright@qmul.ac.uk>
;; Maintainer: Francis J. Wright <F.J.Wright@qmul.ac.uk>
diff --git a/lisp/x-dnd.el b/lisp/x-dnd.el
index 1e1291a5b5..d066ee49d1 100644
--- a/lisp/x-dnd.el
+++ b/lisp/x-dnd.el
@@ -1,7 +1,6 @@
;;; x-dnd.el --- drag and drop support for X.
-;; Copyright (C) 2004
-;; Free Software Foundation, Inc.
+;; Copyright (C) 2004, 2005 Free Software Foundation, Inc.
;; Author: Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
;; Maintainer: FSF
diff --git a/lisp/xml.el b/lisp/xml.el
index 53cf850b98..5fdb6f33b1 100644
--- a/lisp/xml.el
+++ b/lisp/xml.el
@@ -1,6 +1,7 @@
;;; xml.el --- XML parser
-;; Copyright (C) 2000, 01, 03, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Emmanuel Briot <briot@gnat.com>
;; Maintainer: Mark A. Hershberger <mah@everybody.org>
@@ -184,6 +185,7 @@ If PARSE-NS is non-nil, then QNAMES are expanded."
(defvar xml-name-re)
(defvar xml-entity-value-re)
+(defvar xml-att-def-re)
(let* ((start-chars (concat "[:alpha:]:_"))
(name-chars (concat "-[:digit:]." start-chars))
;;[3] S ::= (#x20 | #x9 | #xD | #xA)+
diff --git a/lisp/xt-mouse.el b/lisp/xt-mouse.el
index 692b35d02b..6a800dd2d2 100644
--- a/lisp/xt-mouse.el
+++ b/lisp/xt-mouse.el
@@ -1,6 +1,7 @@
;;; xt-mouse.el --- support the mouse when emacs run in an xterm
-;; Copyright (C) 1994, 2000, 2001, 2005 Free Software Foundation
+;; Copyright (C) 1994, 2000, 2001, 2002, 2003,
+;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
;; Keywords: mouse, terminals
diff --git a/lispintro/ChangeLog b/lispintro/ChangeLog
index b9537f93d1..2b9ab752ad 100644
--- a/lispintro/ChangeLog
+++ b/lispintro/ChangeLog
@@ -1,3 +1,8 @@
+2005-07-30 Eli Zaretskii <eliz@gnu.org>
+
+ * makefile.w32-in (info): Don't run install-info.
+ ($(infodir)/dir): New target, produced by running install-info.
+
2005-07-04 Lute Kamstra <lute@gnu.org>
Update FSF's address in GPL notices.
@@ -48,7 +53,7 @@
;; coding: iso-2022-7bit
;; End:
- Copyright (C) 2001
+ Copyright (C) 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted provided the copyright notice and this notice are preserved.
diff --git a/lispintro/Makefile.in b/lispintro/Makefile.in
index c1ee2ab80e..0f912d6148 100644
--- a/lispintro/Makefile.in
+++ b/lispintro/Makefile.in
@@ -1,6 +1,7 @@
#### Makefile for the Emacs Lisp Introduction manual
-# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This file is part of GNU Emacs.
diff --git a/lispintro/aclocal.m4 b/lispintro/aclocal.m4
index 58ddd1cd9a..e446f25337 100644
--- a/lispintro/aclocal.m4
+++ b/lispintro/aclocal.m4
@@ -1,6 +1,7 @@
dnl aclocal.m4 generated automatically by aclocal 1.4-p4
-dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+dnl Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2002, 2003,
+dnl 2004, 2005 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
diff --git a/lispintro/emacs-lisp-intro.texi b/lispintro/emacs-lisp-intro.texi
index d2ef7d1ce2..f133cb029f 100644
--- a/lispintro/emacs-lisp-intro.texi
+++ b/lispintro/emacs-lisp-intro.texi
@@ -183,7 +183,7 @@ people who are not programmers.
Edition @value{edition-number}, @value{update-date}
@sp 1
Copyright @copyright{} 1990, 1991, 1992, 1993, 1994, 1995, 1997, 2001,
-2002, 2003, 2004 Free Software Foundation, Inc.
+ 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@sp 1
@iftex
diff --git a/lispintro/makefile.w32-in b/lispintro/makefile.w32-in
index 2131542a11..09acbb699a 100644
--- a/lispintro/makefile.w32-in
+++ b/lispintro/makefile.w32-in
@@ -1,6 +1,6 @@
#### -*- Makefile -*- for the Emacs Lisp Introduction manual.
-# Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
# This file is part of GNU Emacs.
@@ -39,6 +39,8 @@ ENVADD = $(srcdir)\..\nt\envadd.bat "TEXINPUTS=$(srcdir);$(TEXINPUTS)" \
.SUFFIXES: .dvi .ps .texi
info: $(INFO_TARGETS)
+
+$(infodir)/dir:
$(INSTALL_INFO) --info-dir=$(infodir) $(INFO_TARGETS)
dvi: $(DVI_TARGETS)
diff --git a/lispref/ChangeLog b/lispref/ChangeLog
index cddd1d506b..9c19c13692 100644
--- a/lispref/ChangeLog
+++ b/lispref/ChangeLog
@@ -1,3 +1,195 @@
+2005-09-03 Thien-Thi Nguyen <ttn@gnu.org>
+
+ * text.texi (Buffer Contents): Use "\n" in examples' result strings.
+
+ (Insertion): Document precise type of `insert-char' arg COUNT.
+
+2005-09-02 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * modes.texi (Other Font Lock Variables): Sync the default of
+ font-lock-lines-before.
+
+2005-08-31 Michael Albinus <michael.albinus@gmx.de>
+
+ * files.texi (Magic File Names): Add `make-auto-save-file-name'.
+
+2005-08-29 Richard M. Stallman <rms@gnu.org>
+
+ * elisp.texi (Top): Update subnode menu.
+
+ * searching.texi (Searching and Matching): Move node.
+ Rearrange contents and add overall explanation.
+ (Searching and Case): Move node.
+ (Searching and Matching): Update menu.
+
+2005-08-27 Eli Zaretskii <eliz@gnu.org>
+
+ * os.texi (Startup Summary): Fix the description of the initial
+ startup message display.
+
+2005-08-25 Richard M. Stallman <rms@gnu.org>
+
+ * searching.texi (Search and Replace): Add replace-regexp-in-string.
+
+2005-08-25 Emilio C. Lopes <eclig@gmx.net>
+
+ * display.texi (Finding Overlays): Fix `find-overlay-prop' in
+ `next-overlay-change' example.
+
+2005-08-22 Juri Linkov <juri@jurta.org>
+
+ * display.texi (Attribute Functions): Add set-face-inverse-video-p.
+ Fix invert-face. Fix args of face-background.
+
+ * display.texi (Standard Faces): Delete node.
+ (Faces): Add xref to `(emacs)Standard Faces'.
+ (Displaying Faces): Fix xref to `Standard Faces'.
+
+ * modes.texi (Mode Line Data): Fix xref to Standard Faces.
+
+2005-08-20 Alan Mackenzie <acm@muc.de>
+
+ * buffers.texi (The Buffer List): Clarify the manipulation of the
+ buffer list.
+
+2005-08-14 Richard M. Stallman <rms@gnu.org>
+
+ * modes.texi (Auto Major Mode): interpreter-mode-alist key is not
+ a regexp.
+
+2005-08-11 Richard M. Stallman <rms@gnu.org>
+
+ * elisp.texi (Top): Update subnode lists.
+
+ * display.texi (Inverse Video): Node deleted.
+
+ * tips.texi (Key Binding Conventions, Programming Tips, Warning Tips):
+ New nodes split out of Coding Conventions.
+
+ * searching.texi (Regular Expressions): Document re-builder.
+
+ * os.texi (Time Parsing): New node split out of Time Conversion.
+
+ * processes.texi (Misc Network, Network Feature Testing)
+ (Network Options, Make Network): New nodes split out of
+ Low-Level Network.
+
+2005-08-09 Richard M. Stallman <rms@gnu.org>
+
+ * frames.texi (Geometry): New node, split from Size and Position.
+ (Frame Parameters): Refer to Geometry.
+
+ * buffers.texi (The Buffer List): Fix xrefs.
+
+ * windows.texi (Splitting Windows): Fix xref.
+
+ * frames.texi (Layout Parameters): Add xref.
+
+ * display.texi (Line Height, Scroll Bars): Fix xrefs.
+
+ * keymaps.texi (Menu Bar): Fix xref.
+
+ * locals.texi (Standard Buffer-Local Variables): Fix xref.
+
+ * modes.texi (%-Constructs): Fix xref.
+
+ * frames.texi (Window Frame Parameters): Node split up.
+ (Basic Parameters, Position Parameters, Size Parameters)
+ (Layout Parameters, Buffer Parameters, Management Parameters)
+ (Cursor Parameters, Color Parameters): New subnodes.
+
+2005-08-09 Luc Teirlinck <teirllm@auburn.edu>
+
+ * positions.texi (Screen Lines): Update xref for previous change
+ in minibuf.texi.
+
+ * minibuf.texi (Intro to Minibuffers): Update pxref for previous
+ change in minibuf.texi.
+
+2005-08-09 Richard M. Stallman <rms@gnu.org>
+
+ * tips.texi (Coding Conventions): Minor cleanup.
+
+ * modes.texi (Defining Minor Modes): Explain when init-value
+ can be non-nil.
+
+ * elisp.texi (Top): Update submenu for Minibuffer.
+
+ * minibuf.texi (Minibuffer Misc): Node split up.
+ (Minibuffer Commands, Minibuffer Windows, Minibuffer Contents)
+ (Recursive Mini): New nodes split out from Minibuffer Misc.
+ (Minibuffer Misc): Document max-mini-window-height.
+
+ * hash.texi (Defining Hash): Delete stray paren in example.
+
+ * display.texi (Echo Area Customization): Don't define
+ max-mini-window-height here; xref instead.
+
+ * commands.texi (Event Input Misc): Update while-no-input.
+
+ * advice.texi (Advising Functions): Explain when to use advice
+ and when to use a hook.
+
+2005-07-30 Eli Zaretskii <eliz@gnu.org>
+
+ * makefile.w32-in (info): Don't run install-info.
+ ($(infodir)/dir): New target, produced by running install-info.
+
+2005-07-27 Luc Teirlinck <teirllm@auburn.edu>
+
+ * modes.texi (Defining Minor Modes): The keyword for the initial
+ value is :init-value, not :initial-value.
+
+2005-07-23 Eli Zaretskii <eliz@gnu.org>
+
+ * loading.texi (Autoload): Make the `doctor' example be consistent
+ with what's in current loaddefs.el. Describe the "fn" magic in
+ the usage portion of the doc string.
+
+2005-07-22 Richard M. Stallman <rms@gnu.org>
+
+ * internals.texi (Garbage Collection): Clarify previous change.
+
+2005-07-21 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * internals.texi (Garbage Collection): Add gc-cons-percentage.
+
+2005-07-18 Juri Linkov <juri@jurta.org>
+
+ * commands.texi (Accessing Events):
+ * frames.texi (Text Terminal Colors, Resources):
+ * markers.texi (The Mark):
+ * modes.texi (Defining Minor Modes):
+ Delete duplicate duplicate words.
+
+2005-07-16 Richard M. Stallman <rms@gnu.org>
+
+ * display.texi (Managing Overlays): Clarify make-overlay
+ args for insertion types.
+
+2005-07-13 Luc Teirlinck <teirllm@auburn.edu>
+
+ * customize.texi (Variable Definitions):
+ Add `custom-initialize-safe-set' and `custom-initialize-safe-default'.
+ `standard-value' is a list too.
+ (Defining New Types): Use @key{RET} instead of @key{ret}.
+
+2005-07-13 Francis Litterio <franl@world.std.com> (tiny change)
+
+ * os.texi (Translating Input): Fix typo.
+
+2005-07-08 Richard M. Stallman <rms@gnu.org>
+
+ * README: Update edition number and size estimate.
+
+ * elisp.texi (VERSION): Set to 2.9.
+
+2005-07-07 Richard M. Stallman <rms@gnu.org>
+
+ * book-spine.texinfo: Update Emacs version.
+
+ * display.texi (Inverse Video): Delete mode-line-inverse-video.
+
2005-07-06 Richard M. Stallman <rms@gnu.org>
* searching.texi (Regexp Search): Clarify what re-search-forward
@@ -3625,7 +3817,8 @@ Tue Apr 11 12:23:28 1989 Robert J. Chassell (bob@rice-chex.ai.mit.edu)
;; coding: iso-2022-7bit
;; End:
- Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted provided the copyright notice and this notice are preserved.
diff --git a/lispref/Makefile.in b/lispref/Makefile.in
index 4fac4c025b..7d5ce02714 100644
--- a/lispref/Makefile.in
+++ b/lispref/Makefile.in
@@ -1,7 +1,7 @@
# Makefile for the GNU Emacs Lisp Reference Manual.
-# Copyright (C) 1990,1991,1992,1993,1994,1995,1996,1998,1999,2000,2001,2003,2004
-# Free Software Foundation, Inc.
+# Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000,
+# 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
# This file is part of GNU Emacs.
diff --git a/lispref/README b/lispref/README
index 1600a5344b..c9a49f8693 100644
--- a/lispref/README
+++ b/lispref/README
@@ -1,4 +1,4 @@
-README for Edition 2.8 of the Emacs Lisp Reference Manual.
+README for Edition 2.9 of the Emacs Lisp Reference Manual.
* This directory contains the texinfo source files for the Reference
Manual, make-permuted-index, and the latest version of texinfo.tex,
@@ -11,7 +11,7 @@ Emacs bugs, use bug-gnu-emacs@gnu.org. To ask questions, use the
newsgroup gnu.emacs.help.
* The Emacs Lisp Reference Manual is quite large. It totals around
-980 pages in smallbook format; the info files total almost
+1100 pages in smallbook format; the info files total over
2.5 megabytes.
* You can format this manual either for Info or for printing hardcopy
diff --git a/lispref/abbrevs.texi b/lispref/abbrevs.texi
index a58064ab38..38c5854adc 100644
--- a/lispref/abbrevs.texi
+++ b/lispref/abbrevs.texi
@@ -1,7 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1999, 2004
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1999, 2002, 2003, 2004,
+@c 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/abbrevs
@node Abbrevs, Processes, Syntax Tables, Top
diff --git a/lispref/advice.texi b/lispref/advice.texi
index 2006474fc6..8299e13ac1 100644
--- a/lispref/advice.texi
+++ b/lispref/advice.texi
@@ -1,6 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+@c Copyright (C) 1998, 1999, 2002, 2003, 2004,
+@c 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/advising
@node Advising Functions, Debugging, Byte Compilation, Top
@@ -8,7 +9,7 @@
@cindex advising functions
The @dfn{advice} feature lets you add to the existing definition of
-a function, by @dfn{advising the function}. This is a clean method
+a function, by @dfn{advising the function}. This is a cleaner method
for a library to customize functions defined within Emacs---cleaner
than redefining the whole function.
@@ -23,8 +24,20 @@ are not the same thing.
@strong{Usage Note:} Advice is useful for altering the behavior of
existing calls to an existing function. If you want the new behavior
-for new calls, or for key bindings, it is cleaner to define a new
-function (or a new command) which uses the existing function.
+for new calls, or for key bindings, you should define a new function
+(or a new command) which uses the existing function.
+
+ @strong{Usage note:} Advising a function can cause confusion in
+debugging, since people who debug calls to the original function may
+not notice that it has been modified with advice. Therefore, if you
+have the possibility to change the code of that function (or ask
+someone to do so) to run a hook, please solve the problem that way.
+Advice should be reserved for the cases where you cannot get the
+function changed.
+
+ In particular, this means that a file in Emacs should not put advice
+on a function in Emacs. There are currently a few exceptions to this
+convention, but we aim to correct them.
@menu
* Simple Advice:: A simple example to explain the basics of advice.
diff --git a/lispref/anti.texi b/lispref/anti.texi
index 2c3d6414c1..d6ae30f210 100644
--- a/lispref/anti.texi
+++ b/lispref/anti.texi
@@ -1,6 +1,6 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1999, 2005 Free Software Foundation, Inc.
+@c Copyright (C) 1999, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@c This node must have no pointers.
diff --git a/lispref/backups.texi b/lispref/backups.texi
index 24c617510b..3b5363f64a 100644
--- a/lispref/backups.texi
+++ b/lispref/backups.texi
@@ -1,7 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2004
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2002, 2003, 2004,
+@c 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/backups
@node Backups and Auto-Saving, Buffers, Files, Top
diff --git a/lispref/book-spine.texinfo b/lispref/book-spine.texinfo
index cb52cc6fc3..7355c4530a 100644
--- a/lispref/book-spine.texinfo
+++ b/lispref/book-spine.texinfo
@@ -11,7 +11,7 @@
@center @titlefont{GNU Emacs Lisp Reference Manual}
@sp 5
@center GNU
-@center Emacs Version 19.25
+@center Emacs Version 22.1
@center for Unix Users
@sp 5
diff --git a/lispref/buffers.texi b/lispref/buffers.texi
index a0769be23d..6204dfce33 100644
--- a/lispref/buffers.texi
+++ b/lispref/buffers.texi
@@ -1,7 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2004
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003,
+@c 2004, 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/buffers
@node Buffers, Windows, Backups and Auto-Saving, Top
@@ -757,21 +757,24 @@ signal an error if the current buffer is read-only.
@section The Buffer List
@cindex buffer list
- The @dfn{buffer list} is a list of all live buffers. Creating a
-buffer adds it to this list, and killing a buffer removes it. The
-order of the buffers in the list is based primarily on how recently
-each buffer has been displayed in the selected window. Buffers move
-to the front of the list when they are selected (selecting a window
-that already displays the buffer counts as selecting the buffer), and
-to the end when they are buried (see @code{bury-buffer}, below).
-Several functions, notably @code{other-buffer}, use this ordering. A
-buffer list displayed for the user also follows this order.
+ The @dfn{buffer list} is a list of all live buffers. The order of
+the buffers in the list is based primarily on how recently each buffer
+has been displayed in a window. Several functions, notably
+@code{other-buffer}, use this ordering. A buffer list displayed for
+the user also follows this order.
+ Creating a buffer adds it to the end of the buffer list, and killing
+a buffer removes it. Buffers move to the front of the list when they
+are selected for display in a window (@pxref{Displaying Buffers}), and
+to the end when they are buried (see @code{bury-buffer}, below).
+There are no functions available to the Lisp programmer which directly
+manipulate the buffer list.
+
In addition to the fundamental Emacs buffer list, each frame has its
own version of the buffer list, in which the buffers that have been
selected in that frame come first, starting with the buffers most
recently selected @emph{in that frame}. (This order is recorded in
-@var{frame}'s @code{buffer-list} frame parameter; see @ref{Window Frame
+@var{frame}'s @code{buffer-list} frame parameter; see @ref{Buffer
Parameters}.) The buffers that were never selected in @var{frame} come
afterward, ordered according to the fundamental Emacs buffer list.
@@ -838,7 +841,7 @@ buffer list that is not now visible in any window in a visible frame.
If @var{frame} has a non-@code{nil} @code{buffer-predicate} parameter,
then @code{other-buffer} uses that predicate to decide which buffers to
consider. It calls the predicate once for each buffer, and if the value
-is @code{nil}, that buffer is ignored. @xref{Window Frame Parameters}.
+is @code{nil}, that buffer is ignored. @xref{Buffer Parameters}.
@c Emacs 19 feature
If @var{visible-ok} is @code{nil}, @code{other-buffer} avoids returning
diff --git a/lispref/commands.texi b/lispref/commands.texi
index 225deab4a2..353a7436c2 100644
--- a/lispref/commands.texi
+++ b/lispref/commands.texi
@@ -1,7 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2004
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003,
+@c 2004, 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/commands
@node Command Loop, Keymaps, Minibuffers, Top
@@ -1773,7 +1773,7 @@ Return the window that @var{position} is in.
@defun posn-area position
Return the window area recorded in @var{position}. It returns @code{nil}
when the event occurred in the text area of the window; otherwise, it
-is a symbol identifying the area in which the the event occurred.
+is a symbol identifying the area in which the event occurred.
@end defun
@defun posn-point position
@@ -2435,15 +2435,26 @@ Emacs version 18.
@end defvar
@defmac while-no-input body...
-This construct runs the @var{body} forms and returns the value
-of the last one---but only if no input arrives. If any input
-arrives during the execution of the @var{body} forms, it aborts
-them (working much like a quit), and the @code{while-no-input}
-form returns @code{nil}.
+This construct runs the @var{body} forms and returns the value of the
+last one---but only if no input arrives. If any input arrives during
+the execution of the @var{body} forms, it aborts them (working much
+like a quit). The @code{while-no-input} form returns @code{nil} if
+aborted by a real quit, and returns @code{t} if aborted by arrival of
+other input.
If a part of @var{body} binds @code{inhibit-quit} to non-@code{nil},
arrival of input during those parts won't cause an abort until
the end of that part.
+
+If you want to be able to distingish all possible values computed
+by @var{body} from both kinds of abort conditions, write the code
+like this:
+
+@example
+(while-no-input
+ (list
+ (progn . @var{body})))
+@end example
@end defmac
@defun discard-input
diff --git a/lispref/compile.texi b/lispref/compile.texi
index 951a090e0d..79ac366c27 100644
--- a/lispref/compile.texi
+++ b/lispref/compile.texi
@@ -1,6 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 2002, 2003, 2004,
+@c 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/compile
@node Byte Compilation, Advising Functions, Loading, Top
diff --git a/lispref/control.texi b/lispref/control.texi
index 573a32b1cd..8dae3d4648 100644
--- a/lispref/control.texi
+++ b/lispref/control.texi
@@ -1,7 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2003
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003,
+@c 2004, 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/control
@node Control Structures, Variables, Evaluation, Top
diff --git a/lispref/customize.texi b/lispref/customize.texi
index baaceae47f..b573ab942a 100644
--- a/lispref/customize.texi
+++ b/lispref/customize.texi
@@ -1,6 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2005 Free Software Foundation, Inc.
+@c Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004,
+@c 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/customize
@node Customization, Loading, Macros, Top
@@ -12,7 +13,7 @@ and also customization groups for classifying them. We use the term
definitions---as well as face definitions (@pxref{Defining Faces}).
@menu
-* Common Keywords:: Common keyword arguments for all kinds of
+* Common Keywords:: Common keyword arguments for all kinds of
customization declarations.
* Group Definitions:: Writing customization group definitions.
* Variable Definitions:: Declaring user options.
@@ -270,6 +271,22 @@ This is the default @code{:initialize} function.
Use the @code{:set} function to initialize the variable, if it is
already set or has been customized; otherwise, just use
@code{set-default}.
+
+@item custom-initialize-safe-set
+@itemx custom-initialize-safe-default
+These functions behave like @code{custom-initialize-set}
+(@code{custom-initialize-default}, respectively), but catch errors.
+If an error occurs during initialization, they set the variable to
+@code{nil} using @code{set-default}, and throw no error.
+
+These two functions are only meant for options defined in pre-loaded
+files, where some variables or functions used to compute the option's
+value may not yet be defined. The option normally gets updated in
+@file{startup.el}, ignoring the previously computed value. Because of
+this typical usage, the value which these two functions compute
+normally only matters when, after startup, one unsets the option's
+value and then reevaluates the defcustom. By that time, the necessary
+variables and functions will be defined, so there will not be an error.
@end table
@item :set-after @var{variables}
@@ -318,8 +335,8 @@ type of @var{symbol}.
Internally, @code{defcustom} uses the symbol property
@code{standard-value} to record the expression for the default value,
and @code{saved-value} to record the value saved by the user with the
-customization buffer. The @code{saved-value} property is actually a
-list whose car is an expression which evaluates to the value.
+customization buffer. Both properties are actually lists whose car is
+an expression which evaluates to the value.
@node Customization Types
@section Customization Types
@@ -1088,8 +1105,8 @@ widget. For the purpose of defining new customization types, the
argument with the same syntax as the keyword argument to
@code{defcustom} with the same name. The third argument is a
documentation string for the new widget. You will be able to see that
-string with the @kbd{M-x widget-browse @key{ret} binary-tree-of-string
-@key{ret}} command.
+string with the @kbd{M-x widget-browse @key{RET} binary-tree-of-string
+@key{RET}} command.
After these mandatory arguments follow the keyword arguments. The most
important is @code{:type}, which describes the data type we want to match
diff --git a/lispref/debugging.texi b/lispref/debugging.texi
index 66663aad13..9c0fa9bc86 100644
--- a/lispref/debugging.texi
+++ b/lispref/debugging.texi
@@ -1,7 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 1999, 2005
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 1999, 2002, 2003, 2004,
+@c 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/debugging
@node Debugging, Read and Print, Advising Functions, Top
diff --git a/lispref/display.texi b/lispref/display.texi
index 958ca0325e..8addb3b67e 100644
--- a/lispref/display.texi
+++ b/lispref/display.texi
@@ -1,7 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001,
-@c 2002, 2005 Free Software Foundation, Inc.
+@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/display
@node Display, System Interface, Processes, Top
@@ -31,7 +31,6 @@ that Emacs presents to the user.
* Images:: Displaying images in Emacs buffers.
* Buttons:: Adding clickable buttons to Emacs buffers.
* Blinking:: How Emacs shows the matching open parenthesis.
-* Inverse Video:: Specifying how the screen looks.
* Usual Display:: The usual conventions for displaying nonprinting chars.
* Display Tables:: How to specify other conventions.
* Beeping:: Audible signal to the user.
@@ -495,12 +494,6 @@ sequence are echoed immediately.)
If the value is zero, then command input is not echoed.
@end defvar
-@defopt max-mini-window-height
-This variable specifies the maximum height for resizing minibuffer
-windows. If a float, it specifies a fraction of the height of the
-frame. If an integer, it specifies a number of lines.
-@end defopt
-
@defvar message-truncate-lines
Normally, displaying a long message resizes the echo area to display
the entire message. But if the variable @code{message-truncate-lines}
@@ -508,6 +501,11 @@ is non-@code{nil}, the echo area does not resize, and the message is
truncated to fit it, as in Emacs 20 and before.
@end defvar
+ The variable @code{max-mini-window-height}, which specifies the
+maximum height for resizing minibuffer windows, also applies to the
+echo area (which is really a special use of the minibuffer window.
+@xref{Minibuffer Misc}.
+
@node Warnings
@section Reporting Warnings
@cindex warnings
@@ -1133,12 +1131,14 @@ markers. If @var{buffer} is omitted, the overlay is created in the
current buffer.
The arguments @var{front-advance} and @var{rear-advance} specify the
-insertion type for the start of the overlay and for the end of the
-overlay, respectively. @xref{Marker Insertion Types}. If
-@var{front-advance} is non-@code{nil}, text inserted at the beginning
-of the overlay is excluded from the overlay. If @var{read-advance} is
-non-@code{nil}, text inserted at the beginning of the overlay is
-included in the overlay.
+marker insertion type for the start of the overlay and for the end of
+the overlay, respectively. @xref{Marker Insertion Types}. If they
+are both @code{nil}, the default, then the overlay extends to include
+any text inserted at the beginning, but not text inserted at the end.
+If @var{front-advance} is non-@code{nil}, text inserted at the
+beginning of the overlay is excluded from the overlay. If
+@var{rear-advance} is non-@code{nil}, text inserted at the end of the
+overlay is included in the overlay.
@end defun
@defun overlay-start overlay
@@ -1387,6 +1387,10 @@ modified, and the length of the pre-change text replaced by that range.
length is the number of characters deleted, and the post-change
beginning and end are equal.)
+If these functions modify the buffer, they should bind
+@code{inhibit-modification-hooks} to @code{t} around doing so, to
+avoid confusing the internal mechanism that calls these hooks.
+
@item insert-in-front-hooks
@kindex insert-in-front-hooks @r{(overlay property)}
This property's value is a list of functions to be called before and
@@ -1497,20 +1501,26 @@ end of an overlay, before @var{pos}. If there is none, it returns
@code{(point-min)}.
@end defun
- Here's an easy way to use @code{next-overlay-change} to search for the
-next character which gets a non-@code{nil} @code{happy} property from
+ Here's a function which uses @code{next-overlay-change} to search
+for the next character which gets a given property @code{prop} from
either its overlays or its text properties (@pxref{Property Search}):
@smallexample
(defun find-overlay-prop (prop)
(save-excursion
(while (and (not (eobp))
- (not (get-char-property (point) 'happy)))
+ (not (get-char-property (point) prop)))
(goto-char (min (next-overlay-change (point))
- (next-single-property-change (point) 'happy))))
+ (next-single-property-change (point) prop))))
(point)))
@end smallexample
+ Now you can search for a @code{happy} property like this:
+
+@smallexample
+(find-overlay-prop 'happy)
+@end smallexample
+
@node Width
@section Width
@@ -1636,7 +1646,7 @@ parts of Emacs text.
@vindex default-line-spacing
You can specify the line spacing for all lines in a frame with the
-@code{line-spacing} frame parameter, @xref{Window Frame Parameters}.
+@code{line-spacing} frame parameter (@pxref{Layout Parameters}).
However, if the variable @code{default-line-spacing} is
non-@code{nil}, it overrides the frame's @code{line-spacing}
parameter. An integer value specifies the number of pixels put below
@@ -1669,7 +1679,9 @@ height.
A @dfn{face} is a named collection of graphical attributes: font
family, foreground color, background color, optional underlining, and
many others. Faces are used in Emacs to control the style of display of
-particular parts of the text or the frame.
+particular parts of the text or the frame. @xref{Standard Faces,,,
+emacs, The GNU Emacs Manual}, for the list of faces Emacs normally
+comes with.
@cindex face id
Each face has its own @dfn{face number}, which distinguishes faces at
@@ -1687,7 +1699,6 @@ same meaning in all frames. But you can arrange to give a particular
face name a special meaning in one frame if you wish.
@menu
-* Standard Faces:: The faces Emacs normally comes with.
* Defining Faces:: How to define a face with @code{defface}.
* Face Attributes:: What is in a face?
* Attribute Functions:: Functions to examine and set face attributes.
@@ -1701,140 +1712,6 @@ face name a special meaning in one frame if you wish.
that handle a range of character sets.
@end menu
-@node Standard Faces
-@subsection Standard Faces
-
- This table lists all the standard faces and their uses. Most of them
-are used for displaying certain parts of the frames or certain kinds of
-text; you can control how those places look by customizing these faces.
-
-@table @code
-@item default
-@kindex default @r{(face name)}
-This face is used for ordinary text.
-
-@item mode-line
-@kindex mode-line @r{(face name)}
-This face is used for the mode line of the selected window, and for
-menu bars when toolkit menus are not used---but only if
-@code{mode-line-inverse-video} is non-@code{nil}.
-
-@item modeline
-@kindex modeline @r{(face name)}
-This is an alias for the @code{mode-line} face, for compatibility with
-old Emacs versions.
-
-@item mode-line-inactive
-@kindex mode-line-inactive @r{(face name)}
-This face is used for mode lines of non-selected windows.
-This face inherits from @code{mode-line}, so changes
-in that face affect all windows.
-
-@item header-line
-@kindex header-line @r{(face name)}
-This face is used for the header lines of windows that have them.
-
-@item menu
-This face controls the display of menus, both their colors and their
-font. (This works only on certain systems.)
-
-@item fringe
-@kindex fringe @r{(face name)}
-This face controls the default colors of window fringes, the thin
-areas on either side that are used to display continuation and
-truncation glyphs. Other faces used to display bitmaps in the fringe
-are implicitly merged with this face.
-
-@item minibuffer-prompt
-@kindex minibuffer-prompt @r{(face name)}
-@vindex minibuffer-prompt-properties
-This face is used for the text of minibuffer prompts. By default,
-Emacs automatically adds this face to the value of
-@code{minibuffer-prompt-properties}, which is a list of text
-properties used to display the prompt text.
-
-@item scroll-bar
-@kindex scroll-bar @r{(face name)}
-This face controls the colors for display of scroll bars.
-
-@item tool-bar
-@kindex tool-bar @r{(face name)}
-This face is used for display of the tool bar, if any.
-
-@item region
-@kindex region @r{(face name)}
-This face is used for highlighting the region in Transient Mark mode.
-
-@item secondary-selection
-@kindex secondary-selection @r{(face name)}
-This face is used to show any secondary selection you have made.
-
-@item highlight
-@kindex highlight @r{(face name)}
-This face is meant to be used for highlighting for various purposes.
-
-@item mode-line-highlight
-@kindex mode-line-highlight @r{(face name)}
-This face is used for highlighting something on @code{mode-line} or
-@code{header-line} for various purposes.
-
-@item trailing-whitespace
-@kindex trailing-whitespace @r{(face name)}
-This face is used to display excess whitespace at the end of a line,
-if @code{show-trailing-whitespace} is non-@code{nil}.
-
-@item escape-glyph
-@kindex escape-glyph @r{(face name)}
-This face is used to display control characters and escape glyphs.
-@end table
-
- In contrast, these faces are provided to change the appearance of text
-in specific ways. You can use them on specific text, when you want
-the effects they produce.
-
-@table @code
-@item bold
-@kindex bold @r{(face name)}
-This face uses a bold font, if possible. It uses the bold variant of
-the frame's font, if it has one. It's up to you to choose a default
-font that has a bold variant, if you want to use one.
-
-@item italic
-@kindex italic @r{(face name)}
-This face uses the italic variant of the frame's font, if it has one.
-
-@item bold-italic
-@kindex bold-italic @r{(face name)}
-This face uses the bold italic variant of the frame's font, if it has
-one.
-
-@item underline
-@kindex underline @r{(face name)}
-This face underlines text.
-
-@item fixed-pitch
-@kindex fixed-pitch @r{(face name)}
-This face forces use of a particular fixed-width font.
-
-@item variable-pitch
-@kindex variable-pitch @r{(face name)}
-This face forces use of a particular variable-width font. It's
-reasonable to customize this to use a different variable-width font, if
-you like, but you should not make it a fixed-width font.
-
-@item shadow
-@kindex shadow @r{(face name)}
-This face is used for making the text less noticeable than the
-surrounding ordinary text.
-@end table
-
-@defvar show-trailing-whitespace
-@tindex show-trailing-whitespace
-If this variable is non-@code{nil}, Emacs uses the
-@code{trailing-whitespace} face to display any spaces and tabs at the
-end of a line.
-@end defvar
-
@node Defining Faces
@subsection Defining Faces
@@ -2285,10 +2162,14 @@ This function sets the underline attribute of face @var{face}.
Non-@code{nil} means do underline; @code{nil} means don't.
@end defun
+@defun set-face-inverse-video-p face inverse-video-p &optional frame
+This function sets the @code{:inverse-video} attribute of face
+@var{face}.
+@end defun
+
@defun invert-face face &optional frame
-This function inverts the @code{:inverse-video} attribute of face
-@var{face}. If the attribute is @code{nil}, this function sets it to
-@code{t}, and vice versa.
+This function swaps the foreground and background colors of face
+@var{face}.
@end defun
These functions examine the attributes of a face. If you don't
@@ -2297,7 +2178,7 @@ They return the symbol @code{unspecified} if the face doesn't define any
value for that attribute.
@defun face-foreground face &optional frame inherit
-@defunx face-background face &optional frame
+@defunx face-background face &optional frame inherit
These functions return the foreground color (or background color,
respectively) of face @var{face}, as a string.
@@ -2375,7 +2256,8 @@ properties too; they apply to all the text covered by the overlay.
@item
With a region that is active. In Transient Mark mode, the region is
-highlighted with the face @code{region} (@pxref{Standard Faces}).
+highlighted with the face @code{region} (@pxref{Standard Faces,,,
+emacs, The GNU Emacs Manual}).
@item
With special glyphs. Each glyph can specify a particular face
@@ -3073,7 +2955,7 @@ Normally the frame parameter @code{vertical-scroll-bars} controls
whether the windows in the frame have vertical scroll bars, and
whether they are on the left or right. The frame parameter
@code{scroll-bar-width} specifies how wide they are (@code{nil}
-meaning the default). @xref{Window Frame Parameters}.
+meaning the default). @xref{Layout Parameters}.
@defun frame-current-scroll-bars &optional frame
This function reports the scroll bar type settings for frame
@@ -4587,24 +4469,6 @@ Here is an example of calling this function explicitly.
@end smallexample
@end deffn
-@node Inverse Video
-@section Inverse Video
-@cindex Inverse Video
-
-@defopt inverse-video
-@cindex highlighting
-This variable controls whether Emacs uses inverse video for all text
-on the screen. Non-@code{nil} means yes, @code{nil} means no. The
-default is @code{nil}.
-@end defopt
-
-@defopt mode-line-inverse-video
-This variable controls the use of inverse video for mode lines and
-menu bars. If it is non-@code{nil}, then these lines are displayed in
-the face @code{mode-line}. Otherwise, these lines are displayed
-normally, just like other text. The default is @code{t}.
-@end defopt
-
@node Usual Display
@section Usual Display Conventions
diff --git a/lispref/edebug.texi b/lispref/edebug.texi
index f074cf3dbd..a32c5e9189 100644
--- a/lispref/edebug.texi
+++ b/lispref/edebug.texi
@@ -1,6 +1,7 @@
@comment -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1992, 1993, 1994, 1998, 1999, 2005 Free Software Foundation, Inc.
+@c Copyright (C) 1992, 1993, 1994, 1998, 1999, 2002, 2003, 2004,
+@c 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@c This file can also be used by an independent Edebug User
diff --git a/lispref/elisp.texi b/lispref/elisp.texi
index f954cdc220..726636fc71 100644
--- a/lispref/elisp.texi
+++ b/lispref/elisp.texi
@@ -6,7 +6,7 @@
@c Version of the manual and of Emacs.
@c Please remember to update the edition number in README as well.
-@set VERSION 2.7
+@set VERSION 2.9
@set EMACSVER 22.0.50
@dircategory Emacs
@@ -31,7 +31,7 @@ This is edition @value{VERSION} of the GNU Emacs Lisp
Reference Manual, corresponding to Emacs version @value{EMACSVER}.
Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999,
- 2000, 2002, 2003, 2004, 2005, Free Software Foundation, Inc.
+ 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
@@ -543,6 +543,10 @@ Minibuffers
* Yes-or-No Queries:: Asking a question with a simple answer.
* Multiple Queries:: Asking a series of similar questions.
* Reading a Password:: Reading a password from the terminal.
+* Minibuffer Commands:: Commands used as key bindings in minibuffers.
+* Minibuffer Contents:: How such commands access the minibuffer text.
+* Minibuffer Windows:: Operating on the special minibuffer windows.
+* Recursive Mini:: Whether recursive entry to minibuffer is allowed.
* Minibuffer Misc:: Various customization hooks and variables.
Completion
@@ -908,13 +912,13 @@ Non-ASCII Characters
Searching and Matching
* String Search:: Search for an exact match.
+* Searching and Case:: Case-independent or case-significant searching.
* Regular Expressions:: Describing classes of strings.
* Regexp Search:: Searching for a match for a regexp.
* POSIX Regexps:: Searching POSIX-style for the longest match.
-* Search and Replace:: Internals of @code{query-replace}.
-* Match Data:: Finding out which part of the text matched
- various parts of a regexp, after regexp search.
-* Searching and Case:: Case-independent or case-significant searching.
+* Match Data:: Finding out which part of the text matched,
+ after a string or regexp search.
+* Search and Replace:: Commands that loop, searching and replacing.
* Standard Regexps:: Useful regexps for finding sentences, pages,...
Regular Expressions
@@ -970,7 +974,8 @@ Processes
* Datagrams:: UDP network connections.
* Low-Level Network:: Lower-level but more general function
to create connections and servers.
-* Byte Packing:: Using bindat to pack and unpack binary data.
+* Misc Network:: Additional relevant functions for network connections.
+* Byte Packing:: Using bindat to pack and unpack binary data.
Receiving Output from Processes
@@ -1001,7 +1006,6 @@ Emacs Display
* Images:: Displaying images in Emacs buffers.
* Buttons:: Adding clickable buttons to Emacs buffers.
* Blinking:: How Emacs shows the matching open parenthesis.
-* Inverse Video:: Specifying how the screen looks.
* Usual Display:: The usual conventions for displaying nonprinting chars.
* Display Tables:: How to specify other conventions.
* Beeping:: Audible signal to the user.
@@ -1016,6 +1020,8 @@ Operating System Interface
* Time of Day:: Getting the current time.
* Time Conversion:: Converting a time from numeric form to a string, or
to calendrical data (or vice versa).
+* Time Parsing:: Converting a time from numeric form to text
+ and vice versa.
* Processor Run Time:: Getting the run time used by Emacs.
* Time Calculations:: Adding, subtracting, comparing times, etc.
* Timers:: Setting a timer to call a function at a certain time.
@@ -1042,7 +1048,10 @@ Getting out of Emacs
Tips and Conventions
* Coding Conventions:: Conventions for clean and robust programs.
-* Compilation Tips:: Making compiled code run fast.
+* Key Binding Conventions:: Which keys should be bound by which programs.
+* Programming Tips:: Making Emacs code fit smoothly in Emacs.
+* Compilation Tips:: Making compiled code run fast.
+* Warning Tips:: Turning off compiler warnings.
* Documentation Tips:: Writing readable documentation strings.
* Comment Tips:: Conventions for writing comments.
* Library Headers:: Standard headers for library packages.
diff --git a/lispref/errors.texi b/lispref/errors.texi
index a246539b8f..ce48c3cf54 100644
--- a/lispref/errors.texi
+++ b/lispref/errors.texi
@@ -1,6 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1999 Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1999, 2002, 2003, 2004,
+@c 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/errors
@node Standard Errors, Standard Buffer-Local Variables, GNU Emacs Internals, Top
diff --git a/lispref/eval.texi b/lispref/eval.texi
index 6a43466af6..36bc941f26 100644
--- a/lispref/eval.texi
+++ b/lispref/eval.texi
@@ -1,6 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 2003, 2004 Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 2002, 2003, 2004,
+@c 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/eval
@node Evaluation, Control Structures, Symbols, Top
diff --git a/lispref/files.texi b/lispref/files.texi
index 93c104e6cc..1ec4b2e5dc 100644
--- a/lispref/files.texi
+++ b/lispref/files.texi
@@ -1,7 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2004
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003,
+@c 2004, 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/files
@node Files, Backups and Auto-Saving, Documentation, Top
@@ -2580,7 +2580,9 @@ Here are the operations that a magic file name handler gets to handle:
@code{get-file-buffer},
@code{insert-directory},
@code{insert-file-contents},@*
-@code{load}, @code{make-directory},
+@code{load},
+@code{make-auto-save-file-name},
+@code{make-directory},
@code{make-directory-internal},
@code{make-symbolic-link},@*
@code{rename-file}, @code{set-file-modes}, @code{set-file-times},
diff --git a/lispref/frames.texi b/lispref/frames.texi
index 13921c0b6f..3cb5e49dba 100644
--- a/lispref/frames.texi
+++ b/lispref/frames.texi
@@ -1,7 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2004
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003,
+@c 2004, 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/frames
@node Frames, Positions, Windows, Top
@@ -205,6 +205,7 @@ parameters @code{foreground-color}, @code{background-color},
* Initial Parameters:: Specifying frame parameters when you make a frame.
* Window Frame Parameters:: List of frame parameters for window systems.
* Size and Position:: Changing the size and position of a frame.
+* Geometry:: Parsing geometry specifications.
@end menu
@node Parameter Access
@@ -310,14 +311,31 @@ Line Arguments for Emacs Invocation, emacs, The GNU Emacs Manual}.
@node Window Frame Parameters
@subsection Window Frame Parameters
- Just what parameters a frame has depends on what display mechanism it
-uses. Here is a table of the parameters that have special meanings in a
-window frame; of these, @code{name}, @code{title}, @code{height},
-@code{width}, @code{buffer-list} and @code{buffer-predicate} provide
-meaningful information in terminal frames, and @code{tty-color-mode}
-is meaningful @emph{only} in terminal frames. Frame parameter whose
-values measured in pixels, when used on text-only terminals, count
-characters or lines instead.
+ Just what parameters a frame has depends on what display mechanism
+it uses. This section describes the parameters that have special
+meanings on some or all kinds of terminals. Of these, @code{name},
+@code{title}, @code{height}, @code{width}, @code{buffer-list} and
+@code{buffer-predicate} provide meaningful information in terminal
+frames, and @code{tty-color-mode} is meaningful @emph{only} in
+terminal frames.
+
+@menu
+* Basic Parameters:: Parameters that are fundamental.
+* Position Parameters:: The position of the frame on the screen.
+* Size Parameters:: Frame's size.
+* Layout Parameters:: Size of parts of the frame, and
+ enabling or disabling some parts.
+* Buffer Parameters:: Which buffers have been or should be shown.
+* Management Parameters:: Communicating with the window manager.
+* Cursor Parameters:: Controlling the cursor appearance.
+* Color Parameters:: Colors of various parts of the frame.
+@end menu
+
+@node Basic Parameters
+@subsubsection Basic Parameters
+
+ These frame parameters give the most basic information about the
+frame. @code{title} and @code{name} are meaningful on all terminals.
@table @code
@item display
@@ -325,6 +343,11 @@ The display on which to open this frame. It should be a string of the
form @code{"@var{host}:@var{dpy}.@var{screen}"}, just like the
@code{DISPLAY} environment variable.
+@item display-type
+This parameter describes the range of possible colors that can be used
+in this frame. Its value is @code{color}, @code{grayscale} or
+@code{mono}.
+
@item title
If a frame has a non-@code{nil} title, it appears in the window system's
border for the frame, and also in the mode line of windows in that frame
@@ -342,7 +365,15 @@ you don't specify a name, Emacs sets the frame name automatically
If you specify the frame name explicitly when you create the frame, the
name is also used (instead of the name of the Emacs executable) when
looking up X resources for the frame.
+@end table
+@node Position Parameters
+@subsubsection Position Parameters
+
+ Position parameters' values are normally measured in pixels, but on
+text-only terminals they count characters or lines instead.
+
+@table @code
@item left
The screen position of the left edge, in pixels, with respect to the
left edge of the screen. The value may be a positive number @var{pos},
@@ -397,7 +428,15 @@ When you call @code{make-frame}, you should specify a non-@code{nil}
value for this parameter if the values of the @code{left} and @code{top}
parameters represent the user's stated preference; otherwise, use
@code{nil}.
+@end table
+
+@node Size Parameters
+@subsubsection Size Parameters
+ Size parameters' values are normally measured in pixels, but on
+text-only terminals they count characters or lines instead.
+
+@table @code
@item height
The height of the frame contents, in characters. (To get the height in
pixels, call @code{frame-pixel-height}; see @ref{Size and Position}.)
@@ -417,14 +456,76 @@ The value @code{fullwidth} specifies that width shall be the size of the
screen. The value @code{fullheight} specifies that height shall be the
size of the screen. The value @code{fullboth} specifies that both the
width and the height shall be set to the size of the screen.
+@end table
-@item window-id
-The number of the window-system window used by the frame
-to contain the actual Emacs windows.
+@node Layout Parameters
+@subsubsection Layout Parameters
-@item outer-window-id
-The number of the outermost window-system window used for the whole frame.
+ These frame parameters enable or disable various parts of the
+frame, or control their sizes.
+@table @code
+@item border-width
+The width in pixels of the window border.
+
+@item internal-border-width
+The distance in pixels between text and border.
+
+@item vertical-scroll-bars
+Whether the frame has scroll bars for vertical scrolling, and which side
+of the frame they should be on. The possible values are @code{left},
+@code{right}, and @code{nil} for no scroll bars.
+
+@ignore
+@item horizontal-scroll-bars
+Whether the frame has scroll bars for horizontal scrolling
+(non-@code{nil} means yes). Horizontal scroll bars are not currently
+implemented.
+@end ignore
+
+@item scroll-bar-width
+The width of vertical scroll bars, in pixels, or @code{nil} meaning to
+use the default width.
+
+@item left-fringe
+@itemx right-fringe
+The default width of the left and right fringes of windows in this
+frame (@pxref{Fringes}). If either of these is zero, that effectively
+removes the corresponding fringe. A value of @code{nil} stands for
+the standard fringe width, which is the width needed to display the
+fringe bitmaps.
+
+The combined fringe widths must add up to an integral number of
+columns, so the actual default fringe widths for the frame may be
+larger than the specified values. The extra width needed to reach an
+acceptable total is distributed evenly between the left and right
+fringe. However, you can force one fringe or the other to a precise
+width by specifying that width as a negative integer. If both widths are
+negative, only the left fringe gets the specified width.
+
+@item menu-bar-lines
+The number of lines to allocate at the top of the frame for a menu
+bar. The default is 1. A value of @code{nil} means don't display a
+menu bar. @xref{Menu Bar}. (The X toolkit and GTK allow at most one
+menu bar line; they treat larger values as 1.)
+
+@item tool-bar-lines
+The number of lines to use for the tool bar. A value of @code{nil}
+means don't display a tool bar. (GTK allows at most one tool bar line;
+it treats larger values as 1.)
+
+@item line-spacing
+Additional space to leave below each text line, in pixels (a positive
+integer). @xref{Line Height}, for more information.
+@end table
+
+@node Buffer Parameters
+@subsubsection Buffer Parameters
+
+ These frame parameters, meaningful on all kinds of terminals, deal
+with which buffers have been, or should, be displayed in the frame.
+
+@table @code
@item minibuffer
Whether this frame has its own minibuffer. The value @code{t} means
yes, @code{nil} means no, @code{only} means this frame is just a
@@ -443,26 +544,28 @@ considers that buffer.
A list of buffers that have been selected in this frame,
ordered most-recently-selected first.
+@item unsplittable
+If non-@code{nil}, this frame's window is never split automatically.
+@end table
+
+@node Management Parameters
+@subsubsection Window Management Parameters
+
+ These frame parameters, meaningful only on window system displays,
+interact with the window manager.
+
+@table @code
+@item visibility
+The state of visibility of the frame. There are three possibilities:
+@code{nil} for invisible, @code{t} for visible, and @code{icon} for
+iconified. @xref{Visibility of Frames}.
+
@item auto-raise
Whether selecting the frame raises it (non-@code{nil} means yes).
@item auto-lower
Whether deselecting the frame lowers it (non-@code{nil} means yes).
-@item vertical-scroll-bars
-Whether the frame has scroll bars for vertical scrolling, and which side
-of the frame they should be on. The possible values are @code{left},
-@code{right}, and @code{nil} for no scroll bars.
-
-@item horizontal-scroll-bars
-Whether the frame has scroll bars for horizontal scrolling
-(non-@code{nil} means yes). (Horizontal scroll bars are not currently
-implemented.)
-
-@item scroll-bar-width
-The width of the vertical scroll bar, in pixels,
-or @code{nil} meaning to use the default width.
-
@item icon-type
The type of icon to use for this frame when it is iconified. If the
value is a string, that specifies a file containing a bitmap to use.
@@ -473,29 +576,35 @@ picture of a gnu); @code{nil} specifies a text icon.
The name to use in the icon for this frame, when and if the icon
appears. If this is @code{nil}, the frame's title is used.
-@item background-mode
-This parameter is either @code{dark} or @code{light}, according
-to whether the background color is a light one or a dark one.
+@item window-id
+The number of the window-system window used by the frame
+to contain the actual Emacs windows.
-@item tty-color-mode
-@cindex standard colors for character terminals
-This parameter overrides the terminal's color support as given by the
-system's terminal capabilities database in that this parameter's value
-specifies the color mode to use in terminal frames. The value can be
-either a symbol or a number. A number specifies the number of colors
-to use (and, indirectly, what commands to issue to produce each
-color). For example, @code{(tty-color-mode . 8)} forces Emacs to use
-the ANSI escape sequences for 8 standard text colors; and a value of
--1 means Emacs should turn off color support. If the parameter's
-value is a symbol, that symbol is looked up in the alist
-@code{tty-color-mode-alist}, and if found, the associated number is
-used as the color support mode.
+@item outer-window-id
+The number of the outermost window-system window used for the whole frame.
-@item display-type
-This parameter describes the range of possible colors that can be used
-in this frame. Its value is @code{color}, @code{grayscale} or
-@code{mono}.
+@item wait-for-wm
+If non-@code{nil}, tell Xt to wait for the window manager to confirm
+geometry changes. Some window managers, including versions of Fvwm2
+and KDE, fail to confirm, so Xt hangs. Set this to @code{nil} to
+prevent hanging with those window managers.
+
+@ignore
+@item parent-id
+@c ??? Not yet working.
+The X window number of the window that should be the parent of this one.
+Specifying this lets you create an Emacs window inside some other
+application's window. (It is not certain this will be implemented; try
+it and see if it works.)
+@end ignore
+@end table
+@node Cursor Parameters
+@subsubsection Cursor Parameters
+
+ This frame parameter controls the way the cursor looks.
+
+@table @code
@item cursor-type
How to display the cursor. Legitimate values are:
@@ -515,52 +624,51 @@ Display a horizontal bar.
@item (hbar . @var{height})
Display a horizontal bar @var{height} pixels high.
@end table
+@end table
@vindex cursor-type
The buffer-local variable @code{cursor-type} overrides the value of
the @code{cursor-type} frame parameter, but if it is @code{t}, that
means to use the cursor specified for the frame.
-@item border-width
-The width in pixels of the window border.
-
-@item internal-border-width
-The distance in pixels between text and border.
-
-@item left-fringe
-@itemx right-fringe
-The default width of the left and right fringes of windows in this
-frame (@pxref{Fringes}). If either of these is zero, that effectively
-removes the corresponding fringe. A value of @code{nil} stands for
-the standard fringe width, which is the width needed to display the
-fringe bitmaps.
+@defvar blink-cursor-alist
+This variable specifies how to blink the cursor. Each element has the
+form @code{(@var{on-state} . @var{off-state})}. Whenever the cursor
+type equals @var{on-state} (comparing using @code{equal}), the
+corresponding @var{off-state} specifies what the cursor looks like
+when it blinks ``off''. Both @var{on-state} and @var{off-state}
+should be suitable values for the @code{cursor-type} frame parameter.
+
+There are various defaults for how to blink each type of cursor, if
+the type is not mentioned as an @var{on-state} here. Changes in this
+variable do not take effect immediately, because the variable is
+examined only when you specify the @code{cursor-type} parameter.
+@end defvar
-The combined fringe widths must add up to an integral number of
-columns, so the actual default fringe widths for the frame may be
-larger than the specified values. The extra width needed to reach an
-acceptable total is distributed evenly between the left and right
-fringe. However, you can force one fringe or the other to a precise
-width by specifying that width as a negative integer. If both widths are
-negative, only the left fringe gets the specified width.
+@node Color Parameters
+@subsubsection Color Parameters
-@item unsplittable
-If non-@code{nil}, this frame's window is never split automatically.
+ These frame parameters control the use of colors.
-@item visibility
-The state of visibility of the frame. There are three possibilities:
-@code{nil} for invisible, @code{t} for visible, and @code{icon} for
-iconified. @xref{Visibility of Frames}.
+@table @code
+@item background-mode
+This parameter is either @code{dark} or @code{light}, according
+to whether the background color is a light one or a dark one.
-@item menu-bar-lines
-The number of lines to allocate at the top of the frame for a menu
-bar. The default is 1. A value of @code{nil} means don't display a
-menu bar. @xref{Menu Bar}. (The X toolkit and GTK allow at most one
-menu bar line; they treat larger values as 1.)
+@item tty-color-mode
+@cindex standard colors for character terminals
+This parameter overrides the terminal's color support as given by the
+system's terminal capabilities database in that this parameter's value
+specifies the color mode to use in terminal frames. The value can be
+either a symbol or a number. A number specifies the number of colors
+to use (and, indirectly, what commands to issue to produce each
+color). For example, @code{(tty-color-mode . 8)} specifies use of the
+ANSI escape sequences for 8 standard text colors. A value of -1 turns
+off color support.
-@item tool-bar-lines
-The number of lines to use for the tool bar. A value of @code{nil}
-means don't display a tool bar. (GTK allows at most one tool bar line;
-it treats larger values as 1.)
+If the parameter's value is a symbol, it specifies a number through
+the value of @code{tty-color-mode-alist}, and the associated number is
+used instead.
@item screen-gamma
@cindex gamma correction
@@ -580,40 +688,8 @@ If your monitor displays colors too light, you should specify a
@code{screen-gamma} value smaller than 2.2. This requests correction
that makes colors darker. A screen gamma value of 1.5 may give good
results for LCD color displays.
-
-@item line-spacing
-Additional space put below text lines, in pixels (a positive integer)
-
-@item wait-for-wm
-If non-@code{nil}, tell Xt to wait for the window manager to confirm
-geometry changes. Some window managers, including versions of Fvwm2
-and KDE, fail to confirm, so Xt hangs. Set this to @code{nil} to
-prevent hanging with those window managers.
-
-@ignore
-@item parent-id
-@c ??? Not yet working.
-The X window number of the window that should be the parent of this one.
-Specifying this lets you create an Emacs window inside some other
-application's window. (It is not certain this will be implemented; try
-it and see if it works.)
-@end ignore
@end table
-@defvar blink-cursor-alist
-This variable specifies how to blink the cursor. Each element has the
-form @code{(@var{on-state} . @var{off-state})}. Whenever the cursor
-type equals @var{on-state} (comparing using @code{equal}), Emacs uses
-@var{off-state} to specify what the cursor looks like when it blinks
-``off''. Both @var{on-state} and @var{off-state} should be suitable
-values for the @code{cursor-type} frame parameter.
-
-There are various defaults for how to blink each type of cursor,
-if the type is not mentioned as an @var{on-state} here. Changes
-in this variable do not take effect immediately, because the variable
-is examined only when you specify a cursor type for a frame.
-@end defvar
-
These frame parameters are semi-obsolete in that they are automatically
equivalent to particular face attributes of particular faces.
@@ -750,6 +826,12 @@ The argument @var{pretend} has the same meaning as in
screen, in Emacs versions that did not support multiple frames. They
are semi-obsolete, but still work; they apply to the selected frame.
+@node Geometry
+@subsection Geometry
+
+ Here's how to examine the data in an X-style window geometry
+specification:
+
@defun x-parse-geometry geom
@cindex geometry specification
The function @code{x-parse-geometry} converts a standard X window
@@ -1150,7 +1232,7 @@ they are currently being displayed or not, and this function returns
@end defun
The visibility status of a frame is also available as a frame
-parameter. You can read or change it as such. @xref{Window Frame
+parameter. You can read or change it as such. @xref{Management
Parameters}.
The user can iconify and deiconify frames with the window manager.
@@ -1195,7 +1277,7 @@ that the minibuffer window is in.
You can also enable auto-raise (raising automatically when a frame is
selected) or auto-lower (lowering automatically when it is deselected)
-for any frame using frame parameters. @xref{Window Frame Parameters}.
+for any frame using frame parameters. @xref{Management Parameters}.
@node Frame Configurations
@section Frame Configurations
@@ -1504,7 +1586,7 @@ is over mouse-sensitive text.
These variables affect newly created frames. They do not normally
affect existing frames; however, if you set the mouse color of a frame,
that also updates its pointer shapes based on the current values of
-these variables. @xref{Window Frame Parameters}.
+these variables. @xref{Color Parameters}.
The values you can use, to specify either of these pointer shapes, are
defined in the file @file{lisp/term/x-win.el}. Use @kbd{M-x apropos
@@ -1744,7 +1826,7 @@ This function associates the color name @var{name} with
color number @var{number} on the terminal.
The optional argument @var{rgb}, if specified, is an rgb value, a list
-of three numbers that specify what what the color actually looks like.
+of three numbers that specify what the color actually looks like.
If you do not specify @var{rgb}, then this color cannot be used by
@code{tty-color-approximate} to approximate other colors, because
Emacs will not know what it looks like.
@@ -1822,7 +1904,7 @@ xterm.vt100.background: yellow
@end example
@noindent
-in in your X resources file (whose name is usually @file{~/.Xdefaults}
+in your X resources file (whose name is usually @file{~/.Xdefaults}
or @file{~/.Xresources}). Then:
@example
diff --git a/lispref/functions.texi b/lispref/functions.texi
index f58cad69bb..17a96734b1 100644
--- a/lispref/functions.texi
+++ b/lispref/functions.texi
@@ -1,7 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2004
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003,
+@c 2004, 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/functions
@node Functions, Macros, Variables, Top
diff --git a/lispref/hash.texi b/lispref/hash.texi
index b8ddd0ee6a..7b4c8c6771 100644
--- a/lispref/hash.texi
+++ b/lispref/hash.texi
@@ -1,6 +1,6 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1999, 2003 Free Software Foundation, Inc.
+@c Copyright (C) 1999, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/hash
@node Hash Tables, Symbols, Sequences Arrays Vectors, Top
@@ -281,8 +281,8 @@ compared case-insensitively.
(defun case-fold-string-hash (a)
(sxhash (upcase a)))
-(define-hash-table-test 'case-fold 'case-fold-string=
- 'case-fold-string-hash))
+(define-hash-table-test 'case-fold
+ 'case-fold-string= 'case-fold-string-hash)
(make-hash-table :test 'case-fold)
@end example
diff --git a/lispref/help.texi b/lispref/help.texi
index 2dbea2038c..c7c99fa898 100644
--- a/lispref/help.texi
+++ b/lispref/help.texi
@@ -1,7 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2004
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003,
+@c 2004, 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/help
@node Documentation, Files, Modes, Top
diff --git a/lispref/hooks.texi b/lispref/hooks.texi
index 1278589de5..11b2233dc0 100644
--- a/lispref/hooks.texi
+++ b/lispref/hooks.texi
@@ -1,6 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1998, 2004, 2005 Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1998, 2002, 2003, 2004,
+@c 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/hooks
@node Standard Hooks, Index, Standard Keymaps, Top
diff --git a/lispref/internals.texi b/lispref/internals.texi
index 5a83c82ff5..e032f5a7dd 100644
--- a/lispref/internals.texi
+++ b/lispref/internals.texi
@@ -1,7 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1998, 1999
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1998, 1999, 2002, 2003, 2004,
+@c 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/internals
@node GNU Emacs Internals, Standard Errors, Tips, Top
@@ -368,6 +368,17 @@ until the subsequent garbage collection, at which time
@code{garbage-collect} will set the threshold back to 10,000.
@end defopt
+@defopt gc-cons-percentage
+The value of this variable specifies the amount of consing before a
+garbage collection occurs, as a fraction of the current heap size.
+This criterion and @code{gc-cons-threshold} apply in parallel, and
+garbage collection occurs only when both criteria are satisfied.
+
+As the heap size increases, the time to perform a garbage collection
+increases. Thus, it can be desirable to do them less frequently in
+proportion.
+@end defopt
+
The value returned by @code{garbage-collect} describes the amount of
memory used by Lisp data, broken down by data type. By contrast, the
function @code{memory-limit} provides information on the total amount of
diff --git a/lispref/intro.texi b/lispref/intro.texi
index bb264c81c4..01ffeb3321 100644
--- a/lispref/intro.texi
+++ b/lispref/intro.texi
@@ -1,7 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 2002
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 2002, 2003, 2004,
+@c 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/intro
diff --git a/lispref/keymaps.texi b/lispref/keymaps.texi
index 895ca48109..5509b35b79 100644
--- a/lispref/keymaps.texi
+++ b/lispref/keymaps.texi
@@ -1,7 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 1999, 2000, 2004
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 1999, 2000, 2002, 2003,
+@c 2004, 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/keymaps
@node Keymaps, Modes, Command Loop, Top
@@ -2199,7 +2199,7 @@ were @code{nil}. @xref{Active Keymaps}.
parameter must be greater than zero. Emacs uses just one line for the
menu bar itself; if you specify more than one line, the other lines
serve to separate the menu bar from the windows in the frame. We
-recommend 1 or 2 as the value of @code{menu-bar-lines}. @xref{Window Frame
+recommend 1 or 2 as the value of @code{menu-bar-lines}. @xref{Layout
Parameters}.
Here's an example of setting up a menu bar item:
diff --git a/lispref/lists.texi b/lispref/lists.texi
index 22edec42db..422c977184 100644
--- a/lispref/lists.texi
+++ b/lispref/lists.texi
@@ -1,8 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999,
-@c 2003, 2004, 2005
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003,
+@c 2004, 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/lists
@node Lists, Sequences Arrays Vectors, Strings and Characters, Top
diff --git a/lispref/loading.texi b/lispref/loading.texi
index 4049877e78..afef0e787a 100644
--- a/lispref/loading.texi
+++ b/lispref/loading.texi
@@ -1,8 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999,
-@c 2003, 2004, 2005
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2003,
+@c 2004, 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/loading
@node Loading, Byte Compilation, Customization, Top
@@ -481,17 +480,22 @@ autoloading with a magic comment:
Here's what that produces in @file{loaddefs.el}:
@smallexample
-(autoload 'doctor "doctor" "\
-Switch to *doctor* buffer and start giving psychotherapy."
- t)
+(autoload (quote doctor) "doctor" "\
+Switch to *doctor* buffer and start giving psychotherapy.
+
+\(fn)" t nil)
@end smallexample
@noindent
+@cindex @code{fn} in function's documentation string
The backslash and newline immediately following the double-quote are a
convention used only in the preloaded uncompiled Lisp files such as
@file{loaddefs.el}; they tell @code{make-docfile} to put the
documentation string in the @file{etc/DOC} file. @xref{Building Emacs}.
-See also the commentary in @file{lib-src/make-docfile.c}.
+See also the commentary in @file{lib-src/make-docfile.c}. @samp{(fn)}
+in the usage part of the documentation string is replaced with the
+function's name when the various help functions (@pxref{Help
+Functions}) display it.
If you write a function definition with an unusual macro that is not
one of the known and recognized function definition methods, use of an
diff --git a/lispref/locals.texi b/lispref/locals.texi
index 942baa9dd1..57b17d3d41 100644
--- a/lispref/locals.texi
+++ b/lispref/locals.texi
@@ -1,6 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1999 Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1999, 2002, 2003, 2004,
+@c 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/locals
@node Standard Buffer-Local Variables, Standard Keymaps, Standard Errors, Top
@@ -82,7 +83,7 @@ use, but we don't try to list them all here.
@xref{Usual Display}.
@item cursor-type
-@xref{Window Frame Parameters}.
+@xref{Cursor Parameters}.
@item comment-column
@xref{Comments,,, emacs, The GNU Emacs Manual}.
diff --git a/lispref/macros.texi b/lispref/macros.texi
index 0a1bf942c2..dc822352ab 100644
--- a/lispref/macros.texi
+++ b/lispref/macros.texi
@@ -1,6 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 2004 Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 2002, 2003,
+@c 2004, 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/macros
@node Macros, Customization, Functions, Top
diff --git a/lispref/makefile.w32-in b/lispref/makefile.w32-in
index 457f98c110..038c05db7c 100644
--- a/lispref/makefile.w32-in
+++ b/lispref/makefile.w32-in
@@ -1,7 +1,6 @@
# -*- Makefile -*- for the GNU Emacs Lisp Reference Manual.
-# Copyright (C) 2003, 2004
-# Free Software Foundation, Inc.
+# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
# This file is part of GNU Emacs.
@@ -99,7 +98,10 @@ srcs = \
.PHONY: clean
# The info file is named `elisp'.
+
info: $(infodir)/elisp
+
+$(infodir)/dir:
$(INSTALL_INFO) --info-dir=$(infodir) $(infodir)/elisp
$(infodir)/elisp: $(srcs)
diff --git a/lispref/maps.texi b/lispref/maps.texi
index 16c1f0bab9..ef5984cc32 100644
--- a/lispref/maps.texi
+++ b/lispref/maps.texi
@@ -1,6 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1999 Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1999, 2002, 2003, 2004,
+@c 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/maps
@node Standard Keymaps, Standard Hooks, Standard Buffer-Local Variables, Top
diff --git a/lispref/markers.texi b/lispref/markers.texi
index 4eb34ce13a..d9f6d19a4b 100644
--- a/lispref/markers.texi
+++ b/lispref/markers.texi
@@ -1,7 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003,
+@c 2004, 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/markers
@node Markers, Text, Positions, Top
@@ -444,7 +444,7 @@ programming. So we do not describe it here.
This function returns the current buffer's mark position as an integer.
If Transient Mark mode is enabled, @code{mark-even-if-inactive} is
-@code{nil} and and the mark is inactive, @code{mark} normally signals
+@code{nil} and the mark is inactive, @code{mark} normally signals
an error. However, if @var{force} is non-@code{nil}, then @code{mark}
returns the mark position anyway---or @code{nil}, if the mark is not
yet set for this buffer.
diff --git a/lispref/minibuf.texi b/lispref/minibuf.texi
index a6153fdaca..04443c493f 100644
--- a/lispref/minibuf.texi
+++ b/lispref/minibuf.texi
@@ -1,8 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999,
-@c 2001, 2004
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 2002,
+@c 2003, 2004, 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/minibuf
@node Minibuffers, Command Loop, Read and Print, Top
@@ -11,12 +10,13 @@
@cindex complex arguments
@cindex minibuffer
- A @dfn{minibuffer} is a special buffer that Emacs commands use to read
-arguments more complicated than the single numeric prefix argument.
-These arguments include file names, buffer names, and command names (as
-in @kbd{M-x}). The minibuffer is displayed on the bottom line of the
-frame, in the same place as the echo area, but only while it is in use
-for reading an argument.
+ A @dfn{minibuffer} is a special buffer that Emacs commands use to
+read arguments more complicated than the single numeric prefix
+argument. These arguments include file names, buffer names, and
+command names (as in @kbd{M-x}). The minibuffer is displayed on the
+bottom line of the frame, in the same place as the echo area
+(@pxref{The Echo Area}), but only while it is in use for reading an
+argument.
@menu
* Intro to Minibuffers:: Basic information about minibuffers.
@@ -29,6 +29,10 @@ for reading an argument.
* Yes-or-No Queries:: Asking a question with a simple answer.
* Multiple Queries:: Asking a series of similar questions.
* Reading a Password:: Reading a password from the terminal.
+* Minibuffer Commands:: Commands used as key bindings in minibuffers.
+* Minibuffer Contents:: How such commands access the minibuffer text.
+* Minibuffer Windows:: Operating on the special minibuffer windows.
+* Recursive Mini:: Whether recursive entry to minibuffer is allowed.
* Minibuffer Misc:: Various customization hooks and variables.
@end menu
@@ -79,7 +83,7 @@ recursive minibuffers, the innermost (or most recently entered) is the
active minibuffer. We usually call this ``the'' minibuffer. You can
permit or forbid recursive minibuffers by setting the variable
@code{enable-recursive-minibuffers} or by putting properties of that
-name on command symbols (@pxref{Minibuffer Misc}).
+name on command symbols (@pxref{Recursive Mini}).
Like other buffers, a minibuffer may use any of several local keymaps
(@pxref{Keymaps}); these contain various exit commands and in some cases
@@ -1694,11 +1698,11 @@ return if the user enters empty input. If @var{default} is @code{nil},
then @code{read-passwd} returns the null string in that case.
@end defun
-@node Minibuffer Misc
-@section Minibuffer Miscellany
+@node Minibuffer Commands
+@section Minibuffer Commands
- This section describes some basic functions and variables related to
-minibuffers.
+ This section describes some commands meant for use in the
+minibuffer.
@deffn Command exit-minibuffer
This command exits the active minibuffer. It is normally bound to
@@ -1733,65 +1737,11 @@ This command replaces the minibuffer contents with the value of the
regular expression).
@end deffn
-@defun minibuffer-prompt
-This function returns the prompt string of the currently active
-minibuffer. If no minibuffer is active, it returns @code{nil}.
-@end defun
-
-@defun minibuffer-prompt-end
-@tindex minibuffer-prompt-end
-This function returns the current
-position of the end of the minibuffer prompt, if a minibuffer is
-current. Otherwise, it returns the minimum valid buffer position.
-@end defun
-
-@defun minibuffer-contents
-@tindex minibuffer-contents
-This function returns the editable
-contents of the minibuffer (that is, everything except the prompt) as
-a string, if a minibuffer is current. Otherwise, it returns the
-entire contents of the current buffer.
-@end defun
-
-@defun minibuffer-contents-no-properties
-@tindex minibuffer-contents-no-properties
-This is like @code{minibuffer-contents}, except that it does not copy text
-properties, just the characters themselves. @xref{Text Properties}.
-@end defun
-
-@defun delete-minibuffer-contents
-@tindex delete-minibuffer-contents
-This function erases the editable
-contents of the minibuffer (that is, everything except the prompt), if
-a minibuffer is current. Otherwise, it erases the entire buffer.
-@end defun
-
-@defun minibuffer-prompt-width
-This function returns the current display-width of the minibuffer
-prompt, if a minibuffer is current. Otherwise, it returns zero.
-@end defun
-
-@defvar minibuffer-setup-hook
-This is a normal hook that is run whenever the minibuffer is entered.
-@xref{Hooks}.
-@end defvar
-
-@defvar minibuffer-exit-hook
-This is a normal hook that is run whenever the minibuffer is exited.
-@xref{Hooks}.
-@end defvar
-
-@defvar minibuffer-help-form
-@anchor{Definition of minibuffer-help-form}
-The current value of this variable is used to rebind @code{help-form}
-locally inside the minibuffer (@pxref{Help Functions}).
-@end defvar
+@node Minibuffer Windows
+@section Minibuffer Windows
-@defun minibufferp &optional buffer-or-name
-This function returns non-@code{nil} if @var{buffer-or-name} is a
-minibuffer. If @var{buffer-or-name} is omitted, it tests the current
-buffer.
-@end defun
+ These functions access and select minibuffer windows
+and test whether they are active.
@defun active-minibuffer-window
This function returns the currently active minibuffer window, or
@@ -1832,20 +1782,53 @@ This function returns non-@code{nil} if @var{window}, assumed to be
a minibuffer window, is currently active.
@end defun
-@defvar minibuffer-scroll-window
-@anchor{Definition of minibuffer-scroll-window}
-If the value of this variable is non-@code{nil}, it should be a window
-object. When the function @code{scroll-other-window} is called in the
-minibuffer, it scrolls this window.
-@end defvar
+@node Minibuffer Contents
+@section Minibuffer Contents
-@defun minibuffer-selected-window
-This function returns the window which was selected when the
-minibuffer was entered. If selected window is not a minibuffer
-window, it returns @code{nil}.
+ These functions access the minibuffer prompt and contents.
+
+@defun minibuffer-prompt
+This function returns the prompt string of the currently active
+minibuffer. If no minibuffer is active, it returns @code{nil}.
@end defun
-Finally, some functions and variables deal with recursive minibuffers
+@defun minibuffer-prompt-end
+@tindex minibuffer-prompt-end
+This function returns the current
+position of the end of the minibuffer prompt, if a minibuffer is
+current. Otherwise, it returns the minimum valid buffer position.
+@end defun
+
+@defun minibuffer-prompt-width
+This function returns the current display-width of the minibuffer
+prompt, if a minibuffer is current. Otherwise, it returns zero.
+@end defun
+
+@defun minibuffer-contents
+@tindex minibuffer-contents
+This function returns the editable
+contents of the minibuffer (that is, everything except the prompt) as
+a string, if a minibuffer is current. Otherwise, it returns the
+entire contents of the current buffer.
+@end defun
+
+@defun minibuffer-contents-no-properties
+@tindex minibuffer-contents-no-properties
+This is like @code{minibuffer-contents}, except that it does not copy text
+properties, just the characters themselves. @xref{Text Properties}.
+@end defun
+
+@defun delete-minibuffer-contents
+@tindex delete-minibuffer-contents
+This function erases the editable contents of the minibuffer (that is,
+everything except the prompt), if a minibuffer is current. Otherwise,
+it erases the entire current buffer.
+@end defun
+
+@node Recursive Mini
+@section Recursive Minibuffers
+
+ These functions and variables deal with recursive minibuffers
(@pxref{Recursive Editing}):
@defun minibuffer-depth
@@ -1875,6 +1858,50 @@ to @code{t} in the interactive declaration (@pxref{Using Interactive}).
The minibuffer command @code{next-matching-history-element} (normally
@kbd{M-s} in the minibuffer) does the latter.
+@node Minibuffer Misc
+@section Minibuffer Miscellany
+
+@defun minibufferp &optional buffer-or-name
+This function returns non-@code{nil} if @var{buffer-or-name} is a
+minibuffer. If @var{buffer-or-name} is omitted, it tests the current
+buffer.
+@end defun
+
+@defvar minibuffer-setup-hook
+This is a normal hook that is run whenever the minibuffer is entered.
+@xref{Hooks}.
+@end defvar
+
+@defvar minibuffer-exit-hook
+This is a normal hook that is run whenever the minibuffer is exited.
+@xref{Hooks}.
+@end defvar
+
+@defvar minibuffer-help-form
+@anchor{Definition of minibuffer-help-form}
+The current value of this variable is used to rebind @code{help-form}
+locally inside the minibuffer (@pxref{Help Functions}).
+@end defvar
+
+@defvar minibuffer-scroll-window
+@anchor{Definition of minibuffer-scroll-window}
+If the value of this variable is non-@code{nil}, it should be a window
+object. When the function @code{scroll-other-window} is called in the
+minibuffer, it scrolls this window.
+@end defvar
+
+@defun minibuffer-selected-window
+This function returns the window which was selected when the
+minibuffer was entered. If selected window is not a minibuffer
+window, it returns @code{nil}.
+@end defun
+
+@defopt max-mini-window-height
+This variable specifies the maximum height for resizing minibuffer
+windows. If a float, it specifies a fraction of the height of the
+frame. If an integer, it specifies a number of lines.
+@end defopt
+
@defun minibuffer-message string
This function displays @var{string} temporarily at the end of the
minibuffer text, for two seconds, or until the next input event
diff --git a/lispref/modes.texi b/lispref/modes.texi
index ac13e30b90..a391f27a80 100644
--- a/lispref/modes.texi
+++ b/lispref/modes.texi
@@ -1,6 +1,6 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999,
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002,
@c 2003, 2004, 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/modes
@@ -869,9 +869,7 @@ command interpreter in a @samp{#!} line. Its value is an alist with
elements of the form @code{(@var{interpreter} . @var{mode})}; for
example, @code{("perl" . perl-mode)} is one element present by
default. The element says to use mode @var{mode} if the file
-specifies an interpreter which matches @var{interpreter}. The value
-of @var{interpreter} is actually a regular expression. @xref{Regular
-Expressions}.
+specifies an interpreter which matches @var{interpreter}.
@end defvar
@defvar magic-mode-alist
@@ -1373,7 +1371,8 @@ symbol). It defines a command named @var{mode} to toggle the minor
mode, with @var{doc} as its documentation string. It also defines a
variable named @var{mode}, which is set to @code{t} or @code{nil} by
enabling or disabling the mode. The variable is initialized to
-@var{init-value}.
+@var{init-value}. Except in unusual circumstances (see below), this
+value must be @code{nil}.
The string @var{lighter} says what to display in the mode line
when the mode is enabled; if it is @code{nil}, the mode is not displayed
@@ -1415,7 +1414,7 @@ This is equivalent to specifying @var{lighter} positionally.
This is equivalent to specifying @var{keymap} positionally.
@end table
-Any other keyword arguments are passed passed directly to the
+Any other keyword arguments are passed directly to the
@code{defcustom} generated for the variable @var{mode}.
The command named @var{mode} first performs the standard actions such
@@ -1424,6 +1423,14 @@ as setting the variable named @var{mode} and then executes the
variable @code{@var{mode}-hook}.
@end defmac
+ The initial value must be @code{nil} except in cases where (1) the
+mode is preloaded in Emacs, or (2) it is painless to for loading to
+enable the mode even though the user did not request it. For
+instance, if the mode has no effect unless something else is enabled,
+and will always be loaded by that time, enabling it by default is
+harmless. But these are unusual circumstances. Normally, the
+initial value must be @code{nil}.
+
@findex easy-mmode-define-minor-mode
The name @code{easy-mmode-define-minor-mode} is an alias
for this macro.
@@ -1472,7 +1479,7 @@ When Hungry mode is enabled, the control delete key
gobbles all preceding whitespace except the last.
See the command \\[hungry-electric-delete]."
;; The initial value.
- :initial-value nil
+ :init-value nil
;; The indicator for the mode line.
:lighter " Hungry"
;; The minor mode bindings.
@@ -1607,7 +1614,7 @@ value is a list, each element may be a list, a symbol, or a string.
The mode line can display various faces, if the strings that control
it have the @code{face} property. @xref{Properties in Mode}. In
addition, the face @code{mode-line} is used as a default for the whole
-mode line (@pxref{Standard Faces}).
+mode line (@pxref{Standard Faces,,, emacs, The GNU Emacs Manual}).
@table @code
@cindex percent symbol in mode line
@@ -1920,7 +1927,7 @@ function. @xref{Buffer File Name}.
@item %F
The title (only on a window system) or the name of the selected frame.
-@xref{Window Frame Parameters}.
+@xref{Basic Parameters}.
@item %i
The size of the accessible part of the current buffer; basically
@@ -2760,7 +2767,7 @@ arguments, the beginning and end of the region. The default value is
This variable specifies the number of extra lines to consider when
refontifying the buffer after each text change. Font lock begins
refontifying from that number of lines before the changed region. The
-default is 1, but using a larger value can be useful for coping with
+default is 0, but using a larger value can be useful for coping with
multi-line patterns.
@end defvar
diff --git a/lispref/nonascii.texi b/lispref/nonascii.texi
index 9683156541..2af367a0f8 100644
--- a/lispref/nonascii.texi
+++ b/lispref/nonascii.texi
@@ -1,6 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+@c Copyright (C) 1998, 1999, 2002, 2003, 2004,
+@c 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/characters
@node Non-ASCII Characters, Searching and Matching, Text, Top
diff --git a/lispref/numbers.texi b/lispref/numbers.texi
index f7f88248ff..db28a2850a 100644
--- a/lispref/numbers.texi
+++ b/lispref/numbers.texi
@@ -1,7 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2003
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003,
+@c 2004, 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/numbers
@node Numbers, Strings and Characters, Lisp Data Types, Top
diff --git a/lispref/objects.texi b/lispref/objects.texi
index 4a693f186d..99ef896c4b 100644
--- a/lispref/objects.texi
+++ b/lispref/objects.texi
@@ -1,7 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2003
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003,
+@c 2004, 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/objects
@node Lisp Data Types, Numbers, Introduction, Top
diff --git a/lispref/os.texi b/lispref/os.texi
index 7bc7679921..ac2350ac25 100644
--- a/lispref/os.texi
+++ b/lispref/os.texi
@@ -1,7 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2004
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003,
+@c 2004, 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/os
@node System Interface, Antinews, Display, Top
@@ -21,8 +21,10 @@ pertaining to the terminal and the screen.
* System Environment:: Distinguish the name and kind of system.
* User Identification:: Finding the name and user id of the user.
* Time of Day:: Getting the current time.
-* Time Conversion:: Converting a time from numeric form to a string, or
- to calendrical data (or vice versa).
+* Time Conversion:: Converting a time from numeric form
+ to calendrical data, and vice versa).
+* Time Parsing:: Converting a time from numeric form to text
+ and vice versa.
* Processor Run Time:: Getting the run time used by Emacs.
* Time Calculations:: Adding, subtracting, comparing times, etc.
* Timers:: Setting a timer to call a function at a certain time.
@@ -117,7 +119,7 @@ mode or using a window system.
@item
It displays the initial echo area message, unless you have suppressed
-that with @code{inhibit-startup-echo-area-message} or @samp{-Q}.
+that with @code{inhibit-startup-echo-area-message}.
@item
It processes the action arguments from the command line.
@@ -136,7 +138,7 @@ It runs @code{window-setup-hook}. @xref{Window Systems}.
@item
It displays copyleft, nonwarranty, and basic use information, provided
the value of @code{inhibit-startup-message} is @code{nil}, you didn't
-specify @samp{--no-splash} or @samp{-Q}, and the buffer is still empty.
+specify @samp{--no-splash} or @samp{-Q}.
@end enumerate
@defopt inhibit-startup-message
@@ -1071,22 +1073,102 @@ exact. Do not use this function if precise time stamps are required.
@section Time Conversion
These functions convert time values (lists of two or three integers)
-to strings or to calendrical information. There is also a function to
-convert calendrical information to a time value. You can get time
-values from the functions @code{current-time} (@pxref{Time of Day}) and
+to calendrical information and vice versa. You can get time values
+from the functions @code{current-time} (@pxref{Time of Day}) and
@code{file-attributes} (@pxref{Definition of file-attributes}).
-Many operating systems are limited to time values that contain 32 bits
+ Many operating systems are limited to time values that contain 32 bits
of information; these systems typically handle only the times from
1901-12-13 20:45:52 UTC through 2038-01-19 03:14:07 UTC. However, some
operating systems have larger time values, and can represent times far
in the past or future.
-Time conversion functions always use the Gregorian calendar, even for
-dates before the Gregorian calendar was introduced. Year numbers count
-the number of years since the year 1 B.C., and do not skip zero as
-traditional Gregorian years do; for example, the year number @minus{}37
-represents the Gregorian year 38 B.C@.
+ Time conversion functions always use the Gregorian calendar, even
+for dates before the Gregorian calendar was introduced. Year numbers
+count the number of years since the year 1 B.C., and do not skip zero
+as traditional Gregorian years do; for example, the year number
+@minus{}37 represents the Gregorian year 38 B.C@.
+
+@defun decode-time &optional time
+This function converts a time value into calendrical information. If
+you don't specify @var{time}, it decodes the current time. The return
+value is a list of nine elements, as follows:
+
+@example
+(@var{seconds} @var{minutes} @var{hour} @var{day} @var{month} @var{year} @var{dow} @var{dst} @var{zone})
+@end example
+
+Here is what the elements mean:
+
+@table @var
+@item seconds
+The number of seconds past the minute, as an integer between 0 and 59.
+On some operating systems, this is 60 for leap seconds.
+@item minutes
+The number of minutes past the hour, as an integer between 0 and 59.
+@item hour
+The hour of the day, as an integer between 0 and 23.
+@item day
+The day of the month, as an integer between 1 and 31.
+@item month
+The month of the year, as an integer between 1 and 12.
+@item year
+The year, an integer typically greater than 1900.
+@item dow
+The day of week, as an integer between 0 and 6, where 0 stands for
+Sunday.
+@item dst
+@code{t} if daylight savings time is effect, otherwise @code{nil}.
+@item zone
+An integer indicating the time zone, as the number of seconds east of
+Greenwich.
+@end table
+
+@strong{Common Lisp Note:} Common Lisp has different meanings for
+@var{dow} and @var{zone}.
+@end defun
+
+@defun encode-time seconds minutes hour day month year &optional zone
+This function is the inverse of @code{decode-time}. It converts seven
+items of calendrical data into a time value. For the meanings of the
+arguments, see the table above under @code{decode-time}.
+
+Year numbers less than 100 are not treated specially. If you want them
+to stand for years above 1900, or years above 2000, you must alter them
+yourself before you call @code{encode-time}.
+
+The optional argument @var{zone} defaults to the current time zone and
+its daylight savings time rules. If specified, it can be either a list
+(as you would get from @code{current-time-zone}), a string as in the
+@code{TZ} environment variable, @code{t} for Universal Time, or an
+integer (as you would get from @code{decode-time}). The specified
+zone is used without any further alteration for daylight savings time.
+
+If you pass more than seven arguments to @code{encode-time}, the first
+six are used as @var{seconds} through @var{year}, the last argument is
+used as @var{zone}, and the arguments in between are ignored. This
+feature makes it possible to use the elements of a list returned by
+@code{decode-time} as the arguments to @code{encode-time}, like this:
+
+@example
+(apply 'encode-time (decode-time @dots{}))
+@end example
+
+You can perform simple date arithmetic by using out-of-range values for
+the @var{seconds}, @var{minutes}, @var{hour}, @var{day}, and @var{month}
+arguments; for example, day 0 means the day preceding the given month.
+
+The operating system puts limits on the range of possible time values;
+if you try to encode a time that is out of range, an error results.
+For instance, years before 1970 do not work on some systems;
+on others, years as early as 1901 do work.
+@end defun
+
+@node Time Parsing
+@section Parsing and Formatting Times
+
+ These functions convert time values (lists of two or three integers)
+to text in a string, and vice versa.
@defun date-to-time string
This function parses the time-string @var{string} and returns the
@@ -1213,81 +1295,6 @@ seconds since the epoch, to a time value and returns that. To perform
the inverse conversion, use @code{float-time}.
@end defun
-@defun decode-time &optional time
-This function converts a time value into calendrical information. If
-you don't specify @var{time}, it decodes the current time. The return
-value is a list of nine elements, as follows:
-
-@example
-(@var{seconds} @var{minutes} @var{hour} @var{day} @var{month} @var{year} @var{dow} @var{dst} @var{zone})
-@end example
-
-Here is what the elements mean:
-
-@table @var
-@item seconds
-The number of seconds past the minute, as an integer between 0 and 59.
-On some operating systems, this is 60 for leap seconds.
-@item minutes
-The number of minutes past the hour, as an integer between 0 and 59.
-@item hour
-The hour of the day, as an integer between 0 and 23.
-@item day
-The day of the month, as an integer between 1 and 31.
-@item month
-The month of the year, as an integer between 1 and 12.
-@item year
-The year, an integer typically greater than 1900.
-@item dow
-The day of week, as an integer between 0 and 6, where 0 stands for
-Sunday.
-@item dst
-@code{t} if daylight savings time is effect, otherwise @code{nil}.
-@item zone
-An integer indicating the time zone, as the number of seconds east of
-Greenwich.
-@end table
-
-@strong{Common Lisp Note:} Common Lisp has different meanings for
-@var{dow} and @var{zone}.
-@end defun
-
-@defun encode-time seconds minutes hour day month year &optional zone
-This function is the inverse of @code{decode-time}. It converts seven
-items of calendrical data into a time value. For the meanings of the
-arguments, see the table above under @code{decode-time}.
-
-Year numbers less than 100 are not treated specially. If you want them
-to stand for years above 1900, or years above 2000, you must alter them
-yourself before you call @code{encode-time}.
-
-The optional argument @var{zone} defaults to the current time zone and
-its daylight savings time rules. If specified, it can be either a list
-(as you would get from @code{current-time-zone}), a string as in the
-@code{TZ} environment variable, @code{t} for Universal Time, or an
-integer (as you would get from @code{decode-time}). The specified
-zone is used without any further alteration for daylight savings time.
-
-If you pass more than seven arguments to @code{encode-time}, the first
-six are used as @var{seconds} through @var{year}, the last argument is
-used as @var{zone}, and the arguments in between are ignored. This
-feature makes it possible to use the elements of a list returned by
-@code{decode-time} as the arguments to @code{encode-time}, like this:
-
-@example
-(apply 'encode-time (decode-time @dots{}))
-@end example
-
-You can perform simple date arithmetic by using out-of-range values for
-the @var{seconds}, @var{minutes}, @var{hour}, @var{day}, and @var{month}
-arguments; for example, day 0 means the day preceding the given month.
-
-The operating system puts limits on the range of possible time values;
-if you try to encode a time that is out of range, an error results.
-For instance, years before 1970 do not work on some systems;
-on others, years as early as 1901 do work.
-@end defun
-
@node Processor Run Time
@section Processor Run time
@@ -1721,7 +1728,7 @@ Note however that actual key bindings can have an effect on
@code{key-translation-map}, even though they are overridden by it.
Indeed, actual key bindings override @code{function-key-map} and thus
may alter the key sequence that @code{key-translation-map} receives.
-Clearly, it is better to avoid to avoid this type of situation.
+Clearly, it is better to avoid this type of situation.
The intent of @code{key-translation-map} is for users to map one
character set to another, including ordinary characters normally bound
diff --git a/lispref/positions.texi b/lispref/positions.texi
index 3c1e642e6b..cb249f526f 100644
--- a/lispref/positions.texi
+++ b/lispref/positions.texi
@@ -1,7 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001,
+@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/positions
@node Positions, Markers, Frames, Top
@@ -636,7 +636,7 @@ the end of the accessible portion of the buffer, and pass @var{line} and
When you use @code{compute-motion} for the minibuffer, you need to use
@code{minibuffer-prompt-width} to get the horizontal position of the
-beginning of the first screen line. @xref{Minibuffer Misc}.
+beginning of the first screen line. @xref{Minibuffer Contents}.
@end defun
@node List Motion
diff --git a/lispref/processes.texi b/lispref/processes.texi
index f88b2c4615..afdeaa1d2a 100644
--- a/lispref/processes.texi
+++ b/lispref/processes.texi
@@ -1,7 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2005
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003,
+@c 2004, 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/processes
@node Processes, Display, Abbrevs, Top
@@ -52,6 +52,7 @@ This function returns @code{t} if @var{object} is a process,
* Datagrams:: UDP network connections.
* Low-Level Network:: Lower-level but more general function
to create connections and servers.
+* Misc Network:: Additional relevant functions for network connections.
* Byte Packing:: Using bindat to pack and unpack binary data.
@end menu
@@ -1575,7 +1576,7 @@ subprocess. @xref{Process Information}.
process, being stopped means not accepting new connections. (Up to 5
connection requests will be queued for when you resume the server; you
can increase this limit, unless it is imposed by the operating
-systems.) For a network stream connection, being stopped means not
+system.) For a network stream connection, being stopped means not
processing input (any arriving input waits until you resume the
connection). For a datagram connection, some number of packets may be
queued but input may be lost. You can use the function
@@ -1716,6 +1717,20 @@ sets its remote peer address to @var{address}.
@node Low-Level Network
@section Low-Level Network Access
+ You can also create network connections by operating at a lower
+level that that of @code{open-network-stream}, using
+@code{make-network-process}.
+
+@menu
+* Make Network:: Using @code{make-network-process}.
+* Network Options:: Further control over network connections.
+* Network Feature Testing:: Determining which network features work on
+ the machine you are using.
+@end menu
+
+@node Make Network
+@subsection @code{make-network-process}
+
The basic function for creating network connections and network
servers is @code{make-network-process}. It can do either of those
jobs, depending on the arguments you give it.
@@ -1852,14 +1867,21 @@ happened.
Initialize the process plist to @var{plist}.
@end table
-The following network options can be specified for the network
-process. Except for @code{:reuseaddr}, you can set or modify these
-options later using @code{set-network-process-option}.
+The original argument list, modified with the actual connection
+information, is available via the @code{process-contact} function.
+@end defun
+
+@node Network Options
+@subsection Network Options
-For a server process, the options specified with
+ The following network options can be specified when you create a
+network process. Except for @code{:reuseaddr}, you can also set or
+modify these options later, using @code{set-network-process-option}.
+
+ For a server process, the options specified with
@code{make-network-process} are not inherited by the client
connections, so you will need to set the necessary options for each
-child connection as they are created.
+child connection as it is created.
@table @asis
@item :bindtodevice @var{device-name}
@@ -1914,13 +1936,8 @@ listening on that port. If @var{reuseaddr-flag} is @code{nil}, there
may be a period of time after the last use of that port (by any
process on the host), where it is not possible to make a new server on
that port.
-
@end table
-The original argument list, modified with the actual connection
-information, is available via the @code{process-contact} function.
-@end defun
-
@defun set-network-process-option process option value
This function sets or modifies a network option for network process
@var{process}. See @code{make-network-process} for details of options
@@ -1930,44 +1947,8 @@ The current setting of an option is available via the
@code{process-contact} function.
@end defun
-@defun network-interface-list
-This function returns a list describing the network interfaces
-of the machine you are using. The value is an alist whose
-elements have the form @code{(@var{name} . @var{address})}.
-@var{address} has the same form as the @var{local-address}
-and @var{remote-address} arguments to @code{make-network-process}.
-@end defun
-
-@defun network-interface-info ifname
-This function returns information about the network interface named
-@var{ifname}. The value is a list of the form
-@code{(@var{addr} @var{bcast} @var{netmask} @var{hwaddr} @var{flags})}.
-
-@table @var
-@item addr
-The internet protocol address.
-@item bcast
-The broadcast address.
-@item netmask
-The network mask.
-@item hwaddr
-The layer 2 address (Ethernet MAC address, for instance).
-@item flags
-The current flags of the interface.
-@end table
-@end defun
-
-@defun format-network-address address &optional omit-port
-This function converts the Lisp representation of a network address to
-a string. For example, a five-element vector @code{[@var{a} @var{b}
-@var{c} @var{d} @var{p}]} represents an IP address
-@var{a}.@var{b}.@var{c}.@var{d} and port number @var{p}.
-@code{format-network-address} converts that to the string
-@code{"@var{a}.@var{b}.@var{c}.@var{d}:@var{p}"}.
-
-If @var{omit-port} is non-@code{nil}, the value does not include
-the port number.
-@end defun
+@node Network Feature Testing
+@subsection Testing Availability of Network Features
To test for the availability of a given network feature, use
@code{featurep} like this:
@@ -2002,8 +1983,8 @@ Non-@code{nil} if the system can select the port for a server.
(featurep 'make-network-process '@var{keyword})
@end example
-Here are some of the option @var{keyword}s you can test in
-this way.
+@noindent
+Here are some of the options you can test in this way.
@table @code
@item :bindtodevice
@@ -2018,6 +1999,51 @@ That particular network option is supported by
@code{make-network-process} and @code{set-network-process-option}.
@end table
+@node Misc Network
+@section Misc Network Facilities
+
+ These additional functions are useful for creating and operating
+on network connections.
+
+@defun network-interface-list
+This function returns a list describing the network interfaces
+of the machine you are using. The value is an alist whose
+elements have the form @code{(@var{name} . @var{address})}.
+@var{address} has the same form as the @var{local-address}
+and @var{remote-address} arguments to @code{make-network-process}.
+@end defun
+
+@defun network-interface-info ifname
+This function returns information about the network interface named
+@var{ifname}. The value is a list of the form
+@code{(@var{addr} @var{bcast} @var{netmask} @var{hwaddr} @var{flags})}.
+
+@table @var
+@item addr
+The internet protocol address.
+@item bcast
+The broadcast address.
+@item netmask
+The network mask.
+@item hwaddr
+The layer 2 address (Ethernet MAC address, for instance).
+@item flags
+The current flags of the interface.
+@end table
+@end defun
+
+@defun format-network-address address &optional omit-port
+This function converts the Lisp representation of a network address to
+a string. For example, a five-element vector @code{[@var{a} @var{b}
+@var{c} @var{d} @var{p}]} represents an IP address
+@var{a}.@var{b}.@var{c}.@var{d} and port number @var{p}.
+@code{format-network-address} converts that to the string
+@code{"@var{a}.@var{b}.@var{c}.@var{d}:@var{p}"}.
+
+If @var{omit-port} is non-@code{nil}, the value does not include
+the port number.
+@end defun
+
@node Byte Packing
@section Packing and Unpacking Byte Arrays
diff --git a/lispref/searching.texi b/lispref/searching.texi
index cfb5a87d8e..84de54984a 100644
--- a/lispref/searching.texi
+++ b/lispref/searching.texi
@@ -1,7 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2004
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003,
+@c 2004, 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/searching
@node Searching and Matching, Syntax Tables, Non-ASCII Characters, Top
@@ -16,13 +16,13 @@ portions of it.
@menu
* String Search:: Search for an exact match.
+* Searching and Case:: Case-independent or case-significant searching.
* Regular Expressions:: Describing classes of strings.
* Regexp Search:: Searching for a match for a regexp.
* POSIX Regexps:: Searching POSIX-style for the longest match.
-* Search and Replace:: Internals of @code{query-replace}.
* Match Data:: Finding out which part of the text matched,
after a string or regexp search.
-* Searching and Case:: Case-independent or case-significant searching.
+* Search and Replace:: Commands that loop, searching and replacing.
* Standard Regexps:: Useful regexps for finding sentences, pages,...
@end menu
@@ -157,6 +157,53 @@ except that it searches backward and normally leaves point at the
beginning of the match.
@end deffn
+@node Searching and Case
+@section Searching and Case
+@cindex searching and case
+
+ By default, searches in Emacs ignore the case of the text they are
+searching through; if you specify searching for @samp{FOO}, then
+@samp{Foo} or @samp{foo} is also considered a match. This applies to
+regular expressions, too; thus, @samp{[aB]} would match @samp{a} or
+@samp{A} or @samp{b} or @samp{B}.
+
+ If you do not want this feature, set the variable
+@code{case-fold-search} to @code{nil}. Then all letters must match
+exactly, including case. This is a buffer-local variable; altering the
+variable affects only the current buffer. (@xref{Intro to
+Buffer-Local}.) Alternatively, you may change the value of
+@code{default-case-fold-search}, which is the default value of
+@code{case-fold-search} for buffers that do not override it.
+
+ Note that the user-level incremental search feature handles case
+distinctions differently. When given a lower case letter, it looks for
+a match of either case, but when given an upper case letter, it looks
+for an upper case letter only. But this has nothing to do with the
+searching functions used in Lisp code.
+
+@defopt case-replace
+This variable determines whether the higher level replacement
+functions should preserve case. If the variable is @code{nil}, that
+means to use the replacement text verbatim. A non-@code{nil} value
+means to convert the case of the replacement text according to the
+text being replaced.
+
+This variable is used by passing it as an argument to the function
+@code{replace-match}. @xref{Replacing Match}.
+@end defopt
+
+@defopt case-fold-search
+This buffer-local variable determines whether searches should ignore
+case. If the variable is @code{nil} they do not ignore case; otherwise
+they do ignore case.
+@end defopt
+
+@defvar default-case-fold-search
+The value of this variable is the default value for
+@code{case-fold-search} in buffers that do not override it. This is the
+same as @code{(default-value 'case-fold-search)}.
+@end defvar
+
@node Regular Expressions
@section Regular Expressions
@cindex regular expression
@@ -167,6 +214,16 @@ denotes a (possibly infinite) set of strings. Searching for matches for
a regexp is a very powerful operation. This section explains how to write
regexps; the following section says how to search for them.
+@findex re-builder
+@cindex authoring regular expressions
+ For convenient interactive development of regular expressions, you
+can use the @kbd{M-x re-builder} command. It provides a convenient
+interface for creating regular expressions, by giving immediate visual
+feedback in a separate buffer. As you edit the regexp, all its
+matches in the target buffer are highlighted. Each parenthesized
+sub-expression of the regexp is shown in a distinct face, which makes
+it easier to verify even very complex regexps.
+
@menu
* Syntax of Regexps:: Rules for writing regular expressions.
* Regexp Example:: Illustrates regular expression syntax.
@@ -1060,212 +1117,15 @@ backtracking specified by the POSIX standard for regular expression
matching.
@end defun
-@ignore
-@deffn Command delete-matching-lines regexp
-This function is identical to @code{delete-non-matching-lines}, save
-that it deletes what @code{delete-non-matching-lines} keeps.
-
-In the example below, point is located on the first line of text.
-
-@example
-@group
----------- Buffer: foo ----------
-We hold these truths
-to be self-evident,
-that all men are created
-equal, and that they are
----------- Buffer: foo ----------
-@end group
-
-@group
-(delete-matching-lines "the")
- @result{} nil
-
----------- Buffer: foo ----------
-to be self-evident,
-that all men are created
----------- Buffer: foo ----------
-@end group
-@end example
-@end deffn
-
-@deffn Command flush-lines regexp
-This function is the same as @code{delete-matching-lines}.
-@end deffn
-
-@defun delete-non-matching-lines regexp
-This function deletes all lines following point which don't
-contain a match for the regular expression @var{regexp}.
-@end defun
-
-@deffn Command keep-lines regexp
-This function is the same as @code{delete-non-matching-lines}.
-@end deffn
-
-@deffn Command how-many regexp
-This function counts the number of matches for @var{regexp} there are in
-the current buffer following point. It prints this number in
-the echo area, returning the string printed.
-@end deffn
-
-@deffn Command count-matches regexp
-This function is a synonym of @code{how-many}.
-@end deffn
-
-@deffn Command list-matching-lines regexp &optional nlines
-This function is a synonym of @code{occur}.
-Show all lines following point containing a match for @var{regexp}.
-Display each line with @var{nlines} lines before and after,
-or @code{-}@var{nlines} before if @var{nlines} is negative.
-@var{nlines} defaults to @code{list-matching-lines-default-context-lines}.
-Interactively it is the prefix arg.
-
-The lines are shown in a buffer named @samp{*Occur*}.
-It serves as a menu to find any of the occurrences in this buffer.
-@kbd{C-h m} (@code{describe-mode}) in that buffer gives help.
-@end deffn
-
-@defopt list-matching-lines-default-context-lines
-Default value is 0.
-Default number of context lines to include around a @code{list-matching-lines}
-match. A negative number means to include that many lines before the match.
-A positive number means to include that many lines both before and after.
-@end defopt
-@end ignore
-
-@node Search and Replace
-@section Search and Replace
-@cindex replacement
-
-@defun perform-replace from-string replacements query-flag regexp-flag delimited-flag &optional repeat-count map start end
-This function is the guts of @code{query-replace} and related
-commands. It searches for occurrences of @var{from-string} in the
-text between positions @var{start} and @var{end} and replaces some or
-all of them. If @var{start} is @code{nil} (or omitted), point is used
-instead, and the end of the buffer's accessible portion is used for
-@var{end}.
-
-If @var{query-flag} is @code{nil}, it replaces all
-occurrences; otherwise, it asks the user what to do about each one.
-
-If @var{regexp-flag} is non-@code{nil}, then @var{from-string} is
-considered a regular expression; otherwise, it must match literally. If
-@var{delimited-flag} is non-@code{nil}, then only replacements
-surrounded by word boundaries are considered.
-
-The argument @var{replacements} specifies what to replace occurrences
-with. If it is a string, that string is used. It can also be a list of
-strings, to be used in cyclic order.
-
-If @var{replacements} is a cons cell, @code{(@var{function}
-. @var{data})}, this means to call @var{function} after each match to
-get the replacement text. This function is called with two arguments:
-@var{data}, and the number of replacements already made.
-
-If @var{repeat-count} is non-@code{nil}, it should be an integer. Then
-it specifies how many times to use each of the strings in the
-@var{replacements} list before advancing cyclically to the next one.
-
-If @var{from-string} contains upper-case letters, then
-@code{perform-replace} binds @code{case-fold-search} to @code{nil}, and
-it uses the @code{replacements} without altering the case of them.
-
-Normally, the keymap @code{query-replace-map} defines the possible user
-responses for queries. The argument @var{map}, if non-@code{nil}, is a
-keymap to use instead of @code{query-replace-map}.
-
-@strong{Usage note:} Do not use this function in your own programs
-unless you want to do something very similar to what
-@code{query-replace} does, including setting the mark and possibly
-querying the user. For most purposes a simple loop like, for
-instance:
-
-@example
-(while (re-search-forward "foo[ \t]+bar" nil t)
- (replace-match "foobar"))
-@end example
-
-@noindent
-is preferable. It runs faster and avoids side effects, such as
-setting the mark. @xref{Replacing Match,, Replacing the Text that
-Matched}, for a description of @code{replace-match}.
-@end defun
-
-@defvar query-replace-map
-This variable holds a special keymap that defines the valid user
-responses for @code{query-replace} and related functions, as well as
-@code{y-or-n-p} and @code{map-y-or-n-p}. It is unusual in two ways:
-
-@itemize @bullet
-@item
-The ``key bindings'' are not commands, just symbols that are meaningful
-to the functions that use this map.
-
-@item
-Prefix keys are not supported; each key binding must be for a
-single-event key sequence. This is because the functions don't use
-@code{read-key-sequence} to get the input; instead, they read a single
-event and look it up ``by hand.''
-@end itemize
-@end defvar
-
-Here are the meaningful ``bindings'' for @code{query-replace-map}.
-Several of them are meaningful only for @code{query-replace} and
-friends.
-
-@table @code
-@item act
-Do take the action being considered---in other words, ``yes.''
-
-@item skip
-Do not take action for this question---in other words, ``no.''
-
-@item exit
-Answer this question ``no,'' and give up on the entire series of
-questions, assuming that the answers will be ``no.''
-
-@item act-and-exit
-Answer this question ``yes,'' and give up on the entire series of
-questions, assuming that subsequent answers will be ``no.''
-
-@item act-and-show
-Answer this question ``yes,'' but show the results---don't advance yet
-to the next question.
-
-@item automatic
-Answer this question and all subsequent questions in the series with
-``yes,'' without further user interaction.
-
-@item backup
-Move back to the previous place that a question was asked about.
-
-@item edit
-Enter a recursive edit to deal with this question---instead of any
-other action that would normally be taken.
-
-@item delete-and-edit
-Delete the text being considered, then enter a recursive edit to replace
-it.
-
-@item recenter
-Redisplay and center the window, then ask the same question again.
-
-@item quit
-Perform a quit right away. Only @code{y-or-n-p} and related functions
-use this answer.
-
-@item help
-Display some help, then ask again.
-@end table
-
@node Match Data
@section The Match Data
@cindex match data
Emacs keeps track of the start and end positions of the segments of
-text found during a search. This means, for example, that you can
-search for a complex pattern, such as a date in an Rmail message, and
-then extract parts of the match under control of the pattern.
+text found during a search; this is called the @dfn{match data}.
+Thanks to the match data, you can search for a complex pattern, such
+as a date in a mail message, and then extract parts of the match under
+control of the pattern.
Because the match data normally describe the most recent search only,
you must be careful not to do another search inadvertently between the
@@ -1284,8 +1144,8 @@ match data around it, to prevent it from being overwritten.
@node Replacing Match
@subsection Replacing the Text that Matched
- This function replaces the text matched by the last search with
-@var{replacement}.
+ This function replaces all or part of the text matched by the last
+search. It works by means of the match data.
@cindex case in replacements
@defun replace-match replacement &optional fixedcase literal string subexp
@@ -1632,53 +1492,156 @@ associated with it still exists.
@end smallexample
@end ignore
-@node Searching and Case
-@section Searching and Case
-@cindex searching and case
+@node Search and Replace
+@section Search and Replace
+@cindex replacement
- By default, searches in Emacs ignore the case of the text they are
-searching through; if you specify searching for @samp{FOO}, then
-@samp{Foo} or @samp{foo} is also considered a match. This applies to
-regular expressions, too; thus, @samp{[aB]} would match @samp{a} or
-@samp{A} or @samp{b} or @samp{B}.
+ If you want to find all matches for a regexp in part of the buffer,
+and replace them, the best way is to write an explicit loop using
+@code{re-search-forward} and @code{replace-match}, like this:
- If you do not want this feature, set the variable
-@code{case-fold-search} to @code{nil}. Then all letters must match
-exactly, including case. This is a buffer-local variable; altering the
-variable affects only the current buffer. (@xref{Intro to
-Buffer-Local}.) Alternatively, you may change the value of
-@code{default-case-fold-search}, which is the default value of
-@code{case-fold-search} for buffers that do not override it.
+@example
+(while (re-search-forward "foo[ \t]+bar" nil t)
+ (replace-match "foobar"))
+@end example
- Note that the user-level incremental search feature handles case
-distinctions differently. When given a lower case letter, it looks for
-a match of either case, but when given an upper case letter, it looks
-for an upper case letter only. But this has nothing to do with the
-searching functions used in Lisp code.
+@noindent
+@xref{Replacing Match,, Replacing the Text that Matched}, for a
+description of @code{replace-match}.
+
+ However, replacing matches in a string is more complex, especially
+if you want to do it efficiently. So Emacs provides a function to do
+this.
+
+@defun replace-regexp-in-string regexp rep string &optional fixedcase literal subexp start
+This function copies @var{string} and searches it for matches for
+@var{regexp}, and replaces them with @var{rep}. It returns the
+modified copy. If @var{start} is non-@code{nil}, the search for
+matches starts at that index in @var{string}, so matches starting
+before that index are not changed.
+
+This function uses @code{replace-match} to do the replacement, and it
+passes the optional arguments @var{fixedcase}, @var{literal} and
+@var{subexp} along to @code{replace-match}.
+
+Instead of a string, @var{rep} can be a function. In that case,
+@code{replace-regexp-in-string} calls @var{rep} for each match,
+passing the text of the match as its sole argument. It collects the
+value @var{rep} returns and passes that to @code{replace-match} as the
+replacement string. The match-data at this point are the result
+of matching @var{regexp} against a substring of @var{string}.
+@end defun
-@defopt case-replace
-This variable determines whether the higher level replacement
-functions should preserve case. If the variable is @code{nil}, that
-means to use the replacement text verbatim. A non-@code{nil} value
-means to convert the case of the replacement text according to the
-text being replaced.
+ If you want to write a command along the lines of @code{query-replace},
+you can use @code{perform-replace} to do the work.
-This variable is used by passing it as an argument to the function
-@code{replace-match}. @xref{Replacing Match}.
-@end defopt
+@defun perform-replace from-string replacements query-flag regexp-flag delimited-flag &optional repeat-count map start end
+This function is the guts of @code{query-replace} and related
+commands. It searches for occurrences of @var{from-string} in the
+text between positions @var{start} and @var{end} and replaces some or
+all of them. If @var{start} is @code{nil} (or omitted), point is used
+instead, and the end of the buffer's accessible portion is used for
+@var{end}.
-@defopt case-fold-search
-This buffer-local variable determines whether searches should ignore
-case. If the variable is @code{nil} they do not ignore case; otherwise
-they do ignore case.
-@end defopt
+If @var{query-flag} is @code{nil}, it replaces all
+occurrences; otherwise, it asks the user what to do about each one.
-@defvar default-case-fold-search
-The value of this variable is the default value for
-@code{case-fold-search} in buffers that do not override it. This is the
-same as @code{(default-value 'case-fold-search)}.
+If @var{regexp-flag} is non-@code{nil}, then @var{from-string} is
+considered a regular expression; otherwise, it must match literally. If
+@var{delimited-flag} is non-@code{nil}, then only replacements
+surrounded by word boundaries are considered.
+
+The argument @var{replacements} specifies what to replace occurrences
+with. If it is a string, that string is used. It can also be a list of
+strings, to be used in cyclic order.
+
+If @var{replacements} is a cons cell, @code{(@var{function}
+. @var{data})}, this means to call @var{function} after each match to
+get the replacement text. This function is called with two arguments:
+@var{data}, and the number of replacements already made.
+
+If @var{repeat-count} is non-@code{nil}, it should be an integer. Then
+it specifies how many times to use each of the strings in the
+@var{replacements} list before advancing cyclically to the next one.
+
+If @var{from-string} contains upper-case letters, then
+@code{perform-replace} binds @code{case-fold-search} to @code{nil}, and
+it uses the @code{replacements} without altering the case of them.
+
+Normally, the keymap @code{query-replace-map} defines the possible
+user responses for queries. The argument @var{map}, if
+non-@code{nil}, specifies a keymap to use instead of
+@code{query-replace-map}.
+@end defun
+
+@defvar query-replace-map
+This variable holds a special keymap that defines the valid user
+responses for @code{perform-replace} and the commands that use it, as
+well as @code{y-or-n-p} and @code{map-y-or-n-p}. This map is unusual
+in two ways:
+
+@itemize @bullet
+@item
+The ``key bindings'' are not commands, just symbols that are meaningful
+to the functions that use this map.
+
+@item
+Prefix keys are not supported; each key binding must be for a
+single-event key sequence. This is because the functions don't use
+@code{read-key-sequence} to get the input; instead, they read a single
+event and look it up ``by hand.''
+@end itemize
@end defvar
+Here are the meaningful ``bindings'' for @code{query-replace-map}.
+Several of them are meaningful only for @code{query-replace} and
+friends.
+
+@table @code
+@item act
+Do take the action being considered---in other words, ``yes.''
+
+@item skip
+Do not take action for this question---in other words, ``no.''
+
+@item exit
+Answer this question ``no,'' and give up on the entire series of
+questions, assuming that the answers will be ``no.''
+
+@item act-and-exit
+Answer this question ``yes,'' and give up on the entire series of
+questions, assuming that subsequent answers will be ``no.''
+
+@item act-and-show
+Answer this question ``yes,'' but show the results---don't advance yet
+to the next question.
+
+@item automatic
+Answer this question and all subsequent questions in the series with
+``yes,'' without further user interaction.
+
+@item backup
+Move back to the previous place that a question was asked about.
+
+@item edit
+Enter a recursive edit to deal with this question---instead of any
+other action that would normally be taken.
+
+@item delete-and-edit
+Delete the text being considered, then enter a recursive edit to replace
+it.
+
+@item recenter
+Redisplay and center the window, then ask the same question again.
+
+@item quit
+Perform a quit right away. Only @code{y-or-n-p} and related functions
+use this answer.
+
+@item help
+Display some help, then ask again.
+@end table
+
@node Standard Regexps
@section Standard Regular Expressions Used in Editing
@cindex regexps used standardly in editing
diff --git a/lispref/sequences.texi b/lispref/sequences.texi
index 982c9ffead..eade483bda 100644
--- a/lispref/sequences.texi
+++ b/lispref/sequences.texi
@@ -1,7 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003,
+@c 2004, 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/sequences
@node Sequences Arrays Vectors, Hash Tables, Lists, Top
@@ -252,7 +252,7 @@ The length of the array is fixed once you create it; you cannot
change the length of an existing array.
@item
-for purposes of evaluation, the array is a constant---in other words,
+For purposes of evaluation, the array is a constant---in other words,
it evaluates to itself.
@item
diff --git a/lispref/streams.texi b/lispref/streams.texi
index 09f8695cd2..b5a18e27d0 100644
--- a/lispref/streams.texi
+++ b/lispref/streams.texi
@@ -1,7 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 1999
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 1999, 2002, 2003, 2004,
+@c 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/streams
@node Read and Print, Minibuffers, Debugging, Top
diff --git a/lispref/strings.texi b/lispref/strings.texi
index d0504684f8..18c516041d 100644
--- a/lispref/strings.texi
+++ b/lispref/strings.texi
@@ -1,7 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2003
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003,
+@c 2004, 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/strings
@node Strings and Characters, Lists, Numbers, Top
diff --git a/lispref/symbols.texi b/lispref/symbols.texi
index 9f59ad1f02..9e4b482cfa 100644
--- a/lispref/symbols.texi
+++ b/lispref/symbols.texi
@@ -1,7 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2003
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003,
+@c 2004, 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/symbols
@node Symbols, Evaluation, Hash Tables, Top
diff --git a/lispref/syntax.texi b/lispref/syntax.texi
index e582b52a2c..5cde2badab 100644
--- a/lispref/syntax.texi
+++ b/lispref/syntax.texi
@@ -1,7 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2004, 2005
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003,
+@c 2004, 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/syntax
@node Syntax Tables, Abbrevs, Searching and Matching, Top
diff --git a/lispref/text.texi b/lispref/text.texi
index 5b9b4259a1..14a9dc9d5c 100644
--- a/lispref/text.texi
+++ b/lispref/text.texi
@@ -1,8 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999,
-@c 2000, 2001, 2004, 2005
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001,
+@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/text
@node Text, Non-ASCII Characters, Markers, Top
@@ -192,12 +191,11 @@ This is the contents of buffer foo
@group
(buffer-substring 1 10)
-@result{} "This is t"
+ @result{} "This is t"
@end group
@group
(buffer-substring (point-max) 10)
-@result{} "he contents of buffer foo
-"
+ @result{} "he contents of buffer foo\n"
@end group
@end example
@end defun
@@ -258,8 +256,7 @@ This is the contents of buffer foo
---------- Buffer: foo ----------
(buffer-string)
- @result{} "This is the contents of buffer foo
-"
+ @result{} "This is the contents of buffer foo\n"
@end group
@end example
@end defun
@@ -398,8 +395,8 @@ overlay.
@defun insert-char character count &optional inherit
This function inserts @var{count} instances of @var{character} into the
-current buffer before point. The argument @var{count} should be a
-number, and @var{character} must be a character. The value is @code{nil}.
+current buffer before point. The argument @var{count} should be an
+integer, and @var{character} must be a character. The value is @code{nil}.
This function does not convert unibyte character codes 128 through 255
to multibyte characters, not even if the current buffer is a multibyte
diff --git a/lispref/tindex.pl b/lispref/tindex.pl
index f3372bf21e..68931bc9ed 100755
--- a/lispref/tindex.pl
+++ b/lispref/tindex.pl
@@ -1,6 +1,6 @@
#! /usr/bin/perl
-# Copyright (C) 2000 Free Software Foundation, Inc.
+# Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
#
# This file is part of GNU Emacs.
#
diff --git a/lispref/tips.texi b/lispref/tips.texi
index 6e30915587..46eb887dce 100644
--- a/lispref/tips.texi
+++ b/lispref/tips.texi
@@ -1,7 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1995, 1998, 1999
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1995, 1998, 1999, 2002, 2003,
+@c 2004, 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/tips
@node Tips, GNU Emacs Internals, GPL, Top
@@ -23,7 +23,10 @@ all.
@menu
* Coding Conventions:: Conventions for clean and robust programs.
+* Key Binding Conventions:: Which keys should be bound by which programs.
+* Programming Tips:: Making Emacs code fit smoothly in Emacs.
* Compilation Tips:: Making compiled code run fast.
+* Warning Tips:: Turning off compiler warnings.
* Documentation Tips:: Writing readable documentation strings.
* Comment Tips:: Conventions for writing comments.
* Library Headers:: Standard headers for library packages.
@@ -68,7 +71,7 @@ in your program. Call it @code{mylib-twiddle-files} in your program,
and send mail to @samp{bug-gnu-emacs@@gnu.org} suggesting we add
it to Emacs. If and when we do, we can change the name easily enough.
-If one prefix is insufficient, your package may use two or three
+If one prefix is insufficient, your package can use two or three
alternative common prefixes, so long as they make sense.
Separate the prefix from the rest of the symbol name with a hyphen,
@@ -76,12 +79,10 @@ Separate the prefix from the rest of the symbol name with a hyphen,
Lisp programs.
@item
-It is often useful to put a call to @code{provide} in each separate
-library program, at least if there is more than one entry point to the
-program.
+Put a call to @code{provide} at the end of each separate Lisp file.
@item
-If a file requires certain other library programs to be loaded
+If a file requires certain other Lisp programs to be loaded
beforehand, then the comments at the beginning of the file should say
so. Also, use @code{require} to make sure they are loaded.
@@ -138,6 +139,118 @@ to store a list of functions (i.e., the variable is a hook), please
follow the naming conventions for hooks. @xref{Hooks}.
@item
+@cindex unloading packages
+If loading the file adds functions to hooks, define a function
+@code{@var{feature}-unload-hook}, where @var{feature} is the name of
+the feature the package provides, and make it undo any such changes.
+Using @code{unload-feature} to unload the file will run this function.
+@xref{Unloading}.
+
+@item
+It is a bad idea to define aliases for the Emacs primitives. Normally
+you should use the standard names instead. The case where an alias
+may be useful is where it facilitates backwards compatibility or
+portability.
+
+@item
+If a package needs to define an alias or a new function for
+compatibility with some other version of Emacs, name it with the package
+prefix, not with the raw name with which it occurs in the other version.
+Here is an example from Gnus, which provides many examples of such
+compatibility issues.
+
+@example
+(defalias 'gnus-point-at-bol
+ (if (fboundp 'point-at-bol)
+ 'point-at-bol
+ 'line-beginning-position))
+@end example
+
+@item
+Redefining (or advising) an Emacs primitive is discouraged. It may do
+the right thing for a particular program, but there is no telling what
+other programs might break as a result.
+
+@item
+If a file does replace any of the functions or library programs of
+standard Emacs, prominent comments at the beginning of the file should
+say which functions are replaced, and how the behavior of the
+replacements differs from that of the originals.
+
+@item
+Avoid using macros that define functions and variables with names that
+are constructed. It is best for maintenance when the name of the
+function or variable being defined is given explicitly in the source
+code, as the second element of the list---as it is when you use
+@code{defun}, @code{defalias}, @code{defvar} and @code{defcustom}.
+
+@item
+Please keep the names of your Emacs Lisp source files to 13 characters
+or less. This way, if the files are compiled, the compiled files' names
+will be 14 characters or less, which is short enough to fit on all kinds
+of Unix systems.
+
+@item
+In some other systems there is a convention of choosing variable names
+that begin and end with @samp{*}. We don't use that convention in Emacs
+Lisp, so please don't use it in your programs. (Emacs uses such names
+only for special-purpose buffers.) The users will find Emacs more
+coherent if all libraries use the same conventions.
+
+@item
+Indent each function with @kbd{C-M-q} (@code{indent-sexp}) using the
+default indentation parameters.
+
+@item
+Don't make a habit of putting close-parentheses on lines by themselves;
+Lisp programmers find this disconcerting. Once in a while, when there
+is a sequence of many consecutive close-parentheses, it may make sense
+to split the sequence in one or two significant places.
+
+@item
+Please put a copyright notice and copying permission notice on the
+file if you distribute copies. Use a notice like this one:
+
+@smallexample
+;; Copyright (C) @var{year} @var{name}
+
+;; This program is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU General Public License as
+;; published by the Free Software Foundation; either version 2 of
+;; the License, or (at your option) any later version.
+
+;; This program is distributed in the hope that it will be
+;; useful, but WITHOUT ANY WARRANTY; without even the implied
+;; warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+;; PURPOSE. See the GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public
+;; License along with this program; if not, write to the Free
+;; Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+;; MA 02110-1301 USA
+@end smallexample
+
+If you have signed papers to assign the copyright to the Foundation,
+then use @samp{Free Software Foundation, Inc.} as @var{name}.
+Otherwise, use your name. See also @xref{Library Headers}.
+@end itemize
+
+@node Key Binding Conventions
+@section Key Binding Conventions
+
+@itemize @bullet
+@item
+@cindex mouse-2
+@cindex references, following
+Special major modes used for read-only text should usually redefine
+@kbd{mouse-2} and @key{RET} to trace some sort of reference in the text.
+Modes such as Dired, Info, Compilation, and Occur redefine it in this
+way.
+
+In addition, they should mark the text as a kind of ``link'' so that
+@kbd{mouse-1} will follow it also. @xref{Links and Mouse-1}.
+
+@item
@cindex reserved keys
@cindex keys, reserved
Please do not define @kbd{C-c @var{letter}} as a key in Lisp programs.
@@ -199,67 +312,15 @@ is potentially meaningful, then you must not define @kbd{@key{ESC}
after @key{ESC}. In these states, you should define @kbd{@key{ESC}
@key{ESC} @key{ESC}} as the way to escape. Otherwise, define
@kbd{@key{ESC} @key{ESC}} instead.
+@end itemize
-@item
-@cindex mouse-2
-@cindex references, following
-Special major modes used for read-only text should usually redefine
-@kbd{mouse-2} and @key{RET} to trace some sort of reference in the text.
-Modes such as Dired, Info, Compilation, and Occur redefine it in this
-way.
-
-In addition, they should mark the text as a kind of ``link'' so that
-@kbd{mouse-1} will follow it also. @xref{Links and Mouse-1}.
-
-@cindex unloading packages
-If loading the file adds functions to hooks, define a function
-@code{@var{feature}-unload-hook}, where @var{feature} is the name of
-the feature the package provides, and make it undo any such changes.
-Using @code{unload-feature} to unload the file will run this function.
-@xref{Unloading}.
-
-@item
-It is a bad idea to define aliases for the Emacs primitives. Use the
-standard names instead.
-
-@item
-If a package needs to define an alias or a new function for
-compatibility with some other version of Emacs, name it with the package
-prefix, not with the raw name with which it occurs in the other version.
-Here is an example from Gnus, which provides many examples of such
-compatibility issues.
-
-@example
-(defalias 'gnus-point-at-bol
- (if (fboundp 'point-at-bol)
- 'point-at-bol
- 'line-beginning-position))
-@end example
-
-@item
-Redefining (or advising) an Emacs primitive is discouraged. It may do
-the right thing for a particular program, but there is no telling what
-other programs might break as a result.
-
-@item
-If a file does replace any of the functions or library programs of
-standard Emacs, prominent comments at the beginning of the file should
-say which functions are replaced, and how the behavior of the
-replacements differs from that of the originals.
-
-@item
-Avoid using macros that define functions and variables with names that
-are constructed. It is best for maintenance when the name of the
-function or variable being defined is given explicitly in the source
-code, as the second element of the list---as it is when you use
-@code{defun}, @code{defalias}, @code{defvar} and @code{defcustom}.
+@node Programming Tips
+@section Emacs Programming Tips
-@item
-Please keep the names of your Emacs Lisp source files to 13 characters
-or less. This way, if the files are compiled, the compiled files' names
-will be 14 characters or less, which is short enough to fit on all kinds
-of Unix systems.
+ Following these conventions will make your program fit better
+into Emacs when it runs.
+@itemize @bullet
@item
Don't use @code{next-line} or @code{previous-line} in programs; nearly
always, @code{forward-line} is more convenient as well as more
@@ -278,11 +339,14 @@ In particular, don't use any of these functions:
@code{beginning-of-buffer}, @code{end-of-buffer}
@item
@code{replace-string}, @code{replace-regexp}
+@item
+@code{insert-file}, @code{insert-buffer}
@end itemize
-If you just want to move point, or replace a certain string, without any
-of the other features intended for interactive users, you can replace
-these functions with one or two lines of simple Lisp code.
+If you just want to move point, or replace a certain string, or insert
+a file or buffer's contents, without any of the other features
+intended for interactive users, you can replace these functions with
+one or two lines of simple Lisp code.
@item
Use lists rather than vectors, except when there is a particular reason
@@ -294,7 +358,7 @@ accessed in random order (not searched front to back), provided there is
no need to insert or delete elements (only lists allow that).
@item
-The recommended way to print a message in the echo area is with
+The recommended way to show a message in the echo area is with
the @code{message} function, not @code{princ}. @xref{The Echo Area}.
@item
@@ -358,80 +422,6 @@ command does: use a new local keymap that contains one command defined
to switch back to the old local keymap. Or do what the
@code{edit-options} command does: switch to another buffer and let the
user switch back at will. @xref{Recursive Editing}.
-
-@item
-In some other systems there is a convention of choosing variable names
-that begin and end with @samp{*}. We don't use that convention in Emacs
-Lisp, so please don't use it in your programs. (Emacs uses such names
-only for special-purpose buffers.) The users will find Emacs more
-coherent if all libraries use the same conventions.
-
-@item
-Try to avoid compiler warnings about undefined free variables, by adding
-dummy @code{defvar} definitions for these variables, like this:
-
-@example
-(defvar foo)
-@end example
-
-Such a definition has no effect except to tell the compiler
-not to warn about uses of the variable @code{foo} in this file.
-
-@item
-If you use many functions and variables from a certain file, you can
-add a @code{require} for that package to avoid compilation warnings
-for them. For instance,
-
-@example
-(eval-when-compile
- (require 'foo))
-@end example
-
-@item
-If you bind a variable in one function, and use it or set it in
-another function, the compiler warns about the latter function unless
-the variable has a definition. But adding a definition would be
-unclean if the variable has a short name, since Lisp packages should
-not define short variable names. The right thing to do is to rename
-this variable to start with the name prefix used for the other
-functions and variables in your package.
-
-@item
-Indent each function with @kbd{C-M-q} (@code{indent-sexp}) using the
-default indentation parameters.
-
-@item
-Don't make a habit of putting close-parentheses on lines by themselves;
-Lisp programmers find this disconcerting. Once in a while, when there
-is a sequence of many consecutive close-parentheses, it may make sense
-to split the sequence in one or two significant places.
-
-@item
-Please put a copyright notice on the file if you give copies to anyone.
-Use a message like this one:
-
-@smallexample
-;; Copyright (C) @var{year} @var{name}
-
-;; This program is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU General Public License as
-;; published by the Free Software Foundation; either version 2 of
-;; the License, or (at your option) any later version.
-
-;; This program is distributed in the hope that it will be
-;; useful, but WITHOUT ANY WARRANTY; without even the implied
-;; warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-;; PURPOSE. See the GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public
-;; License along with this program; if not, write to the Free
-;; Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-;; MA 02110-1301 USA
-@end smallexample
-
-If you have signed papers to assign the copyright to the Foundation,
-then use @samp{Free Software Foundation, Inc.} as @var{name}.
-Otherwise, use your name. See also @xref{Library Headers}.
@end itemize
@node Compilation Tips
@@ -495,6 +485,46 @@ a noticeable speedup in something slow enough that users care about
the speed. @xref{Inline Functions}.
@end itemize
+@node Warning Tips
+@section Tips for Avoiding Compiler Warnings
+
+@itemize @bullet
+@item
+Try to avoid compiler warnings about undefined free variables, by adding
+dummy @code{defvar} definitions for these variables, like this:
+
+@example
+(defvar foo)
+@end example
+
+Such a definition has no effect except to tell the compiler
+not to warn about uses of the variable @code{foo} in this file.
+
+@item
+If you use many functions and variables from a certain file, you can
+add a @code{require} for that package to avoid compilation warnings
+for them. For instance,
+
+@example
+(eval-when-compile
+ (require 'foo))
+@end example
+
+@item
+If you bind a variable in one function, and use it or set it in
+another function, the compiler warns about the latter function unless
+the variable has a definition. But adding a definition would be
+unclean if the variable has a short name, since Lisp packages should
+not define short variable names. The right thing to do is to rename
+this variable to start with the name prefix used for the other
+functions and variables in your package.
+
+@item
+The last resort for avoiding a warning, when you want to do something
+that usually is a mistake but it's not a mistake in this one case,
+is to put a call to @code{with-no-warnings} around it.
+@end itemize
+
@node Documentation Tips
@section Tips for Documentation Strings
diff --git a/lispref/variables.texi b/lispref/variables.texi
index 38fb929c16..1f26b56db8 100644
--- a/lispref/variables.texi
+++ b/lispref/variables.texi
@@ -1,8 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999,
-@c 2000, 2003, 2004
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2002,
+@c 2003, 2004, 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/variables
@node Variables, Functions, Control Structures, Top
diff --git a/lispref/vol1.texi b/lispref/vol1.texi
index f772fc58be..e0a1f02df8 100644
--- a/lispref/vol1.texi
+++ b/lispref/vol1.texi
@@ -2,8 +2,8 @@ This file is obsolete, and no longer part of the Emacs Lisp Reference Manual.
It is still present in CVS in case we ever want to use some of it again.
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003,
+@c 2004, 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
\input texinfo @c -*-texinfo-*-
diff --git a/lispref/vol2.texi b/lispref/vol2.texi
index a4c6d4ae79..40ec8c4904 100644
--- a/lispref/vol2.texi
+++ b/lispref/vol2.texi
@@ -2,8 +2,8 @@ This file is obsolete, and no longer part of the Emacs Lisp Reference Manual.
It is still present in CVS in case we ever want to use some of it again.
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003,
+@c 2004, 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
diff --git a/lispref/windows.texi b/lispref/windows.texi
index ec372d98aa..e204a7ce7d 100644
--- a/lispref/windows.texi
+++ b/lispref/windows.texi
@@ -1,7 +1,7 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2004
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003,
+@c 2004, 2005 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/windows
@node Windows, Frames, Buffers, Top
@@ -267,7 +267,7 @@ Now the screen looks like this:
@end smallexample
Normally, Emacs indicates the border between two side-by-side windows
-with a scroll bar (@pxref{Window Frame Parameters,Scroll Bars}) or @samp{|}
+with a scroll bar (@pxref{Layout Parameters,Scroll Bars}) or @samp{|}
characters. The display table can specify alternative border
characters; see @ref{Display Tables}.
@end deffn
diff --git a/lwlib/ChangeLog b/lwlib/ChangeLog
index 17a92de541..4ce570b989 100644
--- a/lwlib/ChangeLog
+++ b/lwlib/ChangeLog
@@ -1,3 +1,8 @@
+2005-07-19 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
+
+ * lwlib-Xm.c (make_menu_in_widget): Disable drag and drop for
+ labels in menu bar.
+
2005-07-04 Lute Kamstra <lute@gnu.org>
Update FSF's address in GPL notices.
diff --git a/lwlib/lwlib-Xlw.c b/lwlib/lwlib-Xlw.c
index e5d9ebbd0f..40091e7b69 100644
--- a/lwlib/lwlib-Xlw.c
+++ b/lwlib/lwlib-Xlw.c
@@ -1,6 +1,7 @@
/* The lwlib interface to "xlwmenu" menus.
Copyright (C) 1992 Lucid, Inc.
- Copyright (C) 1994, 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1994, 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of the Lucid Widget Library.
diff --git a/lwlib/lwlib-Xm.c b/lwlib/lwlib-Xm.c
index 02a2f035aa..32abbca760 100644
--- a/lwlib/lwlib-Xm.c
+++ b/lwlib/lwlib-Xm.c
@@ -1,6 +1,6 @@
/* The lwlib interface to Motif widgets.
- Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003, 2004, 2005
- Free Software Foundation, Inc.
+ Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2002, 2003,
+ 2004, 2005 Free Software Foundation, Inc.
Copyright (C) 1992 Lucid, Inc.
This file is part of the Lucid Widget Library.
@@ -524,6 +524,10 @@ make_menu_in_widget (instance, widget, val, keep_first_children)
Widget* old_children;
unsigned int old_num_children;
+ /* Disable drag and drop for labels in menu bar. */
+ static char overrideTrans[] = "<Btn2Down>: Noop()";
+ XtTranslations override = XtParseTranslationTable (overrideTrans);
+
old_children = XtCompositeChildren (widget, &old_num_children);
/* Allocate the children array */
@@ -632,6 +636,8 @@ make_menu_in_widget (instance, widget, val, keep_first_children)
XtAddCallback (button, XmNcascadingCallback, xm_pull_down_callback,
(XtPointer)instance);
+ XtOverrideTranslations (button, override);
+
}
children[child_index] = button;
diff --git a/lwlib/lwlib-Xm.h b/lwlib/lwlib-Xm.h
index c5a1fbe915..d6069fad2d 100644
--- a/lwlib/lwlib-Xm.h
+++ b/lwlib/lwlib-Xm.h
@@ -1,5 +1,6 @@
/* The lwlib interface to Motif widgets.
- Copyright (C) 1994, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1994, 2000, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Copyright (C) 1992 Lucid, Inc.
This file is part of the Lucid Widget Library.
diff --git a/lwlib/xlwmenu.c b/lwlib/xlwmenu.c
index 09d11c8b68..f1ee1b68e9 100644
--- a/lwlib/xlwmenu.c
+++ b/lwlib/xlwmenu.c
@@ -1,6 +1,6 @@
/* Implements a lightweight menubar widget.
Copyright (C) 1992 Lucid, Inc.
- Copyright (C) 2002, 2005 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of the Lucid Widget Library.
diff --git a/lwlib/xlwmenu.h b/lwlib/xlwmenu.h
index e896617a69..93703358cc 100644
--- a/lwlib/xlwmenu.h
+++ b/lwlib/xlwmenu.h
@@ -1,5 +1,5 @@
/* Interface of a lightweight menubar widget.
- Copyright (C) 2000, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of the Lucid Widget Library.
diff --git a/lwlib/xlwmenuP.h b/lwlib/xlwmenuP.h
index a25307b6ff..ca2b7dc6a1 100644
--- a/lwlib/xlwmenuP.h
+++ b/lwlib/xlwmenuP.h
@@ -1,5 +1,6 @@
/* Internals of a lightweight menubar widget.
- Copyright (C) 1999, 2000, 2002, 2004, 2005 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of the Lucid Widget Library.
diff --git a/m4/getopt.m4 b/m4/getopt.m4
new file mode 100644
index 0000000000..dbcc44d909
--- /dev/null
+++ b/m4/getopt.m4
@@ -0,0 +1,82 @@
+# getopt.m4 serial 10
+dnl Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# The getopt module assume you want GNU getopt, with getopt_long etc,
+# rather than vanilla POSIX getopt. This means your your code should
+# always include <getopt.h> for the getopt prototypes.
+
+AC_DEFUN([gl_GETOPT_SUBSTITUTE],
+[
+ AC_LIBOBJ([getopt])
+ AC_LIBOBJ([getopt1])
+ gl_GETOPT_SUBSTITUTE_HEADER
+ gl_PREREQ_GETOPT
+])
+
+AC_DEFUN([gl_GETOPT_SUBSTITUTE_HEADER],
+[
+ GETOPT_H=getopt.h
+ AC_DEFINE([__GETOPT_PREFIX], [[rpl_]],
+ [Define to rpl_ if the getopt replacement functions and variables
+ should be used.])
+ AC_SUBST([GETOPT_H])
+])
+
+AC_DEFUN([gl_GETOPT_CHECK_HEADERS],
+[
+ GETOPT_H=
+ AC_CHECK_HEADERS([getopt.h], [], [GETOPT_H=getopt.h])
+ if test -z "$GETOPT_H"; then
+ AC_CHECK_FUNCS([getopt_long_only], [], [GETOPT_H=getopt.h])
+ fi
+
+ dnl BSD getopt_long uses an incompatible method to reset option processing,
+ dnl and (as of 2004-10-15) mishandles optional option-arguments.
+ if test -z "$GETOPT_H"; then
+ AC_CHECK_DECL([optreset], [GETOPT_H=getopt.h], [], [#include <getopt.h>])
+ fi
+
+ dnl Solaris 10 getopt doesn't handle `+' as a leading character in an
+ dnl option string (as of 2005-05-05).
+ if test -z "$GETOPT_H"; then
+ AC_CACHE_CHECK([for working GNU getopt function], [gl_cv_func_gnu_getopt],
+ [AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM([#include <getopt.h>],
+ [[
+ char *myargv[3];
+ myargv[0] = "conftest";
+ myargv[1] = "-+";
+ myargv[2] = 0;
+ return getopt (2, myargv, "+a") != '?';
+ ]])],
+ [gl_cv_func_gnu_getopt=yes],
+ [gl_cv_func_gnu_getopt=no],
+ [dnl cross compiling - pessimistically guess based on decls
+ dnl Solaris 10 getopt doesn't handle `+' as a leading character in an
+ dnl option string (as of 2005-05-05).
+ AC_CHECK_DECL([getopt_clip],
+ [gl_cv_func_gnu_getopt=no], [gl_cv_func_gnu_getopt=yes],
+ [#include <getopt.h>])])])
+ if test "$gl_cv_func_gnu_getopt" = "no"; then
+ GETOPT_H=getopt.h
+ fi
+ fi
+])
+
+AC_DEFUN([gl_GETOPT_IFELSE],
+[
+ AC_REQUIRE([gl_GETOPT_CHECK_HEADERS])
+ AS_IF([test -n "$GETOPT_H"], [$1], [$2])
+])
+
+AC_DEFUN([gl_GETOPT], [gl_GETOPT_IFELSE([gl_GETOPT_SUBSTITUTE])])
+
+# Prerequisites of lib/getopt*.
+AC_DEFUN([gl_PREREQ_GETOPT], [:])
+
+ifelse(dnl Do not change this comment
+ arch-tag: 6c64a021-551c-4a7f-9c63-cd7e1ce54707
+)dnl
diff --git a/mac/ChangeLog b/mac/ChangeLog
index a53b3cd89d..acc89f75bd 100644
--- a/mac/ChangeLog
+++ b/mac/ChangeLog
@@ -1,3 +1,8 @@
+2005-07-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * Emacs.app/Contents/Info.plist (mail-to, mail-selection): New
+ NSServices.
+
2005-07-04 Lute Kamstra <lute@gnu.org>
Update FSF's address in GPL notices.
@@ -759,7 +764,7 @@
;; coding: iso-2022-7bit-unix
;; End:
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted provided the copyright notice and this notice are preserved.
diff --git a/mac/Emacs.app/Contents/Info.plist b/mac/Emacs.app/Contents/Info.plist
index 7f79e8f6ab..176dbf8127 100644
--- a/mac/Emacs.app/Contents/Info.plist
+++ b/mac/Emacs.app/Contents/Info.plist
@@ -75,6 +75,44 @@
<string>NSStringPboardType</string>
</array>
</dict>
+ <dict>
+ <key>NSKeyEquivalent</key>
+ <dict/>
+ <key>NSMenuItem</key>
+ <dict>
+ <key>default</key>
+ <string>Emacs/Send Selection</string>
+ </dict>
+ <key>NSMessage</key>
+ <string>mail-selection</string>
+ <key>NSPortName</key>
+ <string>Emacs</string>
+ <key>NSReturnTypes</key>
+ <array/>
+ <key>NSSendTypes</key>
+ <array>
+ <string>NSStringPboardType</string>
+ </array>
+ </dict>
+ <dict>
+ <key>NSKeyEquivalent</key>
+ <dict/>
+ <key>NSMenuItem</key>
+ <dict>
+ <key>default</key>
+ <string>Emacs/Send To</string>
+ </dict>
+ <key>NSMessage</key>
+ <string>mail-to</string>
+ <key>NSPortName</key>
+ <string>Emacs</string>
+ <key>NSReturnTypes</key>
+ <array/>
+ <key>NSSendTypes</key>
+ <array>
+ <string>NSStringPboardType</string>
+ </array>
+ </dict>
</array>
</dict>
</plist>
diff --git a/mac/INSTALL b/mac/INSTALL
index 9dcf1324f7..c8af7e5f48 100644
--- a/mac/INSTALL
+++ b/mac/INSTALL
@@ -1,6 +1,6 @@
* BUILDING EMACS ON MAC OS 8/9 AND MAC OS X -*- outline -*-
-Copyright (c) 2001, 2002, 2004 Free Software Foundation, Inc.
+Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
Permission is granted to anyone to make or distribute verbatim
copies of this document as received, in any medium, provided that
diff --git a/mac/README b/mac/README
index 6a352e04af..18e0942b36 100644
--- a/mac/README
+++ b/mac/README
@@ -1,6 +1,6 @@
Emacs for Mac OS 8/9 and Mac OS X
-Copyright (c) 2001-4 Free Software Foundation, Inc.
+Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
Permission is granted to anyone to make or distribute verbatim
copies of this document as received, in any medium, provided that
diff --git a/mac/cw6-mcp.xml b/mac/cw6-mcp.xml
index 4d3ae5a8c2..54bfc4be7e 100644
--- a/mac/cw6-mcp.xml
+++ b/mac/cw6-mcp.xml
@@ -1,5 +1,5 @@
<!--
-Copyright (C) 2001 Free Software Foundation, Inc.
+Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/mac/inc/alloca.h b/mac/inc/alloca.h
index d8494e17b6..216af94473 100644
--- a/mac/inc/alloca.h
+++ b/mac/inc/alloca.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/mac/inc/config.h b/mac/inc/config.h
index 6cd2f52bbb..2bac002cc7 100644
--- a/mac/inc/config.h
+++ b/mac/inc/config.h
@@ -1,7 +1,8 @@
/* Handcrafted Emacs site configuration file for Mac OS 9. -*- C -*- */
/* GNU Emacs site configuration template file. -*- C -*-
- Copyright (C) 1988, 1993, 1994, 1999, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1988, 1993, 1994, 1999, 2000, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/mac/inc/defs-cw6.h b/mac/inc/defs-cw6.h
index e7b56444af..5073d8059a 100644
--- a/mac/inc/defs-cw6.h
+++ b/mac/inc/defs-cw6.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/mac/inc/dirent.h b/mac/inc/dirent.h
index c29e2a743f..17bbb60b8f 100644
--- a/mac/inc/dirent.h
+++ b/mac/inc/dirent.h
@@ -1,5 +1,6 @@
/* Replacement dirent.h file for building GNU Emacs on the Macintosh.
- Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/mac/inc/epaths.h b/mac/inc/epaths.h
index dc9b8ed495..c65f8589c6 100644
--- a/mac/inc/epaths.h
+++ b/mac/inc/epaths.h
@@ -1,7 +1,8 @@
/* Hey Emacs, this is -*- C -*- code! */
/* Handcrafted epaths.h file for building GNU Emacs on the Macintosh.
- Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/mac/inc/grp.h b/mac/inc/grp.h
index c9db51282c..058bc65701 100755
--- a/mac/inc/grp.h
+++ b/mac/inc/grp.h
@@ -1,5 +1,5 @@
/* Replacement grp.h file for building GNU Emacs on the Macintosh.
- Copyright (C) 2003 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/mac/inc/m-mac.h b/mac/inc/m-mac.h
index 37ce77cea3..5e1f7db811 100644
--- a/mac/inc/m-mac.h
+++ b/mac/inc/m-mac.h
@@ -1,5 +1,6 @@
/* Handcrafted m-mac.h file for building GNU Emacs on the Macintosh.
- Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/mac/inc/pwd.h b/mac/inc/pwd.h
index ee77176e2a..df452f30d9 100644
--- a/mac/inc/pwd.h
+++ b/mac/inc/pwd.h
@@ -1,5 +1,6 @@
/* Replacement pwd.h file for building GNU Emacs on the Macintosh.
- Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/mac/inc/s-mac.h b/mac/inc/s-mac.h
index ab8dbcdad8..d0f00ed6c1 100644
--- a/mac/inc/s-mac.h
+++ b/mac/inc/s-mac.h
@@ -1,5 +1,6 @@
/* Handcrafted s-mac.h file for building GNU Emacs on Mac OS 9.
- Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/mac/inc/sys/file.h b/mac/inc/sys/file.h
index 1b0a031453..f2686a5cc1 100644
--- a/mac/inc/sys/file.h
+++ b/mac/inc/sys/file.h
@@ -1,5 +1,6 @@
/* Replacement sys/file.h file for building GNU Emacs on the Macintosh.
- Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/mac/inc/sys/ioctl.h b/mac/inc/sys/ioctl.h
index 2682dd4543..bdf68b9735 100644
--- a/mac/inc/sys/ioctl.h
+++ b/mac/inc/sys/ioctl.h
@@ -1,5 +1,6 @@
/* Replacement sys/ioctl.h file for building GNU Emacs on the Macintosh.
- Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/mac/inc/sys/param.h b/mac/inc/sys/param.h
index b1669947bf..8849489f7c 100644
--- a/mac/inc/sys/param.h
+++ b/mac/inc/sys/param.h
@@ -1,5 +1,6 @@
/* Replacement sys/param.h file for building GNU Emacs on the Macintosh.
- Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/mac/inc/sys/stat.h b/mac/inc/sys/stat.h
index c1c9f4a784..2b8f9bfce7 100644
--- a/mac/inc/sys/stat.h
+++ b/mac/inc/sys/stat.h
@@ -1,5 +1,6 @@
/* Replacement sys/stat.h file for building GNU Emacs on the Macintosh.
- Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/mac/inc/sys/time.h b/mac/inc/sys/time.h
index 76b5e3acbc..b28a87e7d3 100644
--- a/mac/inc/sys/time.h
+++ b/mac/inc/sys/time.h
@@ -1,5 +1,5 @@
/* Replacement sys/time.h file for building GNU Emacs on the Macintosh.
- Copyright (C) 2000 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/mac/inc/sys/types.h b/mac/inc/sys/types.h
index 7055a7a5d0..bdc4f6c5be 100644
--- a/mac/inc/sys/types.h
+++ b/mac/inc/sys/types.h
@@ -1,5 +1,6 @@
/* Replacement sys/types.h file for building GNU Emacs on the Macintosh.
- Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/mac/inc/termio.h b/mac/inc/termio.h
index be5b0243e2..596d634217 100644
--- a/mac/inc/termio.h
+++ b/mac/inc/termio.h
@@ -1,5 +1,6 @@
/* Replacement termio.h file for building GNU Emacs on the Macintosh.
- Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/mac/inc/utime.h b/mac/inc/utime.h
index dbe9544aca..43281d40bf 100644
--- a/mac/inc/utime.h
+++ b/mac/inc/utime.h
@@ -1,5 +1,5 @@
/* Replacement utime.h file for building GNU Emacs on the Macintosh.
- Copyright (C) 2000 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/mac/inc/utsname.h b/mac/inc/utsname.h
index 27cfbe4dca..fc120b014d 100644
--- a/mac/inc/utsname.h
+++ b/mac/inc/utsname.h
@@ -1,5 +1,5 @@
/* Replacement utsname.h file for building GNU Emacs on the Macintosh.
- Copyright (C) 2000 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/mac/make-package b/mac/make-package
index e8bf66aaaa..bef6aa9b2d 100755
--- a/mac/make-package
+++ b/mac/make-package
@@ -18,7 +18,7 @@
#### files inside /usr. This will replace the default version of
#### emacs included with Mac OS X.
-# Copyright (C) 2002 Free Software Foundation, Inc.
+# Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
#
# This file is part of GNU Emacs.
#
diff --git a/mac/makefile.MPW b/mac/makefile.MPW
index 1a2c438565..9d8eda541c 100644
--- a/mac/makefile.MPW
+++ b/mac/makefile.MPW
@@ -1,5 +1,6 @@
# Make file for building GNU Emacs on the Macintosh.
-# Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2002, 2003, 2004,
+# 2005 Free Software Foundation, Inc.
#
# Author: Andrew Choi <akochoi@users.sourceforge.net>
#
diff --git a/mac/src/Emacs.r b/mac/src/Emacs.r
index a36249a42a..4984704f9f 100644
--- a/mac/src/Emacs.r
+++ b/mac/src/Emacs.r
@@ -1,5 +1,6 @@
/* Resource definitions for GNU Emacs on the Macintosh.
- Copyright (C) 1999, 2000, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/mac/src/EmacsMPW.r b/mac/src/EmacsMPW.r
index 133ba1a030..16866de957 100644
--- a/mac/src/EmacsMPW.r
+++ b/mac/src/EmacsMPW.r
@@ -1,7 +1,8 @@
/* Resource definitions for GNU Emacs on the Macintosh when building
under MPW.
- Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/mac/src/chdir.c b/mac/src/chdir.c
index cf7ac5f037..61d0b63a78 100644
--- a/mac/src/chdir.c
+++ b/mac/src/chdir.c
@@ -1,5 +1,6 @@
/* Implementation of chdir on the Mac for use with make-docfile.
- Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/make-dist b/make-dist
index 9f2c4bb128..3381ee770e 100755
--- a/make-dist
+++ b/make-dist
@@ -6,7 +6,7 @@
#### be distributed. This means that if you add a file with an odd name,
#### you should make sure that this script will include it.
-# Copyright (C) 1995, 1997, 1998, 2000, 2001, 2002, 2005
+# Copyright (C) 1995, 1997, 1998, 2000, 2001, 2002, 2005
# Free Software Foundation, Inc.
#
# This file is part of GNU Emacs.
@@ -323,7 +323,7 @@ for subdir in lisp site-lisp lispref lispintro \
nt nt/inc nt/inc/sys nt/inc/arpa nt/inc/netinet nt/icons \
etc etc/e etc/images etc/images/gnus etc/images/smilies \
etc/tree-widget etc/tree-widget/default etc/tree-widget/folder \
- info man msdos vms mac mac/inc mac/inc/sys \
+ info man m4 msdos vms mac mac/inc mac/inc/sys \
mac/src mac/Emacs.app mac/Emacs.app/Contents \
mac/Emacs.app/Contents/MacOS mac/Emacs.app/Contents/Resources \
mac/Emacs.app/Contents/Resources/English.lproj
@@ -487,8 +487,13 @@ echo "Making links to \`lib-src'"
done
cd ../${tempdir}/lib-src
rm -f Makefile.c
+ rm -f getopt.h
rm -f =* TAGS)
+echo "Making links to \`m4'"
+(cd m4
+ ln *.m4 ../${tempdir}/m4)
+
echo "Making links to \`nt'"
(cd nt
ln emacs.rc config.nt [a-z]*.c ../${tempdir}/nt
diff --git a/man/ChangeLog b/man/ChangeLog
index c8ace6938b..ac992ec692 100644
--- a/man/ChangeLog
+++ b/man/ChangeLog
@@ -1,3 +1,254 @@
+2005-08-30 Carsten Dominik <dominik@science.uva.nl>
+
+ * org.texi: Version 3.15.
+
+2005-08-29 Luc Teirlinck <teirllm@auburn.edu>
+
+ * ses.texi: Combine all three indices into one.
+ Correct a few typos.
+
+2005-08-19 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * emacs-mime.texi (time-date): Fix description of safe-date-to-time.
+
+2005-08-18 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * emacs-mime.texi (Handles): Remove duplicate item.
+ (Encoding Customization): Fix the default value for
+ mm-coding-system-priorities.
+ (Charset Translation): Emacs doesn't use mm-mime-mule-charset-alist.
+ (Basic Functions): Fix reference.
+
+2005-08-09 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus.texi (Charsets): Fj hierarchy uses iso-2022-jp.
+
+2005-08-22 Juri Linkov <juri@jurta.org>
+
+ * display.texi (Standard Faces): Merge the text from
+ `(elisp)Standard Faces' into this node.
+
+2005-08-18 Luc Teirlinck <teirllm@auburn.edu>
+
+ * emacs.texi (Top): Delete menu item for deleted node
+ Keyboard Translations.
+
+2005-08-18 Richard M. Stallman <rms@gnu.org>
+
+ * faq.texi (Obtaining the FAQ): Delete refs to Lerner's email
+ and web site.
+
+ * trouble.texi (Unasked-for Search):
+ Delete xref to Keyboard Translations.
+
+ * glossary.texi (Glossary): Delete xref.
+
+ * faq.texi (Swapping keys): Xref for normal-erase-is-backspace-mode,
+ not keyboard-translate.
+
+ * custom.texi (Minor Modes): Say that the list here is not complete.
+ (Keyboard Translations): Node deleted.
+ (Disabling): Delete xref to it.
+ (Customization Groups): Fix Custom buffer example.
+ (Hooks): Mention remove-hooks.
+
+2005-08-17 Luc Teirlinck <teirllm@auburn.edu>
+
+ * building.texi (GDB Graphical Interface): Improve filling of menu
+ item.
+
+2005-08-18 Nick Roberts <nickrob@snap.net.nz>
+
+ * building.texi (GDB Graphical Interface): Use better node names.
+
+2005-08-14 Richard M. Stallman <rms@gnu.org>
+
+ * text.texi (Sentences): Fix xref.
+
+2005-08-14 Juri Linkov <juri@jurta.org>
+
+ * building.texi (Compilation, Grep Searching): Move grep command
+ headings from `Compilation' to `Grep Searching'.
+
+ * dired.texi (Dired and Find):
+ * maintaining.texi (Tags Search): Replace grep xref to
+ `Compilation' node with `Grep Searching'.
+
+ * files.texi (Comparing Files): Replace xref to `Compilation' with
+ `Compilation Mode'.
+
+2005-08-13 Alan Mackenzie <acm@muc.de>
+
+ * search.texi (Non-ASCII Isearch): Correct a typo.
+ (Replacement Commands): Mention query-replace key binding.
+
+2005-08-11 Richard M. Stallman <rms@gnu.org>
+
+ * programs.texi (Options for Comments): Fix xref.
+
+ * search.texi (Regexp Backslash, Regexp Example): New nodes split
+ out of Regexps.
+
+ * faq.texi (Using regular expressions): Fix xref.
+
+2005-08-09 Juri Linkov <juri@jurta.org>
+
+ * building.texi (Compilation): Use `itemx' instead of `item'.
+ (Grep Searching): Simplify phrase.
+
+ * display.texi (Standard Faces): Describe vertical-border on
+ window systems.
+
+ * windows.texi (Split Window): Simplify phrase and mention
+ vertical-border face.
+
+2005-08-09 Richard M. Stallman <rms@gnu.org>
+
+ * files.texi (Comparing Files): Clarify compare-windows.
+
+ * calendar.texi (Scroll Calendar): Document < and > in calendar.
+
+2005-08-09 Juri Linkov <juri@jurta.org>
+
+ * info.texi (Help-P): Replace `Prev' with `Previous'.
+ (Help-M, Help-Xref): Add S-TAB.
+ (Help-FOO): Update `u' command.
+ (Help-Xref): Move info about Mouse-2 from `Help-Int'.
+ Update info about visibility of xref parts.
+ (Help-Int): Fix `m' command. Rename `Info-last' to
+ `Info-history-back'. Add `Info-history-forward'.
+ (Advanced): Fix `g*' and `M-n' commands.
+ (Info Search): Add `index-apropos' in stand-alone browser.
+ Add isearch commands.
+ (Emacs Info Variables): Remove `Info-fontify'.
+ Add `Info-mode-hook'. Update face names.
+ Add `Info-fontify-maximum-menu-size',
+ `Info-fontify-visited-nodes', `Info-isearch-search'.
+
+2005-08-07 Michael Albinus <michael.albinus@gmx.de>
+
+ Sync with Tramp 2.0.50.
+
+ * tramp.texi: Use @option{} consequently for method names.
+ (Inline methods, External transfer methods): Remove references to
+ Cygwin.
+ (Issues with Cygwin ssh): Explain trouble with Cygwin's ssh
+ implementation.
+
+2005-08-06 Eli Zaretskii <eliz@gnu.org>
+
+ * mule.texi (Coding Systems): Rephrase the paragraph about
+ codepages: no need for "M-x codepage-setup" anymore, except on
+ MS-DOS.
+
+ * msdog.texi (MS-DOS and MULE): Clarify that this section is for
+ the MS-DOS port only.
+
+2005-07-30 Eli Zaretskii <eliz@gnu.org>
+
+ * makefile.w32-in (info): Don't run multi-install-info.bat.
+ ($(infodir)/dir): New target, produced by running
+ multi-install-info.bat.
+
+2005-07-27 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * gnus.texi (Startup Files): Fix name of gnus-site-init-file.
+ Mention that gnus-init-file is not read when Emacs is invoked with
+ --no-init-file or -q.
+
+2005-07-22 Eli Zaretskii <eliz@gnu.org>
+
+ * files.texi (Quoted File Names): Add index entry.
+
+2005-07-19 Carsten Dominik <dominik@science.uva.nl>
+
+ * org.texi: Version 3.14
+
+2005-07-04 Carsten Dominik <dominik@science.uva.nl>
+
+ * org.texi: Version 3.13
+
+2005-07-19 Juri Linkov <juri@jurta.org>
+
+ * files.texi (Comparing Files): Mention resync for `compare-windows'.
+
+2005-07-18 Juri Linkov <juri@jurta.org>
+
+ * calc.texi (Time Zones, Logical Operations):
+ * cl.texi (Overview):
+ * custom.texi (Easy Customization):
+ * files.texi (Old Versions):
+ * frames.texi (Wheeled Mice):
+ * mule.texi (Specify Coding):
+ * org.texi (TODO types):
+ * sc.texi (Emacs 18 MUAs):
+ * speedbar.texi (Top):
+ * text.texi (Cell Justification):
+ * trouble.texi (After a Crash):
+ * url.texi (History):
+ * xresources.texi (GTK styles):
+ Delete duplicate duplicate words.
+
+2005-07-17 Richard M. Stallman <rms@gnu.org>
+
+ * frames.texi (Creating Frames): Fix foreground color example.
+
+ * custom.texi (Init Examples): Clean up text about conditionals.
+
+2005-07-16 Richard M. Stallman <rms@gnu.org>
+
+ * mini.texi (Completion Commands): Fix command name for ?.
+
+2005-07-16 Johan Bockgard <bojohan@users.sourceforge.net> (tiny change)
+
+ * cl.texi (Type Predicates): Document `atom' type.
+
+2005-07-16 Eli Zaretskii <eliz@gnu.org>
+
+ * display.texi (Standard Faces): Explain that customization of
+ `menu' face has no effect on w32 and with GTK. Add
+ cross-references.
+
+ * cmdargs.texi (General Variables): Clarify the default location
+ of $HOME on w32 systems.
+
+2005-07-15 Jason Rumney <jasonr@gnu.org>
+
+ * cmdargs.texi (General Variables): Default HOME on MS Windows has
+ changed.
+
+2005-07-08 Kenichi Handa <handa@m17n.org>
+
+ * mule.texi (Recognize Coding): Recommend
+ revert-buffer-with-coding-system instead of revert-buffer.
+
+2005-07-07 Richard M. Stallman <rms@gnu.org>
+
+ * anti.texi (Antinews): Mention mode-line-inverse-video.
+
+ * files.texi (Saving): Minor correction about C-x C-w.
+
+ * display.texi (Display Custom): Don't mention mode-line-inverse-video.
+
+2005-07-07 Luc Teirlinck <teirllm@auburn.edu>
+
+ * search.texi (Isearch Scroll): Add example of using the
+ `isearch-scroll' property.
+ (Slow Isearch): Reference anchor for `baud-rate' instead of entire
+ `Display Custom' node.
+ (Regexp Replace): Put text that requires Emacs Lisp knowledge last
+ and de-emphasize it.
+ (Other Repeating Search): `occur' currently can not correctly
+ handle multiline matches. Correct, clarify and update description
+ of `flush-lines' and `keep-lines'.
+
+ * display.texi (Display Custom): Add anchor for `baud-rate'.
+
+2005-07-07 Richard M. Stallman <rms@gnu.org>
+
+ * gnu.texi: Update where to get GNU status; add refs for how to help.
+ Add footnotes 6 and 7.
+
2005-07-04 Lute Kamstra <lute@gnu.org>
Update FSF's address in GPL notices.
@@ -483,7 +734,7 @@
2005-04-10 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
- * xresources.texi (Lucid Resources): Add fonSet resource.
+ * xresources.texi (Lucid Resources): Add fontSet resource.
2005-04-06 Katsumi Yamaoka <yamaoka@jpl.org>
@@ -3702,8 +3953,8 @@
;; coding: iso-2022-7bit
;; End:
- Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001
- Free Software Foundation, Inc.
+ Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002,
+ 2003, 2004, 2005 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted provided the copyright notice and this notice are preserved.
diff --git a/man/Makefile.in b/man/Makefile.in
index b8da48143b..3cc88bf7b9 100644
--- a/man/Makefile.in
+++ b/man/Makefile.in
@@ -1,7 +1,7 @@
#### Makefile for the Emacs Manual and other documentation.
-# Copyright (C) 1994, 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+# 2004, 2005 Free Software Foundation, Inc.
# This file is part of GNU Emacs.
diff --git a/man/abbrevs.texi b/man/abbrevs.texi
index 9ecdac7044..2272b2ba13 100644
--- a/man/abbrevs.texi
+++ b/man/abbrevs.texi
@@ -1,5 +1,6 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 1985, 86, 87, 93, 94, 95, 1997 Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2002, 2003,
+@c 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Abbrevs, Picture, Maintaining, Top
@chapter Abbrevs
diff --git a/man/ack.texi b/man/ack.texi
index 5d9b26be7c..48a3207208 100644
--- a/man/ack.texi
+++ b/man/ack.texi
@@ -1,6 +1,6 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 1994,1995,1996,1997,1999,2000,2001
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2002, 2003,
+@c 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@c
@node Acknowledgments, Screen, Concept Index, Top
diff --git a/man/ada-mode.texi b/man/ada-mode.texi
index a74150fe75..4a25440f99 100644
--- a/man/ada-mode.texi
+++ b/man/ada-mode.texi
@@ -8,7 +8,8 @@
@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@copying
-Copyright @copyright{} 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
diff --git a/man/anti.texi b/man/anti.texi
index c2ffaf7db7..ecff1f06a8 100644
--- a/man/anti.texi
+++ b/man/anti.texi
@@ -1,5 +1,5 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 2005 Free Software Foundation, Inc.
+@c Copyright (C) 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Antinews, Mac OS, X Resources, Top
@@ -18,7 +18,10 @@ the mode line, where they can be more easily seen.
@item
The mode line of the selected window is no longer displayed with a
-special face. All mode lines are created equal.
+special face. All mode lines are created equal. Meanwhile, you can
+use the variable @code{mode-line-inverse-video} to control whether
+mode lines are highlighted at all---@code{nil} means don't highlight
+them.
@item
Clicking on a link with the left mouse button (@kbd{mouse-1}) will
diff --git a/man/autotype.texi b/man/autotype.texi
index 9d88443e89..f760a6f8ae 100644
--- a/man/autotype.texi
+++ b/man/autotype.texi
@@ -1,6 +1,7 @@
\input texinfo
@c This is an annex of the Emacs manual.
-@c Copyright (C) 1994, 1995, 2002 Free Software Foundation, Inc.
+@c Copyright (C) 1994, 1995, 2002, 2003, 2004,
+@c 2005 Free Software Foundation, Inc.
@c Author: Daniel.Pfeiffer@Informatik.START.dbp.de, fax (+49 69) 7588-2389
@setfilename ../info/autotype
@c @node Autotypist, Picture, Abbrevs, Top
@@ -11,7 +12,8 @@
@c @cindex autotypist
@copying
-Copyright @copyright{} 1994, 1995, 1999 Free Software Foundation, Inc.
+Copyright @copyright{} 1994, 1995, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
diff --git a/man/basic.texi b/man/basic.texi
index d94e52b011..2f5aa3162e 100644
--- a/man/basic.texi
+++ b/man/basic.texi
@@ -1,5 +1,6 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 1985,86,87,93,94,95,97,2000,2001 Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
+@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Basic, Minibuffer, Exiting, Top
@chapter Basic Editing Commands
diff --git a/man/buffers.texi b/man/buffers.texi
index 694c778085..9c572ca17c 100644
--- a/man/buffers.texi
+++ b/man/buffers.texi
@@ -1,6 +1,6 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 1985, 86, 87, 93, 94, 95, 97, 2000, 2001, 2004
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
+@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Buffers, Windows, Files, Top
@chapter Using Multiple Buffers
diff --git a/man/building.texi b/man/building.texi
index 69b56f467f..30daa8def2 100644
--- a/man/building.texi
+++ b/man/building.texi
@@ -1,5 +1,6 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 1985,86,87,93,94,95,97,2000,2001 Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
+@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Building, Maintaining, Programs, Top
@chapter Compiling and Testing Programs
@@ -48,16 +49,8 @@ the @samp{*compilation*} buffer.
@item M-x recompile
Invoke a compiler with the same command as in the last invocation of
@kbd{M-x compile}.
-@item M-x grep
-Run @code{grep} asynchronously under Emacs, with matching lines
-listed in the buffer named @samp{*grep*}.
-@item M-x grep-find
-@item M-x find-grep
-Run @code{grep} via @code{find}, with user-specified arguments, and
-collect output in the buffer named @samp{*grep*}.
@item M-x kill-compilation
-@itemx M-x kill-grep
-Kill the running compilation or @code{grep} subprocess.
+Kill the running compilation subprocess.
@end table
@findex compile
@@ -323,13 +316,25 @@ Emacs. @xref{MS-DOS}.
@node Grep Searching
@section Searching with Grep under Emacs
-@findex grep
Just as you can run a compiler from Emacs and then visit the lines
-where there were compilation errors, you can also run @code{grep} and
+with compilation errors, you can also run @code{grep} and
then visit the lines on which matches were found. This works by
treating the matches reported by @code{grep} as if they were ``errors.''
- To do this, type @kbd{M-x grep}, then enter a command line that
+@table @kbd
+@item M-x grep
+Run @code{grep} asynchronously under Emacs, with matching lines
+listed in the buffer named @samp{*grep*}.
+@item M-x grep-find
+@itemx M-x find-grep
+Run @code{grep} via @code{find}, with user-specified arguments, and
+collect output in the buffer named @samp{*grep*}.
+@item M-x kill-grep
+Kill the running @code{grep} subprocess.
+@end table
+
+@findex grep
+ To run @code{grep}, type @kbd{M-x grep}, then enter a command line that
specifies how to run @code{grep}. Use the same arguments you would give
@code{grep} when running it normally: a @code{grep}-style regexp
(usually in single-quotes to quote the shell's special characters)
@@ -768,16 +773,16 @@ session. If you have customized @code{gud-gdb-command-name} in that
way, then you can use @kbd{M-x gdba} to invoke GDB in graphical mode.
@menu
-* Layout:: Control the number of displayed buffers.
-* Breakpoints Buffer:: A breakpoint control panel.
-* Stack Buffer:: Select a frame from the call stack.
-* Watch Expressions:: Monitor variable values in the speedbar.
-* Other Buffers:: Input/output, locals, registers, assembler, threads
- and memory buffers.
+* GDB User Interface Layout:: Control the number of displayed buffers.
+* Breakpoints Buffer:: A breakpoint control panel.
+* Stack Buffer:: Select a frame from the call stack.
+* Watch Expressions:: Monitor variable values in the speedbar.
+* Other GDB User Interface Buffers:: Input/output, locals, registers,
+ assembler, threads and memory buffers.
@end menu
-@node Layout
-@subsubsection Layout
+@node GDB User Interface Layout
+@subsubsection GDB User Interface Layout
@cindex GDB User Interface layout
@findex gdb-many-windows
@@ -912,7 +917,7 @@ FUNCTION::VARIABLE format to display variables in the speedbar.
Since this does not work for variables defined in compound statements,
the default value is @code{nil}.
-@node Other Buffers
+@node Other GDB User Interface Buffers
@subsubsection Other Buffers
@table @asis
diff --git a/man/calc.texi b/man/calc.texi
index a2dd6c7c7d..a4e66de1a3 100644
--- a/man/calc.texi
+++ b/man/calc.texi
@@ -83,7 +83,8 @@
@copying
This file documents Calc, the GNU Emacs calculator.
-Copyright (C) 1990, 1991, 2001, 2002, 2005 Free Software Foundation, Inc.
+Copyright (C) 1990, 1991, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
@@ -118,8 +119,8 @@ Software Foundation raise funds for GNU development.''
@page
@vskip 0pt plus 1filll
-Copyright @copyright{} 1990, 1991, 2001, 2002, 2005
-Free Software Foundation, Inc.
+Copyright @copyright{} 1990, 1991, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
@insertcopying
@end titlepage
@@ -4314,8 +4315,8 @@ even @kbd{V R x max @key{RET}} if you had preferred.)
If your system has the GNUPLOT program, you can see graphs of your
data and your straight line to see how well they match. (If you have
-GNUPLOT 3.0, the following instructions will work regardless of the
-kind of display you have. Some GNUPLOT 2.0, non-X-windows systems
+GNUPLOT 3.0 or higher, the following instructions will work regardless
+of the kind of display you have. Some GNUPLOT 2.0, non-X-windows systems
may require additional steps to view the graphs.)
Let's start by plotting the original data. Recall the ``@var{x}'' and ``@var{y}''
@@ -17574,7 +17575,7 @@ beginning of daylight savings time; converting a date/time form that
falls in this hour results in a time value for the following hour,
from 3 a.m.@: to 4 a.m. At the end of daylight savings time, the
hour from 1 a.m.@: to 2 a.m.@: repeats itself; converting a date/time
-form that falls in in this hour results in a time value for the first
+form that falls in this hour results in a time value for the first
manifestation of that time (@emph{not} the one that occurs one hour later).
If @code{math-daylight-savings-hook} is @code{nil}, then the
@@ -25691,7 +25692,7 @@ stack. It also works elementwise on vectors. For example, if
variable and the lefthand side is a number (as in @samp{2.34 = x}), then
Calc keeps the lefthand side instead. Finally, this command works with
assignments @samp{x := 2.34} as well as equations, always taking the
-the righthand side, and for @samp{=>} (evaluates-to) operators, always
+righthand side, and for @samp{=>} (evaluates-to) operators, always
taking the lefthand side.
@kindex a &
@@ -28694,11 +28695,11 @@ treatment to @samp{=>}.
@noindent
The commands for graphing data begin with the @kbd{g} prefix key. Calc
-uses GNUPLOT 2.0 or 3.0 to do graphics. These commands will only work
+uses GNUPLOT 2.0 or later to do graphics. These commands will only work
if GNUPLOT is available on your system. (While GNUPLOT sounds like
a relative of GNU Emacs, it is actually completely unrelated.
-However, it is free software and can be obtained from the Free
-Software Foundation's machine @samp{prep.ai.mit.edu}.)
+However, it is free software. It can be obtained from
+@samp{http://www.gnuplot.info}.)
@vindex calc-gnuplot-name
If you have GNUPLOT installed on your system but Calc is unable to
@@ -28707,7 +28708,7 @@ in your Calc init file or @file{.emacs}. You may also need to set some Lisp
variables to show Calc how to run GNUPLOT on your system; these
are described under @kbd{g D} and @kbd{g O} below. If you are
using the X window system, Calc will configure GNUPLOT for you
-automatically. If you have GNUPLOT 3.0 and you are not using X,
+automatically. If you have GNUPLOT 3.0 or later and you are not using X,
Calc will configure GNUPLOT to display graphs using simple character
graphics that will work on any terminal.
@@ -28826,7 +28827,7 @@ is the height of the point
at coordinate @expr{(x_i, y_j)} on the surface. The 3D graph will
be displayed from a certain default viewpoint; you can change this
viewpoint by adding a @samp{set view} to the @samp{*Gnuplot Commands*}
-buffer as described later. See the GNUPLOT 3.0 documentation for a
+buffer as described later. See the GNUPLOT documentation for a
description of the @samp{set view} command.
Each point in the matrix will be displayed as a dot in the graph,
@@ -30268,10 +30269,11 @@ Plain formulas are preceded and followed by @samp{%%%} signs
by default. This notation has the advantage that the @samp{%}
character begins a comment in @TeX{} and La@TeX{}, so if your formula is
embedded in a @TeX{} or La@TeX{} document its plain version will be
-invisible in the final printed copy. @xref{Customizing
-Embedded Mode}, to see how to change the ``plain'' formula
-delimiters, say to something that @dfn{eqn} or some other
-formatter will treat as a comment.
+invisible in the final printed copy. Certain major modes have different
+delimiters to ensure that the ``plain'' version will be
+in a comment for those modes, also.
+See @ref{Customizing Embedded Mode} to see how to change the ``plain''
+formula delimiters.
There are several notations which Calc's parser for ``big''
formatted formulas can't yet recognize. In particular, it can't
@@ -30696,8 +30698,9 @@ formula are never used (except for global annotations, described
below).
The scan does not look for the leading @samp{% }, only for the
-square brackets and the text they enclose. You can edit the mode
-annotations to a style that works better in context if you wish.
+square brackets and the text they enclose. In fact, the leading
+characters are different for different major modes. You can edit the
+mode annotations to a style that works better in context if you wish.
@xref{Customizing Embedded Mode}, to see how to change the style
that Calc uses when it generates the annotations. You can write
mode annotations into the file yourself if you know the syntax;
@@ -30797,14 +30800,11 @@ You can modify Embedded mode's behavior by setting various Lisp
variables described here. These variables are customizable
(@pxref{Customizable Variables}), or you can use @kbd{M-x set-variable}
or @kbd{M-x edit-options} to adjust a variable on the fly.
-(Another possibility would
-be to use a file-local variable annotation at the end of the
-file; @pxref{File Variables, , Local Variables in Files, emacs, the
-Emacs manual}.)
-
-While none of these variables will be buffer-local by default, you
-can make any of them local to any Embedded mode buffer. (Their
-values in the @samp{*Calculator*} buffer are never used.)
+(Another possibility would be to use a file-local variable annotation at
+the end of the file;
+@pxref{File Variables, , Local Variables in Files, emacs, the Emacs manual}.)
+Many of the variables given mentioned here can be set to depend on the
+major mode of the editing buffer (@pxref{Customizable Variables}).
@vindex calc-embedded-open-formula
The @code{calc-embedded-open-formula} variable holds a regular
@@ -30887,11 +30887,13 @@ begins a ``plain'' formula written in front of the formatted
formula when @kbd{d p} mode is turned on. Note that this is an
actual string, not a regular expression, because Calc must be able
to write this string into a buffer as well as to recognize it.
-The default string is @code{"%%% "} (note the trailing space).
+The default string is @code{"%%% "} (note the trailing space), but may
+be different for certain major modes.
@vindex calc-embedded-close-plain
The @code{calc-embedded-close-plain} variable is a string which
-ends a ``plain'' formula. The default is @code{" %%%\n"}. Without
+ends a ``plain'' formula. The default is @code{" %%%\n"}, but may be
+different for different major modes. Without
the trailing newline here, the first line of a Big mode formula
that followed might be shifted over with respect to the other lines.
@@ -30921,11 +30923,12 @@ not activate just anything surrounded by formula delimiters; after
all, blank lines are considered formula delimiters by default!
But if your language includes a delimiter which can only occur
actually in front of a formula, you can take advantage of it here.
-The default pattern is @code{"%Embed\n\\(% .*\n\\)*"}, which
-checks for @samp{%Embed} followed by any number of lines beginning
-with @samp{%} and a space. This last is important to make Calc
-consider mode annotations part of the pattern, so that the formula's
-opening delimiter really is sure to follow the pattern.
+The default pattern is @code{"%Embed\n\\(% .*\n\\)*"}, but may be
+different for different major modes.
+This pattern will check for @samp{%Embed} followed by any number of
+lines beginning with @samp{%} and a space. This last is important to
+make Calc consider mode annotations part of the pattern, so that the
+formula's opening delimiter really is sure to follow the pattern.
@vindex calc-embedded-open-mode
The @code{calc-embedded-open-mode} variable is a string (not a
@@ -30933,14 +30936,15 @@ regular expression) which should precede a mode annotation.
Calc never scans for this string; Calc always looks for the
annotation itself. But this is the string that is inserted before
the opening bracket when Calc adds an annotation on its own.
-The default is @code{"% "}.
+The default is @code{"% "}, but may be different for different major
+modes.
@vindex calc-embedded-close-mode
The @code{calc-embedded-close-mode} variable is a string which
follows a mode annotation written by Calc. Its default value
-is simply a newline, @code{"\n"}. If you change this, it is a
-good idea still to end with a newline so that mode annotations
-will appear on lines by themselves.
+is simply a newline, @code{"\n"}, but may be different for different
+major modes. If you change this, it is a good idea still to end with a
+newline so that mode annotations will appear on lines by themselves.
@node Programming, Customizable Variables, Embedded Mode, Top
@chapter Programming
@@ -34725,6 +34729,20 @@ which the window should use. Unlike @code{calc-window-hook}, this hook
must @emph{not} switch into the new window.
@end defvar
+@defvar calc-embedded-mode-hook
+This hook is called the first time that Embedded mode is entered.
+@end defvar
+
+@defvar calc-embedded-new-buffer-hook
+This hook is called each time that Embedded mode is entered in a
+new buffer.
+@end defvar
+
+@defvar calc-embedded-new-formula-hook
+This hook is called each time that Embedded mode is enabled for a
+new formula.
+@end defvar
+
@defvar calc-edit-mode-hook
This hook is called by @code{calc-edit} (and the other ``edit''
commands) when the temporary editing buffer is being created.
@@ -34894,6 +34912,7 @@ The default value of @code{calc-language-alist} is
@end defvar
@defvar calc-embedded-announce-formula
+@defvarx calc-embedded-announce-formula-alist
See @ref{Customizing Embedded Mode}.@*
The variable @code{calc-embedded-announce-formula} helps determine
what formulas @kbd{M-# a} will activate in a buffer. It is a
@@ -34905,10 +34924,33 @@ activated. (Calc also uses other patterns to find formulas, such as
The default pattern is @code{"%Embed\n\\(% .*\n\\)*"}, which checks
for @samp{%Embed} followed by any number of lines beginning with
@samp{%} and a space.
+
+The variable @code{calc-embedded-announce-formula-alist} is used to
+set @code{calc-embedded-announce-formula} to different regular
+expressions depending on the major mode of the editing buffer.
+It consists of a list of pairs of the form @code{(@var{MAJOR-MODE} .
+@var{REGEXP})}, and its default value is
+@example
+ ((c++-mode . "//Embed\n\\(// .*\n\\)*")
+ (c-mode . "/\\*Embed\\*/\n\\(/\\* .*\\*/\n\\)*")
+ (f90-mode . "!Embed\n\\(! .*\n\\)*")
+ (fortran-mode . "C Embed\n\\(C .*\n\\)*")
+ (html-helper-mode . "<!-- Embed -->\n\\(<!-- .* -->\n\\)*")
+ (html-mode . "<!-- Embed -->\n\\(<!-- .* -->\n\\)*")
+ (nroff-mode . "\\\\\"Embed\n\\(\\\\\" .*\n\\)*")
+ (pascal-mode . "@{Embed@}\n\\(@{.*@}\n\\)*")
+ (sgml-mode . "<!-- Embed -->\n\\(<!-- .* -->\n\\)*")
+ (xml-mode . "<!-- Embed -->\n\\(<!-- .* -->\n\\)*")
+ (texinfo-mode . "@@c Embed\n\\(@@c .*\n\\)*"))
+@end example
+Any major modes added to @code{calc-embedded-announce-formula-alist}
+should also be added to @code{calc-embedded-open-close-plain-alist}
+and @code{calc-embedded-open-close-mode-alist}.
@end defvar
@defvar calc-embedded-open-formula
@defvarx calc-embedded-close-formula
+@defvarx calc-embedded-open-close-formula-alist
See @ref{Customizing Embedded Mode}.@*
The variables @code{calc-embedded-open-formula} and
@code{calc-embedded-open-formula} control the region that Calc will
@@ -34933,10 +34975,20 @@ Lines beginning with @samp{.EQ} and @samp{.EN} (@dfn{eqn} delimiters);
@item
Lines containing a single @samp{%} or @samp{.\"} symbol and nothing else.
@end enumerate
+
+The variable @code{calc-embedded-open-close-formula-alist} is used to
+set @code{calc-embedded-open-formula} and
+@code{calc-embedded-close-formula} to different regular
+expressions depending on the major mode of the editing buffer.
+It consists of a list of lists of the form
+@code{(@var{MAJOR-MODE} @var{OPEN-FORMULA-REGEXP}
+@var{CLOSE-FORMULA-REGEXP})}, and its default value is
+@code{nil}.
@end defvar
@defvar calc-embedded-open-word
@defvarx calc-embedded-close-word
+@defvarx calc-embedded-open-close-word-alist
See @ref{Customizing Embedded Mode}.@*
The variables @code{calc-embedded-open-word} and
@code{calc-embedded-close-word} control the region that Calc will
@@ -34946,10 +34998,20 @@ regular expressions.
The default values of @code{calc-embedded-open-word} and
@code{calc-embedded-close-word} are @code{"^\\|[^-+0-9.eE]"} and
@code{"$\\|[^-+0-9.eE]"} respectively.
+
+The variable @code{calc-embedded-open-close-word-alist} is used to
+set @code{calc-embedded-open-word} and
+@code{calc-embedded-close-word} to different regular
+expressions depending on the major mode of the editing buffer.
+It consists of a list of lists of the form
+@code{(@var{MAJOR-MODE} @var{OPEN-WORD-REGEXP}
+@var{CLOSE-WORD-REGEXP})}, and its default value is
+@code{nil}.
@end defvar
@defvar calc-embedded-open-plain
@defvarx calc-embedded-close-plain
+@defvarx calc-embedded-open-close-plain-alist
See @ref{Customizing Embedded Mode}.@*
The variables @code{calc-embedded-open-plain} and
@code{calc-embedded-open-plain} are used to delimit ``plain''
@@ -34962,10 +35024,35 @@ The default string for @code{calc-embedded-open-plain} is
@code{calc-embedded-close-plain} is @code{" %%%\n"}, without
the trailing newline here, the first line of a Big mode formula
that followed might be shifted over with respect to the other lines.
+
+The variable @code{calc-embedded-open-close-plain-alist} is used to
+set @code{calc-embedded-open-plain} and
+@code{calc-embedded-close-plain} to different strings
+depending on the major mode of the editing buffer.
+It consists of a list of lists of the form
+@code{(@var{MAJOR-MODE} @var{OPEN-PLAIN-STRING}
+@var{CLOSE-PLAIN-STRING})}, and its default value is
+@example
+ ((c++-mode "// %% " " %%\n")
+ (c-mode "/* %% " " %% */\n")
+ (f90-mode "! %% " " %%\n")
+ (fortran-mode "C %% " " %%\n")
+ (html-helper-mode "<!-- %% " " %% -->\n")
+ (html-mode "<!-- %% " " %% -->\n")
+ (nroff-mode "\\\" %% " " %%\n")
+ (pascal-mode "@{%% " " %%@}\n")
+ (sgml-mode "<!-- %% " " %% -->\n")
+ (xml-mode "<!-- %% " " %% -->\n")
+ (texinfo-mode "@@c %% " " %%\n"))
+@end example
+Any major modes added to @code{calc-embedded-open-close-plain-alist}
+should also be added to @code{calc-embedded-announce-formula-alist}
+and @code{calc-embedded-open-close-mode-alist}.
@end defvar
@defvar calc-embedded-open-new-formula
@defvarx calc-embedded-close-new-formula
+@defvarx calc-embedded-open-close-new-formula-alist
See @ref{Customizing Embedded Mode}.@*
The variables @code{calc-embedded-open-new-formula} and
@code{calc-embedded-close-new-formula} are strings which are
@@ -34980,10 +35067,20 @@ also @code{"\n\n"}. The final newline is omitted by @w{@kbd{M-# f}}
if typed at the end of a line. (It follows that if @kbd{M-# f} is
typed on a blank line, both a leading opening newline and a trailing
closing newline are omitted.)
+
+The variable @code{calc-embedded-open-close-new-formula-alist} is used to
+set @code{calc-embedded-open-new-formula} and
+@code{calc-embedded-close-new-formula} to different strings
+depending on the major mode of the editing buffer.
+It consists of a list of lists of the form
+@code{(@var{MAJOR-MODE} @var{OPEN-NEW-FORMULA-STRING}
+@var{CLOSE-NEW-FORMULA-STRING})}, and its default value is
+@code{nil}.
@end defvar
@defvar calc-embedded-open-mode
@defvarx calc-embedded-close-mode
+@defvarx calc-embedded-open-close-mode-alist
See @ref{Customizing Embedded Mode}.@*
The variables @code{calc-embedded-open-mode} and
@code{calc-embedded-close-mode} are strings which Calc will place before
@@ -34997,6 +35094,30 @@ and the default value of @code{calc-embedded-close-mode} is
If you change the value of @code{calc-embedded-close-mode}, it is a good
idea still to end with a newline so that mode annotations will appear on
lines by themselves.
+
+The variable @code{calc-embedded-open-close-mode-alist} is used to
+set @code{calc-embedded-open-mode} and
+@code{calc-embedded-close-mode} to different strings
+expressions depending on the major mode of the editing buffer.
+It consists of a list of lists of the form
+@code{(@var{MAJOR-MODE} @var{OPEN-MODE-STRING}
+@var{CLOSE-MODE-STRING})}, and its default value is
+@example
+ ((c++-mode "// " "\n")
+ (c-mode "/* " " */\n")
+ (f90-mode "! " "\n")
+ (fortran-mode "C " "\n")
+ (html-helper-mode "<!-- " " -->\n")
+ (html-mode "<!-- " " -->\n")
+ (nroff-mode "\\\" " "\n")
+ (pascal-mode "@{ " " @}\n")
+ (sgml-mode "<!-- " " -->\n")
+ (xml-mode "<!-- " " -->\n")
+ (texinfo-mode "@@c " "\n"))
+@end example
+Any major modes added to @code{calc-embedded-open-close-mode-alist}
+should also be added to @code{calc-embedded-announce-formula-alist}
+and @code{calc-embedded-open-close-plain-alist}.
@end defvar
@node Reporting Bugs, Summary, Customizable Variables, Top
diff --git a/man/calendar.texi b/man/calendar.texi
index 293905ca54..e5ddaa28e1 100644
--- a/man/calendar.texi
+++ b/man/calendar.texi
@@ -1,6 +1,6 @@
@c This is part of the Emacs manual.
@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
-@c 2005 Free Software Foundation, Inc.
+@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Calendar/Diary, Gnus, Dired, Top
@chapter The Calendar and the Diary
@@ -235,9 +235,9 @@ the months on it. Scrolling the calendar means moving the strip
horizontally, so that new months become visible in the window.
@table @kbd
-@item C-x <
+@item <
Scroll calendar one month forward (@code{scroll-calendar-left}).
-@item C-x >
+@item >
Scroll calendar one month backward (@code{scroll-calendar-right}).
@item C-v
@itemx @key{NEXT}
@@ -249,15 +249,15 @@ Scroll calendar three months backward
(@code{scroll-calendar-right-three-months}).
@end table
-@kindex C-x < @r{(Calendar mode)}
+@kindex < @r{(Calendar mode)}
@findex scroll-calendar-left
-@kindex C-x > @r{(Calendar mode)}
+@kindex > @r{(Calendar mode)}
@findex scroll-calendar-right
The most basic calendar scroll commands scroll by one month at a
time. This means that there are two months of overlap between the
-display before the command and the display after. @kbd{C-x <} scrolls
+display before the command and the display after. @kbd{<} scrolls
the calendar contents one month to the left; that is, it moves the
-display forward in time. @kbd{C-x >} scrolls the contents to the
+display forward in time. @kbd{>} scrolls the contents to the
right, which moves backwards in time.
@kindex C-v @r{(Calendar mode)}
diff --git a/man/cc-mode.texi b/man/cc-mode.texi
index b9113088d4..5f9164dbf3 100644
--- a/man/cc-mode.texi
+++ b/man/cc-mode.texi
@@ -67,7 +67,7 @@
This manual is for CC Mode in Emacs.
Copyright @copyright{} 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-2003 Free Software Foundation, Inc.
+ 2003, 2004, 2005 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
diff --git a/man/cl.texi b/man/cl.texi
index c150e0d2b4..8fc54ed02d 100644
--- a/man/cl.texi
+++ b/man/cl.texi
@@ -5,7 +5,7 @@
@copying
This file documents the GNU Emacs Common Lisp emulation package.
-Copyright (C) 1993, 2002, 2005 Free Software Foundation, Inc.
+Copyright (C) 1993, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
@@ -136,7 +136,7 @@ Lisp version of the function (e.g., @code{assoc*}).
The package described here was written by Dave Gillespie,
@file{daveg@@synaptics.com}. It is a total rewrite of the original
1986 @file{cl.el} package by Cesar Quiroz. Most features of the
-the Quiroz package have been retained; any incompatibilities are
+Quiroz package have been retained; any incompatibilities are
noted in the descriptions below. Care has been taken in this
version to ensure that each function is defined efficiently,
concisely, and with minimal impact on the rest of the Emacs
@@ -736,6 +736,11 @@ Thus @code{(typep @var{object} 'null)} is equivalent to
@code{(null @var{object})}.
@item
+The type symbol @code{atom} represents all objects that are not cons
+cells. Thus @code{(typep @var{object} 'atom)} is equivalent to
+@code{(atom @var{object})}.
+
+@item
The type symbol @code{real} is a synonym for @code{number}, and
@code{fixnum} is a synonym for @code{integer}.
diff --git a/man/cmdargs.texi b/man/cmdargs.texi
index 5094a924cc..dad7e61dbf 100644
--- a/man/cmdargs.texi
+++ b/man/cmdargs.texi
@@ -1,6 +1,6 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 1985, 86, 87, 93, 94, 95, 97,
-@c 2001, 03, 04, 2005 Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002,
+@c 2003, 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Emacs Invocation, X Resources, GNU Free Documentation License, Top
@appendix Command Line Arguments for Emacs Invocation
@@ -478,10 +478,15 @@ This variable defaults to @file{~/.bash_history} if you use Bash, to
otherwise.
@item HOME
The location of the user's files in the directory tree; used for
-expansion of file names starting with a tilde (@file{~}). On MS-DOS, it
-defaults to the directory from which Emacs was started, with @samp{/bin}
-removed from the end if it was present. On Windows, the default value
-of @env{HOME} is @file{C:/}, the root directory of drive @file{C:}.
+expansion of file names starting with a tilde (@file{~}). On MS-DOS,
+it defaults to the directory from which Emacs was started, with
+@samp{/bin} removed from the end if it was present. On Windows, the
+default value of @env{HOME} is the @file{Application Data}
+subdirectory of the user profile directory (normally, this is
+@file{C:/Documents and Settings/@var{username}/Application Data},
+where @var{username} is your user name), though for backwards
+compatibility @file{C:/} will be used instead if a @file{.emacs} file
+is found there.
@item HOSTNAME
The name of the machine that Emacs is running on.
@item INCPATH
diff --git a/man/commands.texi b/man/commands.texi
index e020847341..facc3d6f3a 100644
--- a/man/commands.texi
+++ b/man/commands.texi
@@ -1,5 +1,6 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 1985, 86, 87, 93, 94, 95, 1997 Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2002, 2003,
+@c 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@iftex
@chapter Characters, Keys and Commands
diff --git a/man/custom.texi b/man/custom.texi
index ffded429c4..d531d92eb0 100644
--- a/man/custom.texi
+++ b/man/custom.texi
@@ -1,6 +1,6 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 1985,86,87,93,94,95,97,2000,2001,2002,2004,2005
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
+@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Customization, Quitting, Amusements, Top
@chapter Customization
@@ -33,9 +33,6 @@ replay sequences of keys.
you can control their functioning.
* Key Bindings:: The keymaps say what command each key runs.
By changing them, you can "redefine keys".
-* Keyboard Translations:: If your keyboard passes an undesired code
- for a key, you can tell Emacs to
- substitute another code.
* Syntax:: The syntax table controls how words and
expressions are parsed.
* Init File:: How to write common customizations in the
@@ -78,16 +75,16 @@ directly turns Outline minor mode on and off. To check whether a
given minor mode works this way, use @kbd{C-h v} to ask for
documentation on the variable name.
- These minor-mode variables provide a good way for Lisp programs to turn
-minor modes on and off; they are also useful in a file's local variables
-list. But please think twice before setting minor modes with a local
-variables list, because most minor modes are a matter of user
-preference---other users editing the same file might not want the same
-minor modes you prefer.
+ These minor-mode variables provide a good way for Lisp programs to
+turn minor modes on and off; they are also useful in a file's local
+variables list (@pxref{File Variables}). But please think twice
+before setting minor modes with a local variables list, because most
+minor modes are a matter of user preference---other users editing the
+same file might not want the same minor modes you prefer.
- The buffer-local minor modes include Abbrev mode, Auto Fill mode,
-Auto Save mode, Font-Lock mode, Glasses mode, ISO Accents mode,
-Outline minor mode, Overwrite mode, and Binary Overwrite mode.
+ The most useful buffer-local minor modes include Abbrev mode, Auto
+Fill mode, Auto Save mode, Font-Lock mode, Glasses mode, ISO Accents
+mode, Outline minor mode, Overwrite mode, and Binary Overwrite mode.
Abbrev mode allows you to define abbreviations that automatically expand
as you type them. For example, @samp{amd} might expand to @samp{abbrev
@@ -146,11 +143,11 @@ they overwrite other characters and can be overwritten by them.
In Binary Overwrite mode, digits after @kbd{C-q} specify an
octal character code, as usual.
- The following minor modes normally apply to all buffers at once.
-Since each is enabled or disabled by the value of a variable, you
-@emph{can} set them differently for particular buffers, by explicitly
-making the corresponding variables local in those buffers.
-@xref{Locals}.
+ Here are some useful minor modes that normally apply to all buffers
+at once. Since each is enabled or disabled by the value of a
+variable, you @emph{can} set them differently for particular buffers,
+by explicitly making the corresponding variables local in those
+buffers. @xref{Locals}.
Icomplete mode displays an indication of available completions when
you are in the minibuffer and completion is active. @xref{Completion
@@ -184,7 +181,7 @@ attributes (@pxref{Faces}).
@findex customize
@cindex customization buffer
- You can browse interactively through the the user options and change
+ You can browse interactively through the user options and change
some of them using @kbd{M-x customize}. This command creates a
@dfn{customization buffer}, which offers commands to navigate through
a logically organized structure of the Emacs user options; you can
@@ -222,10 +219,6 @@ under it. It looks like this, in part:
Customization of the One True Editor.
See also [Manual].
-Confirm Kill Emacs: [Hide] [Value Menu] Don't confirm
- [State]: this option is unchanged from its standard setting.
-How to ask for confirmation when leaving Emacs. [More]
-
Editing group: [Go to Group]
Basic text editing facilities.
@@ -854,8 +847,9 @@ recently added hook functions are executed first.
If you play with adding various different versions of a hook
function by calling @code{add-hook} over and over, remember that all
-the versions you added will remain in the hook variable together.
-To clear them out, you can do @code{(setq @var{hook-variable} nil)}.
+the versions you added will remain in the hook variable together. You
+can clear out individual functions with @code{remove-hook}, or do
+@code{(setq @var{hook-variable} nil)} to remove everything.
@node Locals
@subsection Local Variables
@@ -1638,14 +1632,14 @@ word:
Many keyboards have a ``numeric keypad'' on the right hand side.
The numeric keys in the keypad double up as cursor motion keys,
toggled by a key labelled @samp{Num Lock}. By default, Emacs
-translates these keys to the corresponding keys in the main keyboard
-(@pxref{Keyboard Translations}). For example, when @samp{Num Lock} is
-on, the key labelled @samp{8} on the numeric keypad produces
-@code{kp-8}, which is translated to @kbd{8}; when @samp{Num Lock} is
-off, the same key produces @code{kp-up}, which is translated to
-@key{UP}. If you rebind a key such as @kbd{8} or @key{UP}, it affects
-the equivalent keypad key too. However, if you rebind a @samp{kp-}
-key directly, that won't affect its non-keypad equivalent.
+translates these keys to the corresponding keys in the main keyboard.
+For example, when @samp{Num Lock} is on, the key labelled @samp{8} on
+the numeric keypad produces @code{kp-8}, which is translated to
+@kbd{8}; when @samp{Num Lock} is off, the same key produces
+@code{kp-up}, which is translated to @key{UP}. If you rebind a key
+such as @kbd{8} or @key{UP}, it affects the equivalent keypad key too.
+However, if you rebind a @samp{kp-} key directly, that won't affect
+its non-keypad equivalent.
Emacs provides a convenient method for binding the numeric keypad
keys, using the variables @code{keypad-setup},
@@ -1893,52 +1887,6 @@ invoke it; disabling also applies if the command is invoked using
@kbd{M-x}. Disabling a command has no effect on calling it as a
function from Lisp programs.
-@node Keyboard Translations
-@section Keyboard Translations
-
- Some keyboards do not make it convenient to send all the special
-characters that Emacs uses. The most common problem case is the
-@key{DEL} character. Some keyboards provide no convenient way to type
-this very important character---usually because they were designed to
-expect the character @kbd{C-h} to be used for deletion. On these
-keyboards, if you press the key normally used for deletion, Emacs handles
-the @kbd{C-h} as a prefix character and offers you a list of help
-options, which is not what you want.
-
-@cindex keyboard translations
-@findex keyboard-translate
- You can work around this problem within Emacs by setting up keyboard
-translations to turn @kbd{C-h} into @key{DEL} and @key{DEL} into
-@kbd{C-h}, as follows:
-
-@example
-;; @r{Translate @kbd{C-h} to @key{DEL}.}
-(keyboard-translate ?\C-h ?\C-?)
-
-;; @r{Translate @key{DEL} to @kbd{C-h}.}
-(keyboard-translate ?\C-? ?\C-h)
-@end example
-
- Keyboard translations are not the same as key bindings in keymaps
-(@pxref{Keymaps}). Emacs contains numerous keymaps that apply in
-different situations, but there is only one set of keyboard
-translations, and it applies to every character that Emacs reads from
-the terminal. Keyboard translations take place at the lowest level of
-input processing; the keys that are looked up in keymaps contain the
-characters that result from keyboard translation.
-
- On a window system, the keyboard key named @key{DELETE} is a function
-key and is distinct from the @acronym{ASCII} character named @key{DEL}.
-@xref{Named ASCII Chars}. Keyboard translations affect only @acronym{ASCII}
-character input, not function keys; thus, the above example used on a
-window system does not affect the @key{DELETE} key. However, the
-translation above isn't necessary on window systems, because Emacs can
-also distinguish between the @key{BACKSPACE} key and @kbd{C-h}; and it
-normally treats @key{BACKSPACE} as @key{DEL}.
-
- For full information about how to use keyboard translations, see
-@ref{Translating Input,,,elisp, The Emacs Lisp Reference Manual}.
-
@node Syntax
@section The Syntax Table
@cindex syntax table
@@ -2313,42 +2261,37 @@ Enable the use of the command @code{narrow-to-region} without confirmation.
@end example
@item
-Adjusting the configuration to various contexts.
-
-In most of the cases, people want their Emacs to behave the same on
-all their machines, so their configuration should be the same, no
-matter whether it's GNU/Linux or not, under X11 or on a tty, with one
-version of Emacs or another, ...
+Adjusting the configuration to various platforms and Emacs versions.
-What can happen, tho, is that depending on the circumstance some
-features may or may not be available. In that case just prepend each
-such customization with a little test that ensures that the feature
-can be used. The best tests are usually checking that the feature is
-available, rather than checking what kind of environment is
-being used.
+Users typically want Emacs to behave the same on all systems, so the
+same init file is right for all platforms. However, sometimes it
+happens that a function you use for customizing Emacs is not available
+on some platforms or in older Emacs versions. To deal with that
+situation, put the customization inside a conditional that tests whether
+the function or facility is available, like this:
@example
-(if (fboundp 'blinking-cursor-mode)
- (blinking-cursor-mode 0))
-@end example
+(if (fboundp 'blink-cursor-mode)
+ (blink-cursor-mode 0))
-@example
(if (boundp 'coding-category-utf-8)
- (set-coding-priority '(coding-category-utf-8)))
+ (set-coding-priority '(coding-category-utf-8)))
@end example
+@noindent
+You can also simply disregard the errors that occur if the
+function is not defined.
+
@example
-(require 'cl) ; To define `ignore-errors'.
-(ignore-errors (set-face-background 'region "grey75"))
+(condition case ()
+ (set-face-background 'region "grey75")
+ (error nil))
@end example
-Note also that a @code{setq} on a variable which does not exist is
-generally harmless, so those usually do not need to be made
-conditional on any kind of test.
-
+A @code{setq} on a variable which does not exist is generally
+harmless, so those do not need a conditional.
@end itemize
-
@node Terminal Init
@subsection Terminal-specific Initialization
diff --git a/man/dired-x.texi b/man/dired-x.texi
index 3e1c724dd5..c1a3e9dbe6 100644
--- a/man/dired-x.texi
+++ b/man/dired-x.texi
@@ -28,7 +28,8 @@
This documents the ``extra'' features for Dired Mode for GNU Emacs found in
the file @file{dired-x.el}.
-Copyright @copyright{} 1993, 1994, 2001, 2002 Free Software Foundation, Inc.
+Copyright @copyright{} 1993, 1994, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
@quotation
Permission is granted to make and distribute verbatim copies of this
diff --git a/man/dired.texi b/man/dired.texi
index 8cb4646075..051c735f99 100644
--- a/man/dired.texi
+++ b/man/dired.texi
@@ -1,6 +1,6 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 1985,86,87,93,94,95,97,2000,2001
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
+@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Dired, Calendar/Diary, Rmail, Top
@chapter Dired, the Directory Editor
@@ -1075,7 +1075,7 @@ use @kbd{M-x find-grep-dired}. This command reads two minibuffer
arguments, @var{directory} and @var{regexp}; it chooses all the files in
@var{directory} or its subdirectories that contain a match for
@var{regexp}. It works by running the programs @code{find} and
-@code{grep}. See also @kbd{M-x grep-find}, in @ref{Compilation}.
+@code{grep}. See also @kbd{M-x grep-find}, in @ref{Grep Searching}.
Remember to write the regular expression for @code{grep}, not for Emacs.
(An alternative method of showing files whose contents match a given
regexp is the @kbd{% g @var{regexp}} command, see @ref{Marks vs Flags}.)
diff --git a/man/display.texi b/man/display.texi
index 02854b3d6d..58e69ad4e6 100644
--- a/man/display.texi
+++ b/man/display.texi
@@ -1,6 +1,6 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 1985, 86, 87, 93, 94, 95, 1997, 2000, 2001, 2002, 2005
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
+@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Display, Search, Registers, Top
@chapter Controlling the Display
@@ -104,14 +104,18 @@ future Emacs versions.
To see what faces are currently defined, and what they look like,
type @kbd{M-x list-faces-display}. It's possible for a given face to
look different in different frames; this command shows the appearance
-in the frame in which you type it. Here are the standard faces
-for specifying text appearance:
+in the frame in which you type it.
+
+Here are the standard faces for specifying text appearance. You can
+use them on specific text, when you want the effects they produce.
@table @code
@item default
This face is used for ordinary text that doesn't specify any other face.
@item bold
This face uses a bold variant of the default font, if it has one.
+It's up to you to choose a default font that has a bold variant,
+if you want to use one.
@item italic
This face uses an italic variant of the default font, if it has one.
@item bold-italic
@@ -119,9 +123,15 @@ This face uses a bold italic variant of the default font, if it has one.
@item underline
This face underlines text.
@item fixed-pitch
-The basic fixed-pitch face.
+This face forces use of a particular fixed-width font.
@item variable-pitch
-The basic variable-pitch face.
+This face forces use of a particular variable-width font. It's
+reasonable to customize this to use a different variable-width font,
+if you like, but you should not make it a fixed-width font.
+@item shadow
+This face is used for making the text less noticeable than the surrounding
+ordinary text. Usually this can be achieved by using shades of gray in
+contrast with either black or white default foreground color.
@end table
Here's an incomplete list of faces used to highlight parts of the
@@ -146,19 +156,15 @@ mode is enabled---see below).
This face is used for displaying a secondary X selection (@pxref{Secondary
Selection}).
@item trailing-whitespace
-The face for highlighting trailing whitespace when
-@code{show-trailing-whitespace} is non-@code{nil}; see @ref{Useless
-Whitespace}.
+The face for highlighting excess spaces and tabs at the end of a line
+when @code{show-trailing-whitespace} is non-@code{nil}; see
+@ref{Useless Whitespace}.
@item nobreak-space
The face for displaying the character ``nobreak space''.
@item escape-glyph
The face for highlighting the @samp{\} or @samp{^} that indicates
a control character. It's also used when @samp{\} indicates a
nobreak space or nobreak (soft) hyphen.
-@item shadow
-The basic face for making the text less noticeable than the surrounding
-ordinary text. Usually this is achieved by using shades of grey in
-contrast with either black or white default foreground color.
@end table
@cindex @code{region} face
@@ -175,10 +181,13 @@ appearance of these parts of the frame.
@table @code
@item mode-line
-This face is used for the mode line of the currently selected window.
-By default, it's drawn with shadows for a ``raised'' effect on window
-systems, and drawn as the inverse of the default face on non-windowed
-terminals.
+@itemx modeline
+This face is used for the mode line of the currently selected window,
+and for menu bars when toolkit menus are not used. By default, it's
+drawn with shadows for a ``raised'' effect on window systems, and
+drawn as the inverse of the default face on non-windowed terminals.
+@code{modeline} is an alias for the @code{mode-line} face, for
+compatibility with old Emacs versions.
@item mode-line-inactive
Like @code{mode-line}, but used for mode lines of the windows other
than the selected one (if @code{mode-line-in-non-selected-windows} is
@@ -186,15 +195,22 @@ non-@code{nil}). This face inherits from @code{mode-line}, so changes
in that face affect mode lines in all windows.
@item header-line
Similar to @code{mode-line} for a window's header line. Most modes
-don't use the header line, but the Info mode does.
+don't use the header line, but some special modes, such the Info mode, do.
@item vertical-border
-This face is used for the vertical divider between windows on
-character terminals. By default this face inherits from the
-@code{mode-line-inactive} face.
+This face is used for the vertical divider between windows.
+By default this face inherits from the @code{mode-line-inactive} face
+on character terminals. On window systems the foreground color of
+this face is used for the vertical line between windows without
+scrollbars.
@item minibuffer-prompt
+@cindex @code{minibuffer-prompt} face
+@vindex minibuffer-prompt-properties
This face is used for the prompt strings displayed in the minibuffer.
+By default, Emacs automatically adds this face to the value of
+@code{minibuffer-prompt-properties}, which is a list of text
+properties used to display the prompt text.
@item fringe
-@cindex fringe
+@cindex @code{fringe} face
The face for the fringes to the left and right of windows on graphic
displays. (The fringes are the narrow portions of the Emacs frame
between the text area and the window's right and left borders.)
@@ -214,9 +230,16 @@ colors of this face affect the appearance of tool bar icons. @xref{Tool Bars}.
@item tooltip
This face is used for tooltips. @xref{Tooltips}.
@item menu
-This face determines the colors and font of Emacs's menus. Setting the
-font of LessTif/Motif menus is currently not supported; attempts to set
-the font are ignored in this case. @xref{Menu Bars}.
+@cindex menu bar appearance
+@cindex @code{menu} face, no effect if customized
+@cindex customization of @code{menu} face
+This face determines the colors and font of Emacs's menus. @xref{Menu
+Bars}. Setting the font of LessTif/Motif menus is currently not
+supported; attempts to set the font are ignored in this case.
+Likewise, attempts to customize this face in Emacs built with GTK and
+in the MS-Windows port are ignored by the respective GUI toolkits;
+you need to use system-wide styles and options to change the
+appearance of the menus.
@end table
@node Font Lock
@@ -1004,15 +1027,6 @@ global-hl-line-mode} enables or disables the same mode globally.
This section contains information for customization only. Beginning
users should skip it.
-@vindex mode-line-inverse-video
- The variable @code{mode-line-inverse-video} is an obsolete way of
-controlling whether the mode line is displayed in inverse video; the
-preferred way of doing this is to change the @code{mode-line} face.
-@xref{Mode Line}. However, if @code{mode-line-inverse-video} has a
-value of @code{nil}, then the @code{mode-line} face will be ignored,
-and mode-lines will be drawn using the default text face.
-@xref{Faces}.
-
@vindex inverse-video
If the variable @code{inverse-video} is non-@code{nil}, Emacs attempts
to invert all the lines of the display from what they normally are.
@@ -1135,7 +1149,7 @@ is the default value for @code{indicate-buffer-boundaries} in buffers
that do not override it.
@vindex baud-rate
- The variable @code{baud-rate} holds the output speed of the
+ The variable @anchor{baud-rate}@code{baud-rate} holds the output speed of the
terminal, as far as Emacs knows. Setting this variable does not
change the speed of actual data transmission, but the value is used
for calculations. On terminals, it affects padding, and decisions
diff --git a/man/ebrowse.texi b/man/ebrowse.texi
index 8e3510242c..93c82fbbba 100644
--- a/man/ebrowse.texi
+++ b/man/ebrowse.texi
@@ -10,7 +10,8 @@
@copying
This file documents Ebrowse, a C++ class browser for GNU Emacs.
-Copyright @copyright{} 2000, 2002 Free Software Foundation, Inc.
+Copyright @copyright{} 2000, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
diff --git a/man/ediff.texi b/man/ediff.texi
index 7b997e4b0e..1991aa642d 100644
--- a/man/ediff.texi
+++ b/man/ediff.texi
@@ -25,8 +25,8 @@
This file documents Ediff, a comprehensive visual interface to Unix diff
and patch utilities.
-Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software
-Foundation, Inc.
+Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+ 2003, 2004, 2005 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
diff --git a/man/emacs-mime.texi b/man/emacs-mime.texi
index 06c0a4d77d..7bd36f3ce4 100644
--- a/man/emacs-mime.texi
+++ b/man/emacs-mime.texi
@@ -9,7 +9,7 @@
@copying
This file documents the Emacs MIME interface functionality.
-Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
+Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
@quotation
@@ -213,10 +213,6 @@ Set the undisplayer object.
@findex mm-handle-disposition
Return the parsed @code{Content-Disposition} of the part.
-@item mm-handle-disposition
-@findex mm-handle-disposition
-Return the description of the part.
-
@item mm-get-content-id
Returns the handle(s) referred to by @code{Content-ID}.
@@ -813,7 +809,9 @@ by using the @code{encoding} @acronym{MML} tag (@pxref{MML Definition}).
@item mm-coding-system-priorities
@vindex mm-coding-system-priorities
Prioritize coding systems to use for outgoing messages. The default
-is @code{nil}, which means to use the defaults in Emacs. It is a list of
+is @code{nil}, which means to use the defaults in Emacs, but is
+@code{(iso-8859-1 iso-2022-jp iso-2022-jp-2 shift_jis utf-8)} when
+running Emacs in the Japanese language environment. It is a list of
coding system symbols (aliases of coding systems are also allowed, use
@kbd{M-x describe-coding-system} to make sure you are specifying correct
coding system names). For example, if you have configured Emacs
@@ -880,8 +878,9 @@ used, of course.
@vindex mm-mime-mule-charset-alist
Things are slightly more complicated when running Emacs with @sc{mule}
support. In this case, a list of the @sc{mule} charsets used in the
-part is obtained, and the @sc{mule} charsets are translated to @acronym{MIME}
-charsets by consulting the variable @code{mm-mime-mule-charset-alist}.
+part is obtained, and the @sc{mule} charsets are translated to
+@acronym{MIME} charsets by consulting the table provided by Emacs itself
+or the variable @code{mm-mime-mule-charset-alist} for XEmacs.
If this results in a single @acronym{MIME} charset, this is used to encode
the part. But if the resulting list of @acronym{MIME} charsets contains more
than one element, two things can happen: If it is possible to encode the
@@ -1168,7 +1167,7 @@ in the subsequent sections.
This chapter describes the basic, ground-level functions for parsing and
handling. Covered here is parsing @code{From} lines, removing comments
from header lines, decoding encoded words, parsing date headers and so
-on. High-level functionality is dealt with in the next chapter
+on. High-level functionality is dealt with in the first chapter
(@pxref{Decoding and Viewing}).
@menu
@@ -1504,7 +1503,7 @@ Take a time and return the number of days that represents.
@item safe-date-to-time
Take a date and return a time. If the date is not syntactically valid,
-return a ``zero'' date.
+return a ``zero'' time.
@item time-less-p
Take two times and say whether the first time is less (i. e., earlier)
diff --git a/man/emacs-xtra.texi b/man/emacs-xtra.texi
index 94a37c2ec5..d17a506a49 100644
--- a/man/emacs-xtra.texi
+++ b/man/emacs-xtra.texi
@@ -10,8 +10,7 @@
@copying
This manual describes specialized features of Emacs.
-Copyright (C) 2004, 2005
-Free Software Foundation, Inc.
+Copyright (C) 2004, 2005 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
diff --git a/man/emacs.texi b/man/emacs.texi
index a4e713fd6f..6eb78640bd 100644
--- a/man/emacs.texi
+++ b/man/emacs.texi
@@ -11,8 +11,8 @@
This is the @value{EDITION} edition of the @cite{GNU Emacs Manual},
updated for Emacs version @value{EMACSVER}.
-Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998,
-1999, 2000, 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
+Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+ 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
@@ -787,9 +787,6 @@ Customization
you can control their functioning.
* Key Bindings:: The keymaps say what command each key runs.
By changing them, you can "redefine keys".
-* Keyboard Translations:: If your keyboard passes an undesired code
- for a key, you can tell Emacs to
- substitute another code.
* Syntax:: The syntax table controls how words and
expressions are parsed.
* Init File:: How to write common customizations in the
diff --git a/man/entering.texi b/man/entering.texi
index fe76bf3484..1d04ab427f 100644
--- a/man/entering.texi
+++ b/man/entering.texi
@@ -1,5 +1,6 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995 Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 2002, 2003, 2004,
+@c 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Entering Emacs, Exiting, Text Characters, Top
@chapter Entering and Exiting Emacs
diff --git a/man/eshell.texi b/man/eshell.texi
index 82e957f4de..fe36780955 100644
--- a/man/eshell.texi
+++ b/man/eshell.texi
@@ -8,7 +8,8 @@
@copying
This manual is for Eshell, the Emacs shell.
-Copyright @copyright{} 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
+Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
diff --git a/man/eudc.texi b/man/eudc.texi
index b5ff83be14..23df55bb97 100644
--- a/man/eudc.texi
+++ b/man/eudc.texi
@@ -12,7 +12,8 @@ EUDC is the Emacs Unified Directory Client, a common interface to
directory servers using various protocols such as LDAP or the CCSO white
pages directory system (PH/QI)
-Copyright 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
+Copyright (C) 1998, 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
diff --git a/man/faq.texi b/man/faq.texi
index bccc23e181..1212ed87d8 100644
--- a/man/faq.texi
+++ b/man/faq.texi
@@ -10,7 +10,7 @@
@set VER 21.3
@copying
-Copyright 2001, 2002, 2003 Free Software Foundation, Inc.
+Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
Copyright 1994,1995,1996,1997,1998,1999,2000 Reuven M. Lerner@*
Copyright 1992,1993 Steven Byrnes@*
Copyright 1990,1991,1992 Joseph Brian Wells@*
@@ -1005,23 +1005,11 @@ administrator, because the most recent FAQ should not expire for a
while.
@item
-Via HTTP or FTP. You can always fetch the latest FAQ from
-
-@uref{http://www.lerner.co.il/emacs/} and
-
-@uref{ftp://ftp.lerner.co.il/pub/emacs/}
-
-@item
In the Emacs distribution. Since Emacs 18.56, the FAQ at the time
of release has been part of the Emacs distribution as either
@file{etc/FAQ} or @file{man/faq.texi} (@pxref{File-name conventions}).
@item
-Via the World Wide Web. A hypertext version is available at
-
-@uref{http://www.lerner.co.il/emacs/}
-
-@item
Via anonymous ftp and e-mail from @file{rtfm.mit.edu} (and its mirror in
Europe), the main repository for FAQs and other items posted to
news.answers. The Emacs FAQs are available at
@@ -1046,13 +1034,6 @@ send usenet/news.answers/GNU-Emacs-FAQ/part5
For more information, send email to @email{mail-server@@rtfm.mit.edu}
with @samp{help} and @samp{index} in the body on separate lines.
-
-@item
-As the very last resort, you can e-mail a request to
-@email{emacs-faq@@lerner.co.il}. Don't do this unless you have made a
-good-faith effort to obtain the FAQ list via one of the methods listed
-above.
-
@end itemize
@c ------------------------------------------------------------
@@ -2206,7 +2187,7 @@ otherwise. @inforef{Frame Commands, Frame Commands, emacs}.
@cindex Unix regeps, differences from Emacs
@cindex Text strings, putting regexps in
-@inforef{Regexps, Regexps, emacs}.
+@inforef{Regexp Backslash, Regexp Backslash, emacs}.
The @code{or} operator is @samp{\|}, not @samp{|}, and the grouping operators
are @samp{\(} and @samp{\)}. Also, the string syntax for a backslash is
@@ -4637,9 +4618,9 @@ Good question!
@cindex Keys, swapping
@cindex @code{keyboard-translate}
-In Emacs 19, you can swap two keys (or key sequences) by using the
-@code{keyboard-translate} function. For example, to turn @kbd{C-h} into
-@key{DEL} and @key{DEL} to @kbd{C-h}, use
+You can swap two keys (or key sequences) by using the
+@code{keyboard-translate} function. For example, to turn @kbd{C-h}
+into @key{DEL} and @key{DEL} to @kbd{C-h}, use
@lisp
(keyboard-translate ?\C-h ?\C-?) ; translate `C-h' to DEL
@@ -4651,6 +4632,11 @@ The first key sequence of the pair after the function identifies what is
produced by the keyboard; the second, what is matched for in the
keymaps.
+However, in the specific case of @kbd{C-h} and @key{DEL}, you should
+toggle @code{normal-erase-is-backspace-mode} instead of calling
+@code{keyboard-translate}. @inforef{DEL Does Not Delete, DEL Does Not Delete,
+emacs}.
+
Keyboard translations are not the same as key bindings in keymaps.
Emacs contains numerous keymaps that apply in different situations, but
there is only one set of keyboard translations, and it applies to every
@@ -4659,8 +4645,6 @@ take place at the lowest level of input processing; the keys that are
looked up in keymaps contain the characters that result from keyboard
translation.
-@inforef{Keyboard Translations, Keyboard Translations, emacs}.
-
@node Producing C-XXX with the keyboard, No Meta key, Swapping keys, Key bindings
@section How do I produce C-XXX with my keyboard?
@cindex Producing control characters
diff --git a/man/files.texi b/man/files.texi
index 26f6af3760..912fc6f7bf 100644
--- a/man/files.texi
+++ b/man/files.texi
@@ -1,6 +1,6 @@
@c This is part of the Emacs manual.
@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1999, 2000,
-@c 2001, 2004, 2005 Free Software Foundation, Inc.
+@c 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Files, Buffers, Keyboard Macros, Top
@chapter File Handling
@@ -464,8 +464,9 @@ buffer as ``modified'' so that @kbd{C-x C-s} in that buffer
@kindex C-x C-w
@findex write-file
If you wish to mark the buffer as visiting a different file and save it
-right away, use @kbd{C-x C-w} (@code{write-file}). It is precisely
-equivalent to @code{set-visited-file-name} followed by @kbd{C-x C-s}.
+right away, use @kbd{C-x C-w} (@code{write-file}). It is
+equivalent to @code{set-visited-file-name} followed by @kbd{C-x C-s}
+(except that @kbd{C-x C-w} asks for confirmation if the file exists).
@kbd{C-x C-s} used on a buffer that is not visiting a file has the
same effect as @kbd{C-x C-w}; that is, it reads a file name, marks the
buffer as visiting that file, and saves it there. The default file name in
@@ -1642,7 +1643,7 @@ them; they exist only in the records of the master file.
@kindex C-x v g
For some backends, you can display the file @dfn{annotated} with
per-line version information and using colors to enhance the visual
-appearance, with the the command @kbd{M-x vc-annotate}.
+appearance, with the command @kbd{M-x vc-annotate}.
It creates a new buffer
to display file's text, colored to show how old each part is. Text
colored red is new, blue means old, and intermediate colors indicate
@@ -2906,7 +2907,7 @@ string; the default is @code{"-c"} to specify a context diff.
@findex diff-goto-source
After running @kbd{M-x diff}, you can use @kbd{C-x `} to visit
successive changed locations in the two source files, as in
-Compilation mode (@pxref{Compilation}.) In the @samp{*diff*} buffer,
+Compilation mode (@pxref{Compilation Mode}.) In the @samp{*diff*} buffer,
you can move to a particular hunk of changes and type @kbd{C-c C-c}
(@code{diff-goto-source}) to visit the corresponding source location.
@@ -2917,13 +2918,19 @@ recent backup. If you specify the name of a backup file,
of.
@findex compare-windows
- The command @kbd{M-x compare-windows} compares the text in the current
-window with that in the next window. Comparison starts at point in each
-window, and each starting position is pushed on the mark ring in its
-respective buffer. Then point moves forward in each window, a character
-at a time, until a mismatch between the two windows is reached. Then
-the command is finished. For more information about windows in Emacs,
-@ref{Windows}.
+ The command @kbd{M-x compare-windows} compares the text in the
+current window with that in the next window. (For more information
+about windows in Emacs, @ref{Windows}.) Comparison starts at point in
+each window, after pushing each initial point value on the mark ring
+in its respective buffer. Then it moves point forward in each window,
+one character at a time, until it reaches characters that don't match.
+Then the command exits.
+
+ If point in the two windows is followed by non-matching text when
+the command starts, it tries heuristically to advance up to matching
+text in the two windows, and then exits. So if you use @kbd{M-x
+compare-windows} repeatedly, each time it either skips one matching
+range or finds the start of another.
@vindex compare-ignore-case
@vindex compare-ignore-whitespace
@@ -3253,6 +3260,7 @@ File Names}).
@section Quoted File Names
@cindex quoting file names
+@cindex file names, quote special characters
You can @dfn{quote} an absolute file name to prevent special
characters and syntax in it from having their special effects.
The way to do this is to add @samp{/:} at the beginning.
diff --git a/man/fixit.texi b/man/fixit.texi
index 08c5eeee2e..f58d3c835a 100644
--- a/man/fixit.texi
+++ b/man/fixit.texi
@@ -1,5 +1,6 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 1985, 86, 87, 93, 94, 95, 1997 Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2002, 2003,
+@c 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Fixit, Keyboard Macros, Search, Top
@chapter Commands for Fixing Typos
diff --git a/man/flymake.texi b/man/flymake.texi
index 7a9ca11f4d..4f5223e3bd 100644
--- a/man/flymake.texi
+++ b/man/flymake.texi
@@ -11,7 +11,7 @@
This manual is for GNU Flymake (version @value{VERSION}, @value{UPDATED}),
which is a universal on-the-fly syntax checker for GNU Emacs.
-Copyright @copyright{} 2004 Free Software Foundation, Inc.
+Copyright @copyright{} 2004, 2005 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
diff --git a/man/forms.texi b/man/forms.texi
index 74876760cc..adc3fe8a0b 100644
--- a/man/forms.texi
+++ b/man/forms.texi
@@ -18,7 +18,8 @@
@copying
This file documents Forms mode, a form-editing major mode for GNU Emacs.
-Copyright 1989, 1997, 2001, 2002 Free Software Foundation, Inc.
+Copyright (C) 1989, 1997, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
diff --git a/man/frames.texi b/man/frames.texi
index e5bada851a..8e058867fc 100644
--- a/man/frames.texi
+++ b/man/frames.texi
@@ -1,6 +1,6 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 1985, 86, 87, 93, 94, 95, 97, 99, 2000, 2001, 2004
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1999, 2000,
+@c 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Frames, International, Windows, Top
@chapter Frames and X Windows
@@ -495,10 +495,9 @@ parameter, as shown here:
Here's a similar example for specifying a foreground color:
@example
-(add-to-list 'default-frame-alist '(background-color . "blue"))
+(add-to-list 'default-frame-alist '(foreground-color . "blue"))
@end example
-
@node Frame Commands
@section Frame Commands
@@ -844,7 +843,7 @@ feature, use @kbd{M-x mouse-wheel-mode}.
The variables @code{mouse-wheel-follow-mouse} and
@code{mouse-wheel-scroll-amount} determine where and by how much
buffers are scrolled. The variable
-@code{mouse-wheel-progressive-speed} determines whether the the scroll
+@code{mouse-wheel-progressive-speed} determines whether the scroll
speed is linked to how fast you move the wheel.
@node Drag and Drop
diff --git a/man/glossary.texi b/man/glossary.texi
index 78abbfb30b..bab69b2c4d 100644
--- a/man/glossary.texi
+++ b/man/glossary.texi
@@ -1,5 +1,6 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 1985,86,87,93,94,95,1997,2001 Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002,
+@c 2003, 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Glossary, Key Index, Intro, Top
@unnumbered Glossary
@@ -681,7 +682,7 @@ keymap binds the character @kbd{C-n} to the command function
@item Keyboard Translation Table
The keyboard translation table is an array that translates the character
codes that come from the terminal into the character codes that make up
-key sequences. @xref{Keyboard Translations}.
+key sequences.
@item Kill Ring
The kill ring is where all text you have killed recently is saved.
diff --git a/man/gnu.texi b/man/gnu.texi
index 4185f8f911..51e1a5615f 100644
--- a/man/gnu.texi
+++ b/man/gnu.texi
@@ -1,11 +1,13 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 1985, 1986, 1987, 1993, 1995 Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1995, 2002, 2003, 2004,
+@c 2005 Free Software Foundation, Inc.
@ifclear justgnu
@node Manifesto,, MS-DOS, Top
@unnumbered The GNU Manifesto
@end ifclear
@ifset justgnu
-Copyright (C) 1985, 1993, 2001 Free Software Foundation, Inc.
+Copyright (C) 1985, 1993, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1 or
@@ -39,9 +41,10 @@ Since that time, we have learned about certain common misunderstandings
that different wording could help avoid. Footnotes added in 1993 help
clarify these points.
-For up-to-date information about the available GNU software, please see
-the latest issue of the GNU's Bulletin. The list is much too long to
-include here.
+For up-to-date information about the available GNU software, please
+see @uref{http://www.gnu.org}. For software tasks to work on, see
+@uref{http://savannah.gnu.org/projects/tasklist}. For other ways to
+contribute, see @uref{http://www.gnu.org/help}.
@end quotation
@unnumberedsec What's GNU? Gnu's Not Unix!
@@ -380,7 +383,17 @@ practice they would still make considerably more than that.)
other people's lives; and it is usually used to make their lives more
difficult.
-People who have studied the issue of intellectual property rights carefully
+People who have studied the issue of intellectual property
+rights@footnote{In the 80s I had not yet realized how confusing it was
+to speak of ``the issue'' of ``intellectual property.'' That term is
+obviously biased; more subtle is the fact that it lumps together
+various disparate laws which raise very different issues. Nowadays I
+urge people to reject the term ``intellectual property'' entirely,
+lest it lead others to suppose that those laws form one coherent
+issue. The way to be clear is to discuss patents, copyrights, and
+trademarks separately. See
+@uref{http://www.gnu.org/philosophy/not-ipr.xhtml} for more
+explanation of how this term spreads confusion and bias.} carefully
(such as lawyers) say that there is no intrinsic right to intellectual
property. The kinds of supposed intellectual property rights that the
government recognizes were created by specific acts of legislation for
@@ -489,9 +502,15 @@ operating systems onto the new hardware.
The sale of teaching, hand-holding and maintenance services could also
employ programmers.
-People with new ideas could distribute programs as freeware, asking for
-donations from satisfied users, or selling hand-holding services. I have
-met people who are already working this way successfully.
+People with new ideas could distribute programs as
+freeware@footnote{Subsequently we have learned to distinguish between
+"free software" and "freeware". The term "freeware" means software
+you are free to redistribute, but usually you are not free to study
+and change the source code, so most of it is not free software. See
+@uref{http://www.gnu.org/philosophy/words-to-avoid.html} for more
+explanation.}, asking for donations from satisfied users, or selling
+hand-holding services. I have met people who are already working this
+way successfully.
Users with related needs can form users' groups, and pay dues. A group
would contract with programming companies to write programs that the
diff --git a/man/gnus.texi b/man/gnus.texi
index b1d5be2265..131a92fae6 100644
--- a/man/gnus.texi
+++ b/man/gnus.texi
@@ -7,9 +7,8 @@
@syncodeindex pg cp
@copying
-Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005
-Free Software Foundation, Inc.
+Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+ 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
@@ -1468,15 +1467,17 @@ startup files. If you want to turn backup creation off, say something like:
@vindex gnus-init-file
@vindex gnus-site-init-file
When Gnus starts, it will read the @code{gnus-site-init-file}
-(@file{.../site-lisp/gnus} by default) and @code{gnus-init-file}
+(@file{.../site-lisp/gnus-init} by default) and @code{gnus-init-file}
(@file{~/.gnus} by default) files. These are normal Emacs Lisp files
and can be used to avoid cluttering your @file{~/.emacs} and
@file{site-init} files with Gnus stuff. Gnus will also check for files
with the same names as these, but with @file{.elc} and @file{.el}
suffixes. In other words, if you have set @code{gnus-init-file} to
@file{~/.gnus}, it will look for @file{~/.gnus.elc}, @file{~/.gnus.el},
-and finally @file{~/.gnus} (in this order).
-
+and finally @file{~/.gnus} (in this order). If Emacs was invoked with
+the @option{-q} or @option{--no-init-file} options (@pxref{Initial
+Options, ,Initial Options, emacs, The Emacs Manual}), Gnus doesn't read
+@code{gnus-init-file}.
@node Auto Save
@@ -9405,7 +9406,7 @@ newsreaders and mailers that do not understand or use @acronym{MIME}, and
just send out messages without saying what character sets they use. To
help a bit with this, some local news hierarchies have policies that say
what character set is the default. For instance, the @samp{fj}
-hierarchy uses @code{iso-2022-jp-2}.
+hierarchy uses @code{iso-2022-jp}.
@vindex gnus-group-charset-alist
This knowledge is encoded in the @code{gnus-group-charset-alist}
diff --git a/man/help.texi b/man/help.texi
index 29c06b499d..bcae911d55 100644
--- a/man/help.texi
+++ b/man/help.texi
@@ -1,6 +1,6 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 1985, 86, 87, 93, 94, 95, 97, 2000, 2001, 2004
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
+@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Help, Mark, M-x, Top
@chapter Help
diff --git a/man/idlwave.texi b/man/idlwave.texi
index 8226c0ac63..f9e167893a 100644
--- a/man/idlwave.texi
+++ b/man/idlwave.texi
@@ -29,8 +29,8 @@ Emacs, and interacting with an IDL shell run as a subprocess.
This is edition @value{EDITION} of the IDLWAVE User Manual for IDLWAVE
@value{VERSION}
-Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software
-Foundation, Inc.
+Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1 or
@@ -60,8 +60,8 @@ license to the document, as described in section 6 of the license.
This is edition @value{EDITION} of the @cite{IDLWAVE User Manual} for
IDLWAVE version @value{VERSION}, @value{DATE}.
@sp 2
-Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software
-Foundation, Inc.
+Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
@sp 2
@cindex Copyright, of IDLWAVE
Permission is granted to copy, distribute and/or modify this document
diff --git a/man/indent.texi b/man/indent.texi
index 48a5474771..c748f5010b 100644
--- a/man/indent.texi
+++ b/man/indent.texi
@@ -1,5 +1,6 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 1985, 86, 87, 93, 94, 95, 1997, 2004 Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2002, 2003,
+@c 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Indentation, Text, Major Modes, Top
@chapter Indentation
diff --git a/man/info.texi b/man/info.texi
index e6c508b4b4..3a0ba2b394 100644
--- a/man/info.texi
+++ b/man/info.texi
@@ -14,8 +14,8 @@
This file describes how to use Info, the on-line, menu-driven GNU
documentation system.
-Copyright (C) 1989, 1992, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
-Free Software Foundation, Inc.
+Copyright (C) 1989, 1992, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+ 2003, 2004, 2005 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
@@ -238,7 +238,7 @@ line says that this is node @samp{Help} in the file @file{info}.
(look at it now) says that the @samp{Next} node after this one is the
node called @samp{Help-P}. An advanced Info command lets you go to
any node whose name you know. In the stand-alone Info reader program,
-the header line shows the names of this node and the info file as
+the header line shows the names of this node and the Info file as
well. In Emacs, the header line is duplicated in a special typeface,
and the duplicate remains at the top of the window all the time even
if you scroll through the node.
@@ -284,7 +284,7 @@ node, @samp{Help-^L}.
If you read this in Emacs, you will see an @samp{Info} item in the
menu bar, close to its right edge. Clicking the mouse on the
@samp{Info} menu-bar item opens a menu of commands which include
-@samp{Next} and @samp{Prev} (and also some others which you didn't yet
+@samp{Next} and @samp{Previous} (and also some others which you didn't yet
learn about).
This all probably seems insultingly simple so far, but @emph{please
@@ -671,10 +671,12 @@ mistake.
Another way to move to the menu subtopic lines and between them is
to type @key{TAB}. Each time you type a @key{TAB}, you move to the
-next subtopic line. To move to a previous subtopic line, type
-@kbd{M-@key{TAB}}---that is, press and hold the @key{META} key and then
-press @key{TAB}. (On some keyboards, the @key{META} key might be labeled
-@samp{Alt}.)
+next subtopic line. To move to a previous subtopic line in the
+stand-alone reader, type @kbd{M-@key{TAB}}---that is, press and hold
+the @key{META} key and then press @key{TAB}. (On some keyboards, the
+@key{META} key might be labeled @samp{Alt}.) In Emacs Info, type
+@kbd{S-@key{TAB}} to move to a previous subtopic line (press and hold
+the @key{Shift} key and then press @key{TAB}).
Once you move cursor to a subtopic line, press @key{RET} to go to
that subtopic's node.
@@ -727,7 +729,8 @@ usually used to ``stay on the same level but go backwards''.
@code{Info-up}). That puts you at the @emph{front} of the node---to
get back to where you were reading you have to type some @key{SPC}s.
(Some Info readers, such as the one built into Emacs, put you at the
-same place where you were reading in @samp{Help-M}.)
+menu subtopic line which points to the subnode that the @kbd{u} command
+brought you from.)
Another way to go Up is to click @kbd{Mouse-2} on the @samp{Up}
pointer shown in the header line (provided that you have a mouse).
@@ -785,8 +788,14 @@ to cancel the @kbd{f}.
type a @kbd{Control-g} and see how the @samp{f} gives up.
@end format
- The @key{TAB} and @kbd{M-@key{TAB}} key, which move between menu
-items in a menu, also move between cross references outside of menus.
+ The @key{TAB}, @kbd{M-@key{TAB}} and @kbd{S-@key{TAB}} keys,
+which move between menu items in a menu, also move between cross
+references outside of menus.
+
+ Clicking @kbd{Mouse-2} on or near a cross reference also follows the
+reference. You can see that the cross reference is mouse-sensitive by
+moving the mouse pointer to the reference and watching how the
+underlying text and the mouse pointer change in response.
Sometimes a cross reference (or a node) can lead to another file (in
other words another ``manual''), or, on occasion, even a file on a
@@ -795,36 +804,22 @@ stand-alone Info avoid using remote links). Such a cross reference
looks like this: @xref{Top,, Overview of Texinfo, texinfo, Texinfo:
The GNU Documentation Format}. (After following this link, type
@kbd{l} to get back to this node.) Here the name @samp{texinfo}
-between parentheses (shown in the stand-alone version) refers to the
-file name. This file name appears in cross references and node names
-if it differs from the current file. In Emacs, the file name is
-hidden (along with other text). (Use @kbd{M-x visible-mode} to show
-or hide it.)
-
- The remainder of this node applies only to the Emacs version. If
-you use the stand-alone version, you can type @kbd{n} immediately.
-
- To some users, switching manuals is a much bigger switch than
-switching sections. These users like to know that they are going to
-be switching to another manual (and which one) before actually doing
-so, especially given that, if one does not notice, Info commands like
-@kbd{t} (see the next node) can have confusing results.
-
- If you put your mouse over the cross reference and if the cross
-reference leads to a different manual, then the information appearing
-in a separate box (tool tip) or in the echo area, will mention the
-file the cross reference will carry you to (between parentheses).
-This is also true for menu subtopic names. If you have a mouse, just
-leave it over the @samp{Overview} cross reference above and watch what
-happens.
-
- If you always like to have that information available without having
-to move your mouse over the cross reference, set
-@code{Info-hide-note-references} to a value other than @code{t}
-(@pxref{Emacs Info Variables}). You might also want to do that if you
-have a lot of cross references to files on remote machines and have
-non-permanent or slow access, since otherwise you might not be able to
-distinguish between local and remote links.
+between parentheses refers to the file name. This file name appears
+in cross references and node names if it differs from the current
+file, so you can always know that you are going to be switching to
+another manual and which one.
+
+However, Emacs normally hides some other text in cross-references.
+If you put your mouse over the cross reference, then the information
+appearing in a separate box (tool tip) or in the echo area will show
+the full cross-reference including the file name and the node name of
+the cross reference. If you have a mouse, just leave it over the
+cross reference @xref{Top,, Overview of Texinfo, texinfo, Texinfo:
+The GNU Documentation Format}, and watch what happens. If you
+always like to have that information visible without having to move
+your mouse over the cross reference, use @kbd{M-x visible-mode}, or
+set @code{Info-hide-note-references} to a value other than @code{t}
+(@pxref{Emacs Info Variables}).
@format
>> Now type @kbd{n} to learn more commands.
@@ -845,8 +840,9 @@ This allows Info readers to go to the exact line of an entry, not just
the start of the containing node.)
You can get to the index from the main menu of the file with the
-@kbd{m} command; then you can use the @kbd{m} command again in the
-index node to go to the node that describes the topic you want.
+@kbd{m} command and the name of the index node; then you can use the
+@kbd{m} command again in the index node to go to the node that
+describes the topic you want.
There is also a short-cut Info command, @kbd{i}, which does all of
that for you. It searches the index for a given topic (a string) and
@@ -854,8 +850,8 @@ goes to the node which is listed in the index for that topic.
@xref{Info Search}, for a full explanation.
@kindex l @r{(Info mode)}
-@findex Info-last
-@cindex going back in Info mode
+@findex Info-history-back
+@cindex going back in Info history
If you have been moving around to different nodes and wish to
retrace your steps, the @kbd{l} command (@kbd{l} for @dfn{last}) will
do that, one node-step at a time. As you move from node to node, Info
@@ -863,7 +859,7 @@ records the nodes where you have been in a special history list. The
@kbd{l} command revisits nodes in the history list; each successive
@kbd{l} command moves one step back through the history.
- In Emacs, @kbd{l} runs the command @code{Info-last}.
+ In Emacs, @kbd{l} runs the command @code{Info-history-back}.
@format
>> Try typing @kbd{p p n} and then three @kbd{l}'s, pausing in between
@@ -875,6 +871,13 @@ where @emph{you} last were, whereas @kbd{p} always moves to the node
which the header says is the @samp{Previous} node (from this node, the
@samp{Prev} link leads to @samp{Help-Xref}).
+@kindex r @r{(Info mode)}
+@findex Info-history-forward
+@cindex going forward in Info history
+ You can use the @kbd{r} command (@code{Info-history-forward} in Emacs)
+to revisit nodes in the history list in the forward direction, so that
+@kbd{r} will return you to the node you came from by typing @kbd{l}.
+
@kindex d @r{(Info mode)}
@findex Info-directory
@cindex go to Directory node
@@ -898,11 +901,6 @@ This is useful if you want to browse the manual's main menu, or select
some specific top-level menu item. The Emacs command run by @kbd{t}
is @code{Info-top-node}.
- Clicking @kbd{Mouse-2} on or near a cross reference also follows the
-reference. You can see that the cross reference is mouse-sensitive by
-moving the mouse pointer to the reference and watching how the
-underlying text and the mouse pointer change in response.
-
@format
>> Now type @kbd{n} to see the last node of the course.
@end format
@@ -935,7 +933,7 @@ Documentation Format}.
* Menus:: How to add to or create menus in Info nodes.
* Cross-refs:: How to add cross-references to Info nodes.
* Tags:: How to make tags tables for Info files.
-* Checking:: Checking an Info File
+* Checking:: Checking an Info File.
* Emacs Info Variables:: Variables modifying the behavior of Emacs Info.
@end menu
@@ -969,7 +967,7 @@ the node @samp{Top} in the Info file @file{dir}. Likewise,
The node name @samp{*} specifies the whole file. So you can look at
all of the current file by typing @kbd{g*@key{RET}} or all of any
-other file with @kbd{g(@var{filename})@key{RET}}.
+other file with @kbd{g(@var{filename})*@key{RET}}.
@subheading @kbd{1}--@kbd{9} choose a menu subtopic by its number
@@ -1017,7 +1015,7 @@ current node.
@findex clone-buffer
@cindex multiple Info buffers
If you are reading Info in Emacs, you can select a new independent
-Info buffer in another window by typing @kbd{M-n}. The new buffer
+Info buffer in the same window by typing @kbd{M-n}. The new buffer
starts out as an exact copy of the old one, but you will be able to
move independently between nodes in the two buffers. (In Info mode,
@kbd{M-n} runs the Emacs command @code{clone-buffer}.)
@@ -1028,6 +1026,11 @@ m} and @kbd{C-u g} go to a new node in exactly the same way that
@kbd{m} and @kbd{g} do, but they do so in a new Info buffer which they
select in another window.
+ Another way to produce new Info buffers in Emacs is to use a numeric
+prefix argument for the @kbd{C-h i} command (@code{info}) which
+switches to the Info buffer with that number. Thus, @kbd{C-u 2 C-h i}
+switches to the buffer @samp{*info*<2>}, creating it if necessary.
+
@node Info Search, Add, Advanced, Expert Info
@comment node-name, next, previous, up
@section How to search Info documents for specific subjects
@@ -1083,10 +1086,12 @@ you type inside Emacs to run the command bound to @kbd{C-f}.
In Emacs, @kbd{i} runs the command @code{Info-index}.
@findex info-apropos
+@findex index-apropos
If you don't know what manual documents something, try the @kbd{M-x
-info-apropos} command. It prompts for a string and then looks up that
-string in all the indices of all the Info documents installed on your
-system.
+info-apropos} command in Emacs, or the @kbd{M-x index-apropos} command
+in the stand-alone reader. It prompts for a string and then looks up
+that string in all the indices of all the Info documents installed on
+your system.
@kindex s @r{(Info mode)}
@findex Info-search
@@ -1095,10 +1100,10 @@ It switches to the next node if and when that is necessary. You
type @kbd{s} followed by the string to search for, terminated by
@key{RET}. To search for the same string again, just @kbd{s} followed
by @key{RET} will do. The file's nodes are scanned in the order
-they are in in the file, which has no necessary relationship to the
+they are in the file, which has no necessary relationship to the
order that they may be in the tree structure of menus and @samp{next}
pointers. But normally the two orders are not very different. In any
-case, you can always do a @kbd{b} to find out what node you have
+case, you can always look at the echo area to find out what node you have
reached, if the header is not visible (this can happen, because @kbd{s}
puts your cursor at the occurrence of the string, not at the beginning
of the node).
@@ -1109,6 +1114,15 @@ compatibility with other GNU packages that use @kbd{M-s} for a similar
kind of search command. Both @kbd{s} and @kbd{M-s} run in Emacs the
command @code{Info-search}.
+@kindex C-s @r{(Info mode)}
+@kindex C-r @r{(Info mode)}
+@findex isearch
+ Instead of using @kbd{s} in Emacs Info and in the stand-alone Info,
+you can use an incremental search started with @kbd{C-s} or @kbd{C-r}.
+It can search through multiple Info nodes. @xref{Incremental Search,,,
+emacs, The GNU Emacs Manual}. In Emacs, this behavior is enabled only
+if the variable @code{Info-isearch-search} is non-@code{nil}
+(@pxref{Emacs Info Variables}).
@node Add, Menus, Info Search, Expert Info
@comment node-name, next, previous, up
@@ -1245,9 +1259,9 @@ the nodes in a file to form a connected structure. In fact, this file
has two connected components. You are in one of them, which is under
the node @samp{Top}; the other contains the node @samp{Help} which the
@kbd{h} command goes to. In fact, since there is no garbage
-collector, nothing terrible happens if a substructure is not pointed
-to, but such a substructure is rather useless since nobody can
-ever find out that it exists.
+collector on the node graph, nothing terrible happens if a substructure
+is not pointed to, but such a substructure is rather useless since nobody
+can ever find out that it exists.
@node Cross-refs, Tags, Menus, Expert Info
@comment node-name, next, previous, up
@@ -1328,7 +1342,7 @@ manner.
@comment node-name, next, previous, up
@section Tags Tables for Info Files
-@cindex tags tables in info files
+@cindex tags tables in Info files
You can speed up the access to nodes of a large Info file by giving
it a tags table. Unlike the tags table for a program, the tags table for
an Info file lives inside the file itself and is used
@@ -1408,22 +1422,30 @@ initialize it, or @code{Info-default-directory-list} if there is no
@env{INFOPATH} variable in the environment.
If you wish to customize the Info directory search list for both Emacs
-info and stand-alone Info, it is best to set the @env{INFOPATH}
+Info and stand-alone Info, it is best to set the @env{INFOPATH}
environment variable, since that applies to both programs.
@item Info-additional-directory-list
A list of additional directories to search for Info documentation files.
These directories are not searched for merging the @file{dir} file.
-@item Info-fontify
-When set to a non-@code{nil} value, enables highlighting of Info
-files. The default is @code{t}. You can change how the highlighting
-looks by customizing the faces @code{info-node}, @code{info-xref},
-@code{info-header-xref}, @code{info-header-node}, @code{info-menu-5},
-@code{info-menu-header}, and @code{info-title-@var{n}-face} (where
-@var{n} is the level of the section, a number between 1 and 4). To
-customize a face, type @kbd{M-x customize-face @key{RET} @var{face}
-@key{RET}}, where @var{face} is one of the face names listed here.
+@item Info-mode-hook
+Hooks run when @code{Info-mode} is called. By default, it contains
+the hook @code{turn-on-font-lock} which enables highlighting of Info
+files. You can change how the highlighting looks by customizing the
+faces @code{info-node}, @code{info-xref}, @code{info-xref-visited},
+@code{info-header-xref}, @code{info-header-node}, @code{info-menu-header},
+@code{info-menu-star}, and @code{info-title-@var{n}} (where @var{n}
+is the level of the section, a number between 1 and 4). To customize
+a face, type @kbd{M-x customize-face @key{RET} @var{face} @key{RET}},
+where @var{face} is one of the face names listed here.
+
+@item Info-fontify-maximum-menu-size
+Maximum size of menu to fontify if @code{font-lock-mode} is non-@code{nil}.
+
+@item Info-fontify-visited-nodes
+If non-@code{nil}, menu items and cross-references pointing to visited
+nodes are displayed in the @code{info-xref-visited} face.
@item Info-use-header-line
If non-@code{nil}, Emacs puts in the Info buffer a header line showing
@@ -1449,6 +1471,9 @@ subnode indicated by the following menu item. Setting this option to
program, which visits the first subnode from the menu only when you
hit the end of the current node. The default is @code{nil}.
+@item Info-isearch-search
+If non-@code{nil}, isearch in Info searches through multiple nodes.
+
@item Info-enable-active-nodes
When set to a non-@code{nil} value, allows Info to execute Lisp code
associated with nodes. The Lisp code is executed when the node is
diff --git a/man/killing.texi b/man/killing.texi
index 006af200c0..bcb170ac26 100644
--- a/man/killing.texi
+++ b/man/killing.texi
@@ -1,6 +1,6 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 1985,86,87,93,94,95,97,2000,2001,2004
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
+@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Killing, Yanking, Mark, Top
diff --git a/man/kmacro.texi b/man/kmacro.texi
index e19c143481..0693eefca5 100644
--- a/man/kmacro.texi
+++ b/man/kmacro.texi
@@ -1,6 +1,6 @@
@c This is part of the Emacs manual.
@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
-@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Keyboard Macros, Files, Fixit, Top
@chapter Keyboard Macros
diff --git a/man/m-x.texi b/man/m-x.texi
index 5a33bab073..46d3fab046 100644
--- a/man/m-x.texi
+++ b/man/m-x.texi
@@ -1,5 +1,6 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 1985, 86, 87, 93, 94, 95, 1997 Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2002, 2003,
+@c 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node M-x, Help, Minibuffer, Top
@chapter Running Commands by Name
diff --git a/man/macos.texi b/man/macos.texi
index 9451f35f4a..bcb25a7e52 100644
--- a/man/macos.texi
+++ b/man/macos.texi
@@ -1,5 +1,6 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
+@c Copyright (C) 2000, 2001, 2002, 2003, 2004,
+@c 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Mac OS, MS-DOS, Antinews, Top
@appendix Emacs and the Mac OS
diff --git a/man/maintaining.texi b/man/maintaining.texi
index b11ae6b6cd..2af47f6eca 100644
--- a/man/maintaining.texi
+++ b/man/maintaining.texi
@@ -1,6 +1,6 @@
@c This is part of the Emacs manual.
@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1999, 2000,
-@c 2001, 2005 Free Software Foundation, Inc.
+@c 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Maintaining, Abbrevs, Building, Top
@chapter Maintaining Programs
@@ -849,7 +849,7 @@ continue to exist.
Emacs and have Emacs show you the matching lines one by one. This works
much like running a compilation; finding the source locations of the
@code{grep} matches works like finding the compilation errors.
-@xref{Compilation}.
+@xref{Grep Searching}.
@node List Tags
@subsection Tags Table Inquiries
diff --git a/man/major.texi b/man/major.texi
index 23e0f8e116..74613a2432 100644
--- a/man/major.texi
+++ b/man/major.texi
@@ -1,5 +1,6 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 1985, 86, 87, 93, 94, 95, 97, 2000 Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
+@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Major Modes, Indentation, International, Top
@chapter Major Modes
diff --git a/man/makefile.w32-in b/man/makefile.w32-in
index ec14ae3abe..a5543a8c44 100644
--- a/man/makefile.w32-in
+++ b/man/makefile.w32-in
@@ -1,7 +1,6 @@
#### -*- Makefile -*- for the Emacs Manual and other documentation.
-# Copyright (C) 2003, 2004
-# Free Software Foundation, Inc.
+# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
# This file is part of GNU Emacs.
@@ -109,7 +108,6 @@ EMACSSOURCES= \
$(srcdir)/kmacro.texi
info: $(INFO_TARGETS)
- $(MULTI_INSTALL_INFO) --info-dir=$(infodir) $(INFO_TARGETS)
dvi: $(DVI_TARGETS)
@@ -124,6 +122,9 @@ dvi: $(DVI_TARGETS)
# Some Windows ports of makeinfo seem to require -o to come before the
# texi filename, contrary to GNU standards.
+$(infodir)/dir:
+ $(MULTI_INSTALL_INFO) --info-dir=$(infodir) $(INFO_TARGETS)
+
$(infodir)/info: $(INFOSOURCES)
$(MAKEINFO) --no-split -o $@ info.texi
diff --git a/man/mark.texi b/man/mark.texi
index 5f4c44de9e..eb21a51cb2 100644
--- a/man/mark.texi
+++ b/man/mark.texi
@@ -1,5 +1,6 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 1985,86,87,93,94,95,1997,2001 Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002,
+@c 2003, 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Mark, Killing, Help, Top
@chapter The Mark and the Region
diff --git a/man/message.texi b/man/message.texi
index ce78e1bb68..7e4ffb84d7 100644
--- a/man/message.texi
+++ b/man/message.texi
@@ -8,8 +8,8 @@
@copying
This file documents Message, the Emacs message composition mode.
-Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-Free Software Foundation, Inc.
+Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
diff --git a/man/mh-e.texi b/man/mh-e.texi
index 7f95178fde..babe1a15aa 100644
--- a/man/mh-e.texi
+++ b/man/mh-e.texi
@@ -15,7 +15,8 @@ This is Edition @value{EDITION}, last updated @value{UPDATED}, of
@cite{mh-e, The Emacs Interface to MH}, for mh-e, Version
@value{VERSION}.
-Copyright 1995, 2001, 2002, 2004 Free Software Foundation, Inc.
+Copyright (C) 1995, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
diff --git a/man/mini.texi b/man/mini.texi
index 0a77500072..3797260f9c 100644
--- a/man/mini.texi
+++ b/man/mini.texi
@@ -1,6 +1,6 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 1985, 86, 87, 93, 94, 95, 97, 00, 2001
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
+@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Minibuffer, M-x, Basic, Top
@chapter The Minibuffer
@@ -270,7 +270,7 @@ Completion}.
@end ifnottex
@item ?
Display a list of all possible completions of the text in the minibuffer
-(@code{minibuffer-list-completions}).
+(@code{minibuffer-completion-help}).
@end table
@kindex SPC
diff --git a/man/misc.texi b/man/misc.texi
index b52264e1f5..baebc6bf4d 100644
--- a/man/misc.texi
+++ b/man/misc.texi
@@ -1,6 +1,6 @@
@c This is part of the Emacs manual.
@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
-@c 2004, 2005 Free Software Foundation, Inc.
+@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@iftex
@chapter Miscellaneous Commands
diff --git a/man/msdog.texi b/man/msdog.texi
index a5aea27f16..782a239ed4 100644
--- a/man/msdog.texi
+++ b/man/msdog.texi
@@ -1,6 +1,6 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 1985,86,87,93,94,95,1997,2000,2001
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
+@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node MS-DOS, Manifesto, Mac OS, Top
@appendix Emacs and MS-DOS
@@ -583,6 +583,12 @@ However, due to incompatibilities between MS-DOS/MS-Windows and other systems,
there are several DOS-specific aspects of this support that you should
be aware of. This section describes these aspects.
+ The description below is largely specific to the MS-DOS port of
+Emacs, especially where it talks about practical implications for
+Emacs users. For other operating systems, see the @file{code-pages.el}
+package, which implements support for MS-DOS- and MS-Windows-specific
+encodings for all platforms other than MS-DOS.
+
@table @kbd
@item M-x dos-codepage-setup
Set up Emacs display and coding systems as appropriate for the current
@@ -721,7 +727,8 @@ DOS codepages for the same locale. For example, DOS codepage 850
supports the same character set as Windows codepage 1252; DOS codepage
855 supports the same character set as Windows codepage 1251, etc.
The MS-Windows version of Emacs uses the current codepage for display
-when invoked with the @samp{-nw} option.
+when invoked with the @samp{-nw} option. Support for codepages in the
+Windows port of Emacs is part of the @file{code-pages.el} package.
@node MS-DOS Processes
@section Subprocesses on MS-DOS
diff --git a/man/mule.texi b/man/mule.texi
index 0f9873cdb0..fa5e1246f2 100644
--- a/man/mule.texi
+++ b/man/mule.texi
@@ -1,5 +1,6 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 1997, 1999, 2000, 2001, 2005 Free Software Foundation, Inc.
+@c Copyright (C) 1997, 1999, 2000, 2001, 2002, 2003, 2004,
+@c 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node International, Major Modes, Frames, Top
@chapter International Character Set Support
@@ -592,12 +593,15 @@ coding systems @code{no-conversion}, @code{raw-text} and
@cindex international files from DOS/Windows systems
A special class of coding systems, collectively known as
@dfn{codepages}, is designed to support text encoded by MS-Windows and
-MS-DOS software. To use any of these systems, you need to create it
-with @kbd{M-x codepage-setup}. @xref{MS-DOS and MULE}. After
-creating the coding system for the codepage, you can use it as any
-other coding system. For example, to visit a file encoded in codepage
-850, type @kbd{C-x @key{RET} c cp850 @key{RET} C-x C-f @var{filename}
-@key{RET}}.
+MS-DOS software. The names of these coding systems are
+@code{cp@var{nnnn}}, where @var{nnnn} is a 3- or 4-digit number of the
+codepage. You can use these encodings just like any other coding
+system; for example, to visit a file encoded in codepage 850, type
+@kbd{C-x @key{RET} c cp850 @key{RET} C-x C-f @var{filename}
+@key{RET}}@footnote{
+In the MS-DOS port of Emacs, you need to create a @code{cp@var{nnn}}
+coding system with @kbd{M-x codepage-setup}, before you can use it.
+@xref{MS-DOS and MULE}.}.
In addition to converting various representations of non-@acronym{ASCII}
characters, a coding system can perform end-of-line conversion. Emacs
@@ -818,7 +822,7 @@ pattern, are decoded correctly. One of the builtin
If Emacs recognizes the encoding of a file incorrectly, you can
reread the file using the correct coding system by typing @kbd{C-x
-@key{RET} c @var{coding-system} @key{RET} M-x revert-buffer
+@key{RET} r @var{coding-system}
@key{RET}}. To see what coding system Emacs actually used to decode
the file, look at the coding system mnemonic letter near the left edge
of the mode line (@pxref{Mode Line}), or type @kbd{C-h C @key{RET}}.
@@ -1105,7 +1109,7 @@ C-w} to specify a new file name for that buffer.
@findex recode-file-name
If a mistake occurs when encoding a file name, use the command
-command @kbd{M-x recode-file-name} to change the file name's coding
+@kbd{M-x recode-file-name} to change the file name's coding
system. This prompts for an existing file name, its old coding
system, and the coding system to which you wish to convert.
diff --git a/man/org.texi b/man/org.texi
index 1c1ac5ae4f..0545cf462f 100644
--- a/man/org.texi
+++ b/man/org.texi
@@ -4,8 +4,8 @@
@setfilename ../info/org
@settitle Org Mode Manual
-@set VERSION 3.13
-@set DATE July 2005
+@set VERSION 3.15
+@set DATE September 2005
@dircategory Emacs
@direntry
@@ -94,7 +94,7 @@ Introduction
* Summary:: Brief summary of what Org-mode does
* Installation and Activation:: How to install Org-mode
-* Feedback:: Bug reportes, ideas, patches etc.
+* Feedback:: Bug reports, ideas, patches etc.
Document Structure
@@ -116,9 +116,11 @@ Tables
Calculations in tables
* Formula syntax:: How to write a formula
-* Applying a formula:: How to get a formula executed
-* Recalculation:: Re-applying all formulas in a table
-* Summing:: Summing columns and rows
+* Column formulas:: Formulas valid for all fields in a column
+* Advanced features:: Field names, parameters and automatic recalc
+* Named-field formulas:: Formulas valid in single fields
+* Editing/debugging formulas:: Changing a stored formula
+* Appetizer::
Hyperlinks
@@ -180,7 +182,7 @@ Miscellaneous
@menu
* Summary:: Brief summary of what Org-mode does
* Installation and Activation:: How to install Org-mode
-* Feedback:: Bug reportes, ideas, patches etc.
+* Feedback:: Bug reports, ideas, patches etc.
@end menu
@node Summary, Installation and Activation, Introduction, Introduction
@@ -198,7 +200,7 @@ help to work with the tree. Tables are easily created with a built-in
table editor. Org-mode supports ToDo items, deadlines, time stamps,
and scheduling. It dynamically compiles entries into an agenda that
utilizes and smoothly integrates much of the Emacs calendar and diary.
-Plain text URL-like links connect to websites, emails, usenet
+Plain text URL-like links connect to websites, emails, Usenet
messages, BBDB entries, and any files related to the projects. For
printing and sharing of notes, an Org-mode file can be exported as a
structured ASCII file, or as HTML.
@@ -715,10 +717,19 @@ above.
@cindex calculations, in tables
@kindex C-c =
@item C-c =
-Replace current field with the result of a formula. When called with a
-@kbd{C-u} prefix, apply the equation in the current field and down
-through the current column to a horizonal separator line or the end of
-the table. For details, see @ref{Table calculations}.
+Install a new formula for the current column and replace current field
+with the result of the formula.
+
+@kindex C-u C-c =
+@item C-u C-c =
+Install a new formula for the current field, which must be a named
+field. Evaluate the formula and replace the field content with the
+result.
+
+@kindex C-c '
+@item C-c '
+Edit all formulas associated with the current table in a separate
+buffer.
@kindex C-c *
@item C-c *
@@ -729,9 +740,9 @@ first horizontal separator line). For details, see @ref{Table calculations}.
@kindex C-#
@item C-#
-Rotate the recalculation mark in first column through the states
+Rotate the calculation mark in first column through the states
@samp{}, @samp{#}, @samp{*}, @samp{!}, @samp{$}. For the meaning of
-these marks see @ref{Table calculations}. When there is an active
+these marks see @ref{Advanced features}. When there is an active
region, change all marks in the region.
@kindex C-c ?
@@ -791,36 +802,58 @@ it off with
@section Calculations in tables
@cindex calculations, in tables
-While the Org-mode table editor misses many features of a full
-spreadsheet, it nevertheless has very useful capabilities to compute
-fields. In horizontal direction, it can use complex expressions to
-compute a field from other fields @emph{in the same row}, using named
-columns, constants and parameters. The Emacs @file{calc} package is
-required for this feature to work. In vertical direction, only
-summing is supported.
+The table editor has some spreadsheet-like capabilities. The Emacs
+@file{calc} package is required for this feature to work. There are
+basically two levels of complexity for table calculations in Org-mode.
+On the basic level, tables do only horizontal computations, so a field
+can be computed from other fields @emph{in the same row}, and Org-mode
+assumes that there is only one formula for each column. This is very
+efficient to work with and enough for many tasks. On the complex
+level, columns and individual fields can be named for easier
+referencing in formulas, individual named fields can have their own
+formula associated with them, and recalculation can be automated.
@menu
* Formula syntax:: How to write a formula
-* Applying a formula:: How to get a formula executed
-* Recalculation:: Re-applying all formulas in a table
-* Summing:: Summing columns and rows
+* Column formulas:: Formulas valid for all fields in a column
+* Advanced features:: Field names, parameters and automatic recalc
+* Named-field formulas:: Formulas valid in single fields
+* Editing/debugging formulas:: Changing a stored formula
+* Appetizer:: Taste the power of calc
@end menu
-@node Formula syntax, Applying a formula, Table calculations, Table calculations
+@node Formula syntax, Column formulas, Table calculations, Table calculations
@subsection Formula syntax
-A formula for horizontal computations can be any algebraic expression
-understood by the Emacs @file{calc} package. Before evaluation,
-variable substitution takes place: @samp{$} is replaced by the field
-the cursor is currently in, and $1..$n reference the fields in the
-current row. @samp{$name} is interpreted as the name of a column,
-parameter or constant. Constants are defined globally through the
-variable @code{org-table-formula-constants}. If you have the
+A formula can be any algebraic expression understood by the Emacs
+@file{calc} package. Before evaluation by @code{calc-eval}
+(@pxref{Calling Calc from Your Lisp Programs,calc-eval,Calling calc
+from Your Lisp Programs,calc,GNU Emacs Calc Manual}), variable
+substitution takes place:
+
+@example
+ $ @r{refers to the current field}
+ $3 @r{refers to the field in column 3 of the current row}
+ $3..$7 @r{a vector of the fields in columns 3-7 of current row}
+ $P1..$P3 @r{vector of column range, using column names}
+ &2 @r{second data field above the current, in same column}
+ &5-2 @r{vector from fifth to second field above current}
+ &III-II @r{vector of fields between 2nd and 3rd hline above}
+ &III @r{vector of fields between third hline above and current field}
+ $name @r{a named field, parameter or constant}
+@end example
+
+The range vectors can be directly fed into the calc vector functions
+like functions @samp{vmean} and @samp{vsum}.
+
+@samp{$name} is interpreted as the name of a column, parameter or
+constant. Constants are defined globally through the variable
+@code{org-table-formula-constants}. If you have the
@file{constants.el} package, it will also be used to resolve
-constants, including natural constants like @samp{$k} for Plancks
+constants, including natural constants like @samp{$k} for Planck's
constant, units like @samp{$km} for kilometers. Column names and
parameters can be specified in special table lines. These are
-described below, see @ref{Recalculation}.
+described below, see @ref{Advanced features}.
A formula can contain an optional mode string after a semicolon. This
string consists of flags to influence calc's modes@footnote{By
@@ -833,66 +866,65 @@ switch the internal precision to 20 digits, @samp{n3}, @samp{s3},
@samp{e2} or @samp{f4} to switch to normal, scientific, engineering,
or fix display format, respectively, and @samp{D}, @samp{R}, @samp{F},
and @samp{S} to turn on degrees, radians, fraction and symbolic modes,
-respectively. In addition, you may provide a @code{printf} specifier
-to reformat the final result. A few examples:
+respectively. In addition, you may provide a @code{printf} format
+specifier to reformat the final result. A few examples:
@example
$1+$2 @r{Sum of first and second field}
$1+$2;%.2f @r{Same, format result to two decimals}
exp($2)+exp($1) @r{Math functions can be used}
$;%.1f @r{Reformat current cell to 1 decimal}
- ($3-32)*5/9 @r{degrees F -> C conversion}
+ ($3-32)*5/9 @r{Degrees F -> C conversion}
$c/$1/$cm @r{Hz -> cm conversion, using @file{constants.el}}
- tan($1);Dp3s1 @r{compute in degrees, precision 3, display SCI 1}
- vmean($2..$7) @r{compute column range mean, using vector function}
+ tan($1);Dp3s1 @r{Compute in degrees, precision 3, display SCI 1}
+ sin($1);Dp3%.1e @r{Same, but use printf specifier for display}
+ vmean($2..$7) @r{Compute column range mean, using vector function}
+ vsum(&III) @r{Sum numbers from 3rd hline above to here}
taylor($3,x=7,2) @r{taylor series of $3, at x=7, second degree}
@end example
-@node Applying a formula, Recalculation, Formula syntax, Table calculations
-@subsection Applying a formula
+@node Column formulas, Advanced features, Formula syntax, Table calculations
+@subsection Column formulas
To apply a formula to a field, type it directly into the field,
preceded by an equal sign, like @samp{=$1+$2}. When you press
@key{TAB} or @key{RET} or @kbd{C-c C-c} with the cursor still in the
-field, the formula will be evaluated and replaced with the result. If
-the field contains only @samp{=}, the formula most recently applied
-anywhere in the @emph{same column} will be used.
+field, the formula will be stored as the formula for the current
+column, evaluated and the current field replaced with the result. If
+the field contains only @samp{=}, the previously stored formula for
+this column is used.
For each column, Org-mode will remember the most recently used
-formula. The information is stored in a special line directly below
-the table. When adding/deleting/moving columns with the appropriate
-commands, the stored equations will be modified accordingly. When a
-column used in a calculation is removed, references to this column
-become invalid and will cause an error upon applying the equation.
+formula. The information is stored in a special line starting with
+@samp{#+TBLFM} directly below the table. When adding/deleting/moving
+columns with the appropriate commands, the stored equations will be
+modified accordingly. When a column used in a calculation is removed,
+references to this column become invalid and will cause an error upon
+applying the equation.
Instead of typing an equation into the field, you may also use the
command @kbd{C-c =}. It prompts for a formula (with default taken
-from the @samp{#+TBLFM:} line) and applies it to the current field.
-If you use a prefix argument (i.e. @kbd{C-u C-c =}), the formula will
-be applied to the current field and down to the next separator line
-or the end of the table. A numerical prefix will apply it to that
-many fields in the current column.
-
-When the evaluation of a formula leads to an error, the field content
-becomes the string @samp{#ERROR}. If you would like see what is going
-on during variable substitution and calculation in order to find a
-bug, turn on formula debugging in the menu and repeat the calculation
-by pressing, for example by pressing @kbd{C-c = @key{RET}} in a field.
-Detailed information will be displayed.
-
-@node Recalculation, Summing, Applying a formula, Table calculations
-@subsection Recalculation
+from the @samp{#+TBLFM:} line) and applies it to the current field. A
+numerical prefix (e.g. @kbd{C-5 C-c =}) will apply it to that many
+subsequent fields in the current column.
To recompute all the fields in a line, use the command @kbd{C-c *}.
It re-applies all stored equations to the current row, from left to
right. With a @kbd{C-u} prefix, this will be done to every line in
the table, so use this command it you want to make sure the entire
-table is up-to-date. A more automatic way of recalculating the
-current line requires marking the line: If the first column of a row
-contains only @samp{#}, the row will be re-computed with every
-@key{TAB}, @key{RET}, and @kbd{C-c C-c} in this row. Here is an
-example of a table that collects exam results of students, with some
-rows activated for semi-automatic computations.
-
+table is up-to-date. @kbd{C-u C-c C-c} is another way to update the
+entire table. Global updating does not touch the line(s) above the
+first horizontal separator line, assuming that this is the table
+header.
+
+@node Advanced features, Named-field formulas, Column formulas, Table calculations
+@subsection Advanced features
+
+If you want want the recalculation of fields to happen automatically,
+or if you want to be able to assign a formula to an individual field
+(instead of an entire column) you need to reserve the first column of
+the table for special marking characters. Here is an example of a
+table that collects exam results of students and makes use of these
+features:
@example
@group
|---+---------+--------+--------+--------+-------+------|
@@ -903,50 +935,112 @@ rows activated for semi-automatic computations.
| ^ | | m1 | m2 | m3 | mt | |
|---+---------+--------+--------+--------+-------+------|
| # | Peter | 10 | 8 | 23 | 41 | 8.2 |
-| # | Sara | 7 | 14 | 19 | 40 | 8.0 |
+| # | Sara | 6 | 14 | 19 | 39 | 7.8 |
| # | Sam | 2 | 4 | 3 | 9 | 1.8 |
|---+---------+--------+--------+--------+-------+------|
+| | Average | | | | 29.7 | |
+| ^ | | | | | at | |
| $ | max=50 | | | | | |
|---+---------+--------+--------+--------+-------+------|
-#+TBLFM: $6=vsum($P1..$P3)::$7=10*$Tot/$max;%.1f
+#+TBLFM: $6=vsum($P1..$P3)::$7=10*$Tot/$max;%.1f::$at=vmean(&II);%.1f
@end group
@end example
-@noindent
-The example also demonstrates a number of features:
-@enumerate
-@item
-If the first field of a row contains only @samp{!}, this row defines
-@emph{names} for the different columns so that you can write
-@samp{$Tot} instead of @samp{$6} --- useful in larger tables,
-when counting columns becomes error prone.
-@item
-If the first field of a row contains only @samp{$}, fields in this row
-can define @emph{parameters} for formulas. For example, if a field in
-a @samp{$} row contains @samp{max=50}, then formulas in this table can
-refer to the value 50 using @samp{$max}. Parameters work exactly like
-constants, only that they can be defined on a per-table basis.
-Changing a parameter and then recalculating the table can be useful
-and fun.
-@item
-It the first field contains only @samp{^}, fields in this row define
-names for the fields in the row above, for example @samp{$m1} for
-@samp{10}. Similarly, if the marking character is @samp{_}, the names
-are valie for the fields in the row below.
-@item
-A column range @samp{$P1..$P3} is expanded to a vector, so that calc's
-vector functions (in this case @samp{vsum}, but there are many more)
-can be applied to ranges. For a range, columns may be referenced by
-name or number, in either sequence.
-@end enumerate
-@noindent If a table contains any line with @samp{#} as the
-first field, @kbd{C-u C-c *} will only change the marked lines and
-leave all unmarked lines alone. You can also mark a line with
-@samp{*}. These lines will also be recalculated with @kbd{C-u C-c *},
-but not upon @key{TAB} and @key{RET}. Use this for lines which are
-slow to calculate.
+@noindent @b{Important}: Please note that for these special tables,
+recalculating the table with @kbd{C-u C-c *} does only affect rows
+which are marked @samp{#} or @samp{*}, and named fields. The column
+formulas are not applied in rows with empty first field.
+
+The marking characters have the following meaning:
+@table @samp
+@item !
+The fields in this line define names for the columns, so that you may
+refer to a column as @samp{$Tot} instead of @samp{$6}.
+@item ^
+This row define names for the fields @emph{above} the row. With such
+a definition, any formula in the table may use @samp{$m1} to refer to
+the value @samp{10}. Also, named fields can have their own formula
+associated with them.
+@item _
+Similar to @samp{^}, but defines names for the fields in the row
+@emph{below}.
+@item $
+Fields in this row can define @emph{parameters} for formulas. For
+example, if a field in a @samp{$} row contains @samp{max=50}, then
+formulas in this table can refer to the value 50 using @samp{$max}.
+Parameters work exactly like constants, only that they can be defined on
+a per-table basis. Changing a parameter and then recalculating the
+table can be useful.
+@item #
+Fields in this row are automatically recalculated when pressing
+@key{TAB} or @key{RET} or @kbd{S-@key{TAB}} in this row. Also, this row
+is selected for a global recalculation with @kbd{C-u C-c *}. Unmarked
+lines will be left alone by this command.
+@item *
+Selects this line for global recalculation with @kbd{C-u C-c *}, but
+not for automatic recalculation. Use this when automatic
+recalculation slows down editing too much.
+@item
+Unmarked lines are exempted from recalculation with @kbd{C-u C-c *}.
+All lines that should be recalculated should be marked with @samp{#}
+or @samp{*}.
+@end table
+
+@node Named-field formulas, Editing/debugging formulas, Advanced features, Table calculations
+@subsection Named-field formulas
-Just to wet your appetite on what can be done with the fantastic
+A named field can have its own formula associated with it. In the
+example above, this is used for the @samp{at} field that contains
+the average result of the students. To enter a formula for a named
+field, just type it onto the buffer, preceded by @samp{:=}. Or use
+@kbd{C-u C-c =}. This equation will be stored below the table like
+@samp{$name=...}. Any recalculation in the table (even if only
+requested for the current line) will also update all named field
+formulas.
+
+@node Editing/debugging formulas, Appetizer, Named-field formulas, Table calculations
+@subsection Editing and debugging formulas
+
+To edit a column or field formula, you can use the commands @kbd{C-c
+=} and @kbd{C-u C-c =}, respectively. The currently active expression
+is then presented as default in the minibuffer, were it may be edited.
+
+Note that making a table field blank does not remove the formula
+associated with the field - during the next recalculation the field
+will be filled again. To remove a formula from a field, you have to
+give an empty reply when prompted for the formula, or to edit the
+@samp{#+TBLFM} line.
+
+@kindex C-c C-c
+You may edit the @samp{#+TBLFM} directly and re-apply
+the changed equations with @kbd{C-c C-c} in that line, or with the
+normal recalculation commands in the table.
+
+@kindex C-c '
+@kindex C-c C-c
+@kindex C-c C-q
+@kindex C-c ?
+In particular for large tables with many formulas, it is convenient to
+use the command @kbd{C-c '} to edit the formulas of the current table
+in a separate buffer. That buffer will show the formulas one per
+line, and you are free to edit, add and remove formulas. Press
+@kbd{C-c ?} on a @samp{$...} expression to get information about its
+interpretation. Exiting the buffer with @kbd{C-c C-c} only stores the
+modified formulas below the table. Exiting with @kbd{C-u C-c C-c}
+also applies them to the entire table. @kbd{C-c C-q} exits without
+installing the changes.
+
+When the evaluation of a formula leads to an error, the field content
+becomes the string @samp{#ERROR}. If you would like see what is going
+on during variable substitution and calculation in order to find a
+bug, turn on formula debugging in the menu and repeat the calculation
+by pressing, for example by pressing @kbd{C-c = @key{RET}} in a field.
+Detailed information will be displayed.
+
+@node Appetizer, , Editing/debugging formulas, Table calculations
+@subsection Appetizer
+
+Finally, just to wet your appetite on what can be done with the fantastic
@file{calc} package, here is a table that computes the Taylor series
for a couple of functions (homework: try that with Excel :-)
@@ -966,22 +1060,6 @@ for a couple of functions (homework: try that with Excel :-)
@end group
@end example
-@node Summing, , Recalculation, Table calculations
-@subsection Summing
-
-Finally, when typing a formula into a field, a number of special
-keywords execute predefined sums over the current row or column and
-enter the result into the current field. These calculations are
-one-off, the formula is not stored, and you will neet to re-enter it
-in order to compute again.
-
-@example
-= @r{Execute the stored formula valid in this column.}
-=sum @r{Sum all fields above the current (alias @code{=sumv}).}
-=sumh @r{Sum all fields to the left of the current field.}
-=sum3 @r{Same as @samp{=sum}, but use just 3 fields above current.}
-@end example
-
@node orgtbl-mode, table.el, Table calculations, Tables
@section The Orgtbl minor mode
@cindex orgtbl-mode
@@ -1029,7 +1107,7 @@ possible.
@chapter Hyperlinks
@cindex hyperlinks
-Just like HMTL, Org-mode provides links to other files, usenet
+Just like HMTL, Org-mode provides links to other files, Usenet
articles, emails and much more.
@menu
@@ -1050,7 +1128,7 @@ articles, emails and much more.
@cindex USENET links
@cindex SHELL links
-Org-mode supports links to files, websites, usenet and email messages;
+Org-mode supports links to files, websites, Usenet and email messages;
and BBDB database entries. Links are just plain-text URL-like
locators, optionally enclosed by angular brackets. The following list
shows examples for each link type.
@@ -1142,13 +1220,14 @@ the @emph{Remember} package by John Wiegley. @emph{Remember} lets you
store quick notes with little interruption of your work flow. See
@uref{http://www.emacswiki.org/cgi-bin/wiki/RememberMode} for more
information. The notes produced by @emph{Remember} can be stored in
-different ways, and Org-mode files are a good target.
-Org-mode allows to file away notes either to a default file, or
-directly to the correct location in your Org-mode outline tree. The
-following customization will tell @emph{Remember} to use org files as
-target, and to create annotations compatible with Org-mode links.
+different ways, and Org-mode files are a good target. Org-mode allows
+to file away notes either to a default file, or directly to the
+correct location in your Org-mode outline tree. The following
+customization@footnote{The two autoload forms are only necessary if
+@file{org.el} is not part of the Emacs distribution or and XEmacs
+package.} will tell @emph{Remember} to use org files as target, and to
+create annotations compatible with Org-mode links.
-@c FIXME: The autoload will not be necessary when Org-mode is part of Emacs
@example
(autoload 'org-remember-annotation "org")
(autoload 'org-remember-handler "org")
@@ -1457,7 +1536,7 @@ continuing until the entry is marked DONE. An example:
@end example
@item SCHEDULED
-@cindex DEADLINE keyword
+@cindex SCHEDULED keyword
If a time stamp is preceded by the word @samp{SCHEDULED:}, it means
you are planning to start working on that task on the given date. The
headline will be listed under the given date. In addition, a reminder
@@ -2138,8 +2217,10 @@ horizontal separator line will be formatted as table header fields.
@cindex fixed width
@item
-Lines starting with @samp{:} are typeset in a fixed-width font, to
-allow quoting of computer code etc.
+If a headline starts with the word @samp{QUOTE}, the text below the
+headline will be typeset as fixed-width, to allow quoting of computer
+codes etc. Lines starting with @samp{:} are also typeset in
+fixed-width font.
@cindex HTML tags
@item
@@ -2233,7 +2314,6 @@ Toggle the COMMENT keyword at the beginning of an entry.
@cindex completion, of TODO keywords
@cindex completion, of dictionary words
@cindex completion, of option keywords
-@cindex completion, of keyword formulas
Org-mode supports in-buffer completion. This type of completion does
not make use of the minibuffer. You simply type a few letters into
@@ -2254,8 +2334,6 @@ After @samp{#+}, complete the special keywords like @samp{TYP_TODO} or
option keyword is already complete, pressing @kbd{M-@key{TAB}} again
will insert example settings for this keyword.
@item
-After @samp{=}, complete keyword formulas for tables.
-@item
Elsewhere, complete dictionary words using ispell.
@end itemize
@end table
@@ -2376,7 +2454,7 @@ checks for the availability of calc by looking for the function
been installed properly. As of Emacs 22, calc is part of the Emacs
distribution. Another possibility for interaction between the two
packages is using calc for embedded calculations. @xref{Embedded Mode,
-, Embedded Mode, calc, The calc maanual}.
+, Embedded Mode, calc, GNU Emacs Calc Manual}.
@cindex @file{constants.el}
@item @file{constants.el} by Carsten Dominik
In a table formula (@pxref{Table calculations}), it is possible to use
@@ -2431,7 +2509,7 @@ have found too hard to fix.
@item
If you call @code{fill-paragraph} (bound to @kbd{M-q}) in a table, the
filling is correctly disabled. However, if some text directly
-(without an empty line in between) preceeds or follows a table, calling
+(without an empty line in between) precedes or follows a table, calling
@code{fill-paragraph} in that text will also fill the table like
normal text. Also, @code{fill-region} does bypass the
@code{fill-paragraph} code and will fill tables like normal text.
@@ -2490,7 +2568,8 @@ beta testing and contributed a number of very useful ideas.
Christian Schlauer proposed angular brackets around links, among other
things.
@item
-David Wainberg suggested to implement an archiving mechanism.
+David Wainberg suggested to implement an archiving mechanism and helped
+testing.
@item
Linking to VM/BBDB/GNUS was inspired by Tom Shannon's
@file{organizer-mode.el}.
diff --git a/man/pcl-cvs.texi b/man/pcl-cvs.texi
index de9b962e4a..26ca071d2e 100644
--- a/man/pcl-cvs.texi
+++ b/man/pcl-cvs.texi
@@ -7,7 +7,7 @@
@copying
Copyright @copyright{} 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-1999, 2000, 2002, 2004 Free Software Foundation, Inc.
+ 1999, 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
diff --git a/man/pgg.texi b/man/pgg.texi
index 8593a9e64a..203f0cda37 100644
--- a/man/pgg.texi
+++ b/man/pgg.texi
@@ -8,7 +8,7 @@
@copying
This file describes the PGG.
-Copyright (C) 2003 Free Software Foundation, Inc.
+Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
Copyright (C) 2001 Daiki Ueno.
@quotation
diff --git a/man/picture.texi b/man/picture.texi
index 465c35143c..46a735122d 100644
--- a/man/picture.texi
+++ b/man/picture.texi
@@ -1,5 +1,6 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 1985, 86, 87, 93, 94, 95, 1997 Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2002, 2003,
+@c 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Picture, Sending Mail, Abbrevs, Top
@chapter Editing Pictures
diff --git a/man/programs.texi b/man/programs.texi
index 83d8d6aa0b..d5b608a288 100644
--- a/man/programs.texi
+++ b/man/programs.texi
@@ -1,6 +1,6 @@
@c This is part of the Emacs manual.
@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1999, 2000,
-@c 2001, 2005 Free Software Foundation, Inc.
+@c 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Programs, Building, Text, Top
@chapter Editing Programs
@@ -1016,7 +1016,7 @@ for example, in C mode the value of the variable is
after the @samp{/*} itself, and accepts C++ style comments also.
(Note that @samp{\\} is needed in Lisp syntax to include a @samp{\} in
the string, which is needed to deny the first star its special meaning
-in regexp syntax. @xref{Regexps}.)
+in regexp syntax. @xref{Regexp Backslash}.)
@vindex comment-start
@vindex comment-end
diff --git a/man/reftex.texi b/man/reftex.texi
index f6e5a6da08..12c4ce6e41 100644
--- a/man/reftex.texi
+++ b/man/reftex.texi
@@ -25,7 +25,8 @@ citations and indices for LaTeX documents with Emacs.
This is edition @value{EDITION} of the @b{Ref@TeX{}} User Manual for
@b{Ref@TeX{}} @value{VERSION}
-Copyright (c) 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
+Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004,
+ 2005 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
diff --git a/man/regs.texi b/man/regs.texi
index 41b2e63985..0e3c9073ac 100644
--- a/man/regs.texi
+++ b/man/regs.texi
@@ -1,5 +1,6 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 1985, 86, 87, 93, 94, 95, 1997 Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2002, 2003,
+@c 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Registers, Display, Rectangles, Top
@chapter Registers
diff --git a/man/rmail.texi b/man/rmail.texi
index 091d1e60b7..71181b0db3 100644
--- a/man/rmail.texi
+++ b/man/rmail.texi
@@ -1,5 +1,6 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 1985,86,87,93,94,95,1997,2001 Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002,
+@c 2003, 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Rmail, Dired, Sending Mail, Top
@chapter Reading Mail with Rmail
diff --git a/man/sc.texi b/man/sc.texi
index 11ae3d139c..2189539476 100644
--- a/man/sc.texi
+++ b/man/sc.texi
@@ -15,7 +15,8 @@ This document describes the Supercite Version 3.1 package for citing and
attributing the replies for various GNU Emacs mail and news reading
subsystems.
-Copyright @copyright{} 1993, 2001, 2002 Free Software Foundation, Inc.
+Copyright @copyright{} 1993, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
@@ -948,7 +949,7 @@ to:
(setq mail-citation-hook 'sc-cite-original)
@end example
-Note the lack of of a single quote on the first argument to @code{setq}.
+Note the lack of a single quote on the first argument to @code{setq}.
@node MH-E with any Emacsen, VM with any Emacsen, Emacs 18 MUAs, Getting Connected
@comment node-name, next, previous, up
diff --git a/man/screen.texi b/man/screen.texi
index a2f20e1721..cd8224a6db 100644
--- a/man/screen.texi
+++ b/man/screen.texi
@@ -1,5 +1,6 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 1985,86,87,93,94,95,1997,2001 Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002,
+@c 2003, 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Screen, User Input, Acknowledgments, Top
@chapter The Organization of the Screen
diff --git a/man/search.texi b/man/search.texi
index de530f7ee0..0233f7ce8d 100644
--- a/man/search.texi
+++ b/man/search.texi
@@ -1,6 +1,6 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2004, 2005
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2002,
+@c 2003, 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Search, Fixit, Display, Top
@chapter Searching and Replacement
@@ -24,6 +24,8 @@ asks interactively which occurrences to replace.
* Word Search:: Search for sequence of words.
* Regexp Search:: Search for match for a regexp.
* Regexps:: Syntax of regular expressions.
+* Regexp Backslash:: Regular expression constructs starting with `\'.
+* Regexp Example:: A complex regular expression explained.
* Search Case:: To ignore case while searching, or not.
* Replace:: Search, and replace some or all matches.
* Other Repeating Search:: Operating on all matches for some regexp.
@@ -210,7 +212,7 @@ of bindings, look at the documentation of @code{isearch-mode} with
@cindex searching for non-@acronym{ASCII} characters
@cindex input method, during incremental search
- To enter non-@acronym{ASCII} characters in an incrementral search,
+ To enter non-@acronym{ASCII} characters in an incremental search,
you must use an input method (@pxref{Input Methods}). If an input
method is enabled in the current buffer when you start the search, you
can use it while you type the search string also. Emacs indicates
@@ -294,7 +296,7 @@ commands such as @kbd{@key{PRIOR}} (@code{scroll-down}),
@kbd{@key{NEXT}} (@code{scroll-up}) and @kbd{C-l} (@code{recenter})
within the search, thus letting you see more of the text near the
current match. You must run these commands via their key sequences to
-stay in the search---typing M-x @var{comand-name} will always
+stay in the search---typing M-x @var{command-name} will always
terminate a search.
You can give prefix arguments to these commands in the usual way.
@@ -309,6 +311,16 @@ handy during a search.
You can make other commands usable within an incremental search by
giving the command a non-@code{nil} @code{isearch-scroll} property.
+For example, to make @kbd{C-h l} usable within an incremental search
+in all future Emacs sessions, use @kbd{C-h c} to find what command it
+runs. (You type @kbd{C-h c C-h l}; it says @code{view-lossage}.) Then
+you can put the following line in your @file{.emacs} file (@pxref{Init File}):
+
+@example
+(put 'view-lossage 'isearch-scroll t)
+@end example
+
+@noindent
This works for commands that don't permanently change point, the
buffer contents, the match data, the current buffer, or the selected
window and frame. The command must not delete the current window and
@@ -331,7 +343,8 @@ its new position of point.
@vindex search-slow-speed
The slow terminal style of display is used when the terminal baud rate is
less than or equal to the value of the variable @code{search-slow-speed},
-initially 1200. See @code{baud-rate} in @ref{Display Custom}.
+initially 1200. See also the discussion of the variable @code{baud-rate}
+(@pxref{baud-rate,, Customization of Display}).
@vindex search-slow-window-lines
The number of lines to use in slow terminal search display is controlled
@@ -658,20 +671,26 @@ has two functions: it quotes the special characters (including
Because @samp{\} quotes special characters, @samp{\$} is a regular
expression that matches only @samp{$}, and @samp{\[} is a regular
expression that matches only @samp{[}, and so on.
+
+See the following section for the special constructs that begin
+with @samp{\}.
@end table
-Note: for historical compatibility, special characters are treated as
+ Note: for historical compatibility, special characters are treated as
ordinary ones if they are in contexts where their special meanings make no
sense. For example, @samp{*foo} treats @samp{*} as ordinary since there is
no preceding expression on which the @samp{*} can act. It is poor practice
to depend on this behavior; it is better to quote the special character anyway,
-regardless of where it appears.@refill
+regardless of where it appears.
+
+@node Regexp Backslash
+@section Backslash in Regular Expressions
-For the most part, @samp{\} followed by any character matches only that
-character. However, there are several exceptions: two-character
-sequences starting with @samp{\} that have special meanings. The second
-character in the sequence is always an ordinary character when used on
-its own. Here is a table of @samp{\} constructs.
+ For the most part, @samp{\} followed by any character matches only
+that character. However, there are several exceptions: two-character
+sequences starting with @samp{\} that have special meanings. The
+second character in the sequence is always an ordinary character when
+used on its own. Here is a table of @samp{\} constructs.
@table @kbd
@item \|
@@ -825,8 +844,11 @@ matches any character that does @emph{not} belong to category
The constructs that pertain to words and syntax are controlled by the
setting of the syntax table (@pxref{Syntax}).
- Here is a complicated regexp. It is a simplified version of the
-regexp that Emacs uses, by default, to recognize the end of a sentence
+@node Regexp Example
+@section Regular Expression Example
+
+ Here is a complicated regexp---a simplified version of the regexp
+that Emacs uses, by default, to recognize the end of a sentence
together with any whitespace that follows. We show its Lisp syntax to
distinguish the spaces from the tab characters. In Lisp syntax, the
string constant begins and ends with a double-quote. @samp{\"} stands
@@ -853,27 +875,6 @@ for Lisp syntax. In commands that use ordinary minibuffer input to
read a regexp, you would quote the @kbd{C-j} by preceding it with a
@kbd{C-q} to prevent @kbd{C-j} from exiting the minibuffer.
-@ignore
-@c I commented this out because it is missing vital information
-@c and therefore useless. For instance, what do you do to *use* the
-@c regular expression when it is finished? What jobs is this good for?
-@c -- rms
-
-@findex re-builder
-@cindex authoring regular expressions
- For convenient interactive development of regular expressions, you
-can use the @kbd{M-x re-builder} command. It provides a convenient
-interface for creating regular expressions, by giving immediate visual
-feedback. The buffer from which @code{re-builder} was invoked becomes
-the target for the regexp editor, which pops in a separate window. At
-all times, all the matches in the target buffer for the current
-regular expression are highlighted. Each parenthesized sub-expression
-of the regexp is shown in a distinct face, which makes it easier to
-verify even very complex regexps. (On displays that don't support
-colors, Emacs blinks the cursor around the matched text, as it does
-for matching parens.)
-@end ignore
-
@node Search Case
@section Searching and Case
@@ -916,7 +917,7 @@ searches also, including those performed by the replace commands
Global search-and-replace operations are not needed often in Emacs,
but they are available. In addition to the simple @kbd{M-x
replace-string} command which replaces all occurrences,
-there is a @kbd{M-x query-replace} command which finds each occurrence
+there is @kbd{M-%} (@code{query-replace}), which presents each occurrence
of the pattern and asks you whether to replace it.
The replace commands normally operate on the text from point to the
@@ -1012,7 +1013,15 @@ M-x replace-regexp @key{RET} \(c[ad]+r\)-safe @key{RET} \1 @key{RET}
performs the inverse transformation. To include a @samp{\} in the
text to replace with, you must enter @samp{\\}.
- You can also use Lisp expressions to calculate parts of the
+ If you want to enter part of the replacement string by hand each
+time, use @samp{\?} in the replacement string. Each replacement will
+ask you to edit the replacement string in the minibuffer, putting
+point where the @samp{\?} was.
+
+ The remainder of this subsection is intended for specialized tasks
+and requires knowledge of Lisp. Most readers can skip it.
+
+ You can use Lisp expressions to calculate parts of the
replacement string. To do this, write @samp{\,} followed by the
expression in the replacement string. Each replacement calculates the
value of the expression and converts it to text without quoting (if
@@ -1050,22 +1059,6 @@ M-x replace-regexp @key{RET} ^.\@{0,72\@}$ @key{RET}
\,(format "%-72sABC%05d" \& \#) @key{RET}
@end example
- If you want to enter part of the replacement string by hand each
-time, use @samp{\?} in the replacement string. Each replacement will
-ask you to edit the replacement string in the minibuffer, putting
-point where the @samp{\?} was. For example,
-
-@example
-M-x replace-regexp @key{RET} \\footnote@{ @key{RET}
-\&\\label@{fn:\#\?@} @key{RET}
-@end example
-
-@noindent
-will add labels starting with @samp{\label@{fn:0@}} to occurrences of
-@samp{\footnote@{}, but letting you edit each replacement before
-performing it. To number the labels starting at 1, use @samp{\,(1+
-\#)} instead of @samp{\#}.
-
@node Replacement and Case, Query Replace, Regexp Replace, Replace
@subsection Replace Commands and Case
@@ -1257,7 +1250,8 @@ Display a list showing each line in the buffer that contains a match
for @var{regexp}. To limit the search to part of the buffer, narrow
to that part (@pxref{Narrowing}). A numeric argument @var{n}
specifies that @var{n} lines of context are to be displayed before and
-after each matching line.
+after each matching line. Currently, @code{occur} can not correctly
+handle multiline matches.
@kindex RET @r{(Occur mode)}
@kindex o @r{(Occur mode)}
@@ -1271,7 +1265,7 @@ searched and moves point to the original of the chosen occurrence.
does not select it.
Occur mode supports the @code{next-error} functionality described in
-in @ref{Compilation Mode}.
+@ref{Compilation Mode}.
@item M-x list-matching-lines
Synonym for @kbd{M-x occur}.
@@ -1290,19 +1284,31 @@ after point. In Transient Mark mode, if the region is active, the
command operates on the region instead.
@item M-x flush-lines @key{RET} @var{regexp} @key{RET}
-Delete each line that contains a match for @var{regexp}, operating on
-the text after point. In Transient Mark mode, if the region is
-active, the command operates on the region instead.
+This command deletes each line that contains a match for @var{regexp},
+operating on the text after point; it deletes the current line
+if it contains a match starting after point. In Transient Mark mode,
+if the region is active, the command operates on the region instead;
+it deletes a line partially contained in the region if it contains a
+match entirely contained in the region.
+
+If a match is split across lines, @code{flush-lines} deletes all those
+lines. It deletes the lines before starting to look for the next
+match; hence, it ignores a match starting on the same line at which
+another match ended.
@item M-x keep-lines @key{RET} @var{regexp} @key{RET}
-Delete each line that @emph{does not} contain a match for
-@var{regexp}, operating on the text after point. In Transient Mark
-mode, if the region is active, the command operates on the region
-instead.
+This command deletes each line that @emph{does not} contain a match for
+@var{regexp}, operating on the text after point; if point is not at the
+beginning of a line, it always keeps the current line. In Transient
+Mark mode, if the region is active, the command operates on the region
+instead; it never deletes lines that are only partially contained in
+the region (a newline that ends a line counts as part of that line).
+
+If a match is split across lines, this command keeps all those lines.
@end table
You can also search multiple files under control of a tags table
-(@pxref{Tags Search}) or through Dired @kbd{A} command
+(@pxref{Tags Search}) or through the Dired @kbd{A} command
(@pxref{Operating on Files}), or ask the @code{grep} program to do it
(@pxref{Grep Searching}).
diff --git a/man/sending.texi b/man/sending.texi
index e63e5bb9c4..6fa5c1b048 100644
--- a/man/sending.texi
+++ b/man/sending.texi
@@ -1,6 +1,6 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 1985,86,87,93,94,95,97,2000,2001, 2003
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2002,
+@c 2003, 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Sending Mail, Rmail, Picture, Top
@chapter Sending Mail
diff --git a/man/ses.texi b/man/ses.texi
index 9667161f67..10d52dd66e 100644
--- a/man/ses.texi
+++ b/man/ses.texi
@@ -3,12 +3,15 @@
@setfilename ../info/ses
@settitle SES: Simple Emacs Spreadsheet
@setchapternewpage off
+@syncodeindex fn cp
+@syncodeindex vr cp
+@syncodeindex ky cp
@c %**end of header
@copying
This file documents SES: the Simple Emacs Spreadsheet.
-Copyright @copyright{} 2002, 2005 Free Software Foundation, Inc.
+Copyright @copyright{} 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
@@ -534,7 +537,7 @@ the formula becomes
@end lisp
and the new row is not included in the sum.
-The macro @code{(ses-range @var{from} @var{to})} evalutes to a list of
+The macro @code{(ses-range @var{from} @var{to})} evaluates to a list of
the values in a rectangle of cells. If your formula is
@lisp
(apply '+ (ses-range A1 A3))
@@ -655,7 +658,7 @@ tabs, so these are replaced with question marks.
@table @kbd
@item C-c C-t
Confine a cell to its own column (@code{ses-truncate-cell}). This
-alows you to move point to a rightward cell that would otherwise be
+allows you to move point to a rightward cell that would otherwise be
covered by a spill-over. If you don't change the rightward cell, the
confined cell will spill over again the next time it is reprinted.
@@ -704,7 +707,7 @@ substitute always signals an error.
Formulas or printers that you type in are checked immediately for
safety. If found to be possibly unsafe and you press N to disapprove,
-the action is cancelled and the old formula or printer will remain.
+the action is canceled and the old formula or printer will remain.
Besides viruses (which try to copy themselves to other files),
@code{unsafep} can also detect all other kinds of Trojan horses, such as
@@ -919,19 +922,10 @@ cell.
@c ===================================================================
@node Index, Acknowledgements, For Gurus, Top
-@unnumbered Concept Index
+@unnumbered Index
@printindex cp
-@heading Function Index
-
-@printindex fn
-
-@heading Variable Index
-
-@printindex vr
-
-
@c ===================================================================
@node Acknowledgements, , Index, Top
diff --git a/man/sieve.texi b/man/sieve.texi
index a41463c531..21da1f22c1 100644
--- a/man/sieve.texi
+++ b/man/sieve.texi
@@ -9,7 +9,7 @@
@copying
This file documents the Emacs Sieve package.
-Copyright (C) 2001 Free Software Foundation, Inc.
+Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
diff --git a/man/smtpmail.texi b/man/smtpmail.texi
index f75b48dddd..847d7c7d74 100644
--- a/man/smtpmail.texi
+++ b/man/smtpmail.texi
@@ -3,7 +3,7 @@
@settitle Emacs SMTP Library
@syncodeindex vr fn
@copying
-Copyright @copyright{} 2003, 2004 Free Software Foundation, Inc.
+Copyright @copyright{} 2003, 2004, 2005 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
diff --git a/man/speedbar.texi b/man/speedbar.texi
index 40296f5708..58dd4b435e 100644
--- a/man/speedbar.texi
+++ b/man/speedbar.texi
@@ -5,7 +5,8 @@
@syncodeindex fn cp
@copying
-Copyright @copyright{} 1999, 2000, 2002, 2004 Free Software Foundation, Inc.
+Copyright @copyright{} 1999, 2000, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
@@ -68,7 +69,7 @@ authors of other packages to provide speedbar summaries customized to
the needs of that mode.
Throughout this manual, activities are defined as `clicking on', or
-`expanding' items. Clicking means using using @kbd{Mouse-2} on a
+`expanding' items. Clicking means using @kbd{Mouse-2} on a
button. Expanding refers to clicking on an expansion button to display
an expanded summary of the entry the expansion button is
on. @xref{Basic Navigation}.
diff --git a/man/texinfo.tex b/man/texinfo.tex
index ef68971341..eb7ea101e6 100644
--- a/man/texinfo.tex
+++ b/man/texinfo.tex
@@ -3,10 +3,11 @@
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
-\def\texinfoversion{2005-02-08.10}
+\def\texinfoversion{2005-08-10.17}
%
-% Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
-% 2000, 01, 02 Free Software Foundation, Inc.
+% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994,
+% 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+% 2005 Free Software Foundation, Inc.
%
% This texinfo.tex file is free software; you can redistribute it and/or
% modify it under the terms of the GNU General Public License as
diff --git a/man/text.texi b/man/text.texi
index 13510deda6..01cacc1a62 100644
--- a/man/text.texi
+++ b/man/text.texi
@@ -1,6 +1,6 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 1985,86,87,93,94,95,97,2000,2001, 2002, 2004
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
+@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Text, Programs, Indentation, Top
@chapter Commands for Human Languages
@@ -228,7 +228,7 @@ normally similar to the following regexp:
@end example
@noindent
-This example is explained in the section on regexps. @xref{Regexps}.
+This example is explained in the section on regexps. @xref{Regexp Example}.
If you want to use just one space between sentences, you should
set @code{sentence-end} to this value:
@@ -2664,7 +2664,7 @@ recognition commands (@pxref{Table Recognition}) are equipped with a
convenience feature (turned on by default). During table recognition,
the contents of a cell are examined to determine which justification
was originally applied to the cell and then applies this justification
-to the the cell. This is a speculative algorithm and is therefore not
+to the cell. This is a speculative algorithm and is therefore not
perfect, however, the justification is deduced correctly most of the
time. If you desire to disable this feature, customize the variable
@code{table-detect-cell-alignment} to set it to @code{nil}.
diff --git a/man/tramp.texi b/man/tramp.texi
index 756b467157..b28292cff8 100644
--- a/man/tramp.texi
+++ b/man/tramp.texi
@@ -25,8 +25,8 @@
@end macro
@copying
-Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free
-Software Foundation, Inc.
+Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
@@ -218,10 +218,10 @@ How file names, directories and localnames are mangled and managed
@chapter An overview of @value{tramp}
@cindex overview
-After the installation of @value{tramp} into your @value{emacsname}, you
-will be able to access files on remote machines as though they were
-local. Access to the remote file system for editing files, version
-control, and @command{dired} are transparently enabled.
+After the installation of @value{tramp} into your @value{emacsname},
+you will be able to access files on remote machines as though they
+were local. Access to the remote file system for editing files,
+version control, and @code{dired} are transparently enabled.
Your access to the remote machine can be with the @command{rsh},
@command{rlogin}, @command{telnet} programs or with any similar
@@ -289,9 +289,9 @@ Communication with this process happens through an
goes into a buffer.
@item
-The remote host may prompt for a login name (for @command{telnet}). The
-login name is given in the file name, so @value{tramp} sends the login name and
-a newline.
+The remote host may prompt for a login name (for @command{telnet}).
+The login name is given in the file name, so @value{tramp} sends the
+login name and a newline.
@item
The remote host may prompt for a password or pass phrase (for
@@ -365,7 +365,6 @@ you are finished, you type @kbd{C-x C-s} to save the buffer.
Again, @value{tramp} transfers the file contents to the remote host either
inline or out-of-band. This is the reverse of what happens when reading
the file.
-
@end itemize
I hope this has provided you with a basic overview of what happens
@@ -653,7 +652,6 @@ easy to implement, so I haven't got around to it, yet.
@item @option{sshx}
@cindex method sshx
@cindex sshx method
-@cindex Cygwin (with sshx method)
As you would expect, this is similar to @option{ssh}, only a little
different. Whereas @option{ssh} opens a normal interactive shell on
@@ -674,9 +672,9 @@ in without such questions.
This is also useful for Windows users where @command{ssh}, when
invoked from an @value{emacsname} buffer, tells them that it is not
allocating a pseudo tty. When this happens, the login shell is wont
-to not print any shell prompt, which confuses @value{tramp} mightily. For
-reasons unknown, some Windows ports for @command{ssh} (maybe the
-Cygwin one) require the doubled @samp{-t} option.
+to not print any shell prompt, which confuses @value{tramp} mightily.
+For reasons unknown, some Windows ports for @command{ssh} require the
+doubled @samp{-t} option.
This supports the @samp{-p} kludge.
@@ -817,7 +815,6 @@ This method supports the @samp{-p} hack.
@cindex scpx method
@cindex scp (with scpx method)
@cindex ssh (with scpx method)
-@cindex Cygwin (with scpx method)
As you would expect, this is similar to @option{scp}, only a little
different. Whereas @option{scp} opens a normal interactive shell on
@@ -832,7 +829,6 @@ This is also useful for Windows users where @command{ssh}, when
invoked from an @value{emacsname} buffer, tells them that it is not
allocating a pseudo tty. When this happens, the login shell is wont
to not print any shell prompt, which confuses @value{tramp} mightily.
-Maybe this applies to the Cygwin port of SSH.
This method supports the @samp{-p} hack.
@@ -1025,7 +1021,7 @@ For example:
'("sshf" tramp-multi-connect-rlogin "ssh %h -l %u -p 4400%n"))
@end lisp
-Now you can use an @code{sshf} hop which connects to port 4400 instead of
+Now you can use an @option{sshf} hop which connects to port 4400 instead of
the standard port.
@@ -1074,16 +1070,16 @@ Another consideration with the selection of transfer methods is the
environment you will use them in and, especially when used over the
Internet, the security implications of your preferred method.
-The @command{rsh} and @command{telnet} methods send your password as
-plain text as you log in to the remote machine, as well as transferring
-the files in such a way that the content can easily be read from other
-machines.
+The @option{rsh} and @option{telnet} methods send your password as
+plain text as you log in to the remote machine, as well as
+transferring the files in such a way that the content can easily be
+read from other machines.
If you need to connect to remote systems that are accessible from the
-Internet, you should give serious thought to using @command{ssh} based
+Internet, you should give serious thought to using @option{ssh} based
methods to connect. These provide a much higher level of security,
-making it a non-trivial exercise for someone to obtain your password or
-read the content of the files you are editing.
+making it a non-trivial exercise for someone to obtain your password
+or read the content of the files you are editing.
@subsection Which method is the right one for me?
@@ -1101,28 +1097,29 @@ methods might be more efficient, but I guess that most people will want
to edit mostly small files.
I guess that these days, most people can access a remote machine by
-using @code{ssh}. So I suggest that you use the @code{ssh} method.
-So, type @kbd{C-x C-f
+using @command{ssh}. So I suggest that you use the @option{ssh}
+method. So, type @kbd{C-x C-f
@value{prefix}ssh@value{postfixsinglehop}root@@otherhost@value{postfix}/etc/motd
@key{RET}} to edit the @file{/etc/motd} file on the other host.
-If you can't use @code{ssh} to log in to the remote host, then select a
-method that uses a program that works. For instance, Windows users
-might like the @code{plink} method which uses the PuTTY implementation
-of @code{ssh}. Or you use Kerberos and thus like @code{krlogin}.
+If you can't use @option{ssh} to log in to the remote host, then
+select a method that uses a program that works. For instance, Windows
+users might like the @option{plink} method which uses the PuTTY
+implementation of @command{ssh}. Or you use Kerberos and thus like
+@option{krlogin}.
For the special case of editing files on the local host as another
-user, see the @code{su} or @code{sudo} method. It offers shortened
-syntax for the @samp{root} account, like
+user, see the @option{su} or @option{sudo} methods. They offer
+shortened syntax for the @samp{root} account, like
@file{@value{prefix}su@value{postfixsinglehop}@value{postfix}/etc/motd}.
-People who edit large files may want to consider @code{scp} instead of
-@code{ssh}, or @code{pscp} instead of @code{plink}. These out-of-band
-methods are faster than inline methods for large files. Note, however,
-that out-of-band methods suffer from some limitations. Please try
-first whether you really get a noticeable speed advantage from using an
-out-of-band method! Maybe even for large files, inline methods are
-fast enough.
+People who edit large files may want to consider @option{scp} instead
+of @option{ssh}, or @option{pscp} instead of @option{plink}. These
+out-of-band methods are faster than inline methods for large files.
+Note, however, that out-of-band methods suffer from some limitations.
+Please try first whether you really get a noticeable speed advantage
+from using an out-of-band method! Maybe even for large files, inline
+methods are fast enough.
@node Customizing Methods
@@ -1365,16 +1362,16 @@ the remote host such that it behaves like @value{tramp} expects. This might
be inconvenient because you have to invest a lot of effort into shell
setup before you can begin to use @value{tramp}.
-The package, therefore, pursues a combined approach. It tries to figure
-out some of the more common setups, and only requires you to avoid
-really exotic stuff. For example, it looks through a list of
+The package, therefore, pursues a combined approach. It tries to
+figure out some of the more common setups, and only requires you to
+avoid really exotic stuff. For example, it looks through a list of
directories to find some programs on the remote host. And also, it
knows that it is not obvious how to check whether a file exists, and
-therefore it tries different possibilities. (On some hosts and shells,
-the command @code{test -e} does the trick, on some hosts the shell
-builtin doesn't work but the program @code{/usr/bin/test -e} or
-@code{/bin/test -e} works. And on still other hosts, @code{ls -d} is
-the right way to do this.)
+therefore it tries different possibilities. (On some hosts and
+shells, the command @command{test -e} does the trick, on some hosts
+the shell builtin doesn't work but the program @command{/usr/bin/test
+-e} or @command{/bin/test -e} works. And on still other hosts,
+@command{ls -d} is the right way to do this.)
Below you find a discussion of a few things that @value{tramp} does not deal
with, and that you therefore have to set up correctly.
@@ -1409,11 +1406,11 @@ different user. The default value of
@code{shell-prompt-pattern}, which is reported to work well in many
circumstances.
-@item @code{tset} and other questions
+@item @command{tset} and other questions
@cindex Unix command tset
@cindex tset Unix command
-Some people invoke the @code{tset} program from their shell startup
+Some people invoke the @command{tset} program from their shell startup
scripts which asks the user about the terminal type of the shell.
Maybe some shells ask other questions when they are started. @value{tramp}
does not know how to answer these questions. There are two approaches
@@ -1443,20 +1440,21 @@ This weird effect was actually reported by a @value{tramp} user!
@item Non-Bourne commands in @file{.profile}
After logging in to the remote host, @value{tramp} issues the command
-@code{exec /bin/sh}. (Actually, the command is slightly different.)
-When @code{/bin/sh} is executed, it reads some init files, such as
-@file{~/.shrc} or @file{~/.profile}.
+@command{exec /bin/sh}. (Actually, the command is slightly
+different.) When @command{/bin/sh} is executed, it reads some init
+files, such as @file{~/.shrc} or @file{~/.profile}.
Now, some people have a login shell which is not @code{/bin/sh} but a
Bourne-ish shell such as bash or ksh. Some of these people might put
-their shell setup into the files @code{~/.shrc} or @code{~/.profile}.
+their shell setup into the files @file{~/.shrc} or @file{~/.profile}.
This way, it is possible for non-Bourne constructs to end up in those
-files. Then, @code{exec /bin/sh} might cause the Bourne shell to barf
-on those constructs.
+files. Then, @command{exec /bin/sh} might cause the Bourne shell to
+barf on those constructs.
-As an example, imagine somebody putting @code{export FOO=bar} into the
-file @file{~/.profile}. The standard Bourne shell does not understand
-this syntax and will emit a syntax error when it reaches this line.
+As an example, imagine somebody putting @command{export FOO=bar} into
+the file @file{~/.profile}. The standard Bourne shell does not
+understand this syntax and will emit a syntax error when it reaches
+this line.
Another example is the tilde (@code{~}) character, say when adding
@file{~/bin} to @code{$PATH}. Many Bourne shells will not expand this
@@ -1467,8 +1465,8 @@ What can you do about this?
Well, one possibility is to make sure that everything in @file{~/.shrc}
and @file{~/.profile} on all remote hosts is Bourne-compatible. In the
-above example, instead of @code{export FOO=bar}, you might use
-@code{FOO=bar; export FOO} instead.
+above example, instead of @command{export FOO=bar}, you might use
+@command{FOO=bar; export FOO} instead.
The other possibility is to put your non-Bourne shell setup into some
other files. For example, bash reads the file @file{~/.bash_profile}
@@ -1476,14 +1474,15 @@ instead of @file{~/.profile}, if the former exists. So bash
aficionados just rename their @file{~/.profile} to
@file{~/.bash_profile} on all remote hosts, and Bob's your uncle.
-The @value{tramp} developers would like to circumvent this problem, so if you
-have an idea about it, please tell us. However, we are afraid it is not
-that simple: before saying @code{exec /bin/sh}, @value{tramp} does not know
-which kind of shell it might be talking to. It could be a Bourne-ish
-shell like ksh or bash, or it could be a csh derivative like tcsh, or
-it could be zsh, or even rc. If the shell is Bourne-ish already, then
-it might be prudent to omit the @code{exec /bin/sh} step. But how to
-find out if the shell is Bourne-ish?
+The @value{tramp} developers would like to circumvent this problem, so
+if you have an idea about it, please tell us. However, we are afraid
+it is not that simple: before saying @command{exec /bin/sh},
+@value{tramp} does not know which kind of shell it might be talking
+to. It could be a Bourne-ish shell like ksh or bash, or it could be a
+csh derivative like tcsh, or it could be zsh, or even rc. If the
+shell is Bourne-ish already, then it might be prudent to omit the
+@command{exec /bin/sh} step. But how to find out if the shell is
+Bourne-ish?
@end table
@@ -1630,38 +1629,44 @@ This section needs a lot of work! Please help.
@cindex method sshx with Cygwin
@cindex sshx method with Cygwin
-If you use the Cygwin installation of ssh (you have to explicitly select
-it in the installer), then it should work out of the box to just select
-@code{sshx} as the connection method. You can find information about
-setting up Cygwin in their FAQ at @uref{http://cygwin.com/faq/}.
+The recent Cygwin installation of @command{ssh} works only with a
+Cygwinized @value{emacsname}. You can check it by typing @kbd{M-x
+eshell}, and starting @kbd{ssh test.machine}. The problem is evident
+if you see a message like this:
+
+@example
+Pseudo-terminal will not be allocated because stdin is not a terminal.
+@end example
+
+Older @command{ssh} versions of Cygwin are told to cooperate with
+@value{tramp} selecting @option{sshx} as the connection method. You
+can find information about setting up Cygwin in their FAQ at
+@uref{http://cygwin.com/faq/}.
@cindex method scpx with Cygwin
@cindex scpx method with Cygwin
-If you wish to use the @code{scpx} connection method, then you might
-have the problem that @value{emacsname} calls @code{scp} with a
+If you wish to use the @option{scpx} connection method, then you might
+have the problem that @value{emacsname} calls @command{scp} with a
Windows filename such as @code{c:/foo}. The Cygwin version of
-@code{scp} does not know about Windows filenames and interprets this
+@command{scp} does not know about Windows filenames and interprets this
as a remote filename on the host @code{c}.
-One possible workaround is to write a wrapper script for @code{scp}
+One possible workaround is to write a wrapper script for @option{scp}
which converts the Windows filename to a Cygwinized filename.
-I guess that another workaround is to run @value{emacsname} under
-Cygwin, or to run a Cygwinized @value{emacsname}.
-
@cindex Cygwin and ssh-agent
@cindex SSH_AUTH_SOCK and @value{emacsname} on Windows
-If you want to use either @code{ssh} based method on Windows, then you
-might encounter problems with @code{ssh-agent}. Using this program,
-you can avoid typing the pass-phrase every time you log in. However,
-if you start @value{emacsname} from a desktop shortcut, then the
-environment variable @code{SSH_AUTH_SOCK} is not set and so
-@value{emacsname} and thus @value{tramp} and thus @code{ssh} and
-@code{scp} started from @value{tramp} cannot communicate with
-@code{ssh-agent}. It works better to start @value{emacsname} from
+If you want to use either @option{ssh} based method on Windows, then
+you might encounter problems with @command{ssh-agent}. Using this
+program, you can avoid typing the pass-phrase every time you log in.
+However, if you start @value{emacsname} from a desktop shortcut, then
+the environment variable @code{SSH_AUTH_SOCK} is not set and so
+@value{emacsname} and thus @value{tramp} and thus @command{ssh} and
+@command{scp} started from @value{tramp} cannot communicate with
+@command{ssh-agent}. It works better to start @value{emacsname} from
the shell.
-If anyone knows how to start @code{ssh-agent} under Windows in such a
+If anyone knows how to start @command{ssh-agent} under Windows in such a
way that desktop shortcuts can profit, please holler. I don't really
know anything at all about Windows@dots{}
@@ -2108,10 +2113,10 @@ remote host.
There's this @file{~/.sh_history} file on the remote host which keeps
growing and growing. What's that?
-Sometimes, @value{tramp} starts @code{ksh} on the remote host for tilde
-expansion. Maybe @code{ksh} saves the history by default. @value{tramp}
-tries to turn off saving the history, but maybe you have to help. For
-example, you could put this in your @file{.kshrc}:
+Sometimes, @value{tramp} starts @command{ksh} on the remote host for
+tilde expansion. Maybe @command{ksh} saves the history by default.
+@value{tramp} tries to turn off saving the history, but maybe you have
+to help. For example, you could put this in your @file{.kshrc}:
@example
if [ -f $HOME/.sh_history ] ; then
@@ -2316,18 +2321,18 @@ effect while preserving the @value{tramp} file name information.
@itemize @bullet
@item The uuencode method does not always work.
-Due to the design of @value{tramp}, the encoding and decoding programs need to
-read from stdin and write to stdout. On some systems, @code{uudecode -o
--} will read stdin and write the decoded file to stdout, on other
-systems @code{uudecode -p} does the same thing. But some systems have
-uudecode implementations which cannot do this at all---it is not
-possible to call these uudecode implementations with suitable parameters
-so that they write to stdout.
+Due to the design of @value{tramp}, the encoding and decoding programs
+need to read from stdin and write to stdout. On some systems,
+@command{uudecode -o -} will read stdin and write the decoded file to
+stdout, on other systems @command{uudecode -p} does the same thing.
+But some systems have uudecode implementations which cannot do this at
+all---it is not possible to call these uudecode implementations with
+suitable parameters so that they write to stdout.
Of course, this could be circumvented: the @code{begin foo 644} line
could be rewritten to put in some temporary file name, then
-@code{uudecode} could be called, then the temp file could be printed and
-deleted.
+@command{uudecode} could be called, then the temp file could be
+printed and deleted.
But I have decided that this is too fragile to reliably work, so on some
systems you'll have to do without the uuencode methods.
@@ -2368,13 +2373,12 @@ to the files @file{.../xemacs-packages/lisp/tramp/auto-autoloads.el*}.
In case of unified filenames, all @value{emacsname} download sites
are added to @code{tramp-default-method-alist} with default method
-@code{ftp} @xref{Default Method}. These settings shouldn't be touched
+@option{ftp} @xref{Default Method}. These settings shouldn't be touched
for proper working of the @value{emacsname} package system.
The syntax for unified filenames is described in the @value{tramp} manual
for @value{emacsothername}.
@end ifset
-
@end itemize
@node Concept Index
diff --git a/man/trampver.texi b/man/trampver.texi
index 33a0aacbb9..a77ae82d49 100644
--- a/man/trampver.texi
+++ b/man/trampver.texi
@@ -4,7 +4,7 @@
@c In the Tramp CVS, the version number is auto-frobbed from
@c configure.ac, so you should edit that file and run
@c "autoconf && ./configure" to change the version number.
-@set trampver 2.0.49
+@set trampver 2.0.50
@c Other flags from configuration
@set prefix /usr/local
diff --git a/man/trouble.texi b/man/trouble.texi
index e7534ed256..f9d56d2219 100644
--- a/man/trouble.texi
+++ b/man/trouble.texi
@@ -1,5 +1,6 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 1985,86,87,93,94,95,1997,2001,2004 Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002,
+@c 2003, 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@iftex
@chapter Dealing with Common Problems
@@ -303,8 +304,7 @@ the following in your @file{.emacs} file:
When flow control is enabled, you must type @kbd{C-\} to get the
effect of a @kbd{C-s}, and type @kbd{C-^} to get the effect of a
-@kbd{C-q}. (These aliases work by means of keyboard translations; see
-@ref{Keyboard Translations}.)
+@kbd{C-q}.
@node Memory Full
@subsection Running out of Memory
@@ -368,7 +368,7 @@ available. For each buffer, it lists a buffer number. To save a
buffer, use @code{ysave-buffer}; you specify the buffer number, and
the file name to write that buffer into. You should use a file name
which does not already exist; if the file does exist, the script does
-not make make a backup of its old contents.
+not make a backup of its old contents.
@node Emergency Escape
@subsection Emergency Escape
diff --git a/man/url.texi b/man/url.texi
index cccd79a0e7..f60890afb2 100644
--- a/man/url.texi
+++ b/man/url.texi
@@ -21,7 +21,8 @@
@ifnottex
This file documents the URL loading package.
-Copyright (C) 1996, 1997, 1998, 1999, 2002, 2004 Free Software Foundation
+Copyright (C) 1996, 1997, 1998, 1999, 2002, 2004,
+ 2005 Free Software Foundation, Inc.
Copyright (C) 1993, 1994, 1995, 1996 William M. Perry
Permission is granted to copy, distribute and/or modify this document
@@ -50,7 +51,8 @@ License.''
@page
@vskip 0pt plus 1filll
Copyright @copyright{} 1993, 1994, 1995, 1996 William M. Perry@*
-Copyright @copyright{} 1996, 1997, 1998, 1999, 2002 Free Software Foundation
+Copyright @copyright{} 1996, 1997, 1998, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1 or
@@ -1065,7 +1067,7 @@ accessed at the given @var{time}.
@defopt url-history-track
If non-@code{nil}, the library will keep track of all the URLs
-accessed. If is is @code{t}, the list is saved to disk at the end of
+accessed. If it is @code{t}, the list is saved to disk at the end of
each Emacs session. The default is @code{nil}.
@end defopt
diff --git a/man/vip.texi b/man/vip.texi
index cba1998f01..5bc1e23da3 100644
--- a/man/vip.texi
+++ b/man/vip.texi
@@ -4,7 +4,8 @@
@settitle VIP
@copying
-Copyright @copyright{} 1987, 2001, 2002 Free Software Foundation, Inc.
+Copyright @copyright{} 1987, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
diff --git a/man/viper.texi b/man/viper.texi
index 7b3a888c8c..4e71eaee29 100644
--- a/man/viper.texi
+++ b/man/viper.texi
@@ -7,8 +7,8 @@
@setfilename ../info/viper
@copying
-Copyright @copyright{} 1995, 1996, 1997, 2001, 2002 Free Software
-Foundation, Inc.
+Copyright @copyright{} 1995, 1996, 1997, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
@@ -507,9 +507,8 @@ modes designed for editing files, such as cc-mode or latex-mode, use key
sequences that begin with @kbd{C-x} and @kbd{C-c}.
There is also a key that lets you temporarily escape to Vi command state
-from Emacs or Insert states: typing @kbd{C-c \} will let you execute a
-single Vi command while staying in Viper's Emacs or Insert state.
-In Insert state, the same can also be achieved by typing @kbd{C-z}.
+from the Insert state: typing @kbd{C-z} will let you execute a
+single Vi command while staying in Viper's Insert state.
@node Vi State, Insert State, Emacs State, States in Viper
@@ -4502,6 +4501,7 @@ kin@@isi.com (Kin Cho),
kwzh@@gnu.org (Karl Heuer),
lindstro@@biostat.wisc.edu (Mary Lindstrom),
lektu@@terra.es (Juanma Barranquero),
+lennart.borgman.073@@student.lu.se (Lennart Borgman),
minakaji@@osaka.email.ne.jp (Mikio Nakajima),
Mark.Bordas@@East.Sun.COM (Mark Bordas),
meyering@@comco.com (Jim Meyering),
@@ -4519,6 +4519,7 @@ sawdey@@lcse.umn.edu (Aaron Sawdey),
simonb@@prl.philips.co.uk (Simon Blanchard),
spadgett1@@nc.rr.com (Samuel Padgett),
stephen@@farrell.org (Stephen Farrell),
+storm@@cua.dk (Kim F. Storm),
sudish@@MindSpring.COM (Sudish Joseph),
schwab@@issan.informatik.uni-dortmund.de (Andreas Schwab)
terra@@diku.dk (Morten Welinder),
diff --git a/man/windows.texi b/man/windows.texi
index 092a678901..023b96340f 100644
--- a/man/windows.texi
+++ b/man/windows.texi
@@ -1,5 +1,6 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 1985,86,87,93,94,95,97,2000,2001,2004 Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
+@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Windows, Frames, Buffers, Top
@chapter Multiple Windows
@@ -94,7 +95,8 @@ numeric argument specifies how many lines to give to the top window.
@kbd{C-x 3} (@code{split-window-horizontally}) breaks the selected
window into two side-by-side windows. A numeric argument specifies how
many columns to give the one on the left. If you are not using
-scrollbars, a line of vertical bars separates the two windows.
+scrollbars, a vertical line separates the two windows.
+You can customize its color with the face @code{vertical-border}.
Windows that are not the full width of the screen have mode lines, but
they are truncated. On terminals where Emacs does not support
highlighting, truncated mode lines sometimes do not appear in inverse
diff --git a/man/woman.texi b/man/woman.texi
index fdcc890133..0d827ef34c 100644
--- a/man/woman.texi
+++ b/man/woman.texi
@@ -17,7 +17,8 @@
This file documents WoMan: A program to browse Unix manual pages `W.O.
(without) man'.
-Copyright @copyright{} 2001, 2002, 2004 Free Software Foundation, Inc.
+Copyright @copyright{} 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
diff --git a/man/xresources.texi b/man/xresources.texi
index b5090afd26..1e0783eac6 100644
--- a/man/xresources.texi
+++ b/man/xresources.texi
@@ -1,5 +1,6 @@
@c This is part of the Emacs manual.
-@c Copyright (C) 1987,93,94,95,1997,2001,03 Free Software Foundation, Inc.
+@c Copyright (C) 1987, 1993, 1994, 1995, 1997, 2001, 2002, 2003,
+@c 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node X Resources, Antinews, Emacs Invocation, Top
@appendix X Options and Resources
@@ -932,7 +933,7 @@ This is the color for editable text. In Emacs, this color is used for the
text fields in the file dialog.
@item font_name = "@var{font}"
-This specifies the the font for text in the widget. @var{font} is a
+This specifies the font for text in the widget. @var{font} is a
Pango font name, for example @samp{Sans Italic 10}, @samp{Helvetica
Bold 12}, @samp{Courier 14}, @samp{Times 18}. See below for exact
syntax. The names are case insensitive.
diff --git a/msdos/ChangeLog b/msdos/ChangeLog
index 1fd237ded2..ee8dc3fe9d 100644
--- a/msdos/ChangeLog
+++ b/msdos/ChangeLog
@@ -609,8 +609,8 @@
;; coding: iso-2022-7bit-unix
;; End:
- Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001
- Free Software Foundation, Inc.
+ Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003,
+ 2004, 2005 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted provided the copyright notice and this notice are preserved.
diff --git a/msdos/README b/msdos/README
index a972c53814..3827d2944d 100644
--- a/msdos/README
+++ b/msdos/README
@@ -6,8 +6,7 @@ The files emacs.ico and emacs.pif are for using the DJGPP version on
Windows 3.X. Since these are binary files, their copyright notice is
reproduced here:
-# Copyright (C) 1993
-# Free Software Foundation, Inc.
+# Copyright (C) 1993, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
#
# This file is part of GNU Emacs.
#
diff --git a/msdos/mainmake b/msdos/mainmake
index 4f0193baab..d09f11b4e4 100644
--- a/msdos/mainmake
+++ b/msdos/mainmake
@@ -1,4 +1,5 @@
-# Copyright (C) 1993,1994,1995,1996,2001 Free Software Foundation, Inc.
+# Copyright (C) 1993, 1994, 1995, 1996, 2001, 2002, 2003, 2004,
+# 2005 Free Software Foundation, Inc.
# This file is part of GNU Emacs.
diff --git a/msdos/mainmake.v2 b/msdos/mainmake.v2
index e7e615da73..b31dcb8905 100644
--- a/msdos/mainmake.v2
+++ b/msdos/mainmake.v2
@@ -1,7 +1,7 @@
# Top-level Makefile for Emacs under MS-DOS/DJGPP v2.0 or higher. -*-makefile-*-
-# Copyright (C) 1996,1997,1998,1999,2000,2001,2002
-# Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005 Free Software Foundation, Inc.
# This file is part of GNU Emacs.
diff --git a/msdos/sed1.inp b/msdos/sed1.inp
index 67257d9c9f..2efbde37a6 100644
--- a/msdos/sed1.inp
+++ b/msdos/sed1.inp
@@ -2,8 +2,8 @@
# Configuration script for src/makefile
# ----------------------------------------------------------------------
#
-# Copyright (C) 1993, 1994, 1995, 1996, 1997, 2000
-# Free Software Foundation, Inc.
+# Copyright (C) 1993, 1994, 1995, 1996, 1997, 2000, 2002, 2003, 2004,
+# 2005 Free Software Foundation, Inc.
#
# This file is part of GNU Emacs.
#
diff --git a/msdos/sed1v2.inp b/msdos/sed1v2.inp
index 93b4f7d5d8..358faa24dc 100644
--- a/msdos/sed1v2.inp
+++ b/msdos/sed1v2.inp
@@ -2,8 +2,8 @@
# Configuration script for src/Makefile under DJGPP v2.x
# ----------------------------------------------------------------------
#
-# Copyright (C) 1996, 1997, 1999, 2000, 2002
-# Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004,
+# 2005 Free Software Foundation, Inc.
#
# This file is part of GNU Emacs.
#
diff --git a/msdos/sed2.inp b/msdos/sed2.inp
index 4580f0e623..945b753d01 100644
--- a/msdos/sed2.inp
+++ b/msdos/sed2.inp
@@ -2,8 +2,8 @@
# Configuration script for src/config.h
# ----------------------------------------------------------------------
#
-# Copyright (C) 1993, 1994, 1995, 1996, 1997, 1999, 2000, 2002
-# Free Software Foundation, Inc.
+# Copyright (C) 1993, 1994, 1995, 1996, 1997, 1999, 2000, 2002, 2003,
+# 2004, 2005 Free Software Foundation, Inc.
#
# This file is part of GNU Emacs.
#
diff --git a/msdos/sed2v2.inp b/msdos/sed2v2.inp
index 31687bf008..3beb48650e 100644
--- a/msdos/sed2v2.inp
+++ b/msdos/sed2v2.inp
@@ -2,8 +2,8 @@
# Configuration script for src/config.h under DJGPP v2.x
# ----------------------------------------------------------------------
#
-# Copyright (C) 1993, 1994, 1995, 1996, 1997, 1999, 2000, 2002
-# Free Software Foundation, Inc.
+# Copyright (C) 1993, 1994, 1995, 1996, 1997, 1999, 2000, 2002, 2003,
+# 2004, 2005 Free Software Foundation, Inc.
#
# This file is part of GNU Emacs.
#
diff --git a/msdos/sed2x.inp b/msdos/sed2x.inp
index a1af086077..b1cbd69603 100644
--- a/msdos/sed2x.inp
+++ b/msdos/sed2x.inp
@@ -2,8 +2,7 @@
# Extra configuration script for src/config.h for DesqView/X
# ----------------------------------------------------------------------
#
-# Copyright (C) 1994
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
#
# This file is part of GNU Emacs.
#
diff --git a/msdos/sed3.inp b/msdos/sed3.inp
index 6ae9c54eea..efbe448d0d 100644
--- a/msdos/sed3.inp
+++ b/msdos/sed3.inp
@@ -2,8 +2,8 @@
# Configuration script for lib-src/makefile
# ----------------------------------------------------------------------
#
-# Copyright (C) 1993, 1994, 1995
-# Free Software Foundation, Inc.
+# Copyright (C) 1993, 1994, 1995, 2002, 2003, 2004,
+# 2005 Free Software Foundation, Inc.
#
# This file is part of GNU Emacs.
#
diff --git a/msdos/sed3v2.inp b/msdos/sed3v2.inp
index 657c2d4e5f..46d9f2fc89 100644
--- a/msdos/sed3v2.inp
+++ b/msdos/sed3v2.inp
@@ -2,8 +2,8 @@
# Configuration script for lib-src/makefile under DJGPP v2
# ----------------------------------------------------------------------
#
-# Copyright (C) 1996, 1998, 2000
-# Free Software Foundation, Inc.
+# Copyright (C) 1996, 1998, 2000, 2002, 2003, 2004,
+# 2005 Free Software Foundation, Inc.
#
# This file is part of GNU Emacs.
#
diff --git a/msdos/sed4.inp b/msdos/sed4.inp
index 2258811538..23883bc8e2 100644
--- a/msdos/sed4.inp
+++ b/msdos/sed4.inp
@@ -2,8 +2,7 @@
# Configuration script for src/paths.h
# ----------------------------------------------------------------------
#
-# Copyright (C) 1994
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
#
# This file is part of GNU Emacs.
#
diff --git a/msdos/sed5x.inp b/msdos/sed5x.inp
index 6f05df8a26..c9a3ac998c 100644
--- a/msdos/sed5x.inp
+++ b/msdos/sed5x.inp
@@ -2,8 +2,7 @@
# Configuration script for oldxmenu/makefile for DesqView/X
# ----------------------------------------------------------------------
#
-# Copyright (C) 1994
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
#
# This file is part of GNU Emacs.
#
diff --git a/msdos/sed6.inp b/msdos/sed6.inp
index 686d3aa92a..2aae6aa441 100644
--- a/msdos/sed6.inp
+++ b/msdos/sed6.inp
@@ -3,8 +3,8 @@
# lispintro/Makefile under DJGPP v2.x
# ---------------------------------------------------------------------------
#
-# Copyright (C) 1997, 2000, 2001
-# Free Software Foundation, Inc.
+# Copyright (C) 1997, 2000, 2001, 2002, 2003, 2004,
+# 2005 Free Software Foundation, Inc.
#
# This file is part of GNU Emacs.
#
diff --git a/msdos/sedleim.inp b/msdos/sedleim.inp
index bb81e7ec11..287dfad7c4 100644
--- a/msdos/sedleim.inp
+++ b/msdos/sedleim.inp
@@ -2,8 +2,8 @@
# Configuration script for leim/Makefile under DJGPP v2.x
# ----------------------------------------------------------------------
#
-# Copyright (C) 1999, 2000
-# Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2002, 2003, 2004,
+# 2005 Free Software Foundation, Inc.
#
# This file is part of GNU Emacs.
#
diff --git a/msdos/sedlisp.inp b/msdos/sedlisp.inp
index 9cff732a44..bb7d8b8e62 100644
--- a/msdos/sedlisp.inp
+++ b/msdos/sedlisp.inp
@@ -2,8 +2,7 @@
# Configuration script for lisp/Makefile under DJGPP v2.x
# ----------------------------------------------------------------------
#
-# Copyright (C) 2000, 2002
-# Free Software Foundation, Inc.
+# Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
#
# This file is part of GNU Emacs.
#
diff --git a/nt/.gitignore b/nt/.gitignore
index c577a6a341..26f5de661a 100644
--- a/nt/.gitignore
+++ b/nt/.gitignore
@@ -1,3 +1,7 @@
*-spd
*.pdb
.arch-inventory
+config.log
+makefile
+obj
+oo
diff --git a/nt/ChangeLog b/nt/ChangeLog
index c95fd78ab7..854410b4f5 100644
--- a/nt/ChangeLog
+++ b/nt/ChangeLog
@@ -1,3 +1,31 @@
+2005-08-10 Juanma Barranquero <lekktu@gmail.com>
+
+ * .cvsignore: Add `obj' and `oo' for in-place installations.
+
+2005-07-30 Eli Zaretskii <eliz@gnu.org>
+
+ * config.nt: (HAVE_GETOPT_H, HAVE_GETOPT_LONG_ONLY): Undefine.
+
+2005-07-29 Juanma Barranquero <lekktu@gmail.com>
+
+ * configure.bat: Don't create lisp/Makefile.unix.
+
+2005-07-28 Juanma Barranquero <lekktu@gmail.com>
+
+ * .cvsignore: Add `makefile' and `config.log'.
+
+2005-07-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ Merge gnulib getopt implementation into Emacs.
+
+ * inc/gettext.h: Remove; no longer needed now that
+ lib-src/gettext.h exists.
+
+2005-07-16 Eli Zaretskii <eliz@gnu.org>
+
+ * configure.bat: Finish config.log with a line that indicates that
+ the configure step was successful.
+
2005-07-04 Lute Kamstra <lute@gnu.org>
Update FSF's address in GPL notices.
@@ -1151,8 +1179,8 @@
;; coding: iso-2022-7bit
;; End:
- Copyright (C) 1995, 1996, 1997, 1998, 1999, 2001
- Free Software Foundation, Inc.
+ Copyright (C) 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted provided the copyright notice and this notice are preserved.
diff --git a/nt/INSTALL b/nt/INSTALL
index ecf42a29b1..ed960b06bd 100644
--- a/nt/INSTALL
+++ b/nt/INSTALL
@@ -1,7 +1,7 @@
Building and Installing Emacs
on Windows NT/2K/XP and Windows 95/98/ME
- Copyright (c) 2001,2004,2005 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
See the end of the file for copying permissions.
If you used WinZip to unpack the distribution, we suggest to
diff --git a/nt/README b/nt/README
index dce733fb65..0bb1625fec 100644
--- a/nt/README
+++ b/nt/README
@@ -1,6 +1,6 @@
Emacs for Windows NT/2000 and Windows 95/98/ME
- Copyright (c) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
See the end of the INSTALL file in this directory for copying permissions.
This directory contains support for compiling and running GNU Emacs on
diff --git a/nt/addpm.c b/nt/addpm.c
index 398737839c..0827d2453c 100644
--- a/nt/addpm.c
+++ b/nt/addpm.c
@@ -1,5 +1,5 @@
/* Add entries to the GNU Emacs Program Manager folder.
- Copyright (C) 1995 Free Software Foundation, Inc.
+ Copyright (C) 1995, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/nt/addsection.c b/nt/addsection.c
index 20ab5cf516..5a58f3e1c0 100644
--- a/nt/addsection.c
+++ b/nt/addsection.c
@@ -1,5 +1,5 @@
/* Add an uninitialized data section to an executable.
- Copyright (C) 1999, 2005 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/nt/cmdproxy.c b/nt/cmdproxy.c
index 58be32984a..be7c7531bf 100644
--- a/nt/cmdproxy.c
+++ b/nt/cmdproxy.c
@@ -1,5 +1,5 @@
/* Proxy shell designed for use with Emacs on Windows 95 and NT.
- Copyright (C) 1997 Free Software Foundation, Inc.
+ Copyright (C) 1997, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
Accepts subset of Unix sh(1) command-line options, for compatability
with elisp code written for Unix. When possible, executes external
diff --git a/nt/config.nt b/nt/config.nt
index ac59faa211..4b8c38823a 100644
--- a/nt/config.nt
+++ b/nt/config.nt
@@ -1,5 +1,6 @@
/* GNU Emacs site configuration template file. -*- C -*-
- Copyright (C) 1988, 1993, 1994 Free Software Foundation, Inc.
+ Copyright (C) 1988, 1993, 1994, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -270,6 +271,12 @@ Boston, MA 02110-1301, USA. */
/* Define if `struct timeval' is declared by <sys/time.h>. */
#undef HAVE_TIMEVAL
+/* Define to 1 if you have the <getopt.h> header file. */
+#undef HAVE_GETOPT_H
+
+/* Define to 1 if you have the `getopt_long_only' function. */
+#undef HAVE_GETOPT_LONG_ONLY
+
/* If using GNU, then support inline function declarations. */
#ifdef __GNUC__
#define INLINE __inline__
diff --git a/nt/configure.bat b/nt/configure.bat
index 6a44a3b82c..b5f78f2ab5 100755
--- a/nt/configure.bat
+++ b/nt/configure.bat
@@ -1,7 +1,7 @@
@echo off
rem ----------------------------------------------------------------------
rem Configuration script for MS Windows 95/98/Me and NT/2000/XP
-rem Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+rem Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
rem Free Software Foundation, Inc.
rem This file is part of GNU Emacs.
@@ -499,7 +499,6 @@ copy /b config.settings+%MAKECMD%.defs+..\src\makefile.w32-in ..\src\makefile
copy /b config.settings+%MAKECMD%.defs+..\man\makefile.w32-in ..\man\makefile
copy /b config.settings+%MAKECMD%.defs+..\lispref\makefile.w32-in ..\lispref\makefile
copy /b config.settings+%MAKECMD%.defs+..\lispintro\makefile.w32-in ..\lispintro\makefile
-if not exist ..\lisp\Makefile.unix rename ..\lisp\Makefile.in Makefile.unix
if exist ..\lisp\makefile rm -f ../lisp/[Mm]akefile
copy /b config.settings+%MAKECMD%.defs+..\lisp\makefile.w32-in ..\lisp\makefile
rem Use the default (no-op) Makefile.in if the nt version is not present.
@@ -513,6 +512,7 @@ if not exist ..\site-lisp\subdirs.el copy subdirs.el ..\site-lisp\subdirs.el
echo.
echo Emacs successfully configured.
+echo Emacs successfully configured. >>config.log
echo Run `%MAKECMD%' to build, then run `%MAKECMD% install' to install.
goto end
diff --git a/nt/ddeclient.c b/nt/ddeclient.c
index 6661e84f24..540cac24eb 100644
--- a/nt/ddeclient.c
+++ b/nt/ddeclient.c
@@ -1,5 +1,5 @@
/* Simple client interface to DDE servers.
- Copyright (C) 1998 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/nt/emacs.rc b/nt/emacs.rc
index 6220ab0ffa..b233bcd845 100644
--- a/nt/emacs.rc
+++ b/nt/emacs.rc
@@ -26,7 +26,7 @@ BEGIN
VALUE "FileDescription", "GNU Emacs for Windows NT/95/98/2000/ME/XP\0"
VALUE "FileVersion", "21, 3, 50, 0\0"
VALUE "InternalName", "Emacs\0"
- VALUE "LegalCopyright", "Copyright (C) 2002\0"
+ VALUE "LegalCopyright", "Copyright (C) 2002, 2003, 2004, 2005\0"
VALUE "OriginalFilename", "emacs.exe"
VALUE "ProductName", "Emacs: The extensible self-documenting text editor\0"
VALUE "ProductVersion", "21, 3, 50, 0\0"
diff --git a/nt/envadd.bat b/nt/envadd.bat
index 3e9a49ef29..d48e6cc8bf 100644
--- a/nt/envadd.bat
+++ b/nt/envadd.bat
@@ -1,7 +1,7 @@
rem Hack to change/add environment variables in the makefiles for the
rem Windows platform.
rem
-rem Copyright (c) 2003 Free Software Foundation, Inc.
+rem Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
rem
rem This file is part of GNU Emacs.
rem
diff --git a/nt/gmake.defs b/nt/gmake.defs
index e077aef502..c3f20fbeab 100644
--- a/nt/gmake.defs
+++ b/nt/gmake.defs
@@ -1,5 +1,6 @@
# -*- Makefile -*- definition file for building GNU Emacs on Windows NT.
-# Copyright (c) 2000-2001 Free Software Foundation, Inc.
+# Copyright (c) 2000, 2001, 2002, 2003, 2004,
+# 2005 Free Software Foundation, Inc.
#
# GNU Emacs is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/nt/inc/grp.h b/nt/inc/grp.h
index b44cbe543f..39f98d31cd 100755
--- a/nt/inc/grp.h
+++ b/nt/inc/grp.h
@@ -1,5 +1,5 @@
/* Replacement grp.h file for building GNU Emacs on Windows.
- Copyright (C) 2003 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/nt/inc/sys/socket.h b/nt/inc/sys/socket.h
index 228eefb239..19b8a65add 100644
--- a/nt/inc/sys/socket.h
+++ b/nt/inc/sys/socket.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995 Free Software Foundation, Inc.
+/* Copyright (C) 1995, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/nt/makefile.w32-in b/nt/makefile.w32-in
index 5d793751f5..fb1ea24666 100644
--- a/nt/makefile.w32-in
+++ b/nt/makefile.w32-in
@@ -1,5 +1,6 @@
# -*- Makefile -*- for GNU Emacs on the Microsoft W32 API.
-# Copyright (c) 2000-2001, 2004 Free Software Foundation, Inc.
+# Copyright (C) 2000, 2001, 2002, 2003, 2004,
+# 2005 Free Software Foundation, Inc.
#
# Top level makefile for building GNU Emacs on Windows NT
#
diff --git a/nt/multi-install-info.bat b/nt/multi-install-info.bat
index ea318af840..f06f94c9ca 100644
--- a/nt/multi-install-info.bat
+++ b/nt/multi-install-info.bat
@@ -3,7 +3,7 @@
rem Hack to run install-info with multiple info files on the command
rem line on the Windows platform.
rem
-rem Copyright (c) 2003 Free Software Foundation, Inc.
+rem Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
rem
rem This file is part of GNU Emacs.
rem
diff --git a/nt/nmake.defs b/nt/nmake.defs
index 1876dffa59..76a3462969 100644
--- a/nt/nmake.defs
+++ b/nt/nmake.defs
@@ -1,5 +1,6 @@
# -*- Makefile -*- definition file for building GNU Emacs on Windows NT.
-# Copyright (c) 2000-2001 Free Software Foundation, Inc.
+# Copyright (C) 2000, 2001, 2002, 2003, 2004,
+# 2005 Free Software Foundation, Inc.
#
# GNU Emacs is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/nt/paths.h b/nt/paths.h
index 5c1c4bfd33..0bb883067c 100644
--- a/nt/paths.h
+++ b/nt/paths.h
@@ -1,5 +1,5 @@
-/* Copyright (C) 1993, 1995, 1997, 1999, 2001
- Free Software Foundation, Inc.
+/* Copyright (C) 1993, 1995, 1997, 1999, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/nt/preprep.c b/nt/preprep.c
index 21cc92e305..e99fe38a48 100644
--- a/nt/preprep.c
+++ b/nt/preprep.c
@@ -1,5 +1,5 @@
/* Pro-process emacs.exe for profiling by MSVC.
- Copyright (C) 1999 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/nt/runemacs.c b/nt/runemacs.c
index afa5340ef5..709389deb8 100644
--- a/nt/runemacs.c
+++ b/nt/runemacs.c
@@ -1,3 +1,23 @@
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Emacs.
+
+GNU Emacs is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Emacs is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Emacs; see the file COPYING. If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA. */
+
+
/*
Simple program to start Emacs with its console window hidden.
diff --git a/oldXMenu/Activate.c b/oldXMenu/Activate.c
index 2f81299cbb..d03534e144 100644
--- a/oldXMenu/Activate.c
+++ b/oldXMenu/Activate.c
@@ -1,4 +1,5 @@
/* Copyright Massachusetts Institute of Technology 1985 */
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */
#include "copyright.h"
diff --git a/oldXMenu/AddPane.c b/oldXMenu/AddPane.c
index b7b52c0f64..4bb16c8d57 100644
--- a/oldXMenu/AddPane.c
+++ b/oldXMenu/AddPane.c
@@ -1,6 +1,7 @@
#include "copyright.h"
/* Copyright Massachusetts Institute of Technology 1985 */
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */
/*
* XMenu: MIT Project Athena, X Window system menu package
diff --git a/oldXMenu/AddSel.c b/oldXMenu/AddSel.c
index 40bbbde704..a063b63f55 100644
--- a/oldXMenu/AddSel.c
+++ b/oldXMenu/AddSel.c
@@ -1,6 +1,7 @@
#include "copyright.h"
/* Copyright Massachusetts Institute of Technology 1985 */
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */
/*
* XMenu: MIT Project Athena, X Window system menu package
diff --git a/oldXMenu/ChangeLog b/oldXMenu/ChangeLog
index 31a786cc23..afe7607115 100644
--- a/oldXMenu/ChangeLog
+++ b/oldXMenu/ChangeLog
@@ -443,8 +443,8 @@
;; coding: iso-2022-7bit-unix
;; End:
- Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001
- Free Software Foundation, Inc.
+ Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001,
+ 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted provided the copyright notice and this notice are preserved.
diff --git a/oldXMenu/ChgPane.c b/oldXMenu/ChgPane.c
index 123f18dec5..7c8ff91f88 100644
--- a/oldXMenu/ChgPane.c
+++ b/oldXMenu/ChgPane.c
@@ -1,6 +1,7 @@
#include "copyright.h"
/* Copyright Massachusetts Institute of Technology 1985 */
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */
/*
* XMenu: MIT Project Athena, X Window system menu package
diff --git a/oldXMenu/ChgSel.c b/oldXMenu/ChgSel.c
index 7dce694c41..e0fcb224f3 100644
--- a/oldXMenu/ChgSel.c
+++ b/oldXMenu/ChgSel.c
@@ -1,6 +1,7 @@
#include "copyright.h"
/* Copyright Massachusetts Institute of Technology 1985 */
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */
/*
* XMenu: MIT Project Athena, X Window system menu package
diff --git a/oldXMenu/Create.c b/oldXMenu/Create.c
index bac3f079f6..d4b32f2e93 100644
--- a/oldXMenu/Create.c
+++ b/oldXMenu/Create.c
@@ -1,4 +1,5 @@
/* Copyright Massachusetts Institute of Technology 1985 */
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */
#include "copyright.h"
diff --git a/oldXMenu/DelPane.c b/oldXMenu/DelPane.c
index bdb084b36f..6d042e757f 100644
--- a/oldXMenu/DelPane.c
+++ b/oldXMenu/DelPane.c
@@ -1,6 +1,7 @@
#include "copyright.h"
/* Copyright Massachusetts Institute of Technology 1985 */
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */
/*
* XMenu: MIT Project Athena, X Window system menu package
diff --git a/oldXMenu/DelSel.c b/oldXMenu/DelSel.c
index 78b7311316..7f14aa74fa 100644
--- a/oldXMenu/DelSel.c
+++ b/oldXMenu/DelSel.c
@@ -1,6 +1,7 @@
#include "copyright.h"
/* Copyright Massachusetts Institute of Technology 1985 */
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */
/*
* XMenu: MIT Project Athena, X Window system menu package
diff --git a/oldXMenu/Destroy.c b/oldXMenu/Destroy.c
index 8d904a5387..b0b9ed7756 100644
--- a/oldXMenu/Destroy.c
+++ b/oldXMenu/Destroy.c
@@ -1,6 +1,7 @@
#include "copyright.h"
/* Copyright Massachusetts Institute of Technology 1985 */
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */
/*
* XMenu: MIT Project Athena, X Window system menu package
diff --git a/oldXMenu/Error.c b/oldXMenu/Error.c
index 1eb521b164..0bd4fcc878 100644
--- a/oldXMenu/Error.c
+++ b/oldXMenu/Error.c
@@ -1,6 +1,7 @@
#include "copyright.h"
/* Copyright Massachusetts Institute of Technology 1985 */
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */
/*
* XMenu: MIT Project Athena, X Window system menu package
diff --git a/oldXMenu/EvHand.c b/oldXMenu/EvHand.c
index 073d0ab90b..c9e8b36c87 100644
--- a/oldXMenu/EvHand.c
+++ b/oldXMenu/EvHand.c
@@ -1,6 +1,7 @@
#include "copyright.h"
/* Copyright Massachusetts Institute of Technology 1985 */
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */
/*
* XMenu: MIT Project Athena, X Window system menu package
diff --git a/oldXMenu/FindPane.c b/oldXMenu/FindPane.c
index 945d4595ca..c886d6f7b7 100644
--- a/oldXMenu/FindPane.c
+++ b/oldXMenu/FindPane.c
@@ -1,6 +1,7 @@
#include "copyright.h"
/* Copyright Massachusetts Institute of Technology 1985 */
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */
/*
* XMenu: MIT Project Athena, X Window system menu package
diff --git a/oldXMenu/FindSel.c b/oldXMenu/FindSel.c
index 1fed111473..5a91faf0f8 100644
--- a/oldXMenu/FindSel.c
+++ b/oldXMenu/FindSel.c
@@ -1,6 +1,7 @@
#include "copyright.h"
/* Copyright Massachusetts Institute of Technology 1985 */
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */
/*
* XMenu: MIT Project Athena, X Window system menu package
diff --git a/oldXMenu/InsPane.c b/oldXMenu/InsPane.c
index 682423a4a0..805a978bb7 100644
--- a/oldXMenu/InsPane.c
+++ b/oldXMenu/InsPane.c
@@ -1,6 +1,7 @@
#include "copyright.h"
/* Copyright Massachusetts Institute of Technology 1985 */
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */
/*
* XMenu: MIT Project Athena, X Window system menu package
diff --git a/oldXMenu/InsSel.c b/oldXMenu/InsSel.c
index f3e2c4d7fb..103081ac44 100644
--- a/oldXMenu/InsSel.c
+++ b/oldXMenu/InsSel.c
@@ -1,6 +1,7 @@
#include "copyright.h"
/* Copyright Massachusetts Institute of Technology 1985 */
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */
/*
* XMenu: MIT Project Athena, X Window system menu package
diff --git a/oldXMenu/Internal.c b/oldXMenu/Internal.c
index f1367a0735..0fea995a89 100644
--- a/oldXMenu/Internal.c
+++ b/oldXMenu/Internal.c
@@ -1,6 +1,7 @@
#include "copyright.h"
/* Copyright Massachusetts Institute of Technology 1985 */
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */
/*
* XMenu: MIT Project Athena, X Window system menu package
diff --git a/oldXMenu/Locate.c b/oldXMenu/Locate.c
index 47db7fa110..90fad2c7b2 100644
--- a/oldXMenu/Locate.c
+++ b/oldXMenu/Locate.c
@@ -1,6 +1,7 @@
#include "copyright.h"
/* Copyright Massachusetts Institute of Technology 1985 */
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */
/*
* XMenu: MIT Project Athena, X Window system menu package
diff --git a/oldXMenu/Post.c b/oldXMenu/Post.c
index 3b39d79682..2be31aebe3 100644
--- a/oldXMenu/Post.c
+++ b/oldXMenu/Post.c
@@ -1,6 +1,7 @@
#include "copyright.h"
/* Copyright Massachusetts Institute of Technology 1985 */
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */
/*
* XMenu: MIT Project Athena, X Window system menu package
diff --git a/oldXMenu/Recomp.c b/oldXMenu/Recomp.c
index b4bc4da3f7..a10c380427 100644
--- a/oldXMenu/Recomp.c
+++ b/oldXMenu/Recomp.c
@@ -1,6 +1,7 @@
#include "copyright.h"
/* Copyright Massachusetts Institute of Technology 1985 */
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */
/*
* XMenu: MIT Project Athena, X Window system menu package
diff --git a/oldXMenu/SetAEQ.c b/oldXMenu/SetAEQ.c
index daddc1aa94..9124561dcb 100644
--- a/oldXMenu/SetAEQ.c
+++ b/oldXMenu/SetAEQ.c
@@ -1,6 +1,7 @@
#include "copyright.h"
/* Copyright Massachusetts Institute of Technology 1985 */
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */
/*
* XMenu: MIT Project Athena, X Window system menu package
diff --git a/oldXMenu/SetFrz.c b/oldXMenu/SetFrz.c
index 243cc64e0e..8e778a6676 100644
--- a/oldXMenu/SetFrz.c
+++ b/oldXMenu/SetFrz.c
@@ -1,6 +1,7 @@
#include "copyright.h"
/* Copyright Massachusetts Institute of Technology 1985 */
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */
/*
* XMenu: MIT Project Athena, X Window system menu package
diff --git a/oldXMenu/SetPane.c b/oldXMenu/SetPane.c
index 39a87ac5ce..907dba3b23 100644
--- a/oldXMenu/SetPane.c
+++ b/oldXMenu/SetPane.c
@@ -1,6 +1,7 @@
#include "copyright.h"
/* Copyright Massachusetts Institute of Technology 1985 */
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */
/*
* XMenu: MIT Project Athena, X Window system menu package
diff --git a/oldXMenu/SetSel.c b/oldXMenu/SetSel.c
index 4fe0c82a13..06e2c76069 100644
--- a/oldXMenu/SetSel.c
+++ b/oldXMenu/SetSel.c
@@ -1,6 +1,7 @@
#include "copyright.h"
/* Copyright Massachusetts Institute of Technology 1985 */
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */
/*
* XMenu: MIT Project Athena, X Window system menu package
diff --git a/oldXMenu/X10.h b/oldXMenu/X10.h
index e1abcbbe6c..63bf90f38d 100644
--- a/oldXMenu/X10.h
+++ b/oldXMenu/X10.h
@@ -15,6 +15,7 @@
*
*/
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */
/*
* X10.h - Header definition and support file for the C subroutine
diff --git a/oldXMenu/XCrAssoc.c b/oldXMenu/XCrAssoc.c
index 67239a26d3..0c8203579e 100644
--- a/oldXMenu/XCrAssoc.c
+++ b/oldXMenu/XCrAssoc.c
@@ -1,4 +1,5 @@
/* Copyright Massachusetts Institute of Technology 1985 */
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */
/*
Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/oldXMenu/XDelAssoc.c b/oldXMenu/XDelAssoc.c
index 1c72447f93..286353f46c 100644
--- a/oldXMenu/XDelAssoc.c
+++ b/oldXMenu/XDelAssoc.c
@@ -1,4 +1,5 @@
/* Copyright Massachusetts Institute of Technology 1985 */
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */
/*
Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/oldXMenu/XDestAssoc.c b/oldXMenu/XDestAssoc.c
index 137c49f613..eab0511bb6 100644
--- a/oldXMenu/XDestAssoc.c
+++ b/oldXMenu/XDestAssoc.c
@@ -1,4 +1,5 @@
/* Copyright Massachusetts Institute of Technology 1985 */
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */
/*
Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/oldXMenu/XLookAssoc.c b/oldXMenu/XLookAssoc.c
index ea7303bad6..b1b53d9dd6 100644
--- a/oldXMenu/XLookAssoc.c
+++ b/oldXMenu/XLookAssoc.c
@@ -1,4 +1,5 @@
/* Copyright Massachusetts Institute of Technology 1985 */
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */
/*
Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/oldXMenu/XMakeAssoc.c b/oldXMenu/XMakeAssoc.c
index ffe19adc41..d749ec8d04 100644
--- a/oldXMenu/XMakeAssoc.c
+++ b/oldXMenu/XMakeAssoc.c
@@ -1,4 +1,5 @@
/* Copyright Massachusetts Institute of Technology 1985 */
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */
/*
Permission to use, copy, modify, distribute, and sell this software and its
diff --git a/oldXMenu/XMenu.h b/oldXMenu/XMenu.h
index 46e390d3b0..84bf72a5df 100644
--- a/oldXMenu/XMenu.h
+++ b/oldXMenu/XMenu.h
@@ -1,6 +1,7 @@
#include "copyright.h"
/* Copyright Massachusetts Institute of Technology 1985 */
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */
/*
* XMenu: MIT Project Athena, X Window system menu package
diff --git a/oldXMenu/XMenuInt.h b/oldXMenu/XMenuInt.h
index e96dfb1e91..fd272300c6 100644
--- a/oldXMenu/XMenuInt.h
+++ b/oldXMenu/XMenuInt.h
@@ -1,5 +1,6 @@
/* Copyright Massachusetts Institute of Technology 1985 */
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */
/*
* XMenu: MIT Project Athena, X Window system menu package
diff --git a/oldXMenu/copyright.h b/oldXMenu/copyright.h
index c5a4316043..dffc63ac63 100644
--- a/oldXMenu/copyright.h
+++ b/oldXMenu/copyright.h
@@ -16,5 +16,7 @@ without express or implied warranty.
*/
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */
+
/* arch-tag: c689b1bc-a3ba-41a1-baa0-a3622b5445b2
(do not change this comment) */
diff --git a/oldXMenu/insque.c b/oldXMenu/insque.c
index 2b1f52bb02..2395e4ea2d 100644
--- a/oldXMenu/insque.c
+++ b/oldXMenu/insque.c
@@ -1,3 +1,5 @@
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. */
+
/* This file implements the emacs_insque and emacs_remque functions,
copies of the insque and remque functions of BSD. They and all
their callers have been renamed to emacs_mumble to allow us to
diff --git a/src/.gdbinit b/src/.gdbinit
index 66b9e64ec7..462b6a86c5 100644
--- a/src/.gdbinit
+++ b/src/.gdbinit
@@ -129,20 +129,24 @@ define pitx
end
if ($it->what == IT_CHARACTER)
if ($it->len == 1 && $it->c >= ' ' && it->c < 255)
- printf "ch='%c'", $it->c
+ printf " ch='%c'", $it->c
else
- printf "ch=[%d,%d]", $it->c, $it->len
+ printf " ch=[%d,%d]", $it->c, $it->len
end
else
if ($it->what == IT_IMAGE)
- printf "IMAGE=%d", $it->image_id
+ printf " IMAGE=%d", $it->image_id
else
+ printf " "
output $it->what
end
end
if ($it->method != GET_FROM_BUFFER)
printf " next="
output $it->method
+ if ($it->method == GET_FROM_STRING)
+ printf "[%d]", $it->current.string_pos.charpos
+ end
end
printf "\n"
if ($it->region_beg_charpos >= 0)
diff --git a/src/ChangeLog b/src/ChangeLog
index d70edd2fbf..09a3ba2d82 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,577 @@
+2005-09-01 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * dispnew.c (window_to_frame_hpos, update_window):
+ Avoid gcc warning about unused variable `f'.
+
+2005-08-31 Jason Rumney <jasonr@gnu.org>
+
+ * w32menu.c (add_menu_item): If unicode_append_menu returns an
+ error, revert to using AppendMenu.
+
+2005-08-31 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * image.c (PIX_MASK_DRAW, PIX_MASK_RETAIN): Remove argument.
+ All uses changed.
+ [MAC_OS] (XPutPixel, XGetPixel): Add efficient versions for common
+ cases.
+ (x_create_x_image_and_pixmap) [MAC_OS]: Don't call x_destroy_x_image.
+ [MAC_OS] (find_image_fsspec) [!MAC_OSX]: Don't use FSRef.
+ Use posix_pathname_to_fsspec.
+ [MAC_OS] (xpm_load_image): Fill in background_transparent field
+ while we have mask.
+
+ * macgui.h [!TARGET_API_MAC_CARBON] (GetPixDepth): New define.
+
+ * macterm.h (PIX_MASK_DRAW, PIX_MASK_RETAIN): Move defines to image.c.
+
+2005-08-29 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * syntax.c (update_syntax_table): Properly reproduce the special +1
+ setting of e_property at the end of the buffer when bumping into the
+ INTERVALS_AT_ONCE limit.
+
+2005-08-27 Eli Zaretskii <eliz@gnu.org>
+
+ * emacs.c (USAGE1): Fix the description of the -Q option.
+
+2005-08-26 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * xdisp.c (pos_visible_p): Yet another int/Lisp_Object mixup (YAILOM).
+
+2005-08-26 Kim F. Storm <storm@cua.dk>
+
+ * xdisp.c (resize_mini_window): Fix 2005-08-20 change.
+ Don't move PT to new window start.
+
+2005-08-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * keyboard.c (kbd_buffer_get_event) [MAC_OS]: Make events for
+ ICONIFY/DEICONIFY_EVENT.
+
+ * macterm.c (mac_copy_area, mac_copy_area_with_mask):
+ Restore background color.
+ (mac_handle_visibility_change): New function.
+ (x_make_frame_invisible, x_iconify_frame)
+ (XTread_socket) [!USE_CARBON_EVENTS]: Use it.
+ [USE_CARBON_EVENTS] (mac_handle_window_event)
+ (install_window_handler): Handle visibility change events.
+ (x_make_frame_visible): Don't reposition window if it is iconified
+ or asked for visible before. Select and uncollapse window when it
+ is made visible.
+ (x_make_frame_invisible): Don't reset x_highlight_frame.
+ (x_iconify_frame): Likewise. Make invisible frame visible before
+ it is iconified.
+ (read_socket_inev): Move variable outside #if USE_CARBON_EVENTS.
+ (do_window_update): Don't change visibility of invisible frame.
+
+2005-08-22 Juri Linkov <juri@jurta.org>
+
+ * term.c (turn_on_face): Check for TS_set_foreground and
+ TS_set_background depending on standout_mode. Simplify.
+
+2005-08-21 Kim F. Storm <storm@cua.dk>
+
+ * fringe.c (update_window_fringes): Only put TOP and BOTTOM
+ bitmaps on fully visible rows.
+
+ * fringe.c (update_window_fringes): Replace FORCE_P arg with
+ KEEP_CURRENT_P arg; if non-zero, don't update current row fringes,
+ and return 0.
+
+ * xdisp.c (redisplay_window): Call update_window_fringes with
+ KEEP_CURRENT_P non-0 if we are going to refresh fringes later.
+
+2005-08-20 Richard M. Stallman <rms@gnu.org>
+
+ * xdisp.c (display_echo_area_1): Get display start pos from w->start.
+ (resize_mini_window): Set w->start, and PT, so as to display the tail
+ end of the buffer, if it doesn't all fit.
+
+2005-08-18 Kim F. Storm <storm@cua.dk>
+
+ * xdisp.c (calc_pixel_width_or_height): Use actual display
+ resolution when available instead of Vdisplay_pixels_per_inch.
+
+2005-08-17 Kim F. Storm <storm@cua.dk>
+
+ * xdisp.c (pos_visible_p): Adjust X value if window is hscrolled.
+
+ * dispnew.c (buffer_posn_from_coords): Check that target row is
+ within matrix.
+
+2005-08-16 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
+
+ * xterm.c (x_wm_set_icon_pixmap): Move GTK specific code to
+ xg_set_frame_icon and call it.
+
+ * gtkutil.c (xg_set_frame_icon): New function.
+
+ * gtkutil.h (xg_set_frame_icon): Declare it.
+
+2005-08-16 Kim F. Storm <storm@cua.dk>
+
+ * dispnew.c (increment_row_positions): Skip non-enabled rows.
+
+ * window.c (SAVED_WINDOW_VECTOR_SIZE): Remove dangerous define.
+ (Fcurrent_window_configuration): Use VECSIZE macro instead.
+
+2005-08-15 Richard M. Stallman <rms@gnu.org>
+
+ * xdisp.c (message3_nolog): Clear echo_message_buffer.
+
+2005-08-15 Kim F. Storm <storm@cua.dk>
+
+ * lisp.h (QUIT) [!SYNC_INPUT]: Throw t to Vthrow_on_input.
+
+ * process.c (deactivate_process, status_notify, read_process_output)
+ (update_status, status_convert, decode_status, allocate_pty)
+ (make_process, remove_process, list_processes_1)
+ (create_process_1, unwind_request_sigio, read_process_output)
+ (send_process, keyboard_bit_set): Declare static.
+ (Fdelete_process): Simplify. Pass process to status_notify, so we
+ don't try to read output from it.
+ (status_notify): New arg deleting_process--don't try to read
+ output from that process.
+
+ * lisp.h (deactivate_process, status_notify, read_process_output):
+ Remove prototypes.
+
+2005-08-14 Richard M. Stallman <rms@gnu.org>
+
+ * image.c (syms_of_image): Init Qxbm, Qpbm before calling
+ define_image_type.
+
+2005-08-13 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
+
+ * gtkutil.c (xg_get_pixbuf_from_pix_and_mask): New function.
+ (xg_get_image_for_pixmap): Move some code to
+ xg_get_pixbuf_from_pix_and_mask, and call it.
+
+ * gtkutil.h (xg_get_pixbuf_from_pix_and_mask): Declare.
+
+ * xterm.c (x_wm_set_icon_pixmap): Call xg_get_pixbuf_from_pix_and_mask
+ to get an GTK icon and set it with GTK functions to avoid having GTK
+ override an icon set with just X functions.
+
+2005-08-11 Richard M. Stallman <rms@gnu.org>
+
+ * image.c (syms_of_image): Init image_types here, and call
+ define_image_type.
+ (init_image): Not here.
+
+2005-08-09 Richard M. Stallman <rms@gnu.org>
+
+ * bytecode.c (BYTE_CODE_QUIT): Throw t to Vthrow_on_input.
+
+ * lisp.h (QUIT): Throw t to Vthrow_on_input.
+
+2005-08-09 Thien-Thi Nguyen <ttn@gnu.org>
+
+ * floatfns.c (Fexpt): Use floats for negative exponent.
+
+2005-08-08 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
+
+ * gtkutil.c (xg_modify_menubar_widgets): Remove semicolon that
+ should not be there, causing menu display errors with GTK 2.6.9.
+
+2005-08-07 Richard M. Stallman <rms@gnu.org>
+
+ * floatfns.c (Fexpt): Undo previous change.
+
+ * dispnew.c (Fframe_or_buffer_changed_p): Take an arg
+ so it can be used with various state vectors.
+
+ * emacs.c (endif): Convert -script into -scriptload.
+ (standard_args): Add -scriptload. Allow -basic-display with one dash.
+
+ * fns.c (syms_of_fns): Add `emacs' to features.
+
+ * term.c (set_terminal_modes): If no TS_termcap_modes string,
+ output newlines to scroll the old screen contents off the screen.
+
+2005-08-06 Thien-Thi Nguyen <ttn@gnu.org>
+
+ * floatfns.c (Fexpt): Use floats for negative exponent.
+ Reported by D Goel.
+
+2005-08-02 Richard M. Stallman <rms@gnu.org>
+
+ * frame.c (Fframe_char_width): Doc fix.
+
+2005-07-30 Juanma Barranquero <lekktu@gmail.com>
+
+ * xdisp.c (syms_of_xdisp) <redisplay-end-trigger-functions>:
+ Defvar it.
+
+2005-07-28 Juanma Barranquero <lekktu@gmail.com>
+
+ * w32fns.c (my_set_window_pos, my_show_window): Don't declare.
+ (my_create_window, my_create_tip_window): Make static.
+
+ * w32term.c (my_show_window, my_set_window_pos, my_set_focus)
+ (my_set_foreground_window, my_destroy_window): Make static.
+
+2005-07-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ Merge gnulib getopt implementation into Emacs.
+
+ * s/cygwin.h (C_SWITCH_SYSTEM): Remove, since gettext.h is
+ now part of lib-src.
+
+2005-07-26 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * eval.c (Fdefvar): Allow (defvar enable-multibyte-characters).
+
+2005-07-25 Jason Rumney <jasonr@gnu.org>
+
+ * w32menu.c (w32_menu_display_help): Suppress tooltip when
+ navigating menus with the keyboard.
+
+2005-07-23 Richard M. Stallman <rms@gnu.org>
+
+ * insdel.c (syms_of_insdel): staticpro combine_after_change_buffer.
+
+ * bytecode.c (MAYBE_GC): Test gc_cons_threshold and
+ gc_relative_threshold, one by one.
+
+ * keyboard.c (read_char): Test gc_cons_threshold.
+ (syms_of_keyboard): staticpro Qecho_area_clear_hook.
+
+ * eval.c (Feval, Ffuncall): Test gc_cons_threshold and
+ gc_relative_threshold, one by one.
+
+ * alloc.c (gc_cons_threshold): Not static.
+ (gc_cons_combined_threshold): Var deleted.
+ (gc_relative_threshold): New variable.
+ (Fgarbage_collect, init_alloc_once): Compute gc_relative_threshold
+ instead of gc_cons_combined_threshold.
+
+ * lisp.h (gc_cons_threshold, gc_relative_threshold): Declare.
+ (gc_cons_combined_threshold): Declaration deleted.
+
+2005-07-23 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * mac.c: Don't include stdlib.h or string.h.
+ (Fdo_applescript, Fmac_file_name_to_posix)
+ (Fmac_file_name_to_posix): Doc fixes.
+ [TARGET_API_MAC_CARBON] (Fmac_get_preference)
+ (Fmac_code_convert_string): Likewise.
+ [MAC_OSX] (init_mac_osx_environment): Fall back on terminal mode
+ if the executable is not contained in a bundle.
+
+ * macfns.c: Don't include stdlib.h or string.h. Include atimer.h.
+ (gray_width, gray_height): Remove defines.
+ (gray_bits, gray_bitmap_width, gray_bitmap_height)
+ (gray_bitmap_bits): Remove variables.
+ (lispy_function_keys): Remove extern.
+ (free_frame_menubar): Add extern.
+ (x_window_to_frame): Remove function.
+ (unwind_create_tip_frame): Add declaration.
+ (x_set_name_internal): New function.
+ (x_set_name, x_set_title): Use it.
+ (Fx_create_frame, Fx_display_grayscale_p, Fx_display_pixel_width)
+ (Fx_display_pixel_height, Fx_display_planes)
+ (Fx_display_color_cells, Fx_server_max_request_size)
+ (Fx_server_vendor, Fx_server_version, Fx_display_screens)
+ (Fx_display_mm_height, Fx_display_mm_width)
+ (Fx_display_backing_store, Fx_display_visual_class)
+ (Fx_display_save_under, Fx_synchronize, Fx_show_tip): Doc fixes.
+
+ * macmenu.c (Fx_popup_menu, Fx_popup_dialog): Doc fixes.
+
+ * macselect.c (Fx_own_selection_internal): Follow error conventions.
+ (Fx_get_selection_internal, Fx_selection_owner_p)
+ (Fx_selection_exists_p): Doc fixes.
+ (syms_of_macselect) <selection-converter-alist>: Likewise.
+
+2005-07-21 Juanma Barranquero <lekktu@gmail.com>
+
+ * buffer.c (syms_of_buffer) <cursor-type>: Doc fix.
+
+ * ccl.c (Fregister_ccl_program): Fix typos in docstring.
+ (Fccl_execute_on_string): Likewise; add usage info.
+
+ * composite.c (Fcompose_region_internal)
+ (Fcompose_string_internal):
+ Improve argument/docstring consistency.
+
+ * minibuf.c (Fminibuffer_prompt_end, Feval_minibuffer):
+ Fix typos in docstrings.
+
+ * textprop.c (Fnext_char_property_change)
+ (Fprevious_char_property_change): Doc fixes.
+
+ * window.c (Fset_window_margins, Fset_window_fringes):
+ Improve argument/docstring consistency.
+
+ * xfaces.c (Finternal_lisp_face_p): Doc fix.
+
+2005-07-21 Andreas Schwab <schwab@suse.de>
+
+ * eval.c (restore_stack_limits): Return a value.
+
+2005-07-20 Juanma Barranquero <lekktu@gmail.com>
+
+ * eval.c (Fdefvar): Doc fix.
+
+2005-07-20 Kim F. Storm <storm@cua.dk>
+
+ * fileio.c (Fdo_auto_save, do_auto_save_unwind):
+ Use make_save_value to unwind protect stream.
+
+ * lread.c (Fload, load_unwind):
+ Use make_save_value to unwind protect stream.
+
+2005-07-19 Juanma Barranquero <lekktu@gmail.com>
+
+ * eval.c (Fprog2, Fcalled_interactively_p),
+ (syms_of_eval) <debug-on-quit>: Doc fixes.
+ (syms_of_eval) <max-specpdl-size>:
+ (Finteractive_p): Fix typos in docstrings.
+
+2005-07-19 Kim F. Storm <storm@cua.dk>
+
+ * w32fns.c (Vx_hand_shape): Variable removed.
+ (syms_of_w32fns): Intern and staticpro Qw32_charset_default.
+
+2005-07-19 Kenichi Handa <handa@m17n.org>
+
+ * fns.c (Fstring_as_multibyte): Escape backslashes in the docstring.
+
+2005-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * buffer.h (Fgenerate_new_buffer_name): Declare (for use in coding.c).
+
+2005-07-18 Kim F. Storm <storm@cua.dk>
+
+ * frame.h (struct frame): New member already_hscrolled_p.
+
+ * xdisp.c (redisplay_internal): Only try to hscroll each frame once
+ to avoid redisplay looping hscrolling back and forth ad infinitum.
+
+2005-07-18 Juri Linkov <juri@jurta.org>
+
+ * buffer.c (scroll-up-aggressively, scroll-down-aggressively):
+ * keymap.c (Fminor_mode_key_binding):
+ * macterm.c (mac-emulate-three-button-mouse):
+ Delete duplicate duplicate words.
+
+2005-07-18 Ken Raeburn <raeburn@gnu.org>
+
+ * minibuf.c (Ftest_completion): Fix odd syntax in test.
+
+2005-07-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * macfns.c (x_set_cursor_color): Use XSetBackground and XSetForeground.
+
+ * macgui.h (struct _XGC): New struct.
+ (GC): Use it.
+ (GCForeground, GCBackground, GCFont): Use X11 mask values.
+ (XCreateGC, XParseGeometry): Move externs to macterm.h.
+
+ * macterm.c (x_bitmap_icon, x_make_frame_visible): Remove declarations.
+ (XSetFont): Add declaration.
+ (mac_set_forecolor, mac_set_backcolor, mac_set_colors):
+ Remove functions.
+ (GC_FORE_COLOR, GC_BACK_COLOR, GC_FONT, MAC_WINDOW_NORMAL_GC):
+ New defines.
+ (XDrawLine, mac_draw_line_to_pixmap, XClearWindow)
+ (mac_draw_bitmap, XCreatePixmapFromBitmapData, XFillRectangle)
+ (mac_draw_rectangle, mac_draw_string_common, mac_scroll_area):
+ Use them.
+ (mac_erase_rectangle): New function.
+ (XClearArea, x_draw_fringe_bitmap, x_clear_glyph_string_rect)
+ (x_draw_stretch_glyph_string): Use it.
+ (XChangeGC, XCreateGC, XGetGCValues, XSetForeground)
+ (XSetBackground, XSetFont): Adjust for new GC implementation.
+ (x_draw_fringe_bitmap, x_draw_box_rect): Use GC to set colors.
+ (XTset_vertical_scroll_bar): Clear area under scroll bar.
+
+ * macterm.h (struct mac_display_info): Change types of
+ scratch_cursor_gc black_relief.gc, and white_relief.gc to GC.
+ (XCreateGC, XParseGeometry): Move externs from macgui.h.
+
+ * xfaces.c [MAC_OS] (XCreateGC): Remove extern.
+
+2005-07-16 Richard M. Stallman <rms@gnu.org>
+
+ * buffer.c (Fmake_overlay): Doc fix.
+
+2005-07-16 Eli Zaretskii <eliz@gnu.org>
+
+ * w32proc.c (syms_of_ntproc): staticpro Qhigh, Qlow,
+ Vw32_valid_locale_ids, and Vw32_valid_codepages.
+
+2005-07-16 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * mac.c [TARGET_API_MAC_CARBON] (Fmac_code_convert_string):
+ Use Fstring_as_unibyte instead of string_make_unibyte.
+
+2005-07-15 Richard M. Stallman <rms@gnu.org>
+
+ * xdisp.c (select_frame_for_redisplay): Use find_symbol_value.
+
+2005-07-15 Kim F. Storm <storm@cua.dk>
+
+ * xdisp.c: Fix redisplay loop in last change.
+ (IT_POS_VALID_AFTER_MOVE_P): New macro.
+ (move_it_vertically_backward, move_it_by_lines): Use it.
+
+2005-07-14 Jason Rumney <jasonr@gnu.org>
+
+ * w32.c (init_environment): Default HOME directory to user's
+ appdata directory if possible.
+
+2005-07-14 Kim F. Storm <storm@cua.dk>
+
+ * .gdbinit (pitx): Fix output format. Print string charpos.
+
+ * lread.c (syms_of_lread): Initialize seen_list.
+
+ * search.c (syms_of_search): Staticpro searchbuf.whitespace_regexp.
+
+ * syntax.c (syms_of_syntax): Staticpro lisp objects in gl_state.
+ Staticpro re_match_object.
+
+2005-07-14 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * macselect.c (get_scrap_target_type_list): Avoid NULL pointer
+ dereference.
+
+ * macterm.c (mac_window_to_frame): Remove duplicate define.
+
+2005-07-14 Kenichi Handa <handa@m17n.org>
+
+ * coding.c (code_convert_region_unwind): ARG is changed to a cons.
+ (code_convert_region): Adjust for the above change.
+ (set_conversion_work_buffer): If the work buffer is already in
+ use, generate a new buffer and return it. Otherwise return Qnil.
+ (run_pre_post_conversion_on_str): Adjust for the above change.
+ (run_pre_write_conversin_on_c_str): Likewise.
+
+2005-07-13 Kim F. Storm <storm@cua.dk>
+
+ * xdisp.c (start_display): Don't reseat to next visible line start
+ if current start position is in a string or image.
+ (move_it_vertically_backward): Be sure to move out of strings and
+ images when moving it2 forward.
+ (move_it_by_lines): When moving forward, move to next buffer
+ position if we end up in a string or image. When moving backward,
+ count rows moved over when moving to start of current row in case
+ row starts in middle of a string or image. Also move further
+ backward if we end up in a string or image.
+ (try_cursor_movement): If overlay string spans multiple lines,
+ move backward to set cursor on start of an overlay string.
+ (cursor_row_p): Row is ok if cursor is at newline from string, but
+ string starts on this line (so we always position cursor at start
+ of string).
+
+ * indent.c (Fvertical_motion): If start position is on an image,
+ don't move back if we move too far (that's almost certain to happen).
+
+ * xdisp.c (cursor_row_fully_visible_p): Allow partially visible
+ row in minibuffer windows.
+ (try_window): Don't check margins in minibuffer windows.
+
+2005-07-13 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * macterm.c: Don't include stdlib.h or composite.h.
+ (x_use_underline_position_properties, last_mouse_press_frame)
+ (x_noop_count, Qvendor_specific_keysyms): Remove unused variables.
+ (syms_of_macterm, mac_initialize): Don't initialize them.
+ (waiting_for_input, initial_argv, initial_argc)
+ (Vcommand_line_args, Vx_no_window_manager, errno, window_scroll)
+ (set_frame_menubar, path_from_vol_dir_name): Remove externs.
+ (extra_keyboard_modifiers): Fix type in extern.
+ (x_window_to_frame, x_window_to_scroll_bar): Remove declarations.
+ (x_scroll_bar_report_motion): Add argument types to declaration.
+ (mac_compute_glyph_string_overhangs): Add declaration.
+ (disable_mouse_highlight): Remove unused variable.
+ [USE_TOOLKIT_SCROLL_BARS] (construct_scroll_bar_click)
+ (x_scroll_bar_handle_press, x_scroll_bar_handle_release)
+ (x_scroll_bar_handle_drag): Remove argument `timestamp'.
+ All callers changed.
+ [USE_TOOLKIT_SCROLL_BARS] (construct_scroll_bar_click): Don't set
+ timestamp.
+ [USE_CARBON_EVENTS] (mac_handle_mouse_event): Likewise.
+ (x_scroll_bar_create, XTset_vertical_scroll_bar): Show scroll bar
+ only when its width is less than the height.
+ (XTredeem_scroll_bar): Sync with xterm.c.
+ (font_name_table, font_name_table_size, font_name_count):
+ Make static.
+ (drag_and_drop_file_list): Remove variable. Previous use is now
+ local to function.
+ (do_ae_open_documents): Move DRAG_N_DROP event construction part
+ from XTread_socket.
+ (XTread_socket): Consolidate setting of event timestamp.
+ Move DRAG_N_DROP event construction part to do_ae_open_documents.
+ Support extra_keyboard_modifiers.
+
+ * xfaces.c (try_font_list) [MAC_OS]: Try font family name
+ beginning with that for ASCII.
+
+2005-07-13 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * alloc.c (gc_cons_combined_threshold, Vgc_cons_percentage): New vars.
+ (Fgarbage_collect, init_alloc_once): Set gc_cons_combined_threshold.
+ (syms_of_alloc): Declare gc-cons-percentage.
+
+ * eval.c (Feval, Ffuncall):
+ * keyboard.c (read_char):
+ * bytecode.c (MAYBE_GC): Use gc_cons_combined_threshold.
+
+ * lisp.h (gc_cons_combined_threshold): Declare.
+
+2005-07-12 Kim F. Storm <storm@cua.dk>
+
+ * coding.c (Qprocess_argument):
+ * coding.h (Qprocess_argument): Remove unused var.
+
+ * xselect.c (intern): Remove dup. intern and staticpro for QTIMESTAMP.
+
+2005-07-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * mac.c [!TARGET_API_MAC_CARBON]: Include charset.h, coding.h, and
+ Endian.h.
+ [!MAC_OSX] (fchmod, fchown): New functions.
+ (mac_get_code_from_arg): Don't accept Lisp integer as argument.
+ Use SBYTES and EndianU32_BtoN.
+ (mac_get_object_from_code): Return 4 byte string even if argument
+ is 0. Use make_unibyte_string and EndianU32_NtoB.
+ (Fmac_get_file_creator, Fmac_get_file_type, Fmac_set_file_creator)
+ (Fmac_set_file_type): Fix documents and argument declarations.
+ Don't specify kFSCatInfoNodeFlags. Support Mac OS Classic.
+
+2005-07-11 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * window.c (Frecenter): Yet another int/Lisp_Object mixup (YAILOM).
+
+2005-07-11 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
+
+ * xfaces.c (x_update_menu_appearance): Use fontSet resource for
+ Lucid if X_I18N, font otherwise.
+
+2005-07-10 Steven Tamm <steventamm@mac.com>
+
+ * mac.c (Fmac_get_file_type, Fmac_get_file_creator): Add.
+ (Fmac_set_file_type, Fmac_set_file_creator): Add.
+ (mac_get_object_from_code, mac_get_code_from_arg): Add.
+
+2005-07-10 Richard M. Stallman <rms@gnu.org>
+
+ * lread.c (Qeval_buffer_list, Veval_buffer_list): New vars.
+ (syms_of_lread): Set up eval-buffer-list.
+ (Feval_buffer, Feval_region): Bind eval-buffer-list.
+
+2005-07-08 Richard M. Stallman <rms@gnu.org>
+
+ * eval.c (Fdefvar): Allow defvaring a constant to itself quoted.
+
+2005-07-08 Kim F. Storm <storm@cua.dk>
+
+ * keyboard.c (menu_bar_items): Don't GCPRO menu_bar_items_vector here.
+ (syms_of_keyboard): Initialize and staticpro menu_bar_items_vector.
+
2005-07-07 Kim F. Storm <storm@cua.dk>
* window.c (Frecenter): Fix last change (set iarg before use).
@@ -11,7 +585,7 @@
* w32console.c (initialize_w32_display): Detect when the console
dimensions are insane, and default to 80x25 instead.
- (w32_use_full_screen_buffer): default to NIL.
+ (w32_use_full_screen_buffer): Default to NIL.
2005-07-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
@@ -19,8 +593,8 @@
VERTICAL_BORDER_FACE_ID for vertical border line.
(mac_encode_char): Call check_ccl_update in advance.
(mac_to_x_fontname, x_font_name_to_mac_font_name)
- (init_font_name_table, mac_do_list_fonts, XLoadQueryFont): Don't
- assume that font family length is less than 32.
+ (init_font_name_table, mac_do_list_fonts, XLoadQueryFont):
+ Don't assume that font family length is less than 32.
(x_compute_min_glyph_bounds): Make static.
(x_load_font): Never set fonts_changed_p to zero.
@@ -71,8 +645,7 @@
2005-07-01 Masatake YAMATO <jet@gyve.org>
- * emacs.c (main): Passing ADD_NO_RANDOMIZE to
- `personality'.
+ * emacs.c (main): Passing ADD_NO_RANDOMIZE to `personality'.
2005-06-30 Juri Linkov <juri@jurta.org>
@@ -200,7 +773,7 @@
2005-06-22 Miles Bader <miles@gnu.org>
- * xfaces.c (Qvertical_border): Renamed from `Qvertical_divider'.
+ * xfaces.c (Qvertical_border): Rename from `Qvertical_divider'.
(realize_basic_faces, syms_of_xfaces): Update references to it.
* dispextern.h (enum face_id): Rename `VERTICAL_DIVIDER_FACE_ID'
to `VERTICAL_BORDER_FACE_ID'.
@@ -239,8 +812,8 @@
2005-06-17 Richard M. Stallman <rms@gnu.org>
- * xdisp.c (get_next_display_element): Reverse
- test of Vshow_nonbreak_escape.
+ * xdisp.c (get_next_display_element):
+ Reverse test of Vshow_nonbreak_escape.
* term.c (produce_special_glyphs): Use spec_glyph_lookup_face.
(Ftty_no_underline): New function.
diff --git a/src/Makefile.in b/src/Makefile.in
index d118557db3..2e4b4f6ad7 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -1,6 +1,6 @@
# Makefile for GNU Emacs.
-# Copyright (C) 1985, 87, 88, 93, 94, 95, 99, 2000, 01, 03, 2004
-# Free Software Foundation, Inc.
+# Copyright (C) 1985, 1987, 1988, 1993, 1994, 1995, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This file is part of GNU Emacs.
diff --git a/src/abbrev.c b/src/abbrev.c
index 8cb87f2c88..8405489291 100644
--- a/src/abbrev.c
+++ b/src/abbrev.c
@@ -1,6 +1,6 @@
/* Primitives for word-abbrev mode.
- Copyright (C) 1985, 1986, 1993, 1996, 1998, 2001,02,03,04
- Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1993, 1996, 1998, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/alloc.c b/src/alloc.c
index dddfda828e..3861d87c3d 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -172,10 +172,16 @@ EMACS_INT misc_objects_consed;
EMACS_INT intervals_consed;
EMACS_INT strings_consed;
-/* Number of bytes of consing since GC before another GC should be done. */
+/* Minimum number of bytes of consing since GC before next GC. */
EMACS_INT gc_cons_threshold;
+/* Similar minimum, computed from Vgc_cons_percentage. */
+
+EMACS_INT gc_relative_threshold;
+
+static Lisp_Object Vgc_cons_percentage;
+
/* Nonzero during GC. */
int gc_in_progress;
@@ -4899,6 +4905,24 @@ returns nil, because real GC can't be done. */)
if (gc_cons_threshold < 10000)
gc_cons_threshold = 10000;
+ if (FLOATP (Vgc_cons_percentage))
+ { /* Set gc_cons_combined_threshold. */
+ EMACS_INT total = 0;
+
+ total += total_conses * sizeof (struct Lisp_Cons);
+ total += total_symbols * sizeof (struct Lisp_Symbol);
+ total += total_markers * sizeof (union Lisp_Misc);
+ total += total_string_size;
+ total += total_vector_size * sizeof (Lisp_Object);
+ total += total_floats * sizeof (struct Lisp_Float);
+ total += total_intervals * sizeof (struct interval);
+ total += total_strings * sizeof (struct Lisp_String);
+
+ gc_relative_threshold = total * XFLOAT_DATA (Vgc_cons_percentage);
+ }
+ else
+ gc_relative_threshold = 0;
+
if (garbage_collection_messages)
{
if (message_p || minibuf_level > 0)
@@ -5988,6 +6012,8 @@ init_alloc_once ()
staticidx = 0;
consing_since_gc = 0;
gc_cons_threshold = 100000 * sizeof (Lisp_Object);
+ gc_relative_threshold = 0;
+
#ifdef VIRT_ADDR_VARIES
malloc_sbrk_unused = 1<<22; /* A large number */
malloc_sbrk_used = 100000; /* as reasonable as any number */
@@ -6019,7 +6045,15 @@ allocated since the last garbage collection. All data types count.
Garbage collection happens automatically only when `eval' is called.
By binding this temporarily to a large number, you can effectively
-prevent garbage collection during a part of the program. */);
+prevent garbage collection during a part of the program.
+See also `gc-cons-percentage'. */);
+
+ DEFVAR_LISP ("gc-cons-percentage", &Vgc_cons_percentage,
+ doc: /* *Portion of the heap used for allocation.
+Garbage collection can happen automatically once this portion of the heap
+has been allocated since the last garbage collection.
+If this portion is smaller than `gc-cons-threshold', this is ignored. */);
+ Vgc_cons_percentage = make_float (0.1);
DEFVAR_INT ("pure-bytes-used", &pure_bytes_used,
doc: /* Number of bytes of sharable Lisp data allocated so far. */);
diff --git a/src/atimer.c b/src/atimer.c
index 9ac6d529b9..f8ed1b265e 100644
--- a/src/atimer.c
+++ b/src/atimer.c
@@ -1,5 +1,5 @@
/* Asynchronous timers.
- Copyright (C) 2000, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/atimer.h b/src/atimer.h
index 5057eb2be2..d5ad9c674d 100644
--- a/src/atimer.h
+++ b/src/atimer.h
@@ -1,5 +1,5 @@
/* Asynchronous timers.
- Copyright (C) 2000, 2003 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/blockinput.h b/src/blockinput.h
index 3655971553..0eaebbe34d 100644
--- a/src/blockinput.h
+++ b/src/blockinput.h
@@ -1,5 +1,6 @@
/* blockinput.h - interface to blocking complicated interrupt-driven input.
- Copyright (C) 1989, 1993, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1989, 1993, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/buffer.c b/src/buffer.c
index 43727ce7b9..30626f11a2 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -1,6 +1,7 @@
/* Buffer manipulation primitives for GNU Emacs.
- Copyright (C) 1985, 86, 87, 88, 89, 93, 94, 95, 97, 98, 99,
- 2000, 01, 02, 03, 04, 2005 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1987, 1988, 1989, 1993, 1994,
+ 1995, 1997, 1998, 1999, 2000, 2001, 2002,
+ 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -3557,10 +3558,12 @@ DEFUN ("make-overlay", Fmake_overlay, Smake_overlay, 2, 5, 0,
doc: /* Create a new overlay with range BEG to END in BUFFER.
If omitted, BUFFER defaults to the current buffer.
BEG and END may be integers or markers.
-The fourth arg FRONT-ADVANCE, if non-nil, makes the
-front delimiter advance when text is inserted there.
-The fifth arg REAR-ADVANCE, if non-nil, makes the
-rear delimiter advance when text is inserted there. */)
+The fourth arg FRONT-ADVANCE, if non-nil, makes the marker
+for the front of the overlay advance when text is inserted there
+(which means the text *is not* included in the overlay).
+The fifth arg REAR-ADVANCE, if non-nil, makes the marker
+for the rear of the overlay advance when text is inserted there
+(which means the text *is* included in the overlay). */)
(beg, end, buffer, front_advance, rear_advance)
Lisp_Object beg, end, buffer;
Lisp_Object front_advance, rear_advance;
@@ -5727,7 +5730,7 @@ that fraction of the window's height from the bottom of the window.
When the value is 0.0, point goes at the bottom line, which in the simple
case that you moved off with C-f means scrolling just one line. 1.0 means
point goes at the top, so that in that simple case, the window
-window scrolls by a full window height. Meaningful values are
+scrolls by a full window height. Meaningful values are
between 0.0 and 1.0, inclusive. */);
DEFVAR_PER_BUFFER ("scroll-down-aggressively",
@@ -5740,7 +5743,7 @@ that fraction of the window's height from the top of the window.
When the value is 0.0, point goes at the top line, which in the simple
case that you moved off with C-b means scrolling just one line. 1.0 means
point goes at the bottom, so that in that simple case, the window
-window scrolls by a full window height. Meaningful values are
+scrolls by a full window height. Meaningful values are
between 0.0 and 1.0, inclusive. */);
/*DEFVAR_LISP ("debug-check-symbol", &Vcheck_symbol,
@@ -5928,15 +5931,15 @@ is a member of the list. */);
doc: /* Cursor to use when this buffer is in the selected window.
Values are interpreted as follows:
- t use the cursor specified for the frame
- nil don't display a cursor
- box display a filled box cursor
- hollow display a hollow box cursor
- bar display a vertical bar cursor with default width
- (bar . WIDTH) display a vertical bar cursor with width WIDTH
- hbar display a horizontal bar cursor with default height
+ t use the cursor specified for the frame
+ nil don't display a cursor
+ box display a filled box cursor
+ hollow display a hollow box cursor
+ bar display a vertical bar cursor with default width
+ (bar . WIDTH) display a vertical bar cursor with width WIDTH
+ hbar display a horizontal bar cursor with default height
(hbar . HEIGHT) display a horizontal bar cursor with height HEIGHT
- ANYTHING ELSE display a hollow box cursor.
+ ANYTHING ELSE display a hollow box cursor
When the buffer is displayed in a nonselected window,
this variable has no effect; the cursor appears as a hollow box. */);
diff --git a/src/buffer.h b/src/buffer.h
index 8d170c8756..2387af65a4 100644
--- a/src/buffer.h
+++ b/src/buffer.h
@@ -1,6 +1,6 @@
/* Header file for the buffer manipulation primitives.
- Copyright (C) 1985,86,93,94,95,97,98,99,2000,01,03,04
- Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2001,
+ 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -855,6 +855,7 @@ EXFUN (Fget_file_buffer, 1);
EXFUN (Fnext_overlay_change, 1);
EXFUN (Fdelete_overlay, 1);
EXFUN (Fbuffer_local_value, 2);
+EXFUN (Fgenerate_new_buffer_name, 2);
/* Functions to call before and after each text change. */
extern Lisp_Object Vbefore_change_functions;
diff --git a/src/bytecode.c b/src/bytecode.c
index 73b8f60a1a..e5a3e7b2a7 100644
--- a/src/bytecode.c
+++ b/src/bytecode.c
@@ -1,6 +1,6 @@
/* Execution of byte code produced by bytecomp.el.
- Copyright (C) 1985, 1986, 1987, 1988, 1993, 2000, 2001, 2002, 2003, 2004
- Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1987, 1988, 1993, 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -355,13 +355,14 @@ unmark_byte_stack ()
/* Garbage collect if we have consed enough since the last time.
We do this at every branch, to avoid loops that never GC. */
-#define MAYBE_GC() \
- if (consing_since_gc > gc_cons_threshold) \
- { \
- BEFORE_POTENTIAL_GC (); \
- Fgarbage_collect (); \
- AFTER_POTENTIAL_GC (); \
- } \
+#define MAYBE_GC() \
+ if (consing_since_gc > gc_cons_threshold \
+ && consing_since_gc > gc_relative_threshold) \
+ { \
+ BEFORE_POTENTIAL_GC (); \
+ Fgarbage_collect (); \
+ AFTER_POTENTIAL_GC (); \
+ } \
else
/* Check for jumping out of range. */
@@ -388,7 +389,7 @@ unmark_byte_stack ()
Vquit_flag = Qnil; \
BEFORE_POTENTIAL_GC (); \
if (EQ (Vthrow_on_input, flag)) \
- Fthrow (Vthrow_on_input, Qnil); \
+ Fthrow (Vthrow_on_input, Qt); \
Fsignal (Qquit, Qnil); \
AFTER_POTENTIAL_GC (); \
} \
diff --git a/src/callint.c b/src/callint.c
index 10db39ddce..5979e495ac 100644
--- a/src/callint.c
+++ b/src/callint.c
@@ -1,6 +1,6 @@
/* Call a Lisp function interactively.
- Copyright (C) 1985, 86, 93, 94, 95, 1997, 2000, 02, 03, 2004
- Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1993, 1994, 1995, 1997, 2000, 2002, 2003,
+ 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/callproc.c b/src/callproc.c
index b78fae1d07..47930819c0 100644
--- a/src/callproc.c
+++ b/src/callproc.c
@@ -1,6 +1,6 @@
/* Synchronous subprocess invocation for GNU Emacs.
Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1999, 2000, 2001,
- 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+ 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/casefiddle.c b/src/casefiddle.c
index b063ef7510..454d184b99 100644
--- a/src/casefiddle.c
+++ b/src/casefiddle.c
@@ -1,6 +1,6 @@
/* GNU Emacs case conversion functions.
- Copyright (C) 1985,94,97,98,99, 2001, 2002, 2004, 2005
- Free Software Foundation, Inc.
+ Copyright (C) 1985, 1994, 1997, 1998, 1999, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/casetab.c b/src/casetab.c
index 448a236f56..874bb7599f 100644
--- a/src/casetab.c
+++ b/src/casetab.c
@@ -1,5 +1,6 @@
/* GNU Emacs routines to deal with case tables.
- Copyright (C) 1993, 1994 Free Software Foundation, Inc.
+ Copyright (C) 1993, 1994, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/ccl.c b/src/ccl.c
index b6381f7a0c..562215218b 100644
--- a/src/ccl.c
+++ b/src/ccl.c
@@ -1,7 +1,7 @@
/* CCL (Code Conversion Language) interpreter.
Copyright (C) 1995, 1997 Electrotechnical Laboratory, JAPAN.
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
Licensed to the Free Software Foundation.
+ Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -2209,7 +2209,7 @@ DEFUN ("ccl-execute-on-string", Fccl_execute_on_string, Sccl_execute_on_string,
3, 5, 0,
doc: /* Execute CCL-PROGRAM with initial STATUS on STRING.
-CCL-PROGRAM is a symbol registered by register-ccl-program,
+CCL-PROGRAM is a symbol registered by `register-ccl-program',
or a compiled code generated by `ccl-compile' (for backward compatibility,
in this case, the execution is slower).
@@ -2230,7 +2230,8 @@ It returns the contents of write buffer as a string,
If the optional 5th arg UNIBYTE-P is non-nil, the returned string
is a unibyte string. By default it is a multibyte string.
-See the documentation of `define-ccl-program' for the detail of CCL program. */)
+See the documentation of `define-ccl-program' for the detail of CCL program.
+usage: (ccl-execute-on-string CCL-PROGRAM STATUS STRING &optional CONTINUE UNIBYTE-P) */)
(ccl_prog, status, str, contin, unibyte_p)
Lisp_Object ccl_prog, status, str, contin, unibyte_p;
{
@@ -2297,8 +2298,8 @@ See the documentation of `define-ccl-program' for the detail of CCL program. */
DEFUN ("register-ccl-program", Fregister_ccl_program, Sregister_ccl_program,
2, 2, 0,
- doc: /* Register CCL program CCL_PROG as NAME in `ccl-program-table'.
-CCL_PROG should be a compiled CCL program (vector), or nil.
+ doc: /* Register CCL program CCL-PROG as NAME in `ccl-program-table'.
+CCL-PROG should be a compiled CCL program (vector), or nil.
If it is nil, just reserve NAME as a CCL program name.
Return index number of the registered CCL program. */)
(name, ccl_prog)
diff --git a/src/charset.c b/src/charset.c
index e7b6897ea9..3676c9b8a7 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -1,7 +1,7 @@
/* Basic multilingual character support.
Copyright (C) 1995, 1997, 1998 Electrotechnical Laboratory, JAPAN.
Licensed to the Free Software Foundation.
- Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/charset.h b/src/charset.h
index 43791baf0c..a5cdca21bb 100644
--- a/src/charset.h
+++ b/src/charset.h
@@ -1,7 +1,7 @@
/* Header for multibyte character handler.
Copyright (C) 1995, 1997, 1998 Electrotechnical Laboratory, JAPAN.
Licensed to the Free Software Foundation.
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/cm.c b/src/cm.c
index 16df727314..0044063dab 100644
--- a/src/cm.c
+++ b/src/cm.c
@@ -1,5 +1,6 @@
/* Cursor motion subroutines for GNU Emacs.
- Copyright (C) 1985, 1995 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1995, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
based primarily on public domain code written by Chris Torek
This file is part of GNU Emacs.
diff --git a/src/cm.h b/src/cm.h
index 69ddd7f74d..c2381f3c55 100644
--- a/src/cm.h
+++ b/src/cm.h
@@ -1,5 +1,6 @@
/* Cursor motion calculation definitions for GNU Emacs
- Copyright (C) 1985, 1989 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1989, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/cmds.c b/src/cmds.c
index 7940f3cf21..cc5bd90cca 100644
--- a/src/cmds.c
+++ b/src/cmds.c
@@ -1,6 +1,6 @@
/* Simple built-in editing commands.
- Copyright (C) 1985, 93, 94, 95, 96, 97, 1998, 2001, 02, 03
- Free Software Foundation, Inc.
+ Copyright (C) 1985, 1993, 1994, 1995, 1996, 1997, 1998, 2001, 2002,
+ 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/coding.c b/src/coding.c
index 808f1e7d9c..9d2d04af6c 100644
--- a/src/coding.c
+++ b/src/coding.c
@@ -1,7 +1,7 @@
/* Coding system handler (conversion, detection, and etc).
Copyright (C) 1995,97,1998,2002,2003 Electrotechnical Laboratory, JAPAN.
Licensed to the Free Software Foundation.
- Copyright (C) 2001,2002,2003 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -365,7 +365,7 @@ Lisp_Object Qsafe_chars;
Lisp_Object Qvalid_codes;
extern Lisp_Object Qinsert_file_contents, Qwrite_region;
-Lisp_Object Qcall_process, Qcall_process_region, Qprocess_argument;
+Lisp_Object Qcall_process, Qcall_process_region;
Lisp_Object Qstart_process, Qopen_network_stream;
Lisp_Object Qtarget_idx;
@@ -5349,12 +5349,17 @@ static int shrink_conversion_region_threshhold = 1024;
} \
} while (0)
+/* ARG is (CODING . BUFFER) where CODING is what to be set in
+ Vlast_coding_system_used and BUFFER if non-nil is a buffer to
+ kill. */
static Lisp_Object
code_convert_region_unwind (arg)
Lisp_Object arg;
{
inhibit_pre_post_conversion = 0;
- Vlast_coding_system_used = arg;
+ Vlast_coding_system_used = XCAR (arg);
+ if (! NILP (XCDR (arg)))
+ Fkill_buffer (XCDR (arg));
return Qnil;
}
@@ -5607,7 +5612,7 @@ code_convert_region (from, from_byte, to, to_byte, coding, encodep, replace)
Lisp_Object new;
record_unwind_protect (code_convert_region_unwind,
- Vlast_coding_system_used);
+ Fcons (Vlast_coding_system_used, Qnil));
/* We should not call any more pre-write/post-read-conversion
functions while this pre-write-conversion is running. */
inhibit_pre_post_conversion = 1;
@@ -5975,7 +5980,7 @@ code_convert_region (from, from_byte, to, to_byte, coding, encodep, replace)
TEMP_SET_PT_BOTH (from, from_byte);
prev_Z = Z;
record_unwind_protect (code_convert_region_unwind,
- Vlast_coding_system_used);
+ Fcons (Vlast_coding_system_used, Qnil));
saved_coding_system = Vlast_coding_system_used;
Vlast_coding_system_used = coding->symbol;
/* We should not call any more pre-write/post-read-conversion
@@ -6021,17 +6026,31 @@ static Lisp_Object Vcode_conversion_workbuf_name;
/* Set the current buffer to the working buffer prepared for
code-conversion. MULTIBYTE specifies the multibyteness of the
- buffer. */
+ buffer. Return the buffer we set if it must be killed after use.
+ Otherwise return Qnil. */
-static struct buffer *
+static Lisp_Object
set_conversion_work_buffer (multibyte)
int multibyte;
{
- Lisp_Object buffer;
+ Lisp_Object buffer, buffer_to_kill;
struct buffer *buf;
buffer = Fget_buffer_create (Vcode_conversion_workbuf_name);
buf = XBUFFER (buffer);
+ if (buf == current_buffer)
+ {
+ /* As we are already in the work buffer, we must generate a new
+ buffer for the work. */
+ Lisp_Object name;
+
+ name = Fgenerate_new_buffer_name (Vcode_conversion_workbuf_name, Qnil);
+ buffer = buffer_to_kill = Fget_buffer_create (name);
+ buf = XBUFFER (buffer);
+ }
+ else
+ buffer_to_kill = Qnil;
+
delete_all_overlays (buf);
buf->directory = current_buffer->directory;
buf->read_only = Qnil;
@@ -6044,7 +6063,7 @@ set_conversion_work_buffer (multibyte)
Fwiden ();
del_range_2 (BEG, BEG_BYTE, Z, Z_BYTE, 0);
buf->enable_multibyte_characters = multibyte ? Qt : Qnil;
- return buf;
+ return buffer_to_kill;
}
Lisp_Object
@@ -6057,10 +6076,9 @@ run_pre_post_conversion_on_str (str, coding, encodep)
struct gcpro gcpro1, gcpro2;
int multibyte = STRING_MULTIBYTE (str);
Lisp_Object old_deactivate_mark;
+ Lisp_Object buffer_to_kill;
record_unwind_protect (Fset_buffer, Fcurrent_buffer ());
- record_unwind_protect (code_convert_region_unwind,
- Vlast_coding_system_used);
/* It is not crucial to specbind this. */
old_deactivate_mark = Vdeactivate_mark;
GCPRO2 (str, old_deactivate_mark);
@@ -6068,7 +6086,9 @@ run_pre_post_conversion_on_str (str, coding, encodep)
/* We must insert the contents of STR as is without
unibyte<->multibyte conversion. For that, we adjust the
multibyteness of the working buffer to that of STR. */
- set_conversion_work_buffer (multibyte);
+ buffer_to_kill = set_conversion_work_buffer (multibyte);
+ record_unwind_protect (code_convert_region_unwind,
+ Fcons (Vlast_coding_system_used, buffer_to_kill));
insert_from_string (str, 0, 0,
SCHARS (str), SBYTES (str), 0);
@@ -6111,6 +6131,7 @@ run_pre_write_conversin_on_c_str (str, size, nchars, nbytes, coding)
struct buffer *cur = current_buffer;
Lisp_Object old_deactivate_mark, old_last_coding_system_used;
Lisp_Object args[3];
+ Lisp_Object buffer_to_kill;
/* It is not crucial to specbind this. */
old_deactivate_mark = Vdeactivate_mark;
@@ -6120,7 +6141,7 @@ run_pre_write_conversin_on_c_str (str, size, nchars, nbytes, coding)
/* We must insert the contents of STR as is without
unibyte<->multibyte conversion. For that, we adjust the
multibyteness of the working buffer to that of STR. */
- set_conversion_work_buffer (coding->src_multibyte);
+ buffer_to_kill = set_conversion_work_buffer (coding->src_multibyte);
insert_1_both (*str, nchars, nbytes, 0, 0, 0);
UNGCPRO;
inhibit_pre_post_conversion = 1;
@@ -6144,6 +6165,8 @@ run_pre_write_conversin_on_c_str (str, size, nchars, nbytes, coding)
coding->src_multibyte
= ! NILP (current_buffer->enable_multibyte_characters);
set_buffer_internal (cur);
+ if (! NILP (buffer_to_kill))
+ Fkill_buffer (buffer_to_kill);
}
diff --git a/src/coding.h b/src/coding.h
index 4081b7f202..158ebbf289 100644
--- a/src/coding.h
+++ b/src/coding.h
@@ -1,7 +1,7 @@
/* Header for coding system handler.
- Copyright (C) 2004, 2005 Free Software Foundation, Inc.
Copyright (C) 1995, 1997 Electrotechnical Laboratory, JAPAN.
Licensed to the Free Software Foundation.
+ Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -628,7 +628,7 @@ extern int code_convert_region P_ ((int, int, int, int, struct coding_system *,
extern Lisp_Object run_pre_post_conversion_on_str P_ ((Lisp_Object,
struct coding_system *,
int));
-extern void run_pre_write_conversin_on_c_str P_ ((unsigned char **, int *,
+extern void run_pre_write_conversin_on_c_str P_ ((unsigned char **, int *,
int, int,
struct coding_system *));
@@ -666,7 +666,7 @@ extern Lisp_Object eol_mnemonic_undecided;
#ifdef emacs
extern Lisp_Object Qfile_coding_system;
-extern Lisp_Object Qcall_process, Qcall_process_region, Qprocess_argument;
+extern Lisp_Object Qcall_process, Qcall_process_region;
extern Lisp_Object Qstart_process, Qopen_network_stream;
extern Lisp_Object Qwrite_region;
diff --git a/src/commands.h b/src/commands.h
index 9486467e2f..7ad593577a 100644
--- a/src/commands.h
+++ b/src/commands.h
@@ -1,5 +1,6 @@
/* Definitions needed by most editing commands.
- Copyright (C) 1985, 1994 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1994, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/composite.c b/src/composite.c
index dffac5c01f..daa6dceb3c 100644
--- a/src/composite.c
+++ b/src/composite.c
@@ -1,7 +1,7 @@
/* Composite sequence support.
Copyright (C) 1999 Electrotechnical Laboratory, JAPAN.
Licensed to the Free Software Foundation.
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -716,8 +716,8 @@ DEFUN ("compose-region-internal", Fcompose_region_internal,
Compose text in the region between START and END.
Optional 3rd and 4th arguments are COMPONENTS and MODIFICATION-FUNC
for the composition. See `compose-region' for more detail. */)
- (start, end, components, mod_func)
- Lisp_Object start, end, components, mod_func;
+ (start, end, components, modification_func)
+ Lisp_Object start, end, components, modification_func;
{
validate_region (&start, &end);
if (!NILP (components)
@@ -726,7 +726,7 @@ for the composition. See `compose-region' for more detail. */)
&& !STRINGP (components))
CHECK_VECTOR (components);
- compose_text (XINT (start), XINT (end), components, mod_func, Qnil);
+ compose_text (XINT (start), XINT (end), components, modification_func, Qnil);
return Qnil;
}
@@ -737,8 +737,8 @@ DEFUN ("compose-string-internal", Fcompose_string_internal,
Compose text between indices START and END of STRING.
Optional 4th and 5th arguments are COMPONENTS and MODIFICATION-FUNC
for the composition. See `compose-string' for more detail. */)
- (string, start, end, components, mod_func)
- Lisp_Object string, start, end, components, mod_func;
+ (string, start, end, components, modification_func)
+ Lisp_Object string, start, end, components, modification_func;
{
CHECK_STRING (string);
CHECK_NUMBER (start);
@@ -749,7 +749,7 @@ for the composition. See `compose-string' for more detail. */)
|| XINT (end) > SCHARS (string))
args_out_of_range (start, end);
- compose_text (XINT (start), XINT (end), components, mod_func, string);
+ compose_text (XINT (start), XINT (end), components, modification_func, string);
return string;
}
diff --git a/src/composite.h b/src/composite.h
index 9dfe597631..26cf13d27d 100644
--- a/src/composite.h
+++ b/src/composite.h
@@ -1,7 +1,7 @@
/* Header for composite sequence handler.
Copyright (C) 1999 Electrotechnical Laboratory, JAPAN.
Licensed to the Free Software Foundation.
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/config.in b/src/config.in
index f4ab9fbb3d..dc2c07667f 100644
--- a/src/config.in
+++ b/src/config.in
@@ -191,6 +191,12 @@ Boston, MA 02110-1301, USA. */
/* Define to 1 if you have the `getloadavg' function. */
#undef HAVE_GETLOADAVG
+/* Define to 1 if you have the <getopt.h> header file. */
+#undef HAVE_GETOPT_H
+
+/* Define to 1 if you have the `getopt_long_only' function. */
+#undef HAVE_GETOPT_LONG_ONLY
+
/* Define to 1 if you have the `getpagesize' function. */
#undef HAVE_GETPAGESIZE
@@ -785,9 +791,9 @@ Boston, MA 02110-1301, USA. */
/* If using the C implementation of alloca, define if you know the
direction of stack growth for your system; otherwise it will be
automatically deduced at run-time.
- STACK_DIRECTION > 0 => grows toward higher addresses
- STACK_DIRECTION < 0 => grows toward lower addresses
- STACK_DIRECTION = 0 => direction of growth unknown */
+ STACK_DIRECTION > 0 => grows toward higher addresses
+ STACK_DIRECTION < 0 => grows toward lower addresses
+ STACK_DIRECTION = 0 => direction of growth unknown */
#undef STACK_DIRECTION
/* Define to 1 if you have the ANSI C header files. */
@@ -846,6 +852,10 @@ Boston, MA 02110-1301, USA. */
/* Define for large files, on AIX-style hosts. */
#undef _LARGE_FILES
+/* Define to rpl_ if the getopt replacement functions and variables should be
+ used. */
+#undef __GETOPT_PREFIX
+
/* Define like PROTOTYPES; this can be used by system headers. */
#undef __PROTOTYPES
diff --git a/src/cxux-crt0.s b/src/cxux-crt0.s
index 615837eaeb..71076eb8b5 100644
--- a/src/cxux-crt0.s
+++ b/src/cxux-crt0.s
@@ -1,6 +1,6 @@
/*
* External symbol setup file for GNU Emacs on CX/UX
- * Copyright (C) 1990 Free Software Foundation, Inc.
+ * Copyright (C) 1990, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
*
* This file is part of GNU Emacs.
*
diff --git a/src/data.c b/src/data.c
index 09cb6c8b40..b187a3e748 100644
--- a/src/data.c
+++ b/src/data.c
@@ -1,6 +1,6 @@
/* Primitive operations on Lisp data types for GNU Emacs Lisp interpreter.
- Copyright (C) 1985,86,88,93,94,95,97,98,99, 2000, 2001, 03, 2004
- Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1988, 1993, 1994, 1995, 1997, 1998, 1999, 2000,
+ 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/dired.c b/src/dired.c
index 55f96d2888..927276e15c 100644
--- a/src/dired.c
+++ b/src/dired.c
@@ -1,6 +1,6 @@
/* Lisp functions for making directory listings.
- Copyright (C) 1985, 1986, 1993, 1994, 1999, 2000, 2001, 2004, 2005
- Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1993, 1994, 1999, 2000, 2001, 2002, 2003,
+ 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -131,7 +131,7 @@ Lisp_Object
directory_files_internal_unwind (dh)
Lisp_Object dh;
{
- DIR *d = (DIR *) ((XINT (XCAR (dh)) << 16) + XINT (XCDR (dh)));
+ DIR *d = (DIR *) XSAVE_VALUE (dh)->pointer;
closedir (d);
return Qnil;
}
@@ -155,7 +155,6 @@ directory_files_internal (directory, full, match, nosort, attrs, id_format)
int count = SPECPDL_INDEX ();
struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5;
DIRENTRY *dp;
- int retry_p;
/* Because of file name handlers, these functions might call
Ffuncall, and cause a GC. */
@@ -189,12 +188,6 @@ directory_files_internal (directory, full, match, nosort, attrs, id_format)
/* Now *bufp is the compiled form of MATCH; don't call anything
which might compile a new regexp until we're done with the loop! */
- /* Do this opendir after anything which might signal an error; if
- an error is signaled while the directory stream is open, we
- have to make sure it gets closed, and setting up an
- unwind_protect to do so would be a pain. */
- retry:
-
d = opendir (SDATA (dirfilename));
if (d == NULL)
report_file_error ("Opening directory", Fcons (directory, Qnil));
@@ -203,8 +196,7 @@ directory_files_internal (directory, full, match, nosort, attrs, id_format)
file-attributes on filenames, both of which can throw, so we must
do a proper unwind-protect. */
record_unwind_protect (directory_files_internal_unwind,
- Fcons (make_number (((unsigned long) d) >> 16),
- make_number (((unsigned long) d) & 0xffff)));
+ make_save_value (d, 0));
directory_nbytes = SBYTES (directory);
re_match_object = Qt;
@@ -222,10 +214,15 @@ directory_files_internal (directory, full, match, nosort, attrs, id_format)
errno = 0;
dp = readdir (d);
+ if (dp == NULL && (0
#ifdef EAGAIN
- if (dp == NULL && errno == EAGAIN)
- continue;
+ || errno == EAGAIN
+#endif
+#ifdef EINTR
+ || errno == EINTR
#endif
+ ))
+ { QUIT; continue; }
if (dp == NULL)
break;
@@ -316,22 +313,11 @@ directory_files_internal (directory, full, match, nosort, attrs, id_format)
}
}
- retry_p = 0;
-#ifdef EINTR
- retry_p |= errno == EINTR;
-#endif
-
closedir (d);
/* Discard the unwind protect. */
specpdl_ptr = specpdl + count;
- if (retry_p)
- {
- list = Qnil;
- goto retry;
- }
-
if (NILP (nosort))
list = Fsort (Fnreverse (list),
attrs ? Qfile_attributes_lessp : Qstring_lessp);
@@ -519,8 +505,7 @@ file_name_completion (file, dirname, all_flag, ver_flag)
report_file_error ("Opening directory", Fcons (dirname, Qnil));
record_unwind_protect (directory_files_internal_unwind,
- Fcons (make_number (((unsigned long) d) >> 16),
- make_number (((unsigned long) d) & 0xffff)));
+ make_save_value (d, 0));
/* Loop reading blocks */
/* (att3b compiler bug requires do a null comparison this way) */
@@ -532,8 +517,19 @@ file_name_completion (file, dirname, all_flag, ver_flag)
#ifdef VMS
dp = (*readfunc) (d);
#else
+ errno = 0;
dp = readdir (d);
+ if (dp == NULL && (0
+# ifdef EAGAIN
+ || errno == EAGAIN
+# endif
+# ifdef EINTR
+ || errno == EINTR
+# endif
+ ))
+ { QUIT; continue; }
#endif
+
if (!dp) break;
len = NAMLEN (dp);
diff --git a/src/dispextern.h b/src/dispextern.h
index ac9c007bc4..1c802e9e33 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -1,6 +1,6 @@
/* Interface definitions for display code.
- Copyright (C) 1985,93,94,97,98,99, 2000,01,02,03, 2004, 2005
- Free Software Foundation, Inc.
+ Copyright (C) 1985, 1993, 1994, 1997, 1998, 1999, 2000, 2001, 2002,
+ 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/dispnew.c b/src/dispnew.c
index 4924ce2217..2cb661c6ba 100644
--- a/src/dispnew.c
+++ b/src/dispnew.c
@@ -1,6 +1,7 @@
/* Updating of data structures for redisplay.
- Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1997, 1998, 1999,
- 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995,
+ 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+ 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -1171,6 +1172,9 @@ increment_row_positions (row, delta, delta_bytes)
MATRIX_ROW_END_CHARPOS (row) += delta;
MATRIX_ROW_END_BYTEPOS (row) += delta_bytes;
+ if (!row->enabled_p)
+ return;
+
/* Increment positions in glyphs. */
for (area = 0; area < LAST_AREA; ++area)
for (i = 0; i < row->used[area]; ++i)
@@ -3309,9 +3313,7 @@ window_to_frame_hpos (w, hpos)
struct window *w;
int hpos;
{
- struct frame *f = XFRAME (w->frame);
-
- xassert (!FRAME_WINDOW_P (f));
+ xassert (!FRAME_WINDOW_P (XFRAME (w->frame)));
hpos += WINDOW_LEFT_EDGE_COL (w);
return hpos;
}
@@ -4099,10 +4101,8 @@ update_window (w, force_p)
extern Lisp_Object do_mouse_tracking;
struct redisplay_interface *rif = FRAME_RIF (XFRAME (WINDOW_FRAME (w)));
#if GLYPH_DEBUG
- struct frame *f = XFRAME (WINDOW_FRAME (w));
-
/* Check that W's frame doesn't have glyph matrices. */
- xassert (FRAME_WINDOW_P (f));
+ xassert (FRAME_WINDOW_P (XFRAME (WINDOW_FRAME (w))));
#endif
/* Check pending input the first time so that we can quickly return. */
@@ -5806,8 +5806,9 @@ buffer_posn_from_coords (w, x, y, pos, object, dx, dy, width, height)
}
#endif
- row = MATRIX_ROW (w->current_matrix, it.vpos);
- if (row->enabled_p)
+ if (it.vpos < w->current_matrix->nrows
+ && (row = MATRIX_ROW (w->current_matrix, it.vpos),
+ row->enabled_p))
{
if (it.hpos < row->used[TEXT_AREA])
{
@@ -6488,68 +6489,106 @@ usage: (sit-for SECONDS &optional NODISP OLD-NODISP) */)
/* A vector of size >= 2 * NFRAMES + 3 * NBUFFERS + 1, containing the
session's frames, frame names, buffers, buffer-read-only flags, and
- buffer-modified-flags, and a trailing sentinel (so we don't need to
- add length checks). */
+ buffer-modified-flags. */
static Lisp_Object frame_and_buffer_state;
DEFUN ("frame-or-buffer-changed-p", Fframe_or_buffer_changed_p,
- Sframe_or_buffer_changed_p, 0, 0, 0,
+ Sframe_or_buffer_changed_p, 0, 1, 0,
doc: /* Return non-nil if the frame and buffer state appears to have changed.
-The state variable is an internal vector containing all frames and buffers,
+VARIABLE is a variable name whose value is either nil or a state vector
+that will be updated to contain all frames and buffers,
aside from buffers whose names start with space,
-along with the buffers' read-only and modified flags, which allows a fast
-check to see whether the menu bars might need to be recomputed.
+along with the buffers' read-only and modified flags. This allows a fast
+check to see whether buffer menus might need to be recomputed.
If this function returns non-nil, it updates the internal vector to reflect
-the current state. */)
- ()
+the current state.
+
+If VARIABLE is nil, an internal variable is used. Users should not
+pass nil for VARIABLE. */)
+ (variable)
+ Lisp_Object variable;
{
- Lisp_Object tail, frame, buf;
- Lisp_Object *vecp;
+ Lisp_Object state, tail, frame, buf;
+ Lisp_Object *vecp, *end;
int n;
- vecp = XVECTOR (frame_and_buffer_state)->contents;
+ if (! NILP (variable))
+ {
+ CHECK_SYMBOL (variable);
+ state = Fsymbol_value (variable);
+ if (! VECTORP (state))
+ goto changed;
+ }
+ else
+ state = frame_and_buffer_state;
+
+ vecp = XVECTOR (state)->contents;
+ end = vecp + XVECTOR (state)->size;
+
FOR_EACH_FRAME (tail, frame)
{
+ if (vecp == end)
+ goto changed;
if (!EQ (*vecp++, frame))
goto changed;
+ if (vecp == end)
+ goto changed;
if (!EQ (*vecp++, XFRAME (frame)->name))
goto changed;
}
- /* Check that the buffer info matches.
- No need to test for the end of the vector
- because the last element of the vector is lambda
- and that will always cause a mismatch. */
+ /* Check that the buffer info matches. */
for (tail = Vbuffer_alist; CONSP (tail); tail = XCDR (tail))
{
buf = XCDR (XCAR (tail));
/* Ignore buffers that aren't included in buffer lists. */
if (SREF (XBUFFER (buf)->name, 0) == ' ')
continue;
+ if (vecp == end)
+ goto changed;
if (!EQ (*vecp++, buf))
goto changed;
+ if (vecp == end)
+ goto changed;
if (!EQ (*vecp++, XBUFFER (buf)->read_only))
goto changed;
+ if (vecp == end)
+ goto changed;
if (!EQ (*vecp++, Fbuffer_modified_p (buf)))
goto changed;
}
+ if (vecp == end)
+ goto changed;
/* Detect deletion of a buffer at the end of the list. */
if (EQ (*vecp, Qlambda))
return Qnil;
+
+ /* Come here if we decide the data has changed. */
changed:
- /* Start with 1 so there is room for at least one lambda at the end. */
+ /* Count the size we will need.
+ Start with 1 so there is room for at least one lambda at the end. */
n = 1;
FOR_EACH_FRAME (tail, frame)
n += 2;
for (tail = Vbuffer_alist; CONSP (tail); tail = XCDR (tail))
n += 3;
- /* Reallocate the vector if it's grown, or if it's shrunk a lot. */
- if (n > XVECTOR (frame_and_buffer_state)->size
- || n + 20 < XVECTOR (frame_and_buffer_state)->size / 2)
+ /* Reallocate the vector if data has grown to need it,
+ or if it has shrunk a lot. */
+ if (! VECTORP (state)
+ || n > XVECTOR (state)->size
+ || n + 20 < XVECTOR (state)->size / 2)
/* Add 20 extra so we grow it less often. */
- frame_and_buffer_state = Fmake_vector (make_number (n + 20), Qlambda);
- vecp = XVECTOR (frame_and_buffer_state)->contents;
+ {
+ state = Fmake_vector (make_number (n + 20), Qlambda);
+ if (! NILP (variable))
+ Fset (variable, state);
+ else
+ frame_and_buffer_state = state;
+ }
+
+ /* Record the new data in the (possibly reallocated) vector. */
+ vecp = XVECTOR (state)->contents;
FOR_EACH_FRAME (tail, frame)
{
*vecp++ = frame;
@@ -6567,12 +6606,12 @@ the current state. */)
}
/* Fill up the vector with lambdas (always at least one). */
*vecp++ = Qlambda;
- while (vecp - XVECTOR (frame_and_buffer_state)->contents
- < XVECTOR (frame_and_buffer_state)->size)
+ while (vecp - XVECTOR (state)->contents
+ < XVECTOR (state)->size)
*vecp++ = Qlambda;
/* Make sure we didn't overflow the vector. */
- if (vecp - XVECTOR (frame_and_buffer_state)->contents
- > XVECTOR (frame_and_buffer_state)->size)
+ if (vecp - XVECTOR (state)->contents
+ > XVECTOR (state)->size)
abort ();
return Qt;
}
diff --git a/src/disptab.h b/src/disptab.h
index 30b2a7a748..41f4bcbfdb 100644
--- a/src/disptab.h
+++ b/src/disptab.h
@@ -1,5 +1,5 @@
/* Things for GLYPHS and glyph tables.
- Copyright (C) 1993 Free Software Foundation, Inc.
+ Copyright (C) 1993, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/doc.c b/src/doc.c
index 6d8b625aff..6d54aeceac 100644
--- a/src/doc.c
+++ b/src/doc.c
@@ -1,6 +1,6 @@
/* Record indices of function doc strings stored in a file.
- Copyright (C) 1985, 86,93,94,95,97,98,99,2000,04
- Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2001,
+ 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/doprnt.c b/src/doprnt.c
index 1cfc5aecee..5d824038fa 100644
--- a/src/doprnt.c
+++ b/src/doprnt.c
@@ -1,7 +1,7 @@
/* Output like sprintf to a buffer of specified size.
Also takes args differently: pass one pointer to an array of strings
in addition to the format string which is separate.
- Copyright (C) 1985 Free Software Foundation, Inc.
+ Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/dosfns.c b/src/dosfns.c
index 6192836e97..c256595cc1 100644
--- a/src/dosfns.c
+++ b/src/dosfns.c
@@ -1,7 +1,7 @@
/* MS-DOS specific Lisp utilities. Coded by Manabu Higashida, 1991.
Major changes May-July 1993 Morten Welinder (only 10% original code left)
- Copyright (C) 1991, 1993, 1996, 1997, 1998, 2001
- Free Software Foundation, Inc.
+ Copyright (C) 1991, 1993, 1996, 1997, 1998, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/dosfns.h b/src/dosfns.h
index 594c3d980c..40aaf524e2 100644
--- a/src/dosfns.h
+++ b/src/dosfns.h
@@ -2,8 +2,8 @@
Coded by Manabu Higashida, 1991.
Modified by Morten Welinder, 1993-1994.
- Copyright (C) 1991, 1994, 1995, 1997, 1999
- Free Software Foundation, Inc.
+ Copyright (C) 1991, 1994, 1995, 1997, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/ecrt0.c b/src/ecrt0.c
index 95b69b11c0..5ee24dfae8 100644
--- a/src/ecrt0.c
+++ b/src/ecrt0.c
@@ -1,5 +1,6 @@
/* C code startup routine.
- Copyright (C) 1985, 1986, 1992 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1992, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/editfns.c b/src/editfns.c
index 05888fd484..da4533d253 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -1,6 +1,7 @@
/* Lisp functions pertaining to editing.
- Copyright (C) 1985, 1986, 1987, 1989, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1987, 1989, 1993, 1994, 1995, 1996,
+ 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/emacs.c b/src/emacs.c
index af23f8b913..8724cbf292 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -1,6 +1,6 @@
/* Fully extensible Emacs, running on Unix, intended for GNU.
- Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1998, 1999, 2001,
- 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1998, 1999,
+ 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -267,7 +267,7 @@ Initialization options:\n\
--no-site-file do not load site-start.el\n\
--no-splash do not display a splash screen on startup\n\
--no-window-system, -nw do not communicate with X, ignoring $DISPLAY\n\
---quick, -Q equivalent to -q --no-site-file\n\
+--quick, -Q equivalent to -q --no-site-file --no-splash\n\
--script FILE run FILE as an Emacs Lisp script\n\
--terminal, -t DEVICE use DEVICE for terminal I/O\n\
--unibyte, --no-multibyte run Emacs in unibyte mode\n\
@@ -1154,9 +1154,9 @@ main (argc, argv
if (argmatch (argv, argc, "-script", "--script", 3, &junk, &skip_args))
{
noninteractive = 1; /* Set batch mode. */
- /* Convert --script to -l, un-skip it, and sort again so that -l will be
- handled in proper sequence. */
- argv[skip_args - 1] = "-l";
+ /* Convert --script to --scriptload, un-skip it, and sort again
+ so that it will be handled in proper sequence. */
+ argv[skip_args - 1] = "-scriptload";
skip_args -= 2;
sort_args (argc, argv);
}
@@ -1837,7 +1837,7 @@ struct standard_args standard_args[] =
{ "-itype", 0, 15, 0 },
{ "-iconic", "--iconic", 15, 0 },
{ "-D", "--basic-display", 12, 0},
- { "--basic-display", 0, 12, 0},
+ { "-basic-display", 0, 12, 0},
{ "-bg", "--background-color", 10, 1 },
{ "-background", 0, 10, 1 },
{ "-fg", "--foreground-color", 10, 1 },
@@ -1871,6 +1871,7 @@ struct standard_args standard_args[] =
{ "-directory", 0, 0, 1 },
{ "-l", "--load", 0, 1 },
{ "-load", 0, 0, 1 },
+ { "-scriptload", "--scriptload", 0, 1 },
{ "-f", "--funcall", 0, 1 },
{ "-funcall", 0, 0, 1 },
{ "-eval", "--eval", 0, 1 },
diff --git a/src/epaths.in b/src/epaths.in
index be91cb485a..ee965cb761 100644
--- a/src/epaths.in
+++ b/src/epaths.in
@@ -1,6 +1,6 @@
/* Hey Emacs, this is -*- C -*- code! */
-/* Copyright (C) 1993, 1995, 1997, 1999, 2001
- Free Software Foundation, Inc.
+/* Copyright (C) 1993, 1995, 1997, 1999, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/eval.c b/src/eval.c
index f625258229..a867d00150 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1,6 +1,6 @@
/* Evaluator for GNU Emacs Lisp interpreter.
Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1999, 2000, 2001,
- 2002, 2004, 2005 Free Software Foundation, Inc.
+ 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -235,6 +235,7 @@ restore_stack_limits (data)
{
max_specpdl_size = XINT (XCAR (data));
max_lisp_eval_depth = XINT (XCDR (data));
+ return Qnil;
}
/* Call the Lisp debugger, giving it argument ARG. */
@@ -471,10 +472,10 @@ usage: (prog1 FIRST BODY...) */)
}
DEFUN ("prog2", Fprog2, Sprog2, 2, UNEVALLED, 0,
- doc: /* Eval X, Y and BODY sequentially; value from Y.
-The value of Y is saved during the evaluation of the remaining args,
-whose values are discarded.
-usage: (prog2 X Y BODY...) */)
+ doc: /* Eval FORM1, FORM2 and BODY sequentially; value from FORM2.
+The value of FORM2 is saved during the evaluation of the
+remaining args, whose values are discarded.
+usage: (prog2 FORM1 FORM2 BODY...) */)
(args)
Lisp_Object args;
{
@@ -564,8 +565,8 @@ usage: (function ARG) */)
DEFUN ("interactive-p", Finteractive_p, Sinteractive_p, 0, 0, 0,
doc: /* Return t if the function was run directly by user input.
-This means that the function was called with call-interactively (which
-includes being called as the binding of a key)
+This means that the function was called with `call-interactively'
+\(which includes being called as the binding of a key)
and input is currently coming from the keyboard (not in keyboard macro),
and Emacs is not running in batch mode (`noninteractive' is nil).
@@ -586,14 +587,14 @@ unconditionally for that argument. (`p' is a good way to do this.) */)
DEFUN ("called-interactively-p", Fcalled_interactively_p, Scalled_interactively_p, 0, 0, 0,
- doc: /* Return t if the function using this was called with call-interactively.
+ doc: /* Return t if the function using this was called with `call-interactively'.
This is used for implementing advice and other function-modifying
features of Emacs.
The cleanest way to test whether your function was called with
-`call-interactively', the way to do that is by adding an extra
-optional argument, and making the `interactive' spec specify non-nil
-unconditionally for that argument. (`p' is a good way to do this.) */)
+`call-interactively' is by adding an extra optional argument,
+and making the `interactive' spec specify non-nil unconditionally
+for that argument. (`p' is a good way to do this.) */)
()
{
return interactive_p (1) ? Qt : Qnil;
@@ -779,7 +780,7 @@ The return value is BASE-VARIABLE. */)
DEFUN ("defvar", Fdefvar, Sdefvar, 1, UNEVALLED, 0,
- doc: /* Define SYMBOL as a variable.
+ doc: /* Define SYMBOL as a variable, and return SYMBOL.
You are not required to define a variable in order to use it,
but the definition can supply documentation and an initial value
in a way that tags can recognize.
@@ -806,10 +807,6 @@ usage: (defvar SYMBOL &optional INITVALUE DOCSTRING) */)
register Lisp_Object sym, tem, tail;
sym = Fcar (args);
- if (SYMBOL_CONSTANT_P (sym))
- error ("Constant symbol `%s' specified in defvar",
- SDATA (SYMBOL_NAME (sym)));
-
tail = Fcdr (args);
if (!NILP (Fcdr (Fcdr (tail))))
error ("Too many arguments");
@@ -817,6 +814,18 @@ usage: (defvar SYMBOL &optional INITVALUE DOCSTRING) */)
tem = Fdefault_boundp (sym);
if (!NILP (tail))
{
+ if (SYMBOL_CONSTANT_P (sym))
+ {
+ /* For upward compatibility, allow (defvar :foo (quote :foo)). */
+ Lisp_Object tem = Fcar (tail);
+ if (! (CONSP (tem)
+ && EQ (XCAR (tem), Qquote)
+ && CONSP (XCDR (tem))
+ && EQ (XCAR (XCDR (tem)), sym)))
+ error ("Constant symbol `%s' specified in defvar",
+ SDATA (SYMBOL_NAME (sym)));
+ }
+
if (NILP (tem))
Fset_default (sym, Feval (Fcar (tail)));
else
@@ -2085,7 +2094,8 @@ DEFUN ("eval", Feval, Seval, 1, 1, 0,
return form;
QUIT;
- if (consing_since_gc > gc_cons_threshold)
+ if (consing_since_gc > gc_cons_threshold
+ && consing_since_gc > gc_relative_threshold)
{
GCPRO1 (form);
Fgarbage_collect ();
@@ -2785,7 +2795,8 @@ usage: (funcall FUNCTION &rest ARGUMENTS) */)
register int i;
QUIT;
- if (consing_since_gc > gc_cons_threshold)
+ if (consing_since_gc > gc_cons_threshold
+ && consing_since_gc > gc_relative_threshold)
Fgarbage_collect ();
if (++lisp_eval_depth > max_lisp_eval_depth)
@@ -2851,8 +2862,7 @@ usage: (funcall FUNCTION &rest ARGUMENTS) */)
val = (*XSUBR (fun)->function) (internal_args[0]);
goto done;
case 2:
- val = (*XSUBR (fun)->function) (internal_args[0],
- internal_args[1]);
+ val = (*XSUBR (fun)->function) (internal_args[0], internal_args[1]);
goto done;
case 3:
val = (*XSUBR (fun)->function) (internal_args[0], internal_args[1],
@@ -2860,8 +2870,7 @@ usage: (funcall FUNCTION &rest ARGUMENTS) */)
goto done;
case 4:
val = (*XSUBR (fun)->function) (internal_args[0], internal_args[1],
- internal_args[2],
- internal_args[3]);
+ internal_args[2], internal_args[3]);
goto done;
case 5:
val = (*XSUBR (fun)->function) (internal_args[0], internal_args[1],
@@ -3387,7 +3396,7 @@ void
syms_of_eval ()
{
DEFVAR_INT ("max-specpdl-size", &max_specpdl_size,
- doc: /* *Limit on number of Lisp variable bindings & unwind-protects.
+ doc: /* *Limit on number of Lisp variable bindings and `unwind-protect's.
If Lisp code tries to increase the total number past this amount,
an error is signaled.
You can safely use a value considerably larger than the default value,
@@ -3484,10 +3493,8 @@ It does not apply to errors handled by `condition-case'. */);
Vdebug_ignored_errors = Qnil;
DEFVAR_BOOL ("debug-on-quit", &debug_on_quit,
- doc: /* *Non-nil means enter debugger if quit is signaled (C-g, for example).
-Does not apply if quit is handled by a `condition-case'.
-When you evaluate an expression interactively, this variable
-is temporarily non-nil if `eval-expression-debug-on-quit' is non-nil. */);
+ doc: /* *Non-nil means enter debugger if quit is signaled (C-g, for example).
+Does not apply if quit is handled by a `condition-case'. */);
debug_on_quit = 0;
DEFVAR_BOOL ("debug-on-next-call", &debug_on_next_call,
diff --git a/src/fileio.c b/src/fileio.c
index 769dc14e77..53b989f52e 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -1,6 +1,7 @@
/* File IO for GNU Emacs.
- Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1996,
+ 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -5820,13 +5821,13 @@ auto_save_1 ()
}
static Lisp_Object
-do_auto_save_unwind (stream) /* used as unwind-protect function */
- Lisp_Object stream;
+do_auto_save_unwind (arg) /* used as unwind-protect function */
+ Lisp_Object arg;
{
+ FILE *stream = (FILE *) XSAVE_VALUE (arg)->pointer;
auto_saving = 0;
- if (!NILP (stream))
- fclose ((FILE *) (XFASTINT (XCAR (stream)) << 16
- | XFASTINT (XCDR (stream))));
+ if (stream != NULL)
+ fclose (stream);
return Qnil;
}
@@ -5871,8 +5872,7 @@ A non-nil CURRENT-ONLY argument means save only current buffer. */)
int auto_saved = 0;
int do_handled_files;
Lisp_Object oquit;
- FILE *stream;
- Lisp_Object lispstream;
+ FILE *stream = NULL;
int count = SPECPDL_INDEX ();
int orig_minibuffer_auto_raise = minibuffer_auto_raise;
int old_message_p = 0;
@@ -5924,24 +5924,10 @@ A non-nil CURRENT-ONLY argument means save only current buffer. */)
}
stream = fopen (SDATA (listfile), "w");
- if (stream != NULL)
- {
- /* Arrange to close that file whether or not we get an error.
- Also reset auto_saving to 0. */
- lispstream = Fcons (Qnil, Qnil);
- XSETCARFASTINT (lispstream, (EMACS_UINT)stream >> 16);
- XSETCDRFASTINT (lispstream, (EMACS_UINT)stream & 0xffff);
- }
- else
- lispstream = Qnil;
- }
- else
- {
- stream = NULL;
- lispstream = Qnil;
}
- record_unwind_protect (do_auto_save_unwind, lispstream);
+ record_unwind_protect (do_auto_save_unwind,
+ make_save_value (stream, 0));
record_unwind_protect (do_auto_save_unwind_1,
make_number (minibuffer_auto_raise));
minibuffer_auto_raise = 0;
diff --git a/src/filelock.c b/src/filelock.c
index de348f61a9..fc6839f5f8 100644
--- a/src/filelock.c
+++ b/src/filelock.c
@@ -1,6 +1,6 @@
/* Lock files for editing.
- Copyright (C) 1985, 86, 87, 93, 94, 96, 98, 1999, 2000, 2001
- Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1987, 1993, 1994, 1996, 1998, 1999, 2000, 2001,
+ 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/filemode.c b/src/filemode.c
index 130cbace77..6257c6a766 100644
--- a/src/filemode.c
+++ b/src/filemode.c
@@ -1,5 +1,6 @@
/* filemode.c -- make a string describing file modes
- Copyright (C) 1985, 1990, 1993 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1990, 1993, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/src/firstfile.c b/src/firstfile.c
index cf6dbf3e88..b16f3a3dc4 100644
--- a/src/firstfile.c
+++ b/src/firstfile.c
@@ -1,5 +1,5 @@
/* Mark beginning of data space to dump as pure, for GNU Emacs.
- Copyright (C) 1997 Free Software Foundation, Inc.
+ Copyright (C) 1997, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/floatfns.c b/src/floatfns.c
index 529e7b76e3..79574e0a69 100644
--- a/src/floatfns.c
+++ b/src/floatfns.c
@@ -1,5 +1,6 @@
/* Primitive operations on floating point for GNU Emacs Lisp interpreter.
- Copyright (C) 1988, 1993, 1994, 1999, 2003, 2005 Free Software Foundation, Inc.
+ Copyright (C) 1988, 1993, 1994, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -460,7 +461,8 @@ DEFUN ("expt", Fexpt, Sexpt, 2, 2, 0,
CHECK_NUMBER_OR_FLOAT (arg1);
CHECK_NUMBER_OR_FLOAT (arg2);
if (INTEGERP (arg1) /* common lisp spec */
- && INTEGERP (arg2)) /* don't promote, if both are ints */
+ && INTEGERP (arg2) /* don't promote, if both are ints, and */
+ && 0 <= XINT (arg2)) /* we are sure the result is not fractional */
{ /* this can be improved by pre-calculating */
EMACS_INT acc, x, y; /* some binary powers of x then accumulating */
Lisp_Object val;
diff --git a/src/fns.c b/src/fns.c
index f1e83f727a..1e26ec9a39 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -1,6 +1,7 @@
/* Random utility Lisp functions.
- Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1998, 1999, 2000,
- 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997,
+ 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -1153,13 +1154,13 @@ Beware, this often doesn't really do what you think it does.
It is similar to (decode-coding-string STRING 'emacs-mule-unix).
If you're not sure, whether to use `string-as-multibyte' or
`string-to-multibyte', use `string-to-multibyte'. Beware:
- (aref (string-as-multibyte "\201") 0) -> 129 (aka ?\201)
- (aref (string-as-multibyte "\300") 0) -> 192 (aka ?\300)
- (aref (string-as-multibyte "\300\201") 0) -> 192 (aka ?\300)
- (aref (string-as-multibyte "\300\201") 1) -> 129 (aka ?\201)
+ (aref (string-as-multibyte "\\201") 0) -> 129 (aka ?\\201)
+ (aref (string-as-multibyte "\\300") 0) -> 192 (aka ?\\300)
+ (aref (string-as-multibyte "\\300\\201") 0) -> 192 (aka ?\\300)
+ (aref (string-as-multibyte "\\300\\201") 1) -> 129 (aka ?\\201)
but
- (aref (string-as-multibyte "\201\300") 0) -> 2240
- (aref (string-as-multibyte "\201\300") 1) -> <error> */)
+ (aref (string-as-multibyte "\\201\\300") 0) -> 2240
+ (aref (string-as-multibyte "\\201\\300") 1) -> <error> */)
(string)
Lisp_Object string;
{
@@ -5832,7 +5833,7 @@ syms_of_fns ()
DEFVAR_LISP ("features", &Vfeatures,
doc: /* A list of symbols which are the features of the executing emacs.
Used by `featurep' and `require', and altered by `provide'. */);
- Vfeatures = Qnil;
+ Vfeatures = Fcons (intern ("emacs"), Qnil);
Qsubfeatures = intern ("subfeatures");
staticpro (&Qsubfeatures);
diff --git a/src/fontset.c b/src/fontset.c
index e3bb1ced2f..4529e6c213 100644
--- a/src/fontset.c
+++ b/src/fontset.c
@@ -1,7 +1,7 @@
/* Fontset handler.
- Copyright (C) 2004 Free Software Foundation, Inc.
Copyright (C) 1995, 1997, 2000 Electrotechnical Laboratory, JAPAN.
Licensed to the Free Software Foundation.
+ Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/fontset.h b/src/fontset.h
index 7d2def16cf..3a4932af6c 100644
--- a/src/fontset.h
+++ b/src/fontset.h
@@ -1,6 +1,7 @@
/* Header for fontset handler.
Copyright (C) 1995, 1997, 2000 Electrotechnical Laboratory, JAPAN.
Licensed to the Free Software Foundation.
+ Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/frame.c b/src/frame.c
index 864ec625c2..ecbae7f593 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -1,6 +1,6 @@
/* Generic frame functions.
- Copyright (C) 1993, 1994, 1995, 1997, 1999, 2000, 2001, 2003, 2004, 2005
- Free Software Foundation.
+ Copyright (C) 1993, 1994, 1995, 1997, 1999, 2000, 2001, 2002, 2003,
+ 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -2582,8 +2582,7 @@ DEFUN ("frame-char-width", Fframe_char_width, Sframe_char_width,
0, 1, 0,
doc: /* Width in pixels of characters in the font in frame FRAME.
If FRAME is omitted, the selected frame is used.
-The width is the same for all characters, because
-currently Emacs supports only fixed-width fonts.
+On a graphical screen, the width is the standard width of the default font.
For a terminal screen, the value is always 1. */)
(frame)
Lisp_Object frame;
diff --git a/src/frame.h b/src/frame.h
index 81d3477121..838b61bb70 100644
--- a/src/frame.h
+++ b/src/frame.h
@@ -1,5 +1,6 @@
/* Define frame-object for GNU Emacs.
- Copyright (C) 1993, 1994, 1999, 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1993, 1994, 1999, 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -443,6 +444,10 @@ struct frame
realized. Reset to zero whenever the default face changes.
Used to see the difference between a font change and face change. */
unsigned default_face_done_p : 1;
+
+ /* Set to non-zero if this frame has already been hscrolled during
+ current redisplay. */
+ unsigned already_hscrolled_p : 1;
};
#ifdef MULTI_KBOARD
@@ -808,13 +813,13 @@ extern Lisp_Object selected_frame;
Display-related Macros
***********************************************************************/
-/* Canonical y-unit on frame F.
+/* Canonical y-unit on frame F.
This value currently equals the line height of the frame (which is
the height of the default font of F). */
#define FRAME_LINE_HEIGHT(F) ((F)->line_height)
-/* Canonical x-unit on frame F.
+/* Canonical x-unit on frame F.
This value currently equals the average width of the default font of F. */
#define FRAME_COLUMN_WIDTH(F) ((F)->column_width)
diff --git a/src/fringe.c b/src/fringe.c
index 7731c0302e..25de5aa604 100644
--- a/src/fringe.c
+++ b/src/fringe.c
@@ -1,6 +1,7 @@
/* Fringe handling (split from xdisp.c).
- Copyright (C) 1985,86,87,88,93,94,95,97,98,99,2000,01,02,03,04
- Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1997,
+ 1998, 1999, 2000, 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -777,13 +778,14 @@ draw_window_fringes (w, no_fringe)
/* Recalculate the bitmaps to show in the fringes of window W.
- If FORCE_P is 0, only mark rows with modified bitmaps for update in
- redraw_fringe_bitmaps_p; else mark all rows for update. */
+ Only mark rows with modified bitmaps for update in redraw_fringe_bitmaps_p.
+
+ If KEEP_CURRENT_P is 0, update current_matrix too. */
int
-update_window_fringes (w, force_p)
+update_window_fringes (w, keep_current_p)
struct window *w;
- int force_p;
+ int keep_current_p;
{
struct glyph_row *row, *cur = 0;
int yb = window_text_bottom_y (w);
@@ -849,7 +851,8 @@ update_window_fringes (w, force_p)
{
if (!done_top)
{
- if (MATRIX_ROW_START_CHARPOS (row) <= BUF_BEGV (XBUFFER (w->buffer)))
+ if (MATRIX_ROW_START_CHARPOS (row) <= BUF_BEGV (XBUFFER (w->buffer))
+ && !MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P (w, row))
row->indicate_bob_p = !NILP (boundary_top);
else
row->indicate_top_line_p = !NILP (arrow_top);
@@ -858,7 +861,8 @@ update_window_fringes (w, force_p)
if (!done_bot)
{
- if (MATRIX_ROW_END_CHARPOS (row) >= BUF_ZV (XBUFFER (w->buffer)))
+ if (MATRIX_ROW_END_CHARPOS (row) >= BUF_ZV (XBUFFER (w->buffer))
+ && !MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P (w, row))
row->indicate_eob_p = !NILP (boundary_bot), done_bot = 1;
else if (y + row->height >= yb)
row->indicate_bottom_line_p = !NILP (arrow_bot), done_bot = 1;
@@ -943,8 +947,7 @@ update_window_fringes (w, force_p)
else
right = NO_FRINGE_BITMAP;
- if (force_p
- || row->y != cur->y
+ if (row->y != cur->y
|| row->visible_height != cur->visible_height
|| row->ends_at_zv_p != cur->ends_at_zv_p
|| left != cur->left_fringe_bitmap
@@ -953,11 +956,15 @@ update_window_fringes (w, force_p)
|| right_face_id != cur->right_fringe_face_id
|| cur->redraw_fringe_bitmaps_p)
{
- redraw_p = row->redraw_fringe_bitmaps_p = cur->redraw_fringe_bitmaps_p = 1;
- cur->left_fringe_bitmap = left;
- cur->right_fringe_bitmap = right;
- cur->left_fringe_face_id = left_face_id;
- cur->right_fringe_face_id = right_face_id;
+ redraw_p = row->redraw_fringe_bitmaps_p = 1;
+ if (!keep_current_p)
+ {
+ cur->redraw_fringe_bitmaps_p = 1;
+ cur->left_fringe_bitmap = left;
+ cur->right_fringe_bitmap = right;
+ cur->left_fringe_face_id = left_face_id;
+ cur->right_fringe_face_id = right_face_id;
+ }
}
if (row->overlay_arrow_bitmap != cur->overlay_arrow_bitmap)
@@ -975,7 +982,7 @@ update_window_fringes (w, force_p)
row[-1].redraw_fringe_bitmaps_p = cur[-1].redraw_fringe_bitmaps_p = 1;
}
- return redraw_p;
+ return redraw_p && !keep_current_p;
}
diff --git a/src/getloadavg.c b/src/getloadavg.c
index 191f7d4244..a2ae9bc310 100644
--- a/src/getloadavg.c
+++ b/src/getloadavg.c
@@ -1,6 +1,6 @@
/* Get the system load averages.
- Copyright (C) 1985, 86, 87, 88, 89, 91, 92, 93, 1994, 1995, 1997, 2003
- Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1987, 1988, 1989, 1991, 1992, 1993, 1994, 1995,
+ 1997, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
NOTE: The canonical source of this file is maintained with gnulib.
Bugs can be reported to bug-gnulib@gnu.org.
diff --git a/src/getpagesize.h b/src/getpagesize.h
index 20f19279cd..ed47f80b0e 100644
--- a/src/getpagesize.h
+++ b/src/getpagesize.h
@@ -1,5 +1,6 @@
/* Emulate getpagesize on systems that lack it.
- Copyright (C) 1986, 1992, 1995, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1986, 1992, 1995, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/gmalloc.c b/src/gmalloc.c
index 08de77df0e..55aedb7801 100644
--- a/src/gmalloc.c
+++ b/src/gmalloc.c
@@ -5,7 +5,8 @@
/* The malloc headers and source files from the C library follow here. */
/* Declarations for `malloc' and friends.
- Copyright 1990, 91, 92, 93, 95, 96, 99 Free Software Foundation, Inc.
+ Copyright (C) 1990, 1991, 1992, 1993, 1995, 1996, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Written May 1989 by Mike Haertel.
This library is free software; you can redistribute it and/or
diff --git a/src/gtkutil.c b/src/gtkutil.c
index 1cb1004f57..3b590e0fae 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -1,6 +1,5 @@
/* Functions for creating and updating GTK widgets.
- Copyright (C) 2003
- Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -240,6 +239,64 @@ xg_create_default_cursor (dpy)
return gdk_cursor_new_for_display (gdpy, GDK_LEFT_PTR);
}
+/* Apply GMASK to GPIX and return a GdkPixbuf with an alpha channel. */
+
+static GdkPixbuf *
+xg_get_pixbuf_from_pix_and_mask (gpix, gmask, cmap)
+ GdkPixmap *gpix;
+ GdkPixmap *gmask;
+ GdkColormap *cmap;
+{
+ int x, y, width, height, rowstride, mask_rowstride;
+ GdkPixbuf *icon_buf, *tmp_buf;
+ guchar *pixels;
+ guchar *mask_pixels;
+
+ gdk_drawable_get_size (gpix, &width, &height);
+ tmp_buf = gdk_pixbuf_get_from_drawable (NULL, gpix, cmap,
+ 0, 0, 0, 0, width, height);
+ icon_buf = gdk_pixbuf_add_alpha (tmp_buf, FALSE, 0, 0, 0);
+ g_object_unref (G_OBJECT (tmp_buf));
+
+ if (gmask)
+ {
+ GdkPixbuf *mask_buf = gdk_pixbuf_get_from_drawable (NULL,
+ gmask,
+ NULL,
+ 0, 0, 0, 0,
+ width, height);
+ guchar *pixels = gdk_pixbuf_get_pixels (icon_buf);
+ guchar *mask_pixels = gdk_pixbuf_get_pixels (mask_buf);
+ int rowstride = gdk_pixbuf_get_rowstride (icon_buf);
+ int mask_rowstride = gdk_pixbuf_get_rowstride (mask_buf);
+ int y;
+
+ for (y = 0; y < height; ++y)
+ {
+ guchar *iconptr, *maskptr;
+ int x;
+
+ iconptr = pixels + y * rowstride;
+ maskptr = mask_pixels + y * mask_rowstride;
+
+ for (x = 0; x < width; ++x)
+ {
+ /* In a bitmap, RGB is either 255/255/255 or 0/0/0. Checking
+ just R is sufficient. */
+ if (maskptr[0] == 0)
+ iconptr[3] = 0; /* 0, 1, 2 is R, G, B. 3 is alpha. */
+
+ iconptr += rowstride/width;
+ maskptr += mask_rowstride/width;
+ }
+ }
+
+ g_object_unref (G_OBJECT (mask_buf));
+ }
+
+ return icon_buf;
+}
+
/* For the image defined in IMG, make and return a GtkImage. For displays with
8 planes or less we must make a GdkPixbuf and apply the mask manually.
Otherwise the highlightning and dimming the tool bar code in GTK does
@@ -312,60 +369,15 @@ xg_get_image_for_pixmap (f, img, widget, old_widget)
}
else
{
+
/* This is a workaround to make icons look good on pseudo color
displays. Apparently GTK expects the images to have an alpha
channel. If they don't, insensitive and activated icons will
look bad. This workaround does not work on monochrome displays,
and is not needed on true color/static color displays (i.e.
16 bits and higher). */
- int x, y, width, height, rowstride, mask_rowstride;
- GdkPixbuf *icon_buf, *tmp_buf;
- guchar *pixels;
- guchar *mask_pixels;
-
- gdk_drawable_get_size (gpix, &width, &height);
- tmp_buf = gdk_pixbuf_get_from_drawable (NULL,
- gpix,
- gtk_widget_get_colormap (widget),
- 0, 0, 0, 0, width, height);
- icon_buf = gdk_pixbuf_add_alpha (tmp_buf, FALSE, 0, 0, 0);
- g_object_unref (G_OBJECT (tmp_buf));
-
- if (gmask)
- {
- GdkPixbuf *mask_buf = gdk_pixbuf_get_from_drawable (NULL,
- gmask,
- NULL,
- 0, 0, 0, 0,
- width, height);
- guchar *pixels = gdk_pixbuf_get_pixels (icon_buf);
- guchar *mask_pixels = gdk_pixbuf_get_pixels (mask_buf);
- int rowstride = gdk_pixbuf_get_rowstride (icon_buf);
- int mask_rowstride = gdk_pixbuf_get_rowstride (mask_buf);
- int y;
-
- for (y = 0; y < height; ++y)
- {
- guchar *iconptr, *maskptr;
- int x;
-
- iconptr = pixels + y * rowstride;
- maskptr = mask_pixels + y * mask_rowstride;
-
- for (x = 0; x < width; ++x)
- {
- /* In a bitmap, RGB is either 255/255/255 or 0/0/0. Checking
- just R is sufficient. */
- if (maskptr[0] == 0)
- iconptr[3] = 0; /* 0, 1, 2 is R, G, B. 3 is alpha. */
-
- iconptr += rowstride/width;
- maskptr += mask_rowstride/width;
- }
- }
-
- g_object_unref (G_OBJECT (mask_buf));
- }
+ GdkColormap *cmap = gtk_widget_get_colormap (widget);
+ GdkPixbuf *icon_buf = xg_get_pixbuf_from_pix_and_mask (gpix, gmask, cmap);
if (! old_widget)
old_widget = GTK_IMAGE (gtk_image_new_from_pixbuf (icon_buf));
@@ -940,6 +952,24 @@ xg_set_background_color (f, bg)
}
+/* Set the frame icon to ICON_PIXMAP/MASK. This must be done with GTK
+ functions so GTK does not overwrite the icon. */
+
+void
+xg_set_frame_icon (f, icon_pixmap, icon_mask)
+ FRAME_PTR f;
+ Pixmap icon_pixmap;
+ Pixmap icon_mask;
+{
+ GdkDisplay *gdpy = gdk_x11_lookup_xdisplay (FRAME_X_DISPLAY (f));
+ GdkPixmap *gpix = gdk_pixmap_foreign_new_for_display (gdpy, icon_pixmap);
+ GdkPixmap *gmask = gdk_pixmap_foreign_new_for_display (gdpy, icon_mask);
+ GdkPixbuf *gp = xg_get_pixbuf_from_pix_and_mask (gpix, gmask, NULL);
+
+ gtk_window_set_icon (GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)), gp);
+}
+
+
/***********************************************************************
Dialog functions
@@ -2607,7 +2637,7 @@ xg_modify_menubar_widgets (menubar, f, val, deep_p,
xg_update_menubar (menubar, f, &list, list, 0, val->contents,
select_cb, highlight_cb, cl_data);
- if (deep_p);
+ if (deep_p)
{
widget_value *cur;
diff --git a/src/gtkutil.h b/src/gtkutil.h
index 08ba9ee131..aea4ee9e7c 100644
--- a/src/gtkutil.h
+++ b/src/gtkutil.h
@@ -1,6 +1,5 @@
/* Definitions and headers for GTK widgets.
- Copyright (C) 2003
- Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -200,6 +199,10 @@ extern void x_wm_set_size_hint P_ ((FRAME_PTR f,
int user_position));
extern void xg_set_background_color P_ ((FRAME_PTR f, unsigned long bg));
+extern void xg_set_frame_icon P_ ((FRAME_PTR f,
+ Pixmap icon_pixmap,
+ Pixmap icon_mask));
+
/* Mark all callback data that are Lisp_object:s during GC. */
extern void xg_mark_data P_ ((void));
diff --git a/src/image.c b/src/image.c
index 928ec0437a..6ec0734e78 100644
--- a/src/image.c
+++ b/src/image.c
@@ -1,6 +1,6 @@
/* Functions for image support on window system.
- Copyright (C) 1989, 92, 93, 94, 95, 96, 97, 98, 99, 2000,01,02,03,04
- Free Software Foundation.
+ Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+ 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -54,8 +54,8 @@ typedef struct x_bitmap_record Bitmap_Record;
#define RGB_PIXEL_COLOR unsigned long
-#define PIX_MASK_RETAIN(f) 0
-#define PIX_MASK_DRAW(f) 1
+#define PIX_MASK_RETAIN 0
+#define PIX_MASK_DRAW 1
#endif /* HAVE_X_WINDOWS */
@@ -71,8 +71,8 @@ typedef struct w32_bitmap_record Bitmap_Record;
#define RGB_PIXEL_COLOR COLORREF
-#define PIX_MASK_RETAIN(f) 0
-#define PIX_MASK_DRAW(f) 1
+#define PIX_MASK_RETAIN 0
+#define PIX_MASK_DRAW 1
#define FRAME_X_VISUAL(f) FRAME_X_DISPLAY_INFO (f)->visual
#define x_defined_color w32_defined_color
@@ -112,6 +112,11 @@ typedef struct mac_bitmap_record Bitmap_Record;
#define RGB_PIXEL_COLOR unsigned long
+/* A black pixel in a mask bitmap/pixmap means ``draw a source
+ pixel''. A white pixel means ``retain the current pixel''. */
+#define PIX_MASK_DRAW RGB_TO_ULONG(0,0,0)
+#define PIX_MASK_RETAIN RGB_TO_ULONG(255,255,255)
+
#define FRAME_X_VISUAL(f) FRAME_X_DISPLAY_INFO (f)->visual
#define x_defined_color mac_defined_color
#define DefaultDepthOfScreen(screen) (one_mac_display_info.n_planes)
@@ -181,19 +186,43 @@ XPutPixel (ximage, x, y, pixel)
int x, y;
unsigned long pixel;
{
- CGrafPtr old_port;
- GDHandle old_gdh;
- RGBColor color;
+ PixMapHandle pixmap = GetGWorldPixMap (ximage);
+ short depth = GetPixDepth (pixmap);
- GetGWorld (&old_port, &old_gdh);
- SetGWorld (ximage, NULL);
+ if (depth == 32)
+ {
+ char *base_addr = GetPixBaseAddr (pixmap);
+ short row_bytes = GetPixRowBytes (pixmap);
- color.red = RED16_FROM_ULONG (pixel);
- color.green = GREEN16_FROM_ULONG (pixel);
- color.blue = BLUE16_FROM_ULONG (pixel);
- SetCPixel (x, y, &color);
+ ((unsigned long *) (base_addr + y * row_bytes))[x] = pixel;
+ }
+ else if (depth == 1)
+ {
+ char *base_addr = GetPixBaseAddr (pixmap);
+ short row_bytes = GetPixRowBytes (pixmap);
- SetGWorld (old_port, old_gdh);
+ if (pixel == PIX_MASK_DRAW)
+ base_addr[y * row_bytes + x / 8] |= (1 << 7) >> (x & 7);
+ else
+ base_addr[y * row_bytes + x / 8] &= ~((1 << 7) >> (x & 7));
+ }
+ else
+ {
+ CGrafPtr old_port;
+ GDHandle old_gdh;
+ RGBColor color;
+
+ GetGWorld (&old_port, &old_gdh);
+ SetGWorld (ximage, NULL);
+
+ color.red = RED16_FROM_ULONG (pixel);
+ color.green = GREEN16_FROM_ULONG (pixel);
+ color.blue = BLUE16_FROM_ULONG (pixel);
+
+ SetCPixel (x, y, &color);
+
+ SetGWorld (old_port, old_gdh);
+ }
}
static unsigned long
@@ -201,17 +230,40 @@ XGetPixel (ximage, x, y)
XImagePtr ximage;
int x, y;
{
- CGrafPtr old_port;
- GDHandle old_gdh;
- RGBColor color;
+ PixMapHandle pixmap = GetGWorldPixMap (ximage);
+ short depth = GetPixDepth (pixmap);
- GetGWorld (&old_port, &old_gdh);
- SetGWorld (ximage, NULL);
+ if (depth == 32)
+ {
+ char *base_addr = GetPixBaseAddr (pixmap);
+ short row_bytes = GetPixRowBytes (pixmap);
- GetCPixel (x, y, &color);
+ return ((unsigned long *) (base_addr + y * row_bytes))[x];
+ }
+ else if (depth == 1)
+ {
+ char *base_addr = GetPixBaseAddr (pixmap);
+ short row_bytes = GetPixRowBytes (pixmap);
- SetGWorld (old_port, old_gdh);
- return RGB_TO_ULONG (color.red >> 8, color.green >> 8, color.blue >> 8);
+ if (base_addr[y * row_bytes + x / 8] & (1 << (~x & 7)))
+ return PIX_MASK_DRAW;
+ else
+ return PIX_MASK_RETAIN;
+ }
+ else
+ {
+ CGrafPtr old_port;
+ GDHandle old_gdh;
+ RGBColor color;
+
+ GetGWorld (&old_port, &old_gdh);
+ SetGWorld (ximage, NULL);
+
+ GetCPixel (x, y, &color);
+
+ SetGWorld (old_port, old_gdh);
+ return RGB_TO_ULONG (color.red >> 8, color.green >> 8, color.blue >> 8);
+ }
}
static void
@@ -1300,7 +1352,7 @@ image_background_transparent (img, f, mask)
}
img->background_transparent
- = (four_corners_best (mask, img->width, img->height) == PIX_MASK_RETAIN (f));
+ = (four_corners_best (mask, img->width, img->height) == PIX_MASK_RETAIN);
if (free_mask)
Destroy_Image (mask, prev);
@@ -2003,7 +2055,6 @@ x_create_x_image_and_pixmap (f, width, height, depth, ximg, pixmap)
*pixmap = XCreatePixmap (display, window, width, height, depth);
if (*pixmap == NO_PIXMAP)
{
- x_destroy_x_image (*ximg);
*ximg = NULL;
image_error ("Unable to create X pixmap", Qnil, Qnil);
return 0;
@@ -2166,10 +2217,8 @@ find_image_fsspec (specified_file, file, fss)
Lisp_Object specified_file, *file;
FSSpec *fss;
{
-#if TARGET_API_MAC_CARBON
+#if MAC_OSX
FSRef fsr;
-#else
- Str255 mac_pathname;
#endif
OSErr err;
@@ -2178,15 +2227,12 @@ find_image_fsspec (specified_file, file, fss)
return fnfErr; /* file or directory not found;
incomplete pathname */
/* Try to open the image file. */
-#if TARGET_API_MAC_CARBON
+#if MAC_OSX
err = FSPathMakeRef (SDATA (*file), &fsr, NULL);
if (err == noErr)
err = FSGetCatalogInfo (&fsr, kFSCatInfoNone, NULL, NULL, fss, NULL);
#else
- if (posix_to_mac_pathname (SDATA (*file), mac_pathname, MAXPATHLEN+1) == 0)
- return fnfErr;
- c2pstr (mac_pathname);
- err = FSMakeFSSpec (0, 0, mac_pathname, fss);
+ err = posix_pathname_to_fsspec (SDATA (*file), fss);
#endif
return err;
}
@@ -3850,24 +3896,24 @@ xpm_load (f, img)
Only XPM version 3 (without any extensions) is supported. */
static int xpm_scan P_ ((unsigned char **, unsigned char *,
- unsigned char **, int *));
+ unsigned char **, int *));
static Lisp_Object xpm_make_color_table_v
P_ ((void (**) (Lisp_Object, unsigned char *, int, Lisp_Object),
Lisp_Object (**) (Lisp_Object, unsigned char *, int)));
static void xpm_put_color_table_v P_ ((Lisp_Object, unsigned char *,
- int, Lisp_Object));
+ int, Lisp_Object));
static Lisp_Object xpm_get_color_table_v P_ ((Lisp_Object,
- unsigned char *, int));
+ unsigned char *, int));
static Lisp_Object xpm_make_color_table_h
P_ ((void (**) (Lisp_Object, unsigned char *, int, Lisp_Object),
Lisp_Object (**) (Lisp_Object, unsigned char *, int)));
static void xpm_put_color_table_h P_ ((Lisp_Object, unsigned char *,
- int, Lisp_Object));
+ int, Lisp_Object));
static Lisp_Object xpm_get_color_table_h P_ ((Lisp_Object,
- unsigned char *, int));
+ unsigned char *, int));
static int xpm_str_to_color_key P_ ((char *));
static int xpm_load_image P_ ((struct frame *, struct image *,
- unsigned char *, unsigned char *));
+ unsigned char *, unsigned char *));
/* Tokens returned from xpm_scan. */
@@ -3896,49 +3942,49 @@ xpm_scan (s, end, beg, len)
{
/* Skip white-space. */
while (*s < end && (c = *(*s)++, isspace (c)))
- ;
+ ;
/* gnus-pointer.xpm uses '-' in its identifier.
- sb-dir-plus.xpm uses '+' in its identifier. */
+ sb-dir-plus.xpm uses '+' in its identifier. */
if (isalpha (c) || c == '_' || c == '-' || c == '+')
- {
- *beg = *s - 1;
- while (*s < end &&
- (c = **s, isalnum (c) || c == '_' || c == '-' || c == '+'))
- ++*s;
- *len = *s - *beg;
- return XPM_TK_IDENT;
- }
+ {
+ *beg = *s - 1;
+ while (*s < end &&
+ (c = **s, isalnum (c) || c == '_' || c == '-' || c == '+'))
+ ++*s;
+ *len = *s - *beg;
+ return XPM_TK_IDENT;
+ }
else if (c == '"')
- {
- *beg = *s;
- while (*s < end && **s != '"')
- ++*s;
- *len = *s - *beg;
- if (*s < end)
- ++*s;
- return XPM_TK_STRING;
- }
+ {
+ *beg = *s;
+ while (*s < end && **s != '"')
+ ++*s;
+ *len = *s - *beg;
+ if (*s < end)
+ ++*s;
+ return XPM_TK_STRING;
+ }
else if (c == '/')
- {
- if (*s < end && **s == '*')
- {
- /* C-style comment. */
- ++*s;
- do
- {
- while (*s < end && *(*s)++ != '*')
- ;
- }
- while (*s < end && **s != '/');
- if (*s < end)
- ++*s;
- }
- else
- return c;
- }
+ {
+ if (*s < end && **s == '*')
+ {
+ /* C-style comment. */
+ ++*s;
+ do
+ {
+ while (*s < end && *(*s)++ != '*')
+ ;
+ }
+ while (*s < end && **s != '/');
+ if (*s < end)
+ ++*s;
+ }
+ else
+ return c;
+ }
else
- return c;
+ return c;
}
return XPM_TK_EOF;
@@ -3988,9 +4034,9 @@ xpm_make_color_table_h (put_func, get_func)
*put_func = xpm_put_color_table_h;
*get_func = xpm_get_color_table_h;
return make_hash_table (Qequal, make_number (DEFAULT_HASH_SIZE),
- make_float (DEFAULT_REHASH_SIZE),
- make_float (DEFAULT_REHASH_THRESHOLD),
- Qnil, Qnil, Qnil);
+ make_float (DEFAULT_REHASH_SIZE),
+ make_float (DEFAULT_REHASH_THRESHOLD),
+ Qnil, Qnil, Qnil);
}
static void
@@ -4016,7 +4062,7 @@ xpm_get_color_table_h (color_table, chars_start, chars_len)
{
struct Lisp_Hash_Table *table = XHASH_TABLE (color_table);
int i = hash_lookup (table, make_unibyte_string (chars_start, chars_len),
- NULL);
+ NULL);
return i >= 0 ? HASH_VALUE (table, i) : Qnil;
}
@@ -4065,17 +4111,17 @@ xpm_load_image (f, img, contents, end)
#define match() \
LA1 = xpm_scan (&s, end, &beg, &len)
-#define expect(TOKEN) \
- if (LA1 != (TOKEN)) \
- goto failure; \
- else \
+#define expect(TOKEN) \
+ if (LA1 != (TOKEN)) \
+ goto failure; \
+ else \
match ()
-#define expect_ident(IDENT) \
+#define expect_ident(IDENT) \
if (LA1 == XPM_TK_IDENT \
- && strlen ((IDENT)) == len && memcmp ((IDENT), beg, len) == 0) \
- match (); \
- else \
+ && strlen ((IDENT)) == len && memcmp ((IDENT), beg, len) == 0) \
+ match (); \
+ else \
goto failure
if (!(end - s >= 9 && memcmp (s, "/* XPM */", 9) == 0))
@@ -4096,7 +4142,7 @@ xpm_load_image (f, img, contents, end)
memcpy (buffer, beg, len);
buffer[len] = '\0';
if (sscanf (buffer, "%d %d %d %d", &width, &height,
- &num_colors, &chars_per_pixel) != 4
+ &num_colors, &chars_per_pixel) != 4
|| width <= 0 || height <= 0
|| num_colors <= 0 || chars_per_pixel <= 0)
goto failure;
@@ -4107,17 +4153,17 @@ xpm_load_image (f, img, contents, end)
best_key = XPM_COLOR_KEY_C;
else if (!NILP (Fx_display_grayscale_p (frame)))
best_key = (XFASTINT (Fx_display_planes (frame)) > 2
- ? XPM_COLOR_KEY_G : XPM_COLOR_KEY_G4);
+ ? XPM_COLOR_KEY_G : XPM_COLOR_KEY_G4);
else
best_key = XPM_COLOR_KEY_M;
color_symbols = image_spec_value (img->spec, QCcolor_symbols, NULL);
if (chars_per_pixel == 1)
color_table = xpm_make_color_table_v (&put_color_table,
- &get_color_table);
+ &get_color_table);
else
color_table = xpm_make_color_table_h (&put_color_table,
- &get_color_table);
+ &get_color_table);
while (num_colors-- > 0)
{
@@ -4128,71 +4174,71 @@ xpm_load_image (f, img, contents, end)
expect (XPM_TK_STRING);
if (len <= chars_per_pixel || len >= BUFSIZ + chars_per_pixel)
- goto failure;
+ goto failure;
memcpy (buffer, beg + chars_per_pixel, len - chars_per_pixel);
buffer[len - chars_per_pixel] = '\0';
str = strtok (buffer, " \t");
if (str == NULL)
- goto failure;
+ goto failure;
key = xpm_str_to_color_key (str);
if (key < 0)
- goto failure;
+ goto failure;
do
- {
- color = strtok (NULL, " \t");
- if (color == NULL)
- goto failure;
+ {
+ color = strtok (NULL, " \t");
+ if (color == NULL)
+ goto failure;
- while (str = strtok (NULL, " \t"))
- {
- next_key = xpm_str_to_color_key (str);
- if (next_key >= 0)
- break;
- color[strlen (color)] = ' ';
- }
+ while (str = strtok (NULL, " \t"))
+ {
+ next_key = xpm_str_to_color_key (str);
+ if (next_key >= 0)
+ break;
+ color[strlen (color)] = ' ';
+ }
- if (key == XPM_COLOR_KEY_S)
- {
- if (NILP (symbol_color))
- symbol_color = build_string (color);
- }
- else if (max_key < key && key <= best_key)
- {
- max_key = key;
- max_color = color;
- }
- key = next_key;
- }
+ if (key == XPM_COLOR_KEY_S)
+ {
+ if (NILP (symbol_color))
+ symbol_color = build_string (color);
+ }
+ else if (max_key < key && key <= best_key)
+ {
+ max_key = key;
+ max_color = color;
+ }
+ key = next_key;
+ }
while (str);
color_val = Qnil;
if (!NILP (color_symbols) && !NILP (symbol_color))
- {
- Lisp_Object specified_color = Fassoc (symbol_color, color_symbols);
-
- if (CONSP (specified_color) && STRINGP (XCDR (specified_color)))
- if (xstricmp (SDATA (XCDR (specified_color)), "None") == 0)
- color_val = Qt;
- else if (x_defined_color (f, SDATA (XCDR (specified_color)),
- &cdef, 0))
- color_val = make_number (cdef.pixel);
- }
+ {
+ Lisp_Object specified_color = Fassoc (symbol_color, color_symbols);
+
+ if (CONSP (specified_color) && STRINGP (XCDR (specified_color)))
+ if (xstricmp (SDATA (XCDR (specified_color)), "None") == 0)
+ color_val = Qt;
+ else if (x_defined_color (f, SDATA (XCDR (specified_color)),
+ &cdef, 0))
+ color_val = make_number (cdef.pixel);
+ }
if (NILP (color_val) && max_key > 0)
- if (xstricmp (max_color, "None") == 0)
- color_val = Qt;
- else if (x_defined_color (f, max_color, &cdef, 0))
- color_val = make_number (cdef.pixel);
+ if (xstricmp (max_color, "None") == 0)
+ color_val = Qt;
+ else if (x_defined_color (f, max_color, &cdef, 0))
+ color_val = make_number (cdef.pixel);
if (!NILP (color_val))
- (*put_color_table) (color_table, beg, chars_per_pixel, color_val);
+ (*put_color_table) (color_table, beg, chars_per_pixel, color_val);
expect (',');
}
if (!x_create_x_image_and_pixmap (f, width, height, 0,
- &ximg, &img->pixmap)
+ &ximg, &img->pixmap)
|| !x_create_x_image_and_pixmap (f, width, height, 1,
- &mask_img, &img->mask))
+ &mask_img, &img->mask))
{
image_error ("Out of memory (%s)", img->spec, Qnil);
goto error;
@@ -4203,21 +4249,21 @@ xpm_load_image (f, img, contents, end)
expect (XPM_TK_STRING);
str = beg;
if (len < width * chars_per_pixel)
- goto failure;
+ goto failure;
for (x = 0; x < width; x++, str += chars_per_pixel)
- {
- Lisp_Object color_val =
- (*get_color_table) (color_table, str, chars_per_pixel);
-
- XPutPixel (ximg, x, y,
- (INTEGERP (color_val) ? XINT (color_val)
- : FRAME_FOREGROUND_PIXEL (f)));
- XPutPixel (mask_img, x, y,
- (!EQ (color_val, Qt) ? PIX_MASK_DRAW (f)
- : (have_mask = 1, PIX_MASK_RETAIN (f))));
- }
+ {
+ Lisp_Object color_val =
+ (*get_color_table) (color_table, str, chars_per_pixel);
+
+ XPutPixel (ximg, x, y,
+ (INTEGERP (color_val) ? XINT (color_val)
+ : FRAME_FOREGROUND_PIXEL (f)));
+ XPutPixel (mask_img, x, y,
+ (!EQ (color_val, Qt) ? PIX_MASK_DRAW
+ : (have_mask = 1, PIX_MASK_RETAIN)));
+ }
if (y + 1 < height)
- expect (',');
+ expect (',');
}
img->width = width;
@@ -4227,6 +4273,10 @@ xpm_load_image (f, img, contents, end)
x_destroy_x_image (ximg);
if (have_mask)
{
+ /* Fill in the background_transparent field while we have the
+ mask handy. */
+ image_background_transparent (img, f, mask_img);
+
x_put_x_image (f, mask_img, img->mask, width, height);
x_destroy_x_image (mask_img);
}
@@ -4272,19 +4322,19 @@ xpm_load (f, img)
file = x_find_image_file (file_name);
GCPRO1 (file);
if (!STRINGP (file))
- {
- image_error ("Cannot find image file `%s'", file_name, Qnil);
- UNGCPRO;
- return 0;
- }
+ {
+ image_error ("Cannot find image file `%s'", file_name, Qnil);
+ UNGCPRO;
+ return 0;
+ }
contents = slurp_file (SDATA (file), &size);
if (contents == NULL)
- {
- image_error ("Error loading XPM image `%s'", img->spec, Qnil);
- UNGCPRO;
- return 0;
- }
+ {
+ image_error ("Error loading XPM image `%s'", img->spec, Qnil);
+ UNGCPRO;
+ return 0;
+ }
success_p = xpm_load_image (f, img, contents, contents + size);
xfree (contents);
@@ -4296,7 +4346,7 @@ xpm_load (f, img)
data = image_spec_value (img->spec, QCdata, NULL);
success_p = xpm_load_image (f, img, SDATA (data),
- SDATA (data) + SBYTES (data));
+ SDATA (data) + SBYTES (data));
}
return success_p;
@@ -4973,7 +5023,7 @@ x_disable_image (f, img)
#ifdef MAC_OS
#define XCreateGC_pixmap(dpy, pixmap) XCreateGC (dpy, NULL, 0, NULL)
-#define MaskForeground(f) PIX_MASK_DRAW (f)
+#define MaskForeground(f) PIX_MASK_DRAW
#else
#define XCreateGC_pixmap(dpy, pixmap) XCreateGC (dpy, pixmap, 0, NULL)
#define MaskForeground(f) WHITE_PIX_DEFAULT (f)
@@ -5121,7 +5171,7 @@ x_build_heuristic_mask (f, img, how)
for (y = 0; y < img->height; ++y)
for (x = 0; x < img->width; ++x)
XPutPixel (mask_img, x, y, (XGetPixel (ximg, x, y) != bg
- ? PIX_MASK_DRAW (f) : PIX_MASK_RETAIN (f)));
+ ? PIX_MASK_DRAW : PIX_MASK_RETAIN));
/* Fill in the background_transparent field while we have the mask handy. */
image_background_transparent (img, f, mask_img);
@@ -6123,7 +6173,7 @@ png_load (f, img)
if (channels == 4)
{
if (mask_img)
- XPutPixel (mask_img, x, y, *p > 0 ? PIX_MASK_DRAW (f) : PIX_MASK_RETAIN (f));
+ XPutPixel (mask_img, x, y, *p > 0 ? PIX_MASK_DRAW : PIX_MASK_RETAIN);
++p;
}
}
@@ -8025,6 +8075,11 @@ syms_of_image ()
{
extern Lisp_Object Qrisky_local_variable; /* Syms_of_xdisp has already run. */
+ /* Initialize this only once, since that's what we do with Vimage_types
+ and they are supposed to be in sync. Initializing here gives correct
+ operation on GNU/Linux of calling dump-emacs after loading some images. */
+ image_types = NULL;
+
/* Must be defined now becase we're going to update it below, while
defining the supported image types. */
DEFVAR_LISP ("image-types", &Vimage_types,
@@ -8050,6 +8105,17 @@ listed; they're always supported. */);
Vimage_type_cache = Qnil;
staticpro (&Vimage_type_cache);
+ Qpbm = intern ("pbm");
+ staticpro (&Qpbm);
+ ADD_IMAGE_TYPE(Qpbm);
+
+ Qxbm = intern ("xbm");
+ staticpro (&Qxbm);
+ ADD_IMAGE_TYPE(Qxbm);
+
+ define_image_type (&xbm_type, 1);
+ define_image_type (&pbm_type, 1);
+
QCascent = intern (":ascent");
staticpro (&QCascent);
QCmargin = intern (":margin");
@@ -8094,14 +8160,6 @@ listed; they're always supported. */);
staticpro (&QCpt_height);
#endif /* HAVE_GHOSTSCRIPT */
- Qpbm = intern ("pbm");
- staticpro (&Qpbm);
- ADD_IMAGE_TYPE(Qpbm);
-
- Qxbm = intern ("xbm");
- staticpro (&Qxbm);
- ADD_IMAGE_TYPE(Qxbm);
-
#if defined (HAVE_XPM) || defined (MAC_OS)
Qxpm = intern ("xpm");
staticpro (&Qxpm);
@@ -8163,11 +8221,6 @@ meaning don't clear the cache. */);
void
init_image ()
{
- image_types = NULL;
-
- define_image_type (&xbm_type, 1);
- define_image_type (&pbm_type, 1);
-
#ifdef MAC_OS
/* Animated gifs use QuickTime Movie Toolbox. So initialize it here. */
EnterMovies ();
diff --git a/src/indent.c b/src/indent.c
index 2dc113a908..68544e8059 100644
--- a/src/indent.c
+++ b/src/indent.c
@@ -1,6 +1,6 @@
/* Indentation functions.
Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1998, 2000, 2001,
- 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+ 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -2076,6 +2076,7 @@ whether or not it is currently displayed in some window. */)
{
int it_start;
int oselective;
+ int start_on_image_p;
SET_TEXT_POS (pt, PT, PT_BYTE);
start_display (&it, w, pt);
@@ -2087,6 +2088,7 @@ whether or not it is currently displayed in some window. */)
while the end position is really at some X > 0, the same X that
PT had. */
it_start = IT_CHARPOS (it);
+ start_on_image_p = (it.method == GET_FROM_IMAGE);
reseat_at_previous_visible_line_start (&it);
it.current_x = it.hpos = 0;
/* Temporarily disable selective display so we don't move too far */
@@ -2096,8 +2098,10 @@ whether or not it is currently displayed in some window. */)
it.selective = oselective;
/* Move back if we got too far. This may happen if
- truncate-lines is on and PT is beyond right margin. */
- if (IT_CHARPOS (it) > it_start && XINT (lines) > 0)
+ truncate-lines is on and PT is beyond right margin.
+ It may also happen if it_start is on an image --
+ in that case, don't go back. */
+ if (IT_CHARPOS (it) > it_start && XINT (lines) > 0 && !start_on_image_p)
move_it_by_lines (&it, -1, 0);
it.vpos = 0;
diff --git a/src/indent.h b/src/indent.h
index 39db7b8cf5..6026be827e 100644
--- a/src/indent.h
+++ b/src/indent.h
@@ -1,5 +1,6 @@
/* Definitions for interface to indent.c
- Copyright (C) 1985, 1986 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/insdel.c b/src/insdel.c
index 4760342c56..fd41603724 100644
--- a/src/insdel.c
+++ b/src/insdel.c
@@ -1,6 +1,6 @@
/* Buffer insertion/deletion and gap motion for GNU Emacs.
- Copyright (C) 1985, 86,93,94,95,97,98, 1999, 2000, 01, 2003, 2005
- Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2001,
+ 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -2393,6 +2393,7 @@ void
syms_of_insdel ()
{
staticpro (&combine_after_change_list);
+ staticpro (&combine_after_change_buffer);
combine_after_change_list = Qnil;
combine_after_change_buffer = Qnil;
diff --git a/src/intervals.c b/src/intervals.c
index cb60061fdc..07845f9566 100644
--- a/src/intervals.c
+++ b/src/intervals.c
@@ -1,5 +1,6 @@
/* Code for doing intervals.
- Copyright (C) 1993, 1994, 1995, 1997, 1998, 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1993, 1994, 1995, 1997, 1998, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -790,14 +791,14 @@ update_interval (i, pos)
/* Move right. */
if (pos < INTERVAL_LAST_POS (i) + TOTAL_LENGTH (i->right))
{
- i->right->position = INTERVAL_LAST_POS (i) +
- LEFT_TOTAL_LENGTH (i->right);
+ i->right->position = INTERVAL_LAST_POS (i)
+ + LEFT_TOTAL_LENGTH (i->right);
i = i->right; /* Move to the right child */
}
else if (NULL_PARENT (i))
- error ("Point after end of properties");
+ error ("Point %d after end of properties", pos);
else
- i = INTERVAL_PARENT (i);
+ i = INTERVAL_PARENT (i);
continue;
}
else
diff --git a/src/intervals.h b/src/intervals.h
index 374f898416..418520b5c2 100644
--- a/src/intervals.h
+++ b/src/intervals.h
@@ -1,5 +1,6 @@
/* Definitions and global variables for intervals.
- Copyright (C) 1993, 1994, 2000, 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1993, 1994, 2000, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/keyboard.c b/src/keyboard.c
index d2d5919fc8..74f8d7d51e 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -1,6 +1,7 @@
/* Keyboard and mouse input; editor command loop.
- Copyright (C) 1985, 1986, 1987, 1988, 1989, 1993, 1994, 1995, 1996, 1997,
- 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1987, 1988, 1989, 1993, 1994, 1995,
+ 1996, 1997, 1999, 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -4010,7 +4011,7 @@ kbd_buffer_get_event (kbp, used_mouse_menu)
kbd_fetch_ptr = event + 1;
}
#endif
-#if defined (HAVE_X11) || defined (HAVE_NTGUI)
+#if defined (HAVE_X11) || defined (HAVE_NTGUI) || defined (MAC_OS)
else if (event->kind == ICONIFY_EVENT)
{
/* Make an event (iconify-frame (FRAME)). */
@@ -7001,8 +7002,6 @@ menu_bar_items (old)
int i;
- struct gcpro gcpro1;
-
/* In order to build the menus, we need to call the keymap
accessors. They all call QUIT. But this function is called
during redisplay, during which a quit is fatal. So inhibit
@@ -7018,8 +7017,6 @@ menu_bar_items (old)
menu_bar_items_vector = Fmake_vector (make_number (24), Qnil);
menu_bar_items_index = 0;
- GCPRO1 (menu_bar_items_vector);
-
/* Build our list of keymaps.
If we recognize a function key and replace its escape sequence in
keybuf with its symbol, or if the sequence starts with a mouse
@@ -7123,7 +7120,6 @@ menu_bar_items (old)
menu_bar_items_index = i;
Vinhibit_quit = oquit;
- UNGCPRO;
return menu_bar_items_vector;
}
@@ -11167,6 +11163,9 @@ syms_of_keyboard ()
menu_bar_one_keymap_changed_items = Qnil;
staticpro (&menu_bar_one_keymap_changed_items);
+ menu_bar_items_vector = Qnil;
+ staticpro (&menu_bar_items_vector);
+
defsubr (&Sevent_convert_list);
defsubr (&Sread_key_sequence);
defsubr (&Sread_key_sequence_vector);
@@ -11443,6 +11442,7 @@ might happen repeatedly and make Emacs nonfunctional. */);
doc: /* Normal hook run when clearing the echo area. */);
#endif
Qecho_area_clear_hook = intern ("echo-area-clear-hook");
+ staticpro (&Qecho_area_clear_hook);
SET_SYMBOL_VALUE (Qecho_area_clear_hook, Qnil);
DEFVAR_LISP ("lucid-menu-bar-dirty-flag", &Vlucid_menu_bar_dirty_flag,
diff --git a/src/keyboard.h b/src/keyboard.h
index 10b64dfe48..0063922787 100644
--- a/src/keyboard.h
+++ b/src/keyboard.h
@@ -1,5 +1,6 @@
/* Declarations useful when processing input.
- Copyright (C) 1985, 1986, 1987, 1993 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1987, 1993, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/keymap.c b/src/keymap.c
index 17c55cfd2d..9d67f4400c 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -1,6 +1,7 @@
/* Manipulation of keymaps
- Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1998, 1999, 2000,
- 2001, 2004, 2005 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995,
+ 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -1654,7 +1655,7 @@ bindings; see the description of `lookup-key' for more details about this. */)
DEFUN ("minor-mode-key-binding", Fminor_mode_key_binding, Sminor_mode_key_binding, 1, 2, 0,
doc: /* Find the visible minor mode bindings of KEY.
-Return an alist of pairs (MODENAME . BINDING), where MODENAME is the
+Return an alist of pairs (MODENAME . BINDING), where MODENAME is
the symbol which names the minor mode binding KEY, and BINDING is
KEY's definition in that mode. In particular, if KEY has no
minor-mode bindings, return nil. If the first binding is a
diff --git a/src/keymap.h b/src/keymap.h
index 4fcbffbed5..bcf14abcd8 100644
--- a/src/keymap.h
+++ b/src/keymap.h
@@ -1,5 +1,5 @@
/* Functions to manipulate keymaps.
- Copyright (C) 2001, 2005 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/lastfile.c b/src/lastfile.c
index d03dc2c834..a229d94fd6 100644
--- a/src/lastfile.c
+++ b/src/lastfile.c
@@ -1,5 +1,5 @@
/* Mark end of data space to dump as pure, for GNU Emacs.
- Copyright (C) 1985 Free Software Foundation, Inc.
+ Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/lisp.h b/src/lisp.h
index 5c0e9b561a..8f37c715c2 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -1,6 +1,6 @@
/* Fundamental definitions for GNU Emacs Lisp interpreter.
Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1998, 1999, 2000,
- 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+ 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -1797,7 +1797,7 @@ extern int interrupt_input_pending;
Lisp_Object flag = Vquit_flag; \
Vquit_flag = Qnil; \
if (EQ (Vthrow_on_input, flag)) \
- Fthrow (Vthrow_on_input, Qnil); \
+ Fthrow (Vthrow_on_input, Qt); \
Fsignal (Qquit, Qnil); \
} \
else if (interrupt_input_pending) \
@@ -1813,7 +1813,7 @@ extern int interrupt_input_pending;
Lisp_Object flag = Vquit_flag; \
Vquit_flag = Qnil; \
if (EQ (Vthrow_on_input, flag)) \
- Fthrow (Vthrow_on_input, Qnil); \
+ Fthrow (Vthrow_on_input, Qt); \
Fsignal (Qquit, Qnil); \
} \
} while (0)
@@ -1876,10 +1876,12 @@ extern Lisp_Object Vascii_canon_table, Vascii_eqv_table;
extern int consing_since_gc;
-/* Threshold for doing another gc. */
+/* Thresholds for doing another gc. */
extern EMACS_INT gc_cons_threshold;
+extern EMACS_INT gc_relative_threshold;
+
/* Structure for recording stack slots that need marking. */
/* This is a chain of structures, each of which points at a Lisp_Object variable
@@ -3024,12 +3026,9 @@ extern int wait_reading_process_output P_ ((int, int, int, int,
Lisp_Object,
struct Lisp_Process *,
int));
-extern void deactivate_process P_ ((Lisp_Object));
extern void add_keyboard_wait_descriptor P_ ((int));
extern void delete_keyboard_wait_descriptor P_ ((int));
extern void close_process_descs P_ ((void));
-extern void status_notify P_ ((void));
-extern int read_process_output P_ ((Lisp_Object, int));
extern void init_process P_ ((void));
extern void syms_of_process P_ ((void));
extern void setup_process_coding_systems P_ ((Lisp_Object));
diff --git a/src/lread.c b/src/lread.c
index f159e98d4e..94fb5ddb15 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -1,6 +1,7 @@
/* Lisp parsing and input streams.
- Copyright (C) 1985, 1986, 1987, 1988, 1989, 1993, 1994, 1995, 1997, 1998,
- 1999, 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1987, 1988, 1989, 1993, 1994, 1995,
+ 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -86,6 +87,7 @@ Lisp_Object Qvariable_documentation, Vvalues, Vstandard_input, Vafter_load_alist
Lisp_Object Qascii_character, Qload, Qload_file_name;
Lisp_Object Qbackquote, Qcomma, Qcomma_at, Qcomma_dot, Qfunction;
Lisp_Object Qinhibit_file_name_operation;
+Lisp_Object Qeval_buffer_list, Veval_buffer_list;
extern Lisp_Object Qevent_symbol_element_mask;
extern Lisp_Object Qfile_exists_p;
@@ -674,7 +676,6 @@ Return t if file exists. */)
{
register FILE *stream;
register int fd = -1;
- register Lisp_Object lispstream;
int count = SPECPDL_INDEX ();
Lisp_Object temp;
struct gcpro gcpro1;
@@ -904,10 +905,7 @@ Return t if file exists. */)
}
GCPRO1 (file);
- lispstream = Fcons (Qnil, Qnil);
- XSETCARFASTINT (lispstream, (EMACS_UINT)stream >> 16);
- XSETCDRFASTINT (lispstream, (EMACS_UINT)stream & 0xffff);
- record_unwind_protect (load_unwind, lispstream);
+ record_unwind_protect (load_unwind, make_save_value (stream, 0));
record_unwind_protect (load_descriptor_unwind, load_descriptor_list);
specbind (Qload_file_name, found);
specbind (Qinhibit_file_name_operation, Qnil);
@@ -957,11 +955,12 @@ Return t if file exists. */)
}
static Lisp_Object
-load_unwind (stream) /* used as unwind-protect function in load */
- Lisp_Object stream;
+load_unwind (arg) /* used as unwind-protect function in load */
+ Lisp_Object arg;
{
- fclose ((FILE *) (XFASTINT (XCAR (stream)) << 16
- | XFASTINT (XCDR (stream))));
+ FILE *stream = (FILE *) XSAVE_VALUE (arg)->pointer;
+ if (stream != NULL)
+ fclose (stream);
if (--load_in_progress < 0) load_in_progress = 0;
return Qnil;
}
@@ -1453,6 +1452,7 @@ This function preserves the position of point. */)
if (NILP (filename))
filename = XBUFFER (buf)->filename;
+ specbind (Qeval_buffer_list, Fcons (buf, Veval_buffer_list));
specbind (Qstandard_output, tem);
record_unwind_protect (save_excursion_restore, save_excursion_save ());
BUF_SET_PT (XBUFFER (buf), BUF_BEGV (XBUFFER (buf)));
@@ -1488,6 +1488,7 @@ This function does not move point. */)
else
tem = printflag;
specbind (Qstandard_output, tem);
+ specbind (Qeval_buffer_list, Fcons (cbuf, Veval_buffer_list));
/* readevalloop calls functions which check the type of start and end. */
readevalloop (cbuf, 0, XBUFFER (cbuf)->filename, Feval,
@@ -3962,6 +3963,10 @@ to load. See also `load-dangerous-libraries'. */);
Vbytecomp_version_regexp
= build_string ("^;;;.\\(in Emacs version\\|bytecomp version FSF\\)");
+ DEFVAR_LISP ("eval-buffer-list", &Veval_buffer_list,
+ doc: /* List of buffers being read from by calls to `eval-buffer' and `eval-region'. */);
+ Veval_buffer_list = Qnil;
+
/* Vsource_directory was initialized in init_lread. */
load_descriptor_list = Qnil;
@@ -4003,11 +4008,15 @@ to load. See also `load-dangerous-libraries'. */);
Qload_file_name = intern ("load-file-name");
staticpro (&Qload_file_name);
+ Qeval_buffer_list = intern ("eval-buffer-list");
+ staticpro (&Qeval_buffer_list);
+
staticpro (&dump_path);
staticpro (&read_objects);
read_objects = Qnil;
staticpro (&seen_list);
+ seen_list = Qnil;
Vloads_in_progress = Qnil;
staticpro (&Vloads_in_progress);
diff --git a/src/m/7300.h b/src/m/7300.h
index fa95b3d9c4..bb261c9188 100644
--- a/src/m/7300.h
+++ b/src/m/7300.h
@@ -1,5 +1,5 @@
/* machine description file for AT&T UNIX PC model 7300
- Copyright (C) 1986, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1986, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
Modified for this machine by mtxinu!rtech!gonzo!daveb
This file is part of GNU Emacs.
diff --git a/src/m/acorn.h b/src/m/acorn.h
index 66978329d7..399fb7c924 100644
--- a/src/m/acorn.h
+++ b/src/m/acorn.h
@@ -1,5 +1,5 @@
/* Machine description file for Acorn RISCiX machines.
- Copyright (C) 1994, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/alliant-2800.h b/src/m/alliant-2800.h
index cf0afd90bb..b59322e3d0 100644
--- a/src/m/alliant-2800.h
+++ b/src/m/alliant-2800.h
@@ -1,5 +1,5 @@
/* alliant-2800.h - Alliant FX/2800 machine running Concentrix 2800.
- Copyright (C) 1990, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1990, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/alliant.h b/src/m/alliant.h
index a32e514271..cbc5734ab3 100644
--- a/src/m/alliant.h
+++ b/src/m/alliant.h
@@ -1,5 +1,6 @@
/* alliant.h Alliant machine running system version 2 or 3.
- Copyright (C) 1985, 1986, 1987, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1987, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Note that for version 1 of the Alliant system
you should use alliant1.h instead of this file.
Use alliant4.h for version 4.
diff --git a/src/m/alpha.h b/src/m/alpha.h
index aff6182270..41fefaf20f 100644
--- a/src/m/alpha.h
+++ b/src/m/alpha.h
@@ -1,5 +1,6 @@
/* machine description file For the alpha chip.
- Copyright (C) 1994, 1997, 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1994, 1997, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/altos.h b/src/m/altos.h
index e3cf089877..743752d99e 100644
--- a/src/m/altos.h
+++ b/src/m/altos.h
@@ -1,5 +1,6 @@
/* altos machine description file Altos 3068 Unix System V Release 2
- Copyright (C) 1985, 1986, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/amdahl.h b/src/m/amdahl.h
index 8b32a2e64d..89d4b6cb6f 100644
--- a/src/m/amdahl.h
+++ b/src/m/amdahl.h
@@ -1,5 +1,6 @@
/* amdahl machine description file
- Copyright (C) 1987, 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1987, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/amdx86-64.h b/src/m/amdx86-64.h
index 61b18dcc31..2d7d86ce7c 100644
--- a/src/m/amdx86-64.h
+++ b/src/m/amdx86-64.h
@@ -1,5 +1,5 @@
/* machine description file for AMD x86-64.
- Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/apollo.h b/src/m/apollo.h
index 8fa91c004c..4aa62b0b20 100644
--- a/src/m/apollo.h
+++ b/src/m/apollo.h
@@ -1,5 +1,6 @@
/* machine description file for Apollo machine.
- Copyright (C) 1985, 1986, 1994, 2002, Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1994, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/arm.h b/src/m/arm.h
index 1ebcf3be4a..358445e064 100644
--- a/src/m/arm.h
+++ b/src/m/arm.h
@@ -1,5 +1,5 @@
/* Machine description file for ARM-based non-RISCiX machines.
- Copyright (C) 1994, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/att3b.h b/src/m/att3b.h
index 949e6b1d01..757b47d3f3 100644
--- a/src/m/att3b.h
+++ b/src/m/att3b.h
@@ -1,5 +1,5 @@
/* Machine-dependent configuration for GNU Emacs for AT&T 3b machines.
- Copyright (C) 1986, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1986, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
Modified by David Robinson (daver@csvax.caltech.edu) 6/6/86
diff --git a/src/m/aviion.h b/src/m/aviion.h
index 13a262423b..b9a2932ef0 100644
--- a/src/m/aviion.h
+++ b/src/m/aviion.h
@@ -1,5 +1,6 @@
/* machine description file for Data General AViiON.
- Copyright (C) 1985, 1986, 1991, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1991, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/celerity.h b/src/m/celerity.h
index 0b0bb02012..639d680afd 100644
--- a/src/m/celerity.h
+++ b/src/m/celerity.h
@@ -1,5 +1,6 @@
/* machine description file for Celerity.
- Copyright (C) 1985, 1986, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/clipper.h b/src/m/clipper.h
index 5da09e02fb..af9f67d8a3 100644
--- a/src/m/clipper.h
+++ b/src/m/clipper.h
@@ -1,5 +1,6 @@
/* machine description file for clipper
- Copyright (C) 1985, 1986, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/cnvrgnt.h b/src/m/cnvrgnt.h
index cb344f98f7..48727bedbe 100644
--- a/src/m/cnvrgnt.h
+++ b/src/m/cnvrgnt.h
@@ -1,5 +1,5 @@
/* machine description file for convergent S series.
- Copyright (C) 1989, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1989, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/convex.h b/src/m/convex.h
index 97b291743d..b7fcc71b1c 100644
--- a/src/m/convex.h
+++ b/src/m/convex.h
@@ -1,5 +1,6 @@
/* machine description file for Convex (all models).
- Copyright (C) 1987, 1994, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1987, 1994, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/cydra5.h b/src/m/cydra5.h
index e2813dc2a4..9806fc30a4 100644
--- a/src/m/cydra5.h
+++ b/src/m/cydra5.h
@@ -1,5 +1,6 @@
/* machine description file for Cydrome's CYDRA 5 mini super computer
- Copyright (C) 1988, 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1988, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/delta88k.h b/src/m/delta88k.h
index ab0a48a4e3..517a0f1744 100644
--- a/src/m/delta88k.h
+++ b/src/m/delta88k.h
@@ -1,5 +1,6 @@
/* Machine description file for Motorola System V/88 machines
- Copyright (C) 1985, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1985, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/dpx2.h b/src/m/dpx2.h
index 7a24c3940d..8d1ceb3db0 100644
--- a/src/m/dpx2.h
+++ b/src/m/dpx2.h
@@ -1,5 +1,6 @@
/* machine description for Bull DPX/2 range
- Copyright (C) 1985, 1986, 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/dual.h b/src/m/dual.h
index 253c12bec5..134a5e7720 100644
--- a/src/m/dual.h
+++ b/src/m/dual.h
@@ -1,5 +1,6 @@
/* machine description file for Dual machines using unisoft port.
- Copyright (C) 1985 Free Software Foundation, Inc.
+ Copyright (C) 1985, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/elxsi.h b/src/m/elxsi.h
index f8de360969..f702dcf0de 100644
--- a/src/m/elxsi.h
+++ b/src/m/elxsi.h
@@ -1,5 +1,6 @@
/* machine description file for Elxsi machine (running enix).
- Copyright (C) 1986, 1992, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1986, 1992, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Adapted by John Salmon
This file is part of GNU Emacs.
diff --git a/src/m/ews4800.h b/src/m/ews4800.h
index dcb46bf83d..b377bdedda 100644
--- a/src/m/ews4800.h
+++ b/src/m/ews4800.h
@@ -1,5 +1,6 @@
/* m- file for NEC EWS4800 RISC series.
- Copyright (C) 1998, 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/gould-np1.h b/src/m/gould-np1.h
index 4a26786508..1c784f28f4 100644
--- a/src/m/gould-np1.h
+++ b/src/m/gould-np1.h
@@ -1,5 +1,5 @@
/* machine description file for Gould NP1 with UTX/32 3.0 (first release for NP1)
- Copyright (C) 1986 Free Software Foundation, Inc.
+ Copyright (C) 1986, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/hp800.h b/src/m/hp800.h
index 64243f4be3..2f661989a1 100644
--- a/src/m/hp800.h
+++ b/src/m/hp800.h
@@ -1,5 +1,5 @@
/* machine description file for hp9000 series 800 machines.
- Copyright (C) 1987, 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1987, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/hp9000s300.h b/src/m/hp9000s300.h
index 8886aec204..e0b3a5ce5c 100644
--- a/src/m/hp9000s300.h
+++ b/src/m/hp9000s300.h
@@ -1,5 +1,5 @@
/* machine description file for hp9000 series 200 or 300 on either HPUX or BSD.
- Copyright (C) 1985, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/i860.h b/src/m/i860.h
index 66ca2b8fa6..0ecf9e6208 100644
--- a/src/m/i860.h
+++ b/src/m/i860.h
@@ -1,5 +1,6 @@
/* machine description file for i860.
- Copyright (C) 1985, 1986, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/ia64.h b/src/m/ia64.h
index 33d843c773..af790946af 100644
--- a/src/m/ia64.h
+++ b/src/m/ia64.h
@@ -1,5 +1,5 @@
/* machine description file for the IA-64 architecture.
- Copyright (C) 2000, 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
Contributed by David Mosberger <davidm@hpl.hp.com>
This file is part of GNU Emacs.
diff --git a/src/m/ibm370aix.h b/src/m/ibm370aix.h
index b958656c3e..3d954ae9d1 100644
--- a/src/m/ibm370aix.h
+++ b/src/m/ibm370aix.h
@@ -1,5 +1,6 @@
/* m/ file for IBM 370 running AIX.
- Copyright (C) 1993, 1994, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1993, 1994, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/ibmps2-aix.h b/src/m/ibmps2-aix.h
index d2202d6547..539de924d1 100644
--- a/src/m/ibmps2-aix.h
+++ b/src/m/ibmps2-aix.h
@@ -1,5 +1,5 @@
/* machine description file for ibm ps/2 aix386.
- Copyright (C) 1989, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1989, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/ibmrs6000.h b/src/m/ibmrs6000.h
index b76d03bc0b..9559f1ae62 100644
--- a/src/m/ibmrs6000.h
+++ b/src/m/ibmrs6000.h
@@ -1,5 +1,5 @@
/* R2 AIX machine/system dependent defines
- Copyright (C) 1988, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1988, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/ibmrt-aix.h b/src/m/ibmrt-aix.h
index b9ea0e6208..44bfd77c1d 100644
--- a/src/m/ibmrt-aix.h
+++ b/src/m/ibmrt-aix.h
@@ -1,5 +1,6 @@
/* RTPC AIX machine/system dependent defines
- Copyright (C) 1988, 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1988, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/ibmrt.h b/src/m/ibmrt.h
index 1388a46b00..f6c23d9d91 100644
--- a/src/m/ibmrt.h
+++ b/src/m/ibmrt.h
@@ -1,5 +1,5 @@
/* RTPC machine dependent defines
- Copyright (C) 1986, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1986, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/ibms390.h b/src/m/ibms390.h
index af7fbb8dfb..323ef33f63 100644
--- a/src/m/ibms390.h
+++ b/src/m/ibms390.h
@@ -1,5 +1,6 @@
/* machine description file template.
- Copyright (C) 1985, 1986, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/intel386.h b/src/m/intel386.h
index c63dae7af0..238015fd34 100644
--- a/src/m/intel386.h
+++ b/src/m/intel386.h
@@ -1,5 +1,5 @@
/* Machine description file for intel 386.
- Copyright (C) 1987, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1987, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/iris4d.h b/src/m/iris4d.h
index a13a6f8c2f..93fe206267 100644
--- a/src/m/iris4d.h
+++ b/src/m/iris4d.h
@@ -1,5 +1,5 @@
/* machine description file for Iris-4D machines. Use with s/irix*.h.
- Copyright (C) 1987, 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1987, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/irist.h b/src/m/irist.h
index 71726977b2..b40ffb5dff 100644
--- a/src/m/irist.h
+++ b/src/m/irist.h
@@ -1,6 +1,7 @@
/* machine description file for Silicon Graphics Iris 2500 Turbos;
also possibly for non-turbo Irises with system release 2.5.
- Copyright (C) 1985, 1986, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/isi-ov.h b/src/m/isi-ov.h
index 9b35f03ea7..416335d1bf 100644
--- a/src/m/isi-ov.h
+++ b/src/m/isi-ov.h
@@ -1,5 +1,6 @@
/* machine description file for ISI 68000's
- Copyright (C) 1985, 1986, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/m68k.h b/src/m/m68k.h
index 9fdcf1511b..7b2ffa8135 100644
--- a/src/m/m68k.h
+++ b/src/m/m68k.h
@@ -1,5 +1,6 @@
/* Machine description file for generic Motorola 68k.
- Copyright (C) 1985, 1995, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1995, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/macppc.h b/src/m/macppc.h
index 36022af3e5..9e4297df3b 100644
--- a/src/m/macppc.h
+++ b/src/m/macppc.h
@@ -1,5 +1,6 @@
/* machine description file For the powerpc Macintosh.
- Copyright (C) 1994, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1994, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/masscomp.h b/src/m/masscomp.h
index 4582e29b6b..01fddc751f 100644
--- a/src/m/masscomp.h
+++ b/src/m/masscomp.h
@@ -1,5 +1,5 @@
/* machine description file for Masscomp 5000 series running RTU, ucb universe.
- Copyright (C) 1986, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1986, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/mega68.h b/src/m/mega68.h
index ba7ee6b48d..ef1623ca46 100644
--- a/src/m/mega68.h
+++ b/src/m/mega68.h
@@ -1,5 +1,5 @@
/* machine description file for Megatest 68000's.
- Copyright (C) 1985 Free Software Foundation, Inc.
+ Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/mg1.h b/src/m/mg1.h
index 47d34f4376..4e4b3525d6 100644
--- a/src/m/mg1.h
+++ b/src/m/mg1.h
@@ -1,5 +1,5 @@
/* machine description file for Whitechapel Computer Works MG1 (ns16000 based).
- Copyright (C) 1985, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
MG-1 version by L.M.McLoughlin
This file is part of GNU Emacs.
diff --git a/src/m/mips-siemens.h b/src/m/mips-siemens.h
index f00790210c..fc1a8a2e0d 100644
--- a/src/m/mips-siemens.h
+++ b/src/m/mips-siemens.h
@@ -1,5 +1,6 @@
/* m- file for Mips machines.
- Copyright (C) 1987,1992,1993,95,2002,03 Free Software Foundation, Inc.
+ Copyright (C) 1987, 1992, 1993, 1995, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file contains some changes for our SVR4 based SINIX-Mips 5.4.
I hope this is helpful to port the emacs to our RM?00 series and
diff --git a/src/m/mips.h b/src/m/mips.h
index e868423642..28a35e0267 100644
--- a/src/m/mips.h
+++ b/src/m/mips.h
@@ -1,5 +1,6 @@
/* m- file for Mips machines.
- Copyright (C) 1987, 1992, 1999, 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1987, 1992, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/news.h b/src/m/news.h
index 1d2585c09a..dec413c3f9 100644
--- a/src/m/news.h
+++ b/src/m/news.h
@@ -1,5 +1,6 @@
/* machine description file for Sony's NEWS workstations, NEWS-OS 3.0.
- Copyright (C) 1985, 1986, 1989, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1989, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/next.h b/src/m/next.h
index 2f2952e10f..dfb3cd11cb 100644
--- a/src/m/next.h
+++ b/src/m/next.h
@@ -1,5 +1,5 @@
/* Configuration file for the NeXT machine.
- Copyright (C) 1990, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1990, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/nh3000.h b/src/m/nh3000.h
index 7be5c5dc7d..4225547302 100644
--- a/src/m/nh3000.h
+++ b/src/m/nh3000.h
@@ -1,7 +1,7 @@
/* machine description for Harris Night Hawk Series 1200 and Series 3000
MC68030-based systems (FPP on these is custom). These systems are
also known as "ecx" and "gcx".
- Copyright (C) 1994, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/nh4000.h b/src/m/nh4000.h
index 3d8794b280..04068f0c06 100644
--- a/src/m/nh4000.h
+++ b/src/m/nh4000.h
@@ -1,6 +1,6 @@
/* machine description for Harris NightHawk 88k based machines
(includes nh4000 and nh5000 machines).
- Copyright (C) 1994, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/ns16000.h b/src/m/ns16000.h
index 07fff86502..49f514ced0 100644
--- a/src/m/ns16000.h
+++ b/src/m/ns16000.h
@@ -1,5 +1,5 @@
/* machine description file for ns16000.
- Copyright (C) 1985 Free Software Foundation, Inc.
+ Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/ns32000.h b/src/m/ns32000.h
index 9a135fe2d9..858630b74a 100644
--- a/src/m/ns32000.h
+++ b/src/m/ns32000.h
@@ -1,5 +1,6 @@
/* machine description file for National Semiconductor 32000, running Genix.
- Copyright (C) 1985, 1986, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/nu.h b/src/m/nu.h
index 8ca0315531..1e5518e451 100644
--- a/src/m/nu.h
+++ b/src/m/nu.h
@@ -1,5 +1,5 @@
/* machine description file for TI Nu machines using system V.
- Copyright (C) 1986 Free Software Foundation, Inc.
+ Copyright (C) 1986, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/orion.h b/src/m/orion.h
index e4fa852966..a73b357d50 100644
--- a/src/m/orion.h
+++ b/src/m/orion.h
@@ -1,5 +1,5 @@
/* machine description file for HLH Orion.
- Copyright (C) 1985, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/orion105.h b/src/m/orion105.h
index d0adaba70e..e75a8e67a8 100644
--- a/src/m/orion105.h
+++ b/src/m/orion105.h
@@ -1,5 +1,5 @@
/* machine description file for HLH Orion 1/05 (Clipper).
- Copyright (C) 1985 Free Software Foundation, Inc.
+ Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
Lee McLoughlin <lmjm%doc.imperial.ac.uk@nss.cs.ucl.ac.uk>
This file is part of GNU Emacs.
diff --git a/src/m/pfa50.h b/src/m/pfa50.h
index be430d25fd..50e79b623c 100644
--- a/src/m/pfa50.h
+++ b/src/m/pfa50.h
@@ -1,5 +1,6 @@
/* Machine description file for PFU A-series.
- Copyright (C) 1988, 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1988, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/plexus.h b/src/m/plexus.h
index a2f6cc545a..10826a70bc 100644
--- a/src/m/plexus.h
+++ b/src/m/plexus.h
@@ -1,5 +1,5 @@
/* machine description file for the Plexus running System V.2.
- Copyright (C) 1986, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1986, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/powermac.h b/src/m/powermac.h
index c41003ae61..14b2e11073 100644
--- a/src/m/powermac.h
+++ b/src/m/powermac.h
@@ -1,5 +1,5 @@
/* Machine description file for Apple Power Macintosh
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/powerpcle.h b/src/m/powerpcle.h
index 34096a37d1..1dfd2df25b 100644
--- a/src/m/powerpcle.h
+++ b/src/m/powerpcle.h
@@ -1,5 +1,5 @@
/* machine description file for PowerPC.
- Copyright (C) 1987, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1987, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/pyramid.h b/src/m/pyramid.h
index 7e0db61ec5..12010087a5 100644
--- a/src/m/pyramid.h
+++ b/src/m/pyramid.h
@@ -1,5 +1,6 @@
/* machine description file for pyramid.
- Copyright (C) 1985, 1986 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/sequent-ptx.h b/src/m/sequent-ptx.h
index 57d255a861..3c22639e3b 100644
--- a/src/m/sequent-ptx.h
+++ b/src/m/sequent-ptx.h
@@ -1,5 +1,6 @@
/* machine description file for SEQUENT machines running DYNIX/ptx
- Copyright (C) 1985, 1986, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/sequent.h b/src/m/sequent.h
index 7c572f54f6..f082880b4f 100644
--- a/src/m/sequent.h
+++ b/src/m/sequent.h
@@ -1,5 +1,6 @@
/* machine description file for SEQUENT BALANCE machines
- Copyright (C) 1985, 1986, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/sparc.h b/src/m/sparc.h
index 6926aced07..20ec53c134 100644
--- a/src/m/sparc.h
+++ b/src/m/sparc.h
@@ -1,5 +1,5 @@
/* machine description file for Sun 4 SPARC.
- Copyright (C) 1987, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1987, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/sps7.h b/src/m/sps7.h
index 3bd0c94bcc..422d2470aa 100644
--- a/src/m/sps7.h
+++ b/src/m/sps7.h
@@ -1,5 +1,6 @@
/* machine description file for Bull SPS-7.
- Copyright (C) 1986, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1986, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/sr2k.h b/src/m/sr2k.h
index 83dbf4941f..875f428dc1 100644
--- a/src/m/sr2k.h
+++ b/src/m/sr2k.h
@@ -1,5 +1,5 @@
/* machine description file for Hitachi SR2001/SR2201 machines.
- Copyright (C) 1996, 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1996, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/stride.h b/src/m/stride.h
index f176a7642a..ff900d49b3 100644
--- a/src/m/stride.h
+++ b/src/m/stride.h
@@ -1,5 +1,6 @@
/* Definitions file for GNU Emacs running on Stride Micro System-V.2.2
- Copyright (C) 1985, 1986, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/sun1.h b/src/m/sun1.h
index 7ab8121870..810bad7fd5 100644
--- a/src/m/sun1.h
+++ b/src/m/sun1.h
@@ -1,5 +1,6 @@
/* machine description file for Sun 68000's
- Copyright (C) 1985, 1986 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/sun2.h b/src/m/sun2.h
index 452fdfc7c0..9df032049e 100644
--- a/src/m/sun2.h
+++ b/src/m/sun2.h
@@ -1,7 +1,8 @@
/* machine description file for Sun 68000's OPERATING SYSTEM version 2.
Note that "sun2.h" refers to the operating system version, not the
CPU model number. See the MACHINES file for details.
- Copyright (C) 1985, 1986 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/sun386.h b/src/m/sun386.h
index 782e10925e..5970f90b98 100644
--- a/src/m/sun386.h
+++ b/src/m/sun386.h
@@ -2,7 +2,7 @@
"sun2.h", but since that file is heavily cpu-specific, it was easier
not to include it.
- Copyright (C) 1988 Free Software Foundation, Inc.
+ Copyright (C) 1988, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/symmetry.h b/src/m/symmetry.h
index 262d647475..4954f59644 100644
--- a/src/m/symmetry.h
+++ b/src/m/symmetry.h
@@ -1,5 +1,6 @@
/* machine description file for SEQUENT SYMMETRY machines
- Copyright (C) 1985, 1986, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/tad68k.h b/src/m/tad68k.h
index 4c904aaf56..b8b3859f40 100644
--- a/src/m/tad68k.h
+++ b/src/m/tad68k.h
@@ -1,5 +1,5 @@
/* Machine-dependent configuration for GNU Emacs for Tadpole 68k machines
- Copyright (C) 1986, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1986, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/tahoe.h b/src/m/tahoe.h
index 988624839b..47db3f93de 100644
--- a/src/m/tahoe.h
+++ b/src/m/tahoe.h
@@ -1,5 +1,5 @@
/* machine description file for tahoe.
- Copyright (C) 1985, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/targon31.h b/src/m/targon31.h
index 08ecb681bd..5ac1864838 100644
--- a/src/m/targon31.h
+++ b/src/m/targon31.h
@@ -1,5 +1,6 @@
/* targon31 machine description file
- Copyright (C) 1985, 1986, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/tek4300.h b/src/m/tek4300.h
index 164df72210..a84135291c 100644
--- a/src/m/tek4300.h
+++ b/src/m/tek4300.h
@@ -1,5 +1,5 @@
/* machine description file for tek4300.
- Copyright (C) 1988, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1988, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/tekxd88.h b/src/m/tekxd88.h
index 7af3dab6a0..4db981a809 100644
--- a/src/m/tekxd88.h
+++ b/src/m/tekxd88.h
@@ -1,7 +1,7 @@
/* Configuration file for the Tektronix XD88 running UTekV 3.2e,
contributed by Kaveh Ghazi (ghazi@caip.rutgers.edu) 1/15/93.
You probably need to use gnu make (version 3.63 or higher.)
- Copyright (C) 1993, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1993, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/template.h b/src/m/template.h
index c088efff81..c7ce2c2cb1 100644
--- a/src/m/template.h
+++ b/src/m/template.h
@@ -1,5 +1,6 @@
/* machine description file template.
- Copyright (C) 1985, 1986, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/tower32.h b/src/m/tower32.h
index c5f34d065e..cd4ab96de1 100644
--- a/src/m/tower32.h
+++ b/src/m/tower32.h
@@ -1,5 +1,5 @@
/* machine description file for the NCR Tower 32 running System V.2.
- Copyright (C) 1986, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1986, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/tower32v3.h b/src/m/tower32v3.h
index 927dfca93d..2c1e55c002 100644
--- a/src/m/tower32v3.h
+++ b/src/m/tower32v3.h
@@ -1,5 +1,5 @@
/* machine description file for the NCR Tower 32 running System V.3.
- Copyright (C) 1986, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1986, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/ustation.h b/src/m/ustation.h
index e7068f3cd8..c62d37d642 100644
--- a/src/m/ustation.h
+++ b/src/m/ustation.h
@@ -1,5 +1,6 @@
/* machine description file for U-station (Nihon Unisys, SS5E; Sumitomo Denkoh, U-Station E30).
- Copyright (C) 1986, 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1986, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/vax.h b/src/m/vax.h
index 22fda95abc..d414d6b57e 100644
--- a/src/m/vax.h
+++ b/src/m/vax.h
@@ -1,5 +1,6 @@
/* machine description file for vax.
- Copyright (C) 1985, 1986, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/wicat.h b/src/m/wicat.h
index bd8fcefe99..78842f32a4 100644
--- a/src/m/wicat.h
+++ b/src/m/wicat.h
@@ -1,5 +1,5 @@
/* machine description file for WICAT machines.
- Copyright (C) 1986, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1986, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/windowsnt.h b/src/m/windowsnt.h
index 39c7baa9de..cf48ca8aa8 100644
--- a/src/m/windowsnt.h
+++ b/src/m/windowsnt.h
@@ -1,6 +1,7 @@
/* Machine description file for Windows NT.
- Copyright (C) 1993, 1994, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1993, 1994, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/m/xps100.h b/src/m/xps100.h
index c6e54710bd..3a851aa9eb 100644
--- a/src/m/xps100.h
+++ b/src/m/xps100.h
@@ -1,7 +1,8 @@
/* xps100.h for the Honeywell XPS100 running UNIX System V.2
Mark J. Hewitt (mjh@uk.co.kernel)
- Copyright (C) 1985, 1986, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/mac.c b/src/mac.c
index ef136ab651..0d8c99ffb1 100644
--- a/src/mac.c
+++ b/src/mac.c
@@ -1,5 +1,6 @@
/* Unix emulation routines for GNU Emacs on the Mac OS.
- Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -34,10 +35,9 @@ Boston, MA 02110-1301, USA. */
#include "macterm.h"
-#if TARGET_API_MAC_CARBON
#include "charset.h"
#include "coding.h"
-#else /* not TARGET_API_MAC_CARBON */
+#if !TARGET_API_MAC_CARBON
#include <Files.h>
#include <MacTypes.h>
#include <TextUtils.h>
@@ -53,17 +53,16 @@ Boston, MA 02110-1301, USA. */
#include <Processes.h>
#include <EPPC.h>
#include <MacLocales.h>
+#include <Endian.h>
#endif /* not TARGET_API_MAC_CARBON */
#include <utime.h>
#include <dirent.h>
#include <sys/types.h>
#include <sys/stat.h>
-#include <string.h>
#include <pwd.h>
#include <grp.h>
#include <sys/param.h>
-#include <stdlib.h>
#include <fcntl.h>
#if __MWERKS__
#include <unistd.h>
@@ -1021,7 +1020,7 @@ xrm_cfproperty_list_to_value (plist)
CFTypeID type_id = CFGetTypeID (plist);
if (type_id == CFStringGetTypeID ())
- return cfstring_to_lisp (plist);
+ return cfstring_to_lisp (plist);
else if (type_id == CFNumberGetTypeID ())
{
CFStringRef string;
@@ -2490,6 +2489,22 @@ chmod (const char *path, mode_t mode)
int
+fchmod (int fd, mode_t mode)
+{
+ /* say it always succeed for now */
+ return 0;
+}
+
+
+int
+fchown (int fd, uid_t owner, gid_t group)
+{
+ /* say it always succeed for now */
+ return 0;
+}
+
+
+int
dup (int oldd)
{
#ifdef __MRC__
@@ -3388,12 +3403,278 @@ initialize_applescript ()
}
-void terminate_applescript()
+void
+terminate_applescript()
{
OSADispose (as_scripting_component, as_script_context);
CloseComponent (as_scripting_component);
}
+/* Convert a lisp string to the 4 byte character code. */
+
+OSType
+mac_get_code_from_arg(Lisp_Object arg, OSType defCode)
+{
+ OSType result;
+ if (NILP(arg))
+ {
+ result = defCode;
+ }
+ else
+ {
+ /* check type string */
+ CHECK_STRING(arg);
+ if (SBYTES (arg) != 4)
+ {
+ error ("Wrong argument: need string of length 4 for code");
+ }
+ result = EndianU32_BtoN (*((UInt32 *) SDATA (arg)));
+ }
+ return result;
+}
+
+/* Convert the 4 byte character code into a 4 byte string. */
+
+Lisp_Object
+mac_get_object_from_code(OSType defCode)
+{
+ UInt32 code = EndianU32_NtoB (defCode);
+
+ return make_unibyte_string ((char *)&code, 4);
+}
+
+
+DEFUN ("mac-get-file-creator", Fmac_get_file_creator, Smac_get_file_creator, 1, 1, 0,
+ doc: /* Get the creator code of FILENAME as a four character string. */)
+ (filename)
+ Lisp_Object filename;
+{
+ OSErr status;
+#ifdef MAC_OSX
+ FSRef fref;
+#else
+ FSSpec fss;
+#endif
+ OSType cCode;
+ Lisp_Object result = Qnil;
+ CHECK_STRING (filename);
+
+ if (NILP(Ffile_exists_p(filename)) || !NILP(Ffile_directory_p(filename))) {
+ return Qnil;
+ }
+ filename = Fexpand_file_name (filename, Qnil);
+
+ BLOCK_INPUT;
+#ifdef MAC_OSX
+ status = FSPathMakeRef(SDATA(ENCODE_FILE(filename)), &fref, NULL);
+#else
+ status = posix_pathname_to_fsspec (SDATA (ENCODE_FILE (filename)), &fss);
+#endif
+
+ if (status == noErr)
+ {
+#ifdef MAC_OSX
+ FSCatalogInfo catalogInfo;
+
+ status = FSGetCatalogInfo(&fref, kFSCatInfoFinderInfo,
+ &catalogInfo, NULL, NULL, NULL);
+#else
+ FInfo finder_info;
+
+ status = FSpGetFInfo (&fss, &finder_info);
+#endif
+ if (status == noErr)
+ {
+#ifdef MAC_OSX
+ result = mac_get_object_from_code(((FileInfo*)&catalogInfo.finderInfo)->fileCreator);
+#else
+ result = mac_get_object_from_code (finder_info.fdCreator);
+#endif
+ }
+ }
+ UNBLOCK_INPUT;
+ if (status != noErr) {
+ error ("Error while getting file information.");
+ }
+ return result;
+}
+
+DEFUN ("mac-get-file-type", Fmac_get_file_type, Smac_get_file_type, 1, 1, 0,
+ doc: /* Get the type code of FILENAME as a four character string. */)
+ (filename)
+ Lisp_Object filename;
+{
+ OSErr status;
+#ifdef MAC_OSX
+ FSRef fref;
+#else
+ FSSpec fss;
+#endif
+ OSType cCode;
+ Lisp_Object result = Qnil;
+ CHECK_STRING (filename);
+
+ if (NILP(Ffile_exists_p(filename)) || !NILP(Ffile_directory_p(filename))) {
+ return Qnil;
+ }
+ filename = Fexpand_file_name (filename, Qnil);
+
+ BLOCK_INPUT;
+#ifdef MAC_OSX
+ status = FSPathMakeRef(SDATA(ENCODE_FILE(filename)), &fref, NULL);
+#else
+ status = posix_pathname_to_fsspec (SDATA (ENCODE_FILE (filename)), &fss);
+#endif
+
+ if (status == noErr)
+ {
+#ifdef MAC_OSX
+ FSCatalogInfo catalogInfo;
+
+ status = FSGetCatalogInfo(&fref, kFSCatInfoFinderInfo,
+ &catalogInfo, NULL, NULL, NULL);
+#else
+ FInfo finder_info;
+
+ status = FSpGetFInfo (&fss, &finder_info);
+#endif
+ if (status == noErr)
+ {
+#ifdef MAC_OSX
+ result = mac_get_object_from_code(((FileInfo*)&catalogInfo.finderInfo)->fileType);
+#else
+ result = mac_get_object_from_code (finder_info.fdType);
+#endif
+ }
+ }
+ UNBLOCK_INPUT;
+ if (status != noErr) {
+ error ("Error while getting file information.");
+ }
+ return result;
+}
+
+DEFUN ("mac-set-file-creator", Fmac_set_file_creator, Smac_set_file_creator, 1, 2, 0,
+ doc: /* Set creator code of file FILENAME to CODE.
+If non-nil, CODE must be a 4-character string. Otherwise, 'EMAx' is
+assumed. Return non-nil if successful. */)
+ (filename, code)
+ Lisp_Object filename, code;
+{
+ OSErr status;
+#ifdef MAC_OSX
+ FSRef fref;
+#else
+ FSSpec fss;
+#endif
+ OSType cCode;
+ CHECK_STRING (filename);
+
+ cCode = mac_get_code_from_arg(code, 'EMAx');
+
+ if (NILP(Ffile_exists_p(filename)) || !NILP(Ffile_directory_p(filename))) {
+ return Qnil;
+ }
+ filename = Fexpand_file_name (filename, Qnil);
+
+ BLOCK_INPUT;
+#ifdef MAC_OSX
+ status = FSPathMakeRef(SDATA(ENCODE_FILE(filename)), &fref, NULL);
+#else
+ status = posix_pathname_to_fsspec (SDATA (ENCODE_FILE (filename)), &fss);
+#endif
+
+ if (status == noErr)
+ {
+#ifdef MAC_OSX
+ FSCatalogInfo catalogInfo;
+ FSRef parentDir;
+ status = FSGetCatalogInfo(&fref, kFSCatInfoFinderInfo,
+ &catalogInfo, NULL, NULL, &parentDir);
+#else
+ FInfo finder_info;
+
+ status = FSpGetFInfo (&fss, &finder_info);
+#endif
+ if (status == noErr)
+ {
+#ifdef MAC_OSX
+ ((FileInfo*)&catalogInfo.finderInfo)->fileCreator = cCode;
+ status = FSSetCatalogInfo(&fref, kFSCatInfoFinderInfo, &catalogInfo);
+ /* TODO: on Mac OS 10.2, we need to touch the parent dir, FNNotify? */
+#else
+ finder_info.fdCreator = cCode;
+ status = FSpSetFInfo (&fss, &finder_info);
+#endif
+ }
+ }
+ UNBLOCK_INPUT;
+ if (status != noErr) {
+ error ("Error while setting creator information.");
+ }
+ return Qt;
+}
+
+DEFUN ("mac-set-file-type", Fmac_set_file_type, Smac_set_file_type, 2, 2, 0,
+ doc: /* Set file code of file FILENAME to CODE.
+CODE must be a 4-character string. Return non-nil if successful. */)
+ (filename, code)
+ Lisp_Object filename, code;
+{
+ OSErr status;
+#ifdef MAC_OSX
+ FSRef fref;
+#else
+ FSSpec fss;
+#endif
+ OSType cCode;
+ CHECK_STRING (filename);
+
+ cCode = mac_get_code_from_arg(code, 0); /* Default to empty code*/
+
+ if (NILP(Ffile_exists_p(filename)) || !NILP(Ffile_directory_p(filename))) {
+ return Qnil;
+ }
+ filename = Fexpand_file_name (filename, Qnil);
+
+ BLOCK_INPUT;
+#ifdef MAC_OSX
+ status = FSPathMakeRef(SDATA(ENCODE_FILE(filename)), &fref, NULL);
+#else
+ status = posix_pathname_to_fsspec (SDATA (ENCODE_FILE (filename)), &fss);
+#endif
+
+ if (status == noErr)
+ {
+#ifdef MAC_OSX
+ FSCatalogInfo catalogInfo;
+ FSRef parentDir;
+ status = FSGetCatalogInfo(&fref, kFSCatInfoFinderInfo,
+ &catalogInfo, NULL, NULL, &parentDir);
+#else
+ FInfo finder_info;
+
+ status = FSpGetFInfo (&fss, &finder_info);
+#endif
+ if (status == noErr)
+ {
+#ifdef MAC_OSX
+ ((FileInfo*)&catalogInfo.finderInfo)->fileType = cCode;
+ status = FSSetCatalogInfo(&fref, kFSCatInfoFinderInfo, &catalogInfo);
+ /* TODO: on Mac OS 10.2, we need to touch the parent dir, FNNotify? */
+#else
+ finder_info.fdType = cCode;
+ status = FSpSetFInfo (&fss, &finder_info);
+#endif
+ }
+ }
+ UNBLOCK_INPUT;
+ if (status != noErr) {
+ error ("Error while setting creator information.");
+ }
+ return Qt;
+}
+
/* Compile and execute the AppleScript SCRIPT and return the error
status as function value. A zero is returned if compilation and
@@ -3484,12 +3765,12 @@ do_applescript (char *script, char **result)
DEFUN ("do-applescript", Fdo_applescript, Sdo_applescript, 1, 1, 0,
- doc: /* Compile and execute AppleScript SCRIPT and retrieve and return the result.
+ doc: /* Compile and execute AppleScript SCRIPT and return the result.
If compilation and execution are successful, the resulting script
value is returned as a string. Otherwise the function aborts and
displays the error message returned by the AppleScript scripting
component. */)
- (script)
+ (script)
Lisp_Object script;
{
char *result, *temp;
@@ -3529,16 +3810,15 @@ component. */)
DEFUN ("mac-file-name-to-posix", Fmac_file_name_to_posix,
Smac_file_name_to_posix, 1, 1, 0,
- doc: /* Convert Macintosh filename to Posix form. */)
- (mac_filename)
- Lisp_Object mac_filename;
+ doc: /* Convert Macintosh FILENAME to Posix form. */)
+ (filename)
+ Lisp_Object filename;
{
char posix_filename[MAXPATHLEN+1];
- CHECK_STRING (mac_filename);
+ CHECK_STRING (filename);
- if (mac_to_posix_pathname (SDATA (mac_filename), posix_filename,
- MAXPATHLEN))
+ if (mac_to_posix_pathname (SDATA (filename), posix_filename, MAXPATHLEN))
return build_string (posix_filename);
else
return Qnil;
@@ -3547,16 +3827,15 @@ DEFUN ("mac-file-name-to-posix", Fmac_file_name_to_posix,
DEFUN ("posix-file-name-to-mac", Fposix_file_name_to_mac,
Sposix_file_name_to_mac, 1, 1, 0,
- doc: /* Convert Posix filename to Mac form. */)
- (posix_filename)
- Lisp_Object posix_filename;
+ doc: /* Convert Posix FILENAME to Mac form. */)
+ (filename)
+ Lisp_Object filename;
{
char mac_filename[MAXPATHLEN+1];
- CHECK_STRING (posix_filename);
+ CHECK_STRING (filename);
- if (posix_to_mac_pathname (SDATA (posix_filename), mac_filename,
- MAXPATHLEN))
+ if (posix_to_mac_pathname (SDATA (filename), mac_filename, MAXPATHLEN))
return build_string (mac_filename);
else
return Qnil;
@@ -3571,8 +3850,8 @@ DEFUN ("mac-get-preference", Fmac_get_preference, Smac_get_preference, 1, 4, 0,
doc: /* Return the application preference value for KEY.
KEY is either a string specifying a preference key, or a list of key
strings. If it is a list, the (i+1)-th element is used as a key for
-the CFDictionary value obtained by the i-th element. If lookup is
-failed at some stage, nil is returned.
+the CFDictionary value obtained by the i-th element. Return nil if
+lookup is failed at some stage.
Optional arg APPLICATION is an application ID string. If omitted or
nil, that stands for the current application.
@@ -3603,7 +3882,7 @@ CFDictionary. If HASH-BOUND is a negative integer or nil, always
generate alists. If HASH-BOUND >= 0, generate an alist if the number
of keys in the dictionary is smaller than HASH-BOUND, and a hash table
otherwise. */)
- (key, application, format, hash_bound)
+ (key, application, format, hash_bound)
Lisp_Object key, application, format, hash_bound;
{
CFStringRef app_id, key_str;
@@ -3840,9 +4119,8 @@ charset string, or an integer as a CFStringEncoding value.
On Mac OS X 10.2 and later, you can do Unicode Normalization by
specifying the optional argument NORMALIZATION-FORM with a symbol NFD,
NFKD, NFC, NFKC, HFS+D, or HFS+C.
-On successful conversion, returns the result string, else returns
-nil. */)
- (string, source, target, normalization_form)
+On successful conversion, return the result string, else return nil. */)
+ (string, source, target, normalization_form)
Lisp_Object string, source, target, normalization_form;
{
Lisp_Object result = Qnil;
@@ -3862,7 +4140,11 @@ nil. */)
src_encoding = get_cfstring_encoding_from_lisp (source);
tgt_encoding = get_cfstring_encoding_from_lisp (target);
- string = string_make_unibyte (string);
+ /* We really want string_to_unibyte, but since it doesn't exist yet, we
+ use string_as_unibyte which works as well, except for the fact that
+ it's too permissive (it doesn't check that the multibyte string only
+ contain single-byte chars). */
+ string = Fstring_as_unibyte (string);
if (src_encoding != kCFStringEncodingInvalidId
&& tgt_encoding != kCFStringEncodingInvalidId)
str = CFStringCreateWithBytes (NULL, SDATA (string), SBYTES (string),
@@ -3897,7 +4179,7 @@ nil. */)
DEFUN ("mac-clear-font-name-table", Fmac_clear_font_name_table, Smac_clear_font_name_table, 0, 0, 0,
doc: /* Clear the font name table. */)
- ()
+ ()
{
check_mac ();
mac_clear_font_name_table ();
@@ -4197,8 +4479,13 @@ init_mac_osx_environment ()
app_bundle_pathname. */
bundle = CFBundleGetMainBundle ();
- if (!bundle)
- return;
+ if (!bundle || CFBundleGetIdentifier (bundle) == NULL)
+ {
+ /* We could not find the bundle identifier. For now, prevent
+ the fatal error by bringing it up in the terminal. */
+ inhibit_window_system = 1;
+ return;
+ }
bundleURL = CFBundleCopyBundleURL (bundle);
if (!bundleURL)
@@ -4361,6 +4648,10 @@ syms_of_mac ()
#endif
defsubr (&Smac_clear_font_name_table);
+ defsubr (&Smac_set_file_creator);
+ defsubr (&Smac_set_file_type);
+ defsubr (&Smac_get_file_creator);
+ defsubr (&Smac_get_file_type);
defsubr (&Sdo_applescript);
defsubr (&Smac_file_name_to_posix);
defsubr (&Sposix_file_name_to_mac);
diff --git a/src/macfns.c b/src/macfns.c
index b9f7e2bed5..160eb1f777 100644
--- a/src/macfns.c
+++ b/src/macfns.c
@@ -1,5 +1,5 @@
/* Graphical user interface functions for Mac OS.
- Copyright (C) 2000, 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -21,58 +21,34 @@ Boston, MA 02110-1301, USA. */
/* Contributed by Andrew Choi (akochoi@mac.com). */
#include <config.h>
-
#include <stdio.h>
#include <math.h>
-#include <limits.h>
-#include <errno.h>
#include "lisp.h"
-#include "charset.h"
#include "macterm.h"
#include "frame.h"
#include "window.h"
#include "buffer.h"
-#include "dispextern.h"
-#include "fontset.h"
#include "intervals.h"
+#include "dispextern.h"
#include "keyboard.h"
#include "blockinput.h"
-#include "epaths.h"
-#include "termhooks.h"
+#include <epaths.h>
+#include "charset.h"
#include "coding.h"
+#include "fontset.h"
#include "systime.h"
+#include "termhooks.h"
+#include "atimer.h"
-/* #include "bitmaps/gray.xbm" */
-#define gray_width 2
-#define gray_height 2
-static unsigned char gray_bits[] = {
- 0x01, 0x02};
-
-/*#include <commdlg.h>
-#include <shellapi.h>*/
#include <ctype.h>
#include <sys/types.h>
#include <sys/stat.h>
+#include <limits.h>
+#include <errno.h>
#include <sys/param.h>
-#include <stdlib.h>
-#include <string.h>
-
-/*extern void free_frame_menubar ();
-extern double atof ();
-extern int w32_console_toggle_lock_key (int vk_code, Lisp_Object new_state);
-extern int quit_char;*/
-
-extern char *lispy_function_keys[];
-
-/* The gray bitmap `bitmaps/gray'. This is done because macterm.c uses
- it, and including `bitmaps/gray' more than once is a problem when
- config.h defines `static' as an empty replacement string. */
-
-int gray_bitmap_width = gray_width;
-int gray_bitmap_height = gray_height;
-unsigned char *gray_bitmap_bits = gray_bits;
+extern void free_frame_menubar ();
/* Non-zero means we're allowed to display an hourglass cursor. */
@@ -109,46 +85,13 @@ Lisp_Object Vx_no_window_manager;
Lisp_Object Vx_pixel_size_width_font_regexp;
-/* Evaluate this expression to rebuild the section of syms_of_macfns
- that initializes and staticpros the symbols declared below. Note
- that Emacs 18 has a bug that keeps C-x C-e from being able to
- evaluate this expression.
-
-(progn
- ;; Accumulate a list of the symbols we want to initialize from the
- ;; declarations at the top of the file.
- (goto-char (point-min))
- (search-forward "/\*&&& symbols declared here &&&*\/\n")
- (let (symbol-list)
- (while (looking-at "Lisp_Object \\(Q[a-z_]+\\)")
- (setq symbol-list
- (cons (buffer-substring (match-beginning 1) (match-end 1))
- symbol-list))
- (forward-line 1))
- (setq symbol-list (nreverse symbol-list))
- ;; Delete the section of syms_of_... where we initialize the symbols.
- (search-forward "\n /\*&&& init symbols here &&&*\/\n")
- (let ((start (point)))
- (while (looking-at "^ Q")
- (forward-line 2))
- (kill-region start (point)))
- ;; Write a new symbol initialization section.
- (while symbol-list
- (insert (format " %s = intern (\"" (car symbol-list)))
- (let ((start (point)))
- (insert (substring (car symbol-list) 1))
- (subst-char-in-region start (point) ?_ ?-))
- (insert (format "\");\n staticpro (&%s);\n" (car symbol-list)))
- (setq symbol-list (cdr symbol-list)))))
-
- */
-
-/*&&& symbols declared here &&&*/
Lisp_Object Qnone;
Lisp_Object Qsuppress_icon;
Lisp_Object Qundefined_color;
Lisp_Object Qcancel_timer;
+/* In dispnew.c */
+
extern Lisp_Object Vwindow_system_version;
#if 0 /* Use xstricmp instead. */
@@ -243,40 +186,11 @@ check_x_display_info (frame)
return dpyinfo;
}
-
-/* Return the Emacs frame-object corresponding to a mac window.
- It could be the frame's main window or an icon window. */
-
-/* This function can be called during GC, so use GC_xxx type test macros. */
-
-struct frame *
-x_window_to_frame (dpyinfo, wdesc)
- struct mac_display_info *dpyinfo;
- WindowPtr wdesc;
-{
- Lisp_Object tail, frame;
- struct frame *f;
-
- for (tail = Vframe_list; GC_CONSP (tail); tail = XCDR (tail))
- {
- frame = XCAR (tail);
- if (!GC_FRAMEP (frame))
- continue;
- f = XFRAME (frame);
- if (!FRAME_W32_P (f) || FRAME_MAC_DISPLAY_INFO (f) != dpyinfo)
- continue;
- /*if (f->output_data.w32->hourglass_window == wdesc)
- return f;*/
-
- /* MAC_TODO: Check tooltips when supported. */
- if (FRAME_MAC_WINDOW (f) == wdesc)
- return f;
- }
- return 0;
-}
+
static Lisp_Object unwind_create_frame P_ ((Lisp_Object));
+static Lisp_Object unwind_create_tip_frame P_ ((Lisp_Object));
void x_set_foreground_color P_ ((struct frame *, Lisp_Object, Lisp_Object));
void x_set_background_color P_ ((struct frame *, Lisp_Object, Lisp_Object));
@@ -302,6 +216,8 @@ static Lisp_Object x_default_scroll_bar_color_parameter P_ ((struct frame *,
extern void mac_get_window_bounds P_ ((struct frame *, Rect *, Rect *));
+
+
/* Store the screen positions of frame F into XPTR and YPTR.
These are the positions of the containing window manager window,
not Emacs's own window. */
@@ -1570,9 +1486,10 @@ x_set_cursor_color (f, arg, oldval)
{
BLOCK_INPUT;
/* Update frame's cursor_gc. */
- f->output_data.mac->cursor_gc->foreground = fore_pixel;
- f->output_data.mac->cursor_gc->background = pixel;
-
+ XSetBackground (FRAME_MAC_DISPLAY (f),
+ f->output_data.mac->cursor_gc, pixel);
+ XSetForeground (FRAME_MAC_DISPLAY (f),
+ f->output_data.mac->cursor_gc, fore_pixel);
UNBLOCK_INPUT;
if (FRAME_VISIBLE_P (f))
@@ -1833,8 +1750,49 @@ x_set_tool_bar_lines (f, value, oldval)
}
+
+/* Set the Mac window title to NAME for frame F. */
+
+static void
+x_set_name_internal (f, name)
+ FRAME_PTR f;
+ Lisp_Object name;
+{
+ if (FRAME_MAC_WINDOW (f))
+ {
+ if (STRING_MULTIBYTE (name))
+#if TARGET_API_MAC_CARBON
+ name = ENCODE_UTF_8 (name);
+#else
+ name = ENCODE_SYSTEM (name);
+#endif
+
+ BLOCK_INPUT;
+
+ {
+#if TARGET_API_MAC_CARBON
+ CFStringRef windowTitle =
+ cfstring_create_with_utf8_cstring (SDATA (name));
+
+ SetWindowTitleWithCFString (FRAME_MAC_WINDOW (f), windowTitle);
+ CFRelease (windowTitle);
+#else
+ Str255 windowTitle;
+ if (strlen (SDATA (name)) < 255)
+ {
+ strcpy (windowTitle, SDATA (name));
+ c2pstr (windowTitle);
+ SetWTitle (FRAME_MAC_WINDOW (f), windowTitle);
+ }
+#endif
+ }
+
+ UNBLOCK_INPUT;
+ }
+}
+
/* Change the name of frame F to NAME. If NAME is nil, set F's name to
- w32_id_name.
+ mac_id_name.
If EXPLICIT is non-zero, that indicates that lisp code is setting the
name; if NAME is a string, set F's name to NAME and set
@@ -1864,7 +1822,7 @@ x_set_name (f, name, explicit)
else if (f->explicit_name)
return;
- /* If NAME is nil, set the name to the w32_id_name. */
+ /* If NAME is nil, set the name to the mac_id_name. */
if (NILP (name))
{
/* Check for no change needed in this very common case
@@ -1888,37 +1846,7 @@ x_set_name (f, name, explicit)
if (! NILP (f->title))
name = f->title;
- if (FRAME_MAC_WINDOW (f))
- {
- if (STRING_MULTIBYTE (name))
-#if TARGET_API_MAC_CARBON
- name = ENCODE_UTF_8 (name);
-#else
- name = ENCODE_SYSTEM (name);
-#endif
-
- BLOCK_INPUT;
-
- {
-#if TARGET_API_MAC_CARBON
- CFStringRef windowTitle =
- cfstring_create_with_utf8_cstring (SDATA (name));
-
- SetWindowTitleWithCFString (FRAME_MAC_WINDOW (f), windowTitle);
- CFRelease (windowTitle);
-#else
- Str255 windowTitle;
- if (strlen (SDATA (name)) < 255)
- {
- strcpy (windowTitle, SDATA (name));
- c2pstr (windowTitle);
- SetWTitle (FRAME_MAC_WINDOW (f), windowTitle);
- }
-#endif
- }
-
- UNBLOCK_INPUT;
- }
+ x_set_name_internal (f, name);
}
/* This function should be called when the user's lisp code has
@@ -1969,38 +1897,10 @@ x_set_title (f, name, old_name)
if (NILP (name))
name = f->name;
+ else
+ CHECK_STRING (name);
- if (FRAME_MAC_WINDOW (f))
- {
- if (STRING_MULTIBYTE (name))
-#if TARGET_API_MAC_CARBON
- name = ENCODE_UTF_8 (name);
-#else
- name = ENCODE_SYSTEM (name);
-#endif
-
- BLOCK_INPUT;
-
- {
-#if TARGET_API_MAC_CARBON
- CFStringRef windowTitle =
- cfstring_create_with_utf8_cstring (SDATA (name));
-
- SetWindowTitleWithCFString (FRAME_MAC_WINDOW (f), windowTitle);
- CFRelease (windowTitle);
-#else
- Str255 windowTitle;
- if (strlen (SDATA (name)) < 255)
- {
- strcpy (windowTitle, SDATA (name));
- c2pstr (windowTitle);
- SetWTitle (FRAME_MAC_WINDOW (f), windowTitle);
- }
-#endif
- }
-
- UNBLOCK_INPUT;
- }
+ x_set_name_internal (f, name);
}
void
@@ -2469,7 +2369,7 @@ unwind_create_frame (frame)
DEFUN ("x-create-frame", Fx_create_frame, Sx_create_frame,
1, 1, 0,
- doc: /* Make a new window, which is called a \"frame\" in Emacs terms.
+ doc: /* Make a new window, which is called a "frame" in Emacs terms.
Returns an Emacs frame object.
ALIST is an alist of frame parameters.
If the parameters specify that the frame should not have a minibuffer,
@@ -2478,7 +2378,7 @@ then `default-minibuffer-frame' must be a frame whose minibuffer can
be shared by the new frame.
This function is an internal primitive--use `make-frame' instead. */)
- (parms)
+ (parms)
Lisp_Object parms;
{
struct frame *f;
@@ -2803,7 +2703,7 @@ x_get_focus_frame (frame)
DEFUN ("xw-color-defined-p", Fxw_color_defined_p, Sxw_color_defined_p, 1, 2, 0,
doc: /* Internal function called by `color-defined-p', which see. */)
- (color, frame)
+ (color, frame)
Lisp_Object color, frame;
{
XColor foo;
@@ -2819,7 +2719,7 @@ DEFUN ("xw-color-defined-p", Fxw_color_defined_p, Sxw_color_defined_p, 1, 2, 0,
DEFUN ("xw-color-values", Fxw_color_values, Sxw_color_values, 1, 2, 0,
doc: /* Internal function called by `color-values', which see. */)
- (color, frame)
+ (color, frame)
Lisp_Object color, frame;
{
XColor foo;
@@ -2842,7 +2742,7 @@ DEFUN ("xw-color-values", Fxw_color_values, Sxw_color_values, 1, 2, 0,
DEFUN ("xw-display-color-p", Fxw_display_color_p, Sxw_display_color_p, 0, 1, 0,
doc: /* Internal function called by `display-color-p', which see. */)
- (display)
+ (display)
Lisp_Object display;
{
struct mac_display_info *dpyinfo = check_x_display_info (display);
@@ -2855,12 +2755,12 @@ DEFUN ("xw-display-color-p", Fxw_display_color_p, Sxw_display_color_p, 0, 1, 0,
DEFUN ("x-display-grayscale-p", Fx_display_grayscale_p, Sx_display_grayscale_p,
0, 1, 0,
- doc: /* Return t if the X display supports shades of gray.
+ doc: /* Return t if DISPLAY supports shades of gray.
Note that color displays do support shades of gray.
The optional argument DISPLAY specifies which display to ask about.
DISPLAY should be either a frame or a display name (a string).
If omitted or nil, that stands for the selected frame's display. */)
- (display)
+ (display)
Lisp_Object display;
{
struct mac_display_info *dpyinfo = check_x_display_info (display);
@@ -2873,11 +2773,11 @@ If omitted or nil, that stands for the selected frame's display. */)
DEFUN ("x-display-pixel-width", Fx_display_pixel_width, Sx_display_pixel_width,
0, 1, 0,
- doc: /* Returns the width in pixels of the X display DISPLAY.
+ doc: /* Returns the width in pixels of DISPLAY.
The optional argument DISPLAY specifies which display to ask about.
DISPLAY should be either a frame or a display name (a string).
If omitted or nil, that stands for the selected frame's display. */)
- (display)
+ (display)
Lisp_Object display;
{
struct mac_display_info *dpyinfo = check_x_display_info (display);
@@ -2887,11 +2787,11 @@ If omitted or nil, that stands for the selected frame's display. */)
DEFUN ("x-display-pixel-height", Fx_display_pixel_height,
Sx_display_pixel_height, 0, 1, 0,
- doc: /* Returns the height in pixels of the X display DISPLAY.
+ doc: /* Returns the height in pixels of DISPLAY.
The optional argument DISPLAY specifies which display to ask about.
DISPLAY should be either a frame or a display name (a string).
If omitted or nil, that stands for the selected frame's display. */)
- (display)
+ (display)
Lisp_Object display;
{
struct mac_display_info *dpyinfo = check_x_display_info (display);
@@ -2901,11 +2801,11 @@ If omitted or nil, that stands for the selected frame's display. */)
DEFUN ("x-display-planes", Fx_display_planes, Sx_display_planes,
0, 1, 0,
- doc: /* Returns the number of bitplanes of the display DISPLAY.
+ doc: /* Returns the number of bitplanes of DISPLAY.
The optional argument DISPLAY specifies which display to ask about.
DISPLAY should be either a frame or a display name (a string).
If omitted or nil, that stands for the selected frame's display. */)
- (display)
+ (display)
Lisp_Object display;
{
struct mac_display_info *dpyinfo = check_x_display_info (display);
@@ -2915,11 +2815,11 @@ If omitted or nil, that stands for the selected frame's display. */)
DEFUN ("x-display-color-cells", Fx_display_color_cells, Sx_display_color_cells,
0, 1, 0,
- doc: /* Returns the number of color cells of the display DISPLAY.
+ doc: /* Returns the number of color cells of DISPLAY.
The optional argument DISPLAY specifies which display to ask about.
DISPLAY should be either a frame or a display name (a string).
If omitted or nil, that stands for the selected frame's display. */)
- (display)
+ (display)
Lisp_Object display;
{
struct mac_display_info *dpyinfo = check_x_display_info (display);
@@ -2931,11 +2831,11 @@ If omitted or nil, that stands for the selected frame's display. */)
DEFUN ("x-server-max-request-size", Fx_server_max_request_size,
Sx_server_max_request_size,
0, 1, 0,
- doc: /* Returns the maximum request size of the server of display DISPLAY.
+ doc: /* Returns the maximum request size of the server of DISPLAY.
The optional argument DISPLAY specifies which display to ask about.
DISPLAY should be either a frame or a display name (a string).
If omitted or nil, that stands for the selected frame's display. */)
- (display)
+ (display)
Lisp_Object display;
{
struct mac_display_info *dpyinfo = check_x_display_info (display);
@@ -2944,18 +2844,18 @@ If omitted or nil, that stands for the selected frame's display. */)
}
DEFUN ("x-server-vendor", Fx_server_vendor, Sx_server_vendor, 0, 1, 0,
- doc: /* Returns the vendor ID string of the Mac OS system (Apple).
+ doc: /* Returns the "vendor ID" string of the Mac OS system (Apple).
The optional argument DISPLAY specifies which display to ask about.
DISPLAY should be either a frame or a display name (a string).
If omitted or nil, that stands for the selected frame's display. */)
- (display)
+ (display)
Lisp_Object display;
{
return build_string ("Apple Computers");
}
DEFUN ("x-server-version", Fx_server_version, Sx_server_version, 0, 1, 0,
- doc: /* Returns the version numbers of the server of display DISPLAY.
+ doc: /* Returns the version numbers of the Mac OS system.
The value is a list of three integers: the major and minor
version numbers, and the vendor-specific release
number. See also the function `x-server-vendor'.
@@ -2963,7 +2863,7 @@ number. See also the function `x-server-vendor'.
The optional argument DISPLAY specifies which display to ask about.
DISPLAY should be either a frame or a display name (a string).
If omitted or nil, that stands for the selected frame's display. */)
- (display)
+ (display)
Lisp_Object display;
{
int mac_major_version;
@@ -2988,22 +2888,22 @@ If omitted or nil, that stands for the selected frame's display. */)
}
DEFUN ("x-display-screens", Fx_display_screens, Sx_display_screens, 0, 1, 0,
- doc: /* Return the number of screens on the server of display DISPLAY.
+ doc: /* Return the number of screens on the server of DISPLAY.
The optional argument DISPLAY specifies which display to ask about.
DISPLAY should be either a frame or a display name (a string).
If omitted or nil, that stands for the selected frame's display. */)
- (display)
+ (display)
Lisp_Object display;
{
return make_number (1);
}
DEFUN ("x-display-mm-height", Fx_display_mm_height, Sx_display_mm_height, 0, 1, 0,
- doc: /* Return the height in millimeters of the X display DISPLAY.
+ doc: /* Return the height in millimeters of DISPLAY.
The optional argument DISPLAY specifies which display to ask about.
DISPLAY should be either a frame or a display name (a string).
If omitted or nil, that stands for the selected frame's display. */)
- (display)
+ (display)
Lisp_Object display;
{
/* MAC_TODO: this is an approximation, and only of the main display */
@@ -3014,11 +2914,11 @@ If omitted or nil, that stands for the selected frame's display. */)
}
DEFUN ("x-display-mm-width", Fx_display_mm_width, Sx_display_mm_width, 0, 1, 0,
- doc: /* Return the width in millimeters of the X display DISPLAY.
+ doc: /* Return the width in millimeters of DISPLAY.
The optional argument DISPLAY specifies which display to ask about.
DISPLAY should be either a frame or a display name (a string).
If omitted or nil, that stands for the selected frame's display. */)
- (display)
+ (display)
Lisp_Object display;
{
/* MAC_TODO: this is an approximation, and only of the main display */
@@ -3030,12 +2930,12 @@ If omitted or nil, that stands for the selected frame's display. */)
DEFUN ("x-display-backing-store", Fx_display_backing_store,
Sx_display_backing_store, 0, 1, 0,
- doc: /* Returns an indication of whether display DISPLAY does backing store.
+ doc: /* Returns an indication of whether DISPLAY does backing store.
The value may be `always', `when-mapped', or `not-useful'.
The optional argument DISPLAY specifies which display to ask about.
DISPLAY should be either a frame or a display name (a string).
If omitted or nil, that stands for the selected frame's display. */)
- (display)
+ (display)
Lisp_Object display;
{
return intern ("not-useful");
@@ -3043,14 +2943,14 @@ If omitted or nil, that stands for the selected frame's display. */)
DEFUN ("x-display-visual-class", Fx_display_visual_class,
Sx_display_visual_class, 0, 1, 0,
- doc: /* Returns the visual class of the display DISPLAY.
+ doc: /* Returns the visual class of DISPLAY.
The value is one of the symbols `static-gray', `gray-scale',
`static-color', `pseudo-color', `true-color', or `direct-color'.
The optional argument DISPLAY specifies which display to ask about.
DISPLAY should be either a frame or a display name (a string).
If omitted or nil, that stands for the selected frame's display. */)
- (display)
+ (display)
Lisp_Object display;
{
struct mac_display_info *dpyinfo = check_x_display_info (display);
@@ -3074,11 +2974,11 @@ If omitted or nil, that stands for the selected frame's display. */)
DEFUN ("x-display-save-under", Fx_display_save_under,
Sx_display_save_under, 0, 1, 0,
- doc: /* Returns t if the display DISPLAY supports the save-under feature.
+ doc: /* Returns t if DISPLAY supports the save-under feature.
The optional argument DISPLAY specifies which display to ask about.
DISPLAY should be either a frame or a display name (a string).
If omitted or nil, that stands for the selected frame's display. */)
- (display)
+ (display)
Lisp_Object display;
{
return Qnil;
@@ -3168,7 +3068,7 @@ DISPLAY is the name of the display to connect to.
Optional second arg XRM-STRING is a string of resources in xrdb format.
If the optional third arg MUST-SUCCEED is non-nil,
terminate Emacs if we can't open the connection. */)
- (display, xrm_string, must_succeed)
+ (display, xrm_string, must_succeed)
Lisp_Object display, xrm_string, must_succeed;
{
unsigned char *xrm_option;
@@ -3213,8 +3113,8 @@ DEFUN ("x-close-connection", Fx_close_connection,
doc: /* Close the connection to DISPLAY's server.
For DISPLAY, specify either a frame or a display name (a string).
If DISPLAY is nil, that stands for the selected frame's display. */)
- (display)
- Lisp_Object display;
+ (display)
+ Lisp_Object display;
{
struct mac_display_info *dpyinfo = check_x_display_info (display);
int i;
@@ -3240,7 +3140,7 @@ If DISPLAY is nil, that stands for the selected frame's display. */)
DEFUN ("x-display-list", Fx_display_list, Sx_display_list, 0, 0, 0,
doc: /* Return the list of display names that Emacs has connections to. */)
- ()
+ ()
{
Lisp_Object tail, result;
@@ -3252,13 +3152,8 @@ DEFUN ("x-display-list", Fx_display_list, Sx_display_list, 0, 0, 0,
}
DEFUN ("x-synchronize", Fx_synchronize, Sx_synchronize, 1, 2, 0,
- doc: /* If ON is non-nil, report errors as soon as the erring request is made.
-If ON is nil, allow buffering of requests.
-This is a noop on Mac OS systems.
-The optional second argument DISPLAY specifies which display to act on.
-DISPLAY should be either a frame or a display name (a string).
-If DISPLAY is omitted or nil, that stands for the selected frame's display. */)
- (on, display)
+ doc: /* This is a noop on Mac OS systems. */)
+ (on, display)
Lisp_Object display, on;
{
return Qnil;
@@ -3317,7 +3212,7 @@ DEFUN ("x-delete-window-property", Fx_delete_window_property,
Sx_delete_window_property, 1, 2, 0,
doc: /* Remove window property PROP from X window of FRAME.
FRAME nil or omitted means use the selected frame. Value is PROP. */)
- (prop, frame)
+ (prop, frame)
Lisp_Object prop, frame;
{
#if 0 /* MAC_TODO : port window properties to Mac */
@@ -3345,7 +3240,7 @@ DEFUN ("x-window-property", Fx_window_property, Sx_window_property,
If FRAME is nil or omitted, use the selected frame. Value is nil
if FRAME hasn't a property with name PROP or if PROP has no string
value. */)
- (prop, frame)
+ (prop, frame)
Lisp_Object prop, frame;
{
#if 0 /* MAC_TODO : port window properties to Mac */
@@ -3947,7 +3842,7 @@ compute_tip_xy (f, parms, dx, dy, width, height, root_x, root_y)
DEFUN ("x-show-tip", Fx_show_tip, Sx_show_tip, 1, 6, 0,
doc: /* Show STRING in a "tooltip" window on frame FRAME.
-A tooltip window is a small X window displaying a string.
+A tooltip window is a small window displaying a string.
FRAME nil or omitted means use the selected frame.
@@ -3957,7 +3852,7 @@ change the tooltip's appearance.
Automatically hide the tooltip after TIMEOUT seconds. TIMEOUT nil
means use the default timeout of 5 seconds.
-If the list of frame parameters PARAMS contains a `left' parameters,
+If the list of frame parameters PARMS contains a `left' parameter,
the tooltip is displayed at that x-position. Otherwise it is
displayed at the mouse position, with offset DX added (default is 5 if
DX isn't specified). Likewise for the y-position; if a `top' frame
@@ -4215,7 +4110,7 @@ Use a file selection dialog.
Select DEFAULT-FILENAME in the dialog's file selection box, if
specified. Ensure that file exists if MUSTMATCH is non-nil.
If ONLY-DIR-P is non-nil, the user can only select directories. */)
- (prompt, dir, default_filename, mustmatch, only_dir_p)
+ (prompt, dir, default_filename, mustmatch, only_dir_p)
Lisp_Object prompt, dir, default_filename, mustmatch, only_dir_p;
{
struct frame *f = SELECTED_FRAME ();
diff --git a/src/macgui.h b/src/macgui.h
index d9948278d1..607890317e 100644
--- a/src/macgui.h
+++ b/src/macgui.h
@@ -1,5 +1,6 @@
/* Definitions and headers for communication on the Mac OS.
- Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -86,6 +87,10 @@ typedef GWorldPtr Pixmap;
#define FACE_DEFAULT (~0)
+#if !TARGET_API_MAC_CARBON
+#define GetPixDepth(pmh) ((*(pmh))->pixelSize)
+#endif
+
/* Emulate XCharStruct. */
typedef struct _XCharStruct
@@ -180,15 +185,24 @@ typedef struct _XGCValues
XFontStruct *font;
} XGCValues;
-typedef XGCValues *GC;
+typedef struct _XGC
+{
+ /* Original value. */
+ XGCValues xgcv;
+
+ /* Cached data members follow. */
+
+ /* QuickDraw foreground color. */
+ RGBColor fore_color;
-extern XGCValues *
-XCreateGC (void *, Window, unsigned long, XGCValues *);
+ /* QuickDraw background color. */
+ RGBColor back_color;
+} *GC;
-#define GCForeground 0x01
-#define GCBackground 0x02
-#define GCFont 0x03
-#define GCGraphicsExposures 0
+#define GCForeground (1L<<2)
+#define GCBackground (1L<<3)
+#define GCFont (1L<<14)
+#define GCGraphicsExposures 0
/* Bit Gravity */
@@ -248,8 +262,6 @@ typedef struct {
#define PBaseSize (1L << 8) /* program specified base for incrementing */
#define PWinGravity (1L << 9) /* program specified window gravity */
-extern int XParseGeometry ();
-
typedef struct {
int x, y;
unsigned width, height;
diff --git a/src/macmenu.c b/src/macmenu.c
index ab266f6f0b..a68ff04e40 100644
--- a/src/macmenu.c
+++ b/src/macmenu.c
@@ -1,5 +1,6 @@
/* Menu support for GNU Emacs on the for Mac OS.
- Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -611,37 +612,48 @@ cleanup_popup_menu (arg)
DEFUN ("x-popup-menu", Fx_popup_menu, Sx_popup_menu, 2, 2, 0,
doc: /* Pop up a deck-of-cards menu and return user's selection.
-POSITION is a position specification. This is either a mouse button
-event or a list ((XOFFSET YOFFSET) WINDOW) where XOFFSET and YOFFSET
-are positions in pixels from the top left corner of WINDOW's frame
-\(WINDOW may be a frame object instead of a window). This controls the
-position of the center of the first line in the first pane of the
-menu, not the top left of the menu as a whole. If POSITION is t, it
-means to use the current mouse position.
+POSITION is a position specification. This is either a mouse button event
+or a list ((XOFFSET YOFFSET) WINDOW)
+where XOFFSET and YOFFSET are positions in pixels from the top left
+corner of WINDOW. (WINDOW may be a window or a frame object.)
+This controls the position of the top left of the menu as a whole.
+If POSITION is t, it means to use the current mouse position.
MENU is a specifier for a menu. For the simplest case, MENU is a keymap.
The menu items come from key bindings that have a menu string as well as
-a definition; actually, the \"definition\" in such a key binding looks like
+a definition; actually, the "definition" in such a key binding looks like
\(STRING . REAL-DEFINITION). To give the menu a title, put a string into
the keymap as a top-level element.
If REAL-DEFINITION is nil, that puts a nonselectable string in the menu.
Otherwise, REAL-DEFINITION should be a valid key binding definition.
-You can also use a list of keymaps as MENU. Then each keymap makes a
-separate pane. When MENU is a keymap or a list of keymaps, the return
-value is a list of events.
+You can also use a list of keymaps as MENU.
+ Then each keymap makes a separate pane.
-Alternatively, you can specify a menu of multiple panes with a list of
-the form (TITLE PANE1 PANE2...), where each pane is a list of
-form (TITLE ITEM1 ITEM2...).
-Each ITEM is normally a cons cell (STRING . VALUE); but a string can
-appear as an item--that makes a nonselectable line in the menu.
+When MENU is a keymap or a list of keymaps, the return value is the
+list of events corresponding to the user's choice. Note that
+`x-popup-menu' does not actually execute the command bound to that
+sequence of events.
+
+Alternatively, you can specify a menu of multiple panes
+ with a list of the form (TITLE PANE1 PANE2...),
+where each pane is a list of form (TITLE ITEM1 ITEM2...).
+Each ITEM is normally a cons cell (STRING . VALUE);
+but a string can appear as an item--that makes a nonselectable line
+in the menu.
With this form of menu, the return value is VALUE from the chosen item.
If POSITION is nil, don't display the menu at all, just precalculate the
-cached information about equivalent key sequences. */)
- (position, menu)
+cached information about equivalent key sequences.
+
+If the user gets rid of the menu without making a valid choice, for
+instance by clicking the mouse away from a valid choice or by typing
+keyboard input, then this normally results in a quit and
+`x-popup-menu' does not return. But if POSITION is a mouse button
+event (indicating that the user invoked the menu with the mouse) then
+no quit occurs and `x-popup-menu' returns nil. */)
+ (position, menu)
Lisp_Object position, menu;
{
Lisp_Object keymap, tem;
@@ -840,7 +852,7 @@ If POSITION is t, it means to use the frame the mouse is on.
The dialog box appears in the middle of the specified frame.
CONTENTS specifies the alternatives to display in the dialog box.
-It is a list of the form (TITLE ITEM1 ITEM2...).
+It is a list of the form (DIALOG ITEM1 ITEM2...).
Each ITEM is a cons cell (STRING . VALUE).
The return value is VALUE from the chosen item.
@@ -850,8 +862,12 @@ on the left of the dialog box and all following items on the right.
\(By default, approximately half appear on each side.)
If HEADER is non-nil, the frame title for the box is "Information",
-otherwise it is "Question". */)
- (position, contents, header)
+otherwise it is "Question".
+
+If the user gets rid of the dialog box without making a valid choice,
+for instance using the window manager, then this produces a quit and
+`x-popup-dialog' does not return. */)
+ (position, contents, header)
Lisp_Object position, contents, header;
{
FRAME_PTR f = NULL;
diff --git a/src/macros.c b/src/macros.c
index 6f854018d6..8167e274da 100644
--- a/src/macros.c
+++ b/src/macros.c
@@ -1,5 +1,6 @@
/* Keyboard macros.
- Copyright (C) 1985, 1986, 1993, 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1993, 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/macros.h b/src/macros.h
index d9b99b9984..7acd46dc2e 100644
--- a/src/macros.h
+++ b/src/macros.h
@@ -1,5 +1,5 @@
/* Definitions for keyboard macro interpretation in GNU Emacs.
- Copyright (C) 1985 Free Software Foundation, Inc.
+ Copyright (C) 1985, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/macselect.c b/src/macselect.c
index b519950eb7..63221ba3a9 100644
--- a/src/macselect.c
+++ b/src/macselect.c
@@ -371,7 +371,7 @@ get_scrap_target_type_list (scrap)
err = GetScrapFlavorCount (scrap, &count);
if (err == noErr)
flavor_info = xmalloc (sizeof (ScrapFlavorInfo) * count);
- if (err == noErr && flavor_info)
+ if (flavor_info)
{
err = GetScrapFlavorInfoList (scrap, &count, flavor_info);
if (err != noErr)
@@ -380,6 +380,8 @@ get_scrap_target_type_list (scrap)
flavor_info = NULL;
}
}
+ if (flavor_info == NULL)
+ count = 0;
#endif
for (rest = Vselection_converter_alist; CONSP (rest); rest = XCDR (rest))
{
@@ -710,7 +712,7 @@ anything that the functions on `selection-converter-alist' know about. */)
{
check_mac ();
CHECK_SYMBOL (selection_name);
- if (NILP (selection_value)) error ("selection-value may not be nil");
+ if (NILP (selection_value)) error ("SELECTION-VALUE may not be nil");
x_own_selection (selection_name, selection_value);
return selection_value;
}
@@ -722,11 +724,11 @@ anything that the functions on `selection-converter-alist' know about. */)
DEFUN ("x-get-selection-internal", Fx_get_selection_internal,
Sx_get_selection_internal, 2, 3, 0,
- doc: /* Return text selected from some Mac window.
+ doc: /* Return text selected from some Mac application.
SELECTION is a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD'.
TYPE is the type of data desired, typically `STRING'.
TIME_STAMP is ignored on Mac. */)
- (selection_symbol, target_type, time_stamp)
+ (selection_symbol, target_type, time_stamp)
Lisp_Object selection_symbol, target_type, time_stamp;
{
Lisp_Object val = Qnil;
@@ -819,7 +821,7 @@ Disowning it means there is no such selection. */)
DEFUN ("x-selection-owner-p", Fx_selection_owner_p, Sx_selection_owner_p,
0, 1, 0,
- doc: /* Whether the current Emacs process owns the given Selection.
+ doc: /* Whether the current Emacs process owns the given SELECTION.
The arg should be the name of the selection in question, typically one of
the symbols `PRIMARY', `SECONDARY', or `CLIPBOARD'.
For convenience, the symbol nil is the same as `PRIMARY',
@@ -864,7 +866,7 @@ and t is the same as `SECONDARY'. */)
DEFUN ("x-selection-exists-p", Fx_selection_exists_p, Sx_selection_exists_p,
0, 1, 0,
- doc: /* Whether there is an owner for the given Selection.
+ doc: /* Whether there is an owner for the given SELECTION.
The arg should be the name of the selection in question, typically one of
the symbols `PRIMARY', `SECONDARY', or `CLIPBOARD'.
For convenience, the symbol nil is the same as `PRIMARY',
@@ -1075,7 +1077,7 @@ a desired type to which the selection should be converted;
and the local selection value (whatever was given to `x-own-selection').
The function should return the value to send to the Scrap Manager
-\(a string). A return value of nil
+\(must be a string). A return value of nil
means that the conversion could not be done.
A return value which is the symbol `NULL'
means that a side-effect was executed,
diff --git a/src/macterm.c b/src/macterm.c
index 303557daca..d6dbecfe80 100644
--- a/src/macterm.c
+++ b/src/macterm.c
@@ -1,5 +1,6 @@
/* Implementation of GUI terminal on the Mac OS.
- Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -22,10 +23,10 @@ Boston, MA 02110-1301, USA. */
#include <config.h>
#include <signal.h>
+
#include <stdio.h>
-#include <stdlib.h>
+
#include "lisp.h"
-#include "charset.h"
#include "blockinput.h"
#include "macterm.h"
@@ -62,8 +63,6 @@ Boston, MA 02110-1301, USA. */
#include "systty.h"
#include "systime.h"
-#include "atimer.h"
-#include "keymap.h"
#include <ctype.h>
#include <errno.h>
@@ -71,7 +70,8 @@ Boston, MA 02110-1301, USA. */
#include <sys/stat.h>
#include <sys/param.h>
-#include "keyboard.h"
+#include "charset.h"
+#include "coding.h"
#include "frame.h"
#include "dispextern.h"
#include "fontset.h"
@@ -82,9 +82,10 @@ Boston, MA 02110-1301, USA. */
#include "disptab.h"
#include "buffer.h"
#include "window.h"
+#include "keyboard.h"
#include "intervals.h"
-#include "composite.h"
-#include "coding.h"
+#include "atimer.h"
+#include "keymap.h"
/* Set of macros that handle mapping of Mac modifier keys to emacs. */
#define macCtrlKey (NILP (Vmac_reverse_ctrl_meta) ? controlKey : \
@@ -94,8 +95,6 @@ Boston, MA 02110-1301, USA. */
(NILP (Vmac_command_key_is_meta) ? optionKey : cmdKey) \
: controlKey)
#define macAltKey (NILP (Vmac_command_key_is_meta) ? cmdKey : optionKey)
-
-#define mac_window_to_frame(wp) (((mac_output *) GetWRefCon (wp))->mFP)
/* Non-nil means Emacs uses toolkit scroll bars. */
@@ -114,15 +113,6 @@ static int any_help_event_p;
/* Last window where we saw the mouse. Used by mouse-autoselect-window. */
static Lisp_Object last_window;
-/* Non-zero means make use of UNDERLINE_POSITION font properties. */
-
-int x_use_underline_position_properties;
-
-/* Non-zero means draw block and hollow cursor as wide as the glyph
- under it. For example, if a block cursor is over a tab, it will be
- drawn as wide as that tab on the display. */
-
-
/* This is a chain of structures for all the X displays currently in
use. */
@@ -148,8 +138,6 @@ struct mac_display_info one_mac_display_info;
extern struct frame *updating_frame;
-extern int waiting_for_input;
-
/* This is a frame waiting to be auto-raised, within XTread_socket. */
struct frame *pending_autoraise_frame;
@@ -177,7 +165,6 @@ struct frame *pending_autoraise_frame;
/* Where the mouse was last time we reported a mouse event. */
static Rect last_mouse_glyph;
-static Lisp_Object last_mouse_press_frame;
/* The scroll bar in which the last X motion event occurred.
@@ -211,45 +198,24 @@ static int volatile input_signal_count;
static int input_signal_count;
#endif
-/* Used locally within XTread_socket. */
-
-static int x_noop_count;
-
-/* Initial values of argv and argc. */
-
-extern char **initial_argv;
-extern int initial_argc;
-
-extern Lisp_Object Vcommand_line_args, Vsystem_name;
-
-/* Tells if a window manager is present or not. */
-
-extern Lisp_Object Vx_no_window_manager;
-
-extern int errno;
+extern Lisp_Object Vsystem_name;
/* A mask of extra modifier bits to put into every keyboard char. */
-extern int extra_keyboard_modifiers;
+extern EMACS_INT extra_keyboard_modifiers;
/* The keysyms to use for the various modifiers. */
static Lisp_Object Qalt, Qhyper, Qsuper, Qmodifier_value;
-static Lisp_Object Qvendor_specific_keysyms;
-
-#if 0
-extern XrmDatabase x_load_resources P_ ((Display *, char *, char *, char *));
-#endif
-
extern int inhibit_window_system;
#if __MRC__ && !TARGET_API_MAC_CARBON
QDGlobals qd; /* QuickDraw global information structure. */
#endif
+#define mac_window_to_frame(wp) (((mac_output *) GetWRefCon (wp))->mFP)
-struct frame * x_window_to_frame (struct mac_display_info *, WindowPtr);
struct mac_display_info *mac_display_info_for_display (Display *);
static void x_update_window_end P_ ((struct window *, int, int));
static int x_io_error_quitter P_ ((Display *));
@@ -289,17 +255,23 @@ static void x_flush P_ ((struct frame *f));
static void x_update_begin P_ ((struct frame *));
static void x_update_window_begin P_ ((struct window *));
static void x_after_update_window_line P_ ((struct glyph_row *));
+static void x_scroll_bar_report_motion P_ ((struct frame **, Lisp_Object *,
+ enum scroll_bar_part *,
+ Lisp_Object *, Lisp_Object *,
+ unsigned long *));
-static int is_emacs_window (WindowPtr);
+static int is_emacs_window P_ ((WindowPtr));
-int x_bitmap_icon (struct frame *, Lisp_Object);
-void x_make_frame_visible (struct frame *);
-
-extern void window_scroll (Lisp_Object, int, int, int);
+static void XSetFont P_ ((Display *, GC, XFontStruct *));
/* Defined in macmenu.h. */
extern void menubar_selection_callback (FRAME_PTR, int);
-extern void set_frame_menubar (FRAME_PTR, int, int);
+
+#define GC_FORE_COLOR(gc) (&(gc)->fore_color)
+#define GC_BACK_COLOR(gc) (&(gc)->back_color)
+#define GC_FONT(gc) ((gc)->xgcv.font)
+#define MAC_WINDOW_NORMAL_GC(w) (((mac_output *) GetWRefCon (w))->normal_gc)
+
/* X display function emulation */
@@ -312,51 +284,6 @@ XFreePixmap (display, pixmap)
}
-/* Set foreground color for subsequent QuickDraw commands. Assume
- graphic port has already been set. */
-
-static void
-mac_set_forecolor (unsigned long color)
-{
- RGBColor fg_color;
-
- fg_color.red = RED16_FROM_ULONG (color);
- fg_color.green = GREEN16_FROM_ULONG (color);
- fg_color.blue = BLUE16_FROM_ULONG (color);
-
- RGBForeColor (&fg_color);
-}
-
-
-/* Set background color for subsequent QuickDraw commands. Assume
- graphic port has already been set. */
-
-static void
-mac_set_backcolor (unsigned long color)
-{
- RGBColor bg_color;
-
- bg_color.red = RED16_FROM_ULONG (color);
- bg_color.green = GREEN16_FROM_ULONG (color);
- bg_color.blue = BLUE16_FROM_ULONG (color);
-
- RGBBackColor (&bg_color);
-}
-
-/* Set foreground and background color for subsequent QuickDraw
- commands. Assume that the graphic port has already been set. */
-
-static void
-mac_set_colors (gc, bg_save)
- GC gc;
- RGBColor *bg_save;
-{
- if (bg_save)
- GetBackColor (bg_save);
- mac_set_forecolor (gc->foreground);
- mac_set_backcolor (gc->background);
-}
-
/* Mac version of XDrawLine. */
static void
@@ -366,16 +293,12 @@ XDrawLine (display, w, gc, x1, y1, x2, y2)
GC gc;
int x1, y1, x2, y2;
{
- RGBColor old_bg;
-
SetPortWindowPort (w);
- mac_set_colors (gc, &old_bg);
+ RGBForeColor (GC_FORE_COLOR (gc));
MoveTo (x1, y1);
LineTo (x2, y2);
-
- RGBBackColor (&old_bg);
}
void
@@ -391,7 +314,7 @@ mac_draw_line_to_pixmap (display, p, gc, x1, y1, x2, y2)
GetGWorld (&old_port, &old_gdh);
SetGWorld (p, NULL);
- mac_set_colors (gc, NULL);
+ RGBForeColor (GC_FORE_COLOR (gc));
LockPixels (GetGWorldPixMap (p));
MoveTo (x1, y1);
@@ -401,32 +324,38 @@ mac_draw_line_to_pixmap (display, p, gc, x1, y1, x2, y2)
SetGWorld (old_port, old_gdh);
}
-/* Mac version of XClearArea. */
-void
-XClearArea (display, w, x, y, width, height, exposures)
- Display *display;
+static void
+mac_erase_rectangle (w, gc, x, y, width, height)
WindowPtr w;
+ GC gc;
int x, y;
unsigned int width, height;
- int exposures;
{
- struct mac_output *mwp = (mac_output *) GetWRefCon (w);
Rect r;
- XGCValues xgc;
- RGBColor old_bg;
-
- xgc.foreground = mwp->x_compatible.foreground_pixel;
- xgc.background = mwp->x_compatible.background_pixel;
SetPortWindowPort (w);
- mac_set_colors (&xgc, &old_bg);
+ RGBBackColor (GC_BACK_COLOR (gc));
SetRect (&r, x, y, x + width, y + height);
EraseRect (&r);
- RGBBackColor (&old_bg);
+ RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (w)));
+}
+
+
+/* Mac version of XClearArea. */
+
+void
+XClearArea (display, w, x, y, width, height, exposures)
+ Display *display;
+ WindowPtr w;
+ int x, y;
+ unsigned int width, height;
+ int exposures;
+{
+ mac_erase_rectangle (w, MAC_WINDOW_NORMAL_GC (w), x, y, width, height);
}
/* Mac version of XClearWindow. */
@@ -436,15 +365,9 @@ XClearWindow (display, w)
Display *display;
WindowPtr w;
{
- struct mac_output *mwp = (mac_output *) GetWRefCon (w);
- XGCValues xgc;
-
- xgc.foreground = mwp->x_compatible.foreground_pixel;
- xgc.background = mwp->x_compatible.background_pixel;
-
SetPortWindowPort (w);
- mac_set_colors (&xgc, NULL);
+ RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (w)));
#if TARGET_API_MAC_CARBON
{
@@ -472,7 +395,6 @@ mac_draw_bitmap (display, w, gc, x, y, width, height, bits, overlay_p)
{
BitMap bitmap;
Rect r;
- RGBColor old_bg;
bitmap.rowBytes = sizeof(unsigned short);
bitmap.baseAddr = (char *)bits;
@@ -480,7 +402,8 @@ mac_draw_bitmap (display, w, gc, x, y, width, height, bits, overlay_p)
SetPortWindowPort (w);
- mac_set_colors (gc, &old_bg);
+ RGBForeColor (GC_FORE_COLOR (gc));
+ RGBBackColor (GC_BACK_COLOR (gc));
SetRect (&r, x, y, x + width, y + height);
#if TARGET_API_MAC_CARBON
@@ -493,7 +416,7 @@ mac_draw_bitmap (display, w, gc, x, y, width, height, bits, overlay_p)
overlay_p ? srcOr : srcCopy, 0);
#endif /* not TARGET_API_MAC_CARBON */
- RGBBackColor (&old_bg);
+ RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (w)));
}
@@ -599,12 +522,16 @@ XCreatePixmapFromBitmapData (display, w, data, width, height, fg, bg, depth)
char *data;
unsigned int width, height;
unsigned long fg, bg;
- unsigned int depth; /* not used */
+ unsigned int depth;
{
Pixmap pixmap;
BitMap bitmap;
CGrafPtr old_port;
GDHandle old_gdh;
+ static GC gc = NULL; /* not reentrant */
+
+ if (gc == NULL)
+ gc = XCreateGC (display, w, 0, NULL);
pixmap = XCreatePixmap (display, w, width, height, depth);
if (pixmap == NULL)
@@ -613,8 +540,10 @@ XCreatePixmapFromBitmapData (display, w, data, width, height, fg, bg, depth)
GetGWorld (&old_port, &old_gdh);
SetGWorld (pixmap, NULL);
mac_create_bitmap_from_bitmap_data (&bitmap, data, width, height);
- mac_set_forecolor (fg);
- mac_set_backcolor (bg);
+ XSetForeground (display, gc, fg);
+ XSetBackground (display, gc, bg);
+ RGBForeColor (GC_FORE_COLOR (gc));
+ RGBBackColor (GC_BACK_COLOR (gc));
LockPixels (GetGWorldPixMap (pixmap));
#if TARGET_API_MAC_CARBON
CopyBits (&bitmap, GetPortBitMapForCopyBits (pixmap),
@@ -642,16 +571,13 @@ XFillRectangle (display, w, gc, x, y, width, height)
unsigned int width, height;
{
Rect r;
- RGBColor old_bg;
SetPortWindowPort (w);
- mac_set_colors (gc, &old_bg);
+ RGBForeColor (GC_FORE_COLOR (gc));
SetRect (&r, x, y, x + width, y + height);
PaintRect (&r); /* using foreground color of gc */
-
- RGBBackColor (&old_bg);
}
@@ -670,7 +596,7 @@ mac_fill_rectangle_to_pixmap (display, p, gc, x, y, width, height)
GetGWorld (&old_port, &old_gdh);
SetGWorld (p, NULL);
- mac_set_colors (gc, NULL);
+ RGBForeColor (GC_FORE_COLOR (gc));
SetRect (&r, x, y, x + width, y + height);
LockPixels (GetGWorldPixMap (p));
@@ -693,16 +619,13 @@ mac_draw_rectangle (display, w, gc, x, y, width, height)
unsigned int width, height;
{
Rect r;
- RGBColor old_bg;
SetPortWindowPort (w);
- mac_set_colors (gc, &old_bg);
+ RGBForeColor (GC_FORE_COLOR (gc));
SetRect (&r, x, y, x + width + 1, y + height + 1);
FrameRect (&r); /* using foreground color of gc */
-
- RGBBackColor (&old_bg);
}
@@ -723,7 +646,7 @@ mac_draw_rectangle_to_pixmap (display, p, gc, x, y, width, height)
GetGWorld (&old_port, &old_gdh);
SetGWorld (p, NULL);
- mac_set_colors (gc, NULL);
+ RGBForeColor (GC_FORE_COLOR (gc));
SetRect (&r, x, y, x + width + 1, y + height + 1);
LockPixels (GetGWorldPixMap (p));
@@ -745,9 +668,6 @@ mac_draw_string_common (display, w, gc, x, y, buf, nchars, mode,
char *buf;
int nchars, mode, bytes_per_char;
{
- RGBColor old_bg;
-
- SetPortWindowPort (w);
#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
UInt32 textFlags, savedFlags;
if (!NILP(Vmac_use_core_graphics)) {
@@ -756,17 +676,22 @@ mac_draw_string_common (display, w, gc, x, y, buf, nchars, mode,
}
#endif
- mac_set_colors (gc, &old_bg);
+ SetPortWindowPort (w);
+
+ RGBForeColor (GC_FORE_COLOR (gc));
+ if (mode != srcOr)
+ RGBBackColor (GC_BACK_COLOR (gc));
- TextFont (gc->font->mac_fontnum);
- TextSize (gc->font->mac_fontsize);
- TextFace (gc->font->mac_fontface);
+ TextFont (GC_FONT (gc)->mac_fontnum);
+ TextSize (GC_FONT (gc)->mac_fontsize);
+ TextFace (GC_FONT (gc)->mac_fontface);
TextMode (mode);
MoveTo (x, y);
DrawText (buf, 0, nchars * bytes_per_char);
- RGBBackColor (&old_bg);
+ if (mode != srcOr)
+ RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (w)));
#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
if (!NILP(Vmac_use_core_graphics))
SwapQDTextFlags(savedFlags);
@@ -871,6 +796,8 @@ mac_copy_area (display, src, dest, gc, src_x, src_y, width, height, dest_x,
&src_r, &dest_r, srcCopy, 0);
#endif /* not TARGET_API_MAC_CARBON */
UnlockPixels (GetGWorldPixMap (src));
+
+ RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (dest)));
}
@@ -909,26 +836,10 @@ mac_copy_area_with_mask (display, src, mask, dest, gc, src_x, src_y,
#endif /* not TARGET_API_MAC_CARBON */
UnlockPixels (GetGWorldPixMap (mask));
UnlockPixels (GetGWorldPixMap (src));
-}
-
-
-#if 0
-/* Convert a pair of local coordinates to global (screen) coordinates.
- Assume graphic port has been properly set. */
-static void
-local_to_global_coord (short *h, short *v)
-{
- Point p;
- p.h = *h;
- p.v = *v;
-
- LocalToGlobal (&p);
-
- *h = p.h;
- *v = p.v;
+ RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (dest)));
}
-#endif
+
/* Mac replacement for XCopyArea: used only for scrolling. */
@@ -953,31 +864,17 @@ mac_scroll_area (display, w, gc, src_x, src_y, width, height, dest_x, dest_y)
Rect src_r, dest_r;
SetPort (w);
-#if 0
- mac_set_colors (gc, NULL);
-#endif
SetRect (&src_r, src_x, src_y, src_x + width, src_y + height);
SetRect (&dest_r, dest_x, dest_y, dest_x + width, dest_y + height);
-#if 0
- /* Need to use global coordinates and screenBits since src and dest
- areas overlap in general. */
- local_to_global_coord (&src_r.left, &src_r.top);
- local_to_global_coord (&src_r.right, &src_r.bottom);
- local_to_global_coord (&dest_r.left, &dest_r.top);
- local_to_global_coord (&dest_r.right, &dest_r.bottom);
-
- CopyBits (&qd.screenBits, &qd.screenBits, &src_r, &dest_r, srcCopy, 0);
-#else
/* In Color QuickDraw, set ForeColor and BackColor as follows to avoid
color mapping in CopyBits. Otherwise, it will be slow. */
ForeColor (blackColor);
BackColor (whiteColor);
CopyBits (&(w->portBits), &(w->portBits), &src_r, &dest_r, srcCopy, 0);
- mac_set_colors (gc, NULL);
-#endif
+ RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (w)));
#endif /* not TARGET_API_MAC_CARBON */
}
@@ -1067,28 +964,37 @@ mac_copy_area_with_mask_to_pixmap (display, src, mask, dest, gc, src_x, src_y,
/* Mac replacement for XChangeGC. */
static void
-XChangeGC (void * ignore, XGCValues* gc, unsigned long mask,
- XGCValues *xgcv)
+XChangeGC (display, gc, mask, xgcv)
+ Display *display;
+ GC gc;
+ unsigned long mask;
+ XGCValues *xgcv;
{
if (mask & GCForeground)
- gc->foreground = xgcv->foreground;
+ XSetForeground (display, gc, xgcv->foreground);
if (mask & GCBackground)
- gc->background = xgcv->background;
+ XSetBackground (display, gc, xgcv->background);
if (mask & GCFont)
- gc->font = xgcv->font;
+ XSetFont (display, gc, xgcv->font);
}
/* Mac replacement for XCreateGC. */
-XGCValues *
-XCreateGC (void * ignore, Window window, unsigned long mask,
- XGCValues *xgcv)
+GC
+XCreateGC (display, window, mask, xgcv)
+ Display *display;
+ Window window;
+ unsigned long mask;
+ XGCValues *xgcv;
{
- XGCValues *gc = (XGCValues *) xmalloc (sizeof (XGCValues));
- bzero (gc, sizeof (XGCValues));
+ GC gc = xmalloc (sizeof (*gc));
- XChangeGC (ignore, gc, mask, xgcv);
+ if (gc)
+ {
+ bzero (gc, sizeof (*gc));
+ XChangeGC (display, gc, mask, xgcv);
+ }
return gc;
}
@@ -1108,10 +1014,18 @@ XFreeGC (display, gc)
/* Mac replacement for XGetGCValues. */
static void
-XGetGCValues (void* ignore, XGCValues *gc,
- unsigned long mask, XGCValues *xgcv)
+XGetGCValues (display, gc, mask, xgcv)
+ Display *display;
+ GC gc;
+ unsigned long mask;
+ XGCValues *xgcv;
{
- XChangeGC (ignore, xgcv, mask, gc);
+ if (mask & GCForeground)
+ xgcv->foreground = gc->xgcv.foreground;
+ if (mask & GCBackground)
+ xgcv->background = gc->xgcv.background;
+ if (mask & GCFont)
+ xgcv->font = gc->xgcv.font;
}
@@ -1123,7 +1037,13 @@ XSetForeground (display, gc, color)
GC gc;
unsigned long color;
{
- gc->foreground = color;
+ if (gc->xgcv.foreground != color)
+ {
+ gc->xgcv.foreground = color;
+ gc->fore_color.red = RED16_FROM_ULONG (color);
+ gc->fore_color.green = GREEN16_FROM_ULONG (color);
+ gc->fore_color.blue = BLUE16_FROM_ULONG (color);
+ }
}
@@ -1135,7 +1055,25 @@ XSetBackground (display, gc, color)
GC gc;
unsigned long color;
{
- gc->background = color;
+ if (gc->xgcv.background != color)
+ {
+ gc->xgcv.background = color;
+ gc->back_color.red = RED16_FROM_ULONG (color);
+ gc->back_color.green = GREEN16_FROM_ULONG (color);
+ gc->back_color.blue = BLUE16_FROM_ULONG (color);
+ }
+}
+
+
+/* Mac replacement for XSetFont. */
+
+static void
+XSetFont (display, gc, font)
+ Display *display;
+ GC gc;
+ XFontStruct *font;
+{
+ gc->xgcv.font = font;
}
@@ -1182,19 +1120,6 @@ XSetWindowBackground (display, w, color)
#endif
}
-
-/* Mac replacement for XSetFont. */
-
-static void
-XSetFont (display, gc, font)
- Display *display;
- GC gc;
- XFontStruct *font;
-{
- gc->font = font;
-}
-
-
/* x_sync is a no-op on Mac. */
void
x_sync (f)
@@ -1345,7 +1270,6 @@ mac_draw_vertical_window_border (w, x, y0, y1)
f->output_data.mac->normal_gc, x, y0, x, y1);
}
-
/* End update of window W (which is equal to updated_window).
Draw vertical borders between horizontally adjacent windows, and
@@ -1357,7 +1281,7 @@ mac_draw_vertical_window_border (w, x, y0, y1)
W may be a menu bar pseudo-window in case we don't have X toolkit
support. Such windows don't have a cursor, so don't display it
- here. */
+ here. */
static void
x_update_window_end (w, cursor_on_p, mouse_face_overwritten_p)
@@ -1390,14 +1314,6 @@ x_update_window_end (w, cursor_on_p, mouse_face_overwritten_p)
dpyinfo->mouse_face_window = Qnil;
}
-#if 0
- /* Unhide the caret. This won't actually show the cursor, unless it
- was visible before the corresponding call to HideCaret in
- x_update_window_begin. */
- if (w32_use_visible_system_caret)
- SendMessage (w32_system_caret_hwnd, WM_EMACS_SHOW_CARET, 0, 0);
-#endif
-
updated_window = NULL;
}
@@ -1483,19 +1399,18 @@ x_after_update_window_line (desired_row)
height > 0))
{
int y = WINDOW_TO_FRAME_PIXEL_Y (w, max (0, desired_row->y));
+
/* Internal border is drawn below the tool bar. */
if (WINDOWP (f->tool_bar_window)
&& w == XWINDOW (f->tool_bar_window))
y -= width;
BLOCK_INPUT;
-
XClearArea (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
0, y, width, height, 0);
XClearArea (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
FRAME_PIXEL_WIDTH (f) - width, y,
width, height, 0);
-
UNBLOCK_INPUT;
}
}
@@ -1515,7 +1430,6 @@ x_draw_fringe_bitmap (w, row, p)
struct frame *f = XFRAME (WINDOW_FRAME (w));
Display *display = FRAME_MAC_DISPLAY (f);
WindowPtr window = FRAME_MAC_WINDOW (f);
- XGCValues gcv;
GC gc = f->output_data.mac->normal_gc;
struct face *face = p->face;
int rowY;
@@ -1539,9 +1453,6 @@ x_draw_fringe_bitmap (w, row, p)
if (p->bx >= 0 && !p->overlay_p)
{
- XGCValues gcv;
- gcv.foreground = face->background;
-
#if 0 /* MAC_TODO: stipple */
/* In case the same realized face is used for fringes and
for something displayed in the text (e.g. face `region' on
@@ -1553,9 +1464,7 @@ x_draw_fringe_bitmap (w, row, p)
XSetForeground (FRAME_X_DISPLAY (f), face->gc, face->background);
#endif
- XFillRectangle (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
- &gcv,
- p->bx, p->by, p->nx, p->ny);
+ mac_erase_rectangle (window, face->gc, p->bx, p->by, p->nx, p->ny);
#if 0 /* MAC_TODO: stipple */
if (!face->stipple)
@@ -1566,21 +1475,24 @@ x_draw_fringe_bitmap (w, row, p)
if (p->which)
{
unsigned short *bits = p->bits + p->dh;
+ XGCValues gcv;
- gcv.foreground = (p->cursor_p
- ? (p->overlay_p ? face->background
- : f->output_data.mac->cursor_pixel)
- : face->foreground);
- gcv.background = face->background;
-
- mac_draw_bitmap (display, window, &gcv, p->x, p->y,
+ XGetGCValues (display, face->gc, GCForeground, &gcv);
+ XSetForeground (display, face->gc,
+ (p->cursor_p
+ ? (p->overlay_p ? face->background
+ : f->output_data.mac->cursor_pixel)
+ : face->foreground));
+ mac_draw_bitmap (display, window, face->gc, p->x, p->y,
p->wd, p->h, bits, p->overlay_p);
+ XSetForeground (display, face->gc, gcv.foreground);
}
mac_reset_clipping (display, window);
}
+
/* This is called when starting Emacs and when restarting after
suspend. When starting Emacs, no window is mapped. And nothing
must be done to Emacs's own window if it is suspended (though that
@@ -1599,6 +1511,7 @@ XTreset_terminal_modes ()
{
}
+
/***********************************************************************
Display Iterator
@@ -1786,6 +1699,7 @@ mac_encode_char (c, char2b, font_info, two_byte_p)
***********************************************************************/
+
static void x_set_glyph_string_clipping P_ ((struct glyph_string *));
static void x_set_glyph_string_gc P_ ((struct glyph_string *));
static void x_draw_glyph_string_background P_ ((struct glyph_string *,
@@ -1794,6 +1708,7 @@ static void x_draw_glyph_string_foreground P_ ((struct glyph_string *));
static void x_draw_composite_glyph_string_foreground P_ ((struct glyph_string *));
static void x_draw_glyph_string_box P_ ((struct glyph_string *));
static void x_draw_glyph_string P_ ((struct glyph_string *));
+static void mac_compute_glyph_string_overhangs P_ ((struct glyph_string *));
static void x_set_cursor_gc P_ ((struct glyph_string *));
static void x_set_mode_line_face_gc P_ ((struct glyph_string *));
static void x_set_mouse_face_gc P_ ((struct glyph_string *));
@@ -2045,10 +1960,7 @@ x_clear_glyph_string_rect (s, x, y, w, h)
struct glyph_string *s;
int x, y, w, h;
{
- XGCValues xgcv;
-
- xgcv.foreground = s->gc->background;
- XFillRectangle (s->display, s->window, &xgcv, x, y, w, h);
+ mac_erase_rectangle (s->window, s->gc, x, y, w, h);
}
@@ -2636,27 +2548,29 @@ x_draw_box_rect (s, left_x, top_y, right_x, bottom_y, width,
{
XGCValues xgcv;
- xgcv.foreground = s->face->box_color;
+ XGetGCValues (s->display, s->gc, GCForeground, &xgcv);
+ XSetForeground (s->display, s->gc, s->face->box_color);
mac_set_clip_rectangle (s->display, s->window, clip_rect);
/* Top. */
- XFillRectangle (s->display, s->window, &xgcv,
+ XFillRectangle (s->display, s->window, s->gc,
left_x, top_y, right_x - left_x + 1, width);
/* Left. */
if (left_p)
- XFillRectangle (s->display, s->window, &xgcv,
+ XFillRectangle (s->display, s->window, s->gc,
left_x, top_y, width, bottom_y - top_y + 1);
/* Bottom. */
- XFillRectangle (s->display, s->window, &xgcv,
+ XFillRectangle (s->display, s->window, s->gc,
left_x, bottom_y - width + 1, right_x - left_x + 1, width);
/* Right. */
if (right_p)
- XFillRectangle (s->display, s->window, &xgcv,
+ XFillRectangle (s->display, s->window, s->gc,
right_x - width + 1, top_y, width, bottom_y - top_y + 1);
+ XSetForeground (s->display, s->gc, xgcv.foreground);
mac_reset_clipping (s->display, s->window);
}
@@ -3075,13 +2989,7 @@ x_draw_stretch_glyph_string (s)
}
else
#endif /* MAC_TODO */
- {
- XGCValues xgcv;
- XGetGCValues (s->display, gc, GCForeground | GCBackground, &xgcv);
- XSetForeground (s->display, gc, xgcv.background);
- XFillRectangle (s->display, s->window, gc, x, y, w, h);
- XSetForeground (s->display, gc, xgcv.foreground);
- }
+ mac_erase_rectangle (s->window, gc, x, y, w, h);
mac_reset_clipping (s->display, s->window);
}
@@ -3397,7 +3305,6 @@ XTring_bell ()
}
}
-
/* Specify how many text lines, from the top of the window,
should be affected by insert-lines and delete-lines operations.
@@ -3832,43 +3739,6 @@ x_get_keysym_name (keysym)
-#if 0
-/* Mouse clicks and mouse movement. Rah. */
-
-/* Prepare a mouse-event in *RESULT for placement in the input queue.
-
- If the event is a button press, then note that we have grabbed
- the mouse. */
-
-static Lisp_Object
-construct_mouse_click (result, event, f)
- struct input_event *result;
- EventRecord *event;
- struct frame *f;
-{
- Point mouseLoc;
-
- result->kind = MOUSE_CLICK_EVENT;
- result->code = 0; /* only one mouse button */
- result->timestamp = event->when;
- result->modifiers = event->what == mouseDown ? down_modifier : up_modifier;
-
- mouseLoc = event->where;
-
- SetPortWindowPort (FRAME_MAC_WINDOW (f));
-
- GlobalToLocal (&mouseLoc);
- XSETINT (result->x, mouseLoc.h);
- XSETINT (result->y, mouseLoc.v);
-
- XSETFRAME (result->frame_or_window, f);
-
- result->arg = Qnil;
- return Qnil;
-}
-#endif
-
-
/* Function to report a mouse movement to the mainstream Emacs code.
The input handler calls this.
@@ -3924,18 +3794,11 @@ note_mouse_movement (frame, pos)
}
}
-/* This is used for debugging, to turn off note_mouse_highlight. */
-
-int disable_mouse_highlight;
-
-
/************************************************************************
Mouse Face
************************************************************************/
-static struct scroll_bar *x_window_to_scroll_bar ();
-static void x_scroll_bar_report_motion ();
static int glyph_rect P_ ((struct frame *f, int, int, Rect *));
@@ -4147,20 +4010,16 @@ static OSStatus install_scroll_bar_timer P_ ((void));
static OSStatus set_scroll_bar_timer P_ ((EventTimerInterval));
static int control_part_code_to_scroll_bar_part P_ ((ControlPartCode));
static void construct_scroll_bar_click P_ ((struct scroll_bar *, int,
- unsigned long,
struct input_event *));
static OSErr get_control_part_bounds P_ ((ControlHandle, ControlPartCode,
Rect *));
static void x_scroll_bar_handle_press P_ ((struct scroll_bar *,
ControlPartCode,
- unsigned long,
struct input_event *));
static void x_scroll_bar_handle_release P_ ((struct scroll_bar *,
- unsigned long,
struct input_event *));
static void x_scroll_bar_handle_drag P_ ((WindowPtr, struct scroll_bar *,
- Point, unsigned long,
- struct input_event *));
+ Point, struct input_event *));
static void x_set_toolkit_scroll_bar_thumb P_ ((struct scroll_bar *,
int, int, int));
@@ -4259,10 +4118,9 @@ control_part_code_to_scroll_bar_part (part_code)
}
static void
-construct_scroll_bar_click (bar, part, timestamp, bufp)
+construct_scroll_bar_click (bar, part, bufp)
struct scroll_bar *bar;
int part;
- unsigned long timestamp;
struct input_event *bufp;
{
bufp->kind = SCROLL_BAR_CLICK_EVENT;
@@ -4270,7 +4128,6 @@ construct_scroll_bar_click (bar, part, timestamp, bufp)
bufp->arg = Qnil;
bufp->part = part;
bufp->code = 0;
- bufp->timestamp = timestamp;
XSETINT (bufp->x, 0);
XSETINT (bufp->y, 0);
bufp->modifiers = 0;
@@ -4294,10 +4151,9 @@ get_control_part_bounds (ch, part_code, rect)
}
static void
-x_scroll_bar_handle_press (bar, part_code, timestamp, bufp)
+x_scroll_bar_handle_press (bar, part_code, bufp)
struct scroll_bar *bar;
ControlPartCode part_code;
- unsigned long timestamp;
struct input_event *bufp;
{
int part = control_part_code_to_scroll_bar_part (part_code);
@@ -4307,7 +4163,7 @@ x_scroll_bar_handle_press (bar, part_code, timestamp, bufp)
if (part != scroll_bar_handle)
{
- construct_scroll_bar_click (bar, part, timestamp, bufp);
+ construct_scroll_bar_click (bar, part, bufp);
HiliteControl (SCROLL_BAR_CONTROL_HANDLE (bar), part_code);
set_scroll_bar_timer (SCROLL_BAR_FIRST_DELAY);
}
@@ -4318,14 +4174,13 @@ x_scroll_bar_handle_press (bar, part_code, timestamp, bufp)
}
static void
-x_scroll_bar_handle_release (bar, timestamp, bufp)
+x_scroll_bar_handle_release (bar, bufp)
struct scroll_bar *bar;
- unsigned long timestamp;
struct input_event *bufp;
{
if (last_scroll_bar_part != scroll_bar_handle
|| !GC_NILP (bar->dragging))
- construct_scroll_bar_click (bar, scroll_bar_end_scroll, timestamp, bufp);
+ construct_scroll_bar_click (bar, scroll_bar_end_scroll, bufp);
HiliteControl (SCROLL_BAR_CONTROL_HANDLE (bar), 0);
set_scroll_bar_timer (kEventDurationForever);
@@ -4336,11 +4191,10 @@ x_scroll_bar_handle_release (bar, timestamp, bufp)
}
static void
-x_scroll_bar_handle_drag (win, bar, mouse_pos, timestamp, bufp)
+x_scroll_bar_handle_drag (win, bar, mouse_pos, bufp)
WindowPtr win;
struct scroll_bar *bar;
Point mouse_pos;
- unsigned long timestamp;
struct input_event *bufp;
{
ControlHandle ch = SCROLL_BAR_CONTROL_HANDLE (bar);
@@ -4360,13 +4214,13 @@ x_scroll_bar_handle_drag (win, bar, mouse_pos, timestamp, bufp)
top_range = (XINT (bar->track_height) - (r.bottom - r.top)) *
(1.0 + (float) GetControlViewSize (ch) / GetControl32BitMaximum (ch))
+ .5;
-
+
if (top < 0)
top = 0;
if (top > top_range)
top = top_range;
- construct_scroll_bar_click (bar, scroll_bar_handle, timestamp, bufp);
+ construct_scroll_bar_click (bar, scroll_bar_handle, bufp);
XSETINT (bufp->x, top);
XSETINT (bufp->y, top_range);
}
@@ -4404,7 +4258,7 @@ x_scroll_bar_handle_drag (win, bar, mouse_pos, timestamp, bufp)
else if (part != last_scroll_bar_part
|| scroll_bar_timer_event_posted_p)
{
- construct_scroll_bar_click (bar, part, timestamp, bufp);
+ construct_scroll_bar_click (bar, part, bufp);
last_scroll_bar_part = part;
HiliteControl (SCROLL_BAR_CONTROL_HANDLE (bar), part_code);
set_scroll_bar_timer (SCROLL_BAR_CONTINUOUS_DELAY);
@@ -4475,11 +4329,11 @@ x_scroll_bar_create (w, top, left, width, height, disp_top, disp_height)
r.bottom = disp_top + disp_height;
#if TARGET_API_MAC_CARBON
- ch = NewControl (FRAME_MAC_WINDOW (f), &r, "\p", 1, 0, 0, 0,
- kControlScrollBarProc, (long) bar);
+ ch = NewControl (FRAME_MAC_WINDOW (f), &r, "\p", width < disp_height,
+ 0, 0, 0, kControlScrollBarProc, (long) bar);
#else
- ch = NewControl (FRAME_MAC_WINDOW (f), &r, "\p", 1, 0, 0, 0,
- scrollBarProc, (long) bar);
+ ch = NewControl (FRAME_MAC_WINDOW (f), &r, "\p", width < disp_height,
+ 0, 0, 0, scrollBarProc, (long) bar);
#endif
SET_SCROLL_BAR_CONTROL_HANDLE (bar, ch);
@@ -4604,10 +4458,12 @@ x_scroll_bar_remove (bar)
UNBLOCK_INPUT;
}
+
/* Set the handle of the vertical scroll bar for WINDOW to indicate
that we are displaying PORTION characters out of a total of WHOLE
characters, starting at POSITION. If WINDOW has no scroll bar,
create one. */
+
static void
XTset_vertical_scroll_bar (w, portion, whole, position)
struct window *w;
@@ -4684,13 +4540,10 @@ XTset_vertical_scroll_bar (w, portion, whole, position)
&& XINT (bar->width) == sb_width
&& XINT (bar->height) == height))
{
- /* Clear areas not covered by the scroll bar because it's not as
- wide as the area reserved for it . This makes sure a
- previous mode line display is cleared after C-x 2 C-x 1, for
- example. */
- int area_width = WINDOW_SCROLL_BAR_AREA_WIDTH (w);
+ /* Since toolkit scroll bars are smaller than the space reserved
+ for them on the frame, we have to clear "under" them. */
XClearArea (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
- left, top, area_width, height, 0);
+ left, top, width, height, 0);
#if 0
if (sb_left + sb_width >= FRAME_PIXEL_WIDTH (f))
@@ -4702,7 +4555,8 @@ XTset_vertical_scroll_bar (w, portion, whole, position)
MoveControl (ch, sb_left + VERTICAL_SCROLL_BAR_WIDTH_TRIM, disp_top);
SizeControl (ch, sb_width - VERTICAL_SCROLL_BAR_WIDTH_TRIM * 2,
disp_height);
- ShowControl (ch);
+ if (sb_width < disp_height)
+ ShowControl (ch);
/* Remember new settings. */
XSETINT (bar->left, sb_left);
@@ -4805,6 +4659,7 @@ XTredeem_scroll_bar (window)
struct window *window;
{
struct scroll_bar *bar;
+ struct frame *f;
/* We can't redeem this window's scroll bar if it doesn't have one. */
if (NILP (window->vertical_scroll_bar))
@@ -4813,36 +4668,33 @@ XTredeem_scroll_bar (window)
bar = XSCROLL_BAR (window->vertical_scroll_bar);
/* Unlink it from the condemned list. */
- {
- FRAME_PTR f = XFRAME (WINDOW_FRAME (window));
-
- if (NILP (bar->prev))
- {
- /* If the prev pointer is nil, it must be the first in one of
- the lists. */
- if (EQ (FRAME_SCROLL_BARS (f), window->vertical_scroll_bar))
- /* It's not condemned. Everything's fine. */
- return;
- else if (EQ (FRAME_CONDEMNED_SCROLL_BARS (f),
- window->vertical_scroll_bar))
- FRAME_CONDEMNED_SCROLL_BARS (f) = bar->next;
- else
- /* If its prev pointer is nil, it must be at the front of
- one or the other! */
- abort ();
- }
- else
- XSCROLL_BAR (bar->prev)->next = bar->next;
+ f = XFRAME (WINDOW_FRAME (window));
+ if (NILP (bar->prev))
+ {
+ /* If the prev pointer is nil, it must be the first in one of
+ the lists. */
+ if (EQ (FRAME_SCROLL_BARS (f), window->vertical_scroll_bar))
+ /* It's not condemned. Everything's fine. */
+ return;
+ else if (EQ (FRAME_CONDEMNED_SCROLL_BARS (f),
+ window->vertical_scroll_bar))
+ FRAME_CONDEMNED_SCROLL_BARS (f) = bar->next;
+ else
+ /* If its prev pointer is nil, it must be at the front of
+ one or the other! */
+ abort ();
+ }
+ else
+ XSCROLL_BAR (bar->prev)->next = bar->next;
- if (! NILP (bar->next))
- XSCROLL_BAR (bar->next)->prev = bar->prev;
+ if (! NILP (bar->next))
+ XSCROLL_BAR (bar->next)->prev = bar->prev;
- bar->next = FRAME_SCROLL_BARS (f);
- bar->prev = Qnil;
- XSETVECTOR (FRAME_SCROLL_BARS (f), bar);
- if (! NILP (bar->next))
- XSETVECTOR (XSCROLL_BAR (bar->next)->prev, bar);
- }
+ bar->next = FRAME_SCROLL_BARS (f);
+ bar->prev = Qnil;
+ XSETVECTOR (FRAME_SCROLL_BARS (f), bar);
+ if (! NILP (bar->next))
+ XSETVECTOR (XSCROLL_BAR (bar->next)->prev, bar);
}
/* Remove all scroll bars on FRAME that haven't been saved since the
@@ -4981,8 +4833,8 @@ x_scroll_bar_note_movement (bar, y_pos, t)
#endif /* !USE_TOOLKIT_SCROLL_BARS */
-/* Return information to the user about the current position of the
- mouse on the scroll bar. */
+/* Return information to the user about the current position of the mouse
+ on the scroll bar. */
static void
x_scroll_bar_report_motion (fp, bar_window, part, x, y, time)
@@ -5500,6 +5352,7 @@ mac_get_window_bounds (f, inner, outer)
}
+
/* Calculate the absolute position in frame F
from its current recorded position values and gravity. */
@@ -5731,7 +5584,6 @@ x_set_mouse_pixel_position (f, pix_x, pix_y)
UNBLOCK_INPUT;
#endif
}
-
/* focus shifting, raising and lowering. */
@@ -5758,6 +5610,7 @@ x_unfocus_frame (f)
}
/* Raise frame F. */
+
void
x_raise_frame (f)
struct frame *f;
@@ -5771,6 +5624,7 @@ x_raise_frame (f)
}
/* Lower frame F. */
+
void
x_lower_frame (f)
struct frame *f;
@@ -5796,6 +5650,53 @@ XTframe_raise_lower (f, raise_flag)
/* Change of visibility. */
+static void
+mac_handle_visibility_change (f)
+ struct frame *f;
+{
+ WindowPtr wp = FRAME_MAC_WINDOW (f);
+ int visible = 0, iconified = 0;
+ struct input_event buf;
+
+ if (IsWindowVisible (wp))
+ if (IsWindowCollapsed (wp))
+ iconified = 1;
+ else
+ visible = 1;
+
+ if (!f->async_visible && visible)
+ {
+ if (f->iconified)
+ {
+ /* wait_reading_process_output will notice this and update
+ the frame's display structures. If we were made
+ invisible, we should not set garbaged, because that stops
+ redrawing on Update events. */
+ SET_FRAME_GARBAGED (f);
+
+ EVENT_INIT (buf);
+ buf.kind = DEICONIFY_EVENT;
+ XSETFRAME (buf.frame_or_window, f);
+ kbd_buffer_store_event (&buf);
+ }
+ else if (! NILP (Vframe_list) && ! NILP (XCDR (Vframe_list)))
+ /* Force a redisplay sooner or later to update the
+ frame titles in case this is the second frame. */
+ record_asynch_buffer_change ();
+ }
+ else if (f->async_visible && !visible)
+ if (iconified)
+ {
+ EVENT_INIT (buf);
+ buf.kind = ICONIFY_EVENT;
+ XSETFRAME (buf.frame_or_window, f);
+ kbd_buffer_store_event (&buf);
+ }
+
+ f->async_visible = visible;
+ f->async_iconified = iconified;
+}
+
/* This tries to wait until the frame is really visible.
However, if the window manager asks the user where to position
the frame, this will return before the user finishes doing that.
@@ -5820,29 +5721,32 @@ x_make_frame_visible (f)
before the window gets really visible. */
if (! FRAME_ICONIFIED_P (f)
&& ! f->output_data.mac->asked_for_visible)
- x_set_offset (f, f->left_pos, f->top_pos, 0);
-
- f->output_data.mac->asked_for_visible = 1;
-
#if TARGET_API_MAC_CARBON
- if (!(FRAME_SIZE_HINTS (f)->flags & (USPosition | PPosition)))
- {
- struct frame *sf = SELECTED_FRAME ();
- if (!FRAME_MAC_P (sf))
- RepositionWindow (FRAME_MAC_WINDOW (f), NULL,
- kWindowCenterOnMainScreen);
- else
- RepositionWindow (FRAME_MAC_WINDOW (f),
- FRAME_MAC_WINDOW (sf),
+ if (!(FRAME_SIZE_HINTS (f)->flags & (USPosition | PPosition)))
+ {
+ struct frame *sf = SELECTED_FRAME ();
+ if (!FRAME_MAC_P (sf))
+ RepositionWindow (FRAME_MAC_WINDOW (f), NULL,
+ kWindowCenterOnMainScreen);
+ else
+ RepositionWindow (FRAME_MAC_WINDOW (f),
+ FRAME_MAC_WINDOW (sf),
#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
- kWindowCascadeStartAtParentWindowScreen
+ kWindowCascadeStartAtParentWindowScreen
#else
- kWindowCascadeOnParentWindowScreen
+ kWindowCascadeOnParentWindowScreen
#endif
- );
- x_real_positions (f, &f->left_pos, &f->top_pos);
- }
+ );
+ x_real_positions (f, &f->left_pos, &f->top_pos);
+ }
+ else
#endif
+ x_set_offset (f, f->left_pos, f->top_pos, 0);
+
+ f->output_data.mac->asked_for_visible = 1;
+
+ SelectWindow (FRAME_MAC_WINDOW (f));
+ CollapseWindow (FRAME_MAC_WINDOW (f), false);
ShowWindow (FRAME_MAC_WINDOW (f));
}
@@ -5901,9 +5805,14 @@ void
x_make_frame_invisible (f)
struct frame *f;
{
+ /* A deactivate event does not occur when the last visible frame is
+ made invisible. So if we clear the highlight here, it will not
+ be rehighlighted when it is made visible. */
+#if 0
/* Don't keep the highlight on an invisible frame. */
if (FRAME_MAC_DISPLAY_INFO (f)->x_highlight_frame == f)
FRAME_MAC_DISPLAY_INFO (f)->x_highlight_frame = 0;
+#endif
BLOCK_INPUT;
@@ -5916,17 +5825,11 @@ x_make_frame_invisible (f)
HideWindow (FRAME_MAC_WINDOW (f));
- /* We can't distinguish this from iconification
- just by the event that we get from the server.
- So we can't win using the usual strategy of letting
- FRAME_SAMPLE_VISIBILITY set this. So do it by hand,
- and synchronize with the server to make sure we agree. */
- f->visible = 0;
- FRAME_ICONIFIED_P (f) = 0;
- f->async_visible = 0;
- f->async_iconified = 0;
-
UNBLOCK_INPUT;
+
+#if !USE_CARBON_EVENTS
+ mac_handle_visibility_change (f);
+#endif
}
/* Change window state from mapped to iconified. */
@@ -5935,21 +5838,37 @@ void
x_iconify_frame (f)
struct frame *f;
{
+ OSErr err;
+
+ /* A deactivate event does not occur when the last visible frame is
+ iconified. So if we clear the highlight here, it will not be
+ rehighlighted when it is deiconified. */
+#if 0
/* Don't keep the highlight on an invisible frame. */
if (FRAME_MAC_DISPLAY_INFO (f)->x_highlight_frame == f)
FRAME_MAC_DISPLAY_INFO (f)->x_highlight_frame = 0;
+#endif
-#if 0
- /* Review: Since window is still visible in dock, still allow updates? */
if (f->async_iconified)
return;
-#endif
BLOCK_INPUT;
- CollapseWindow (FRAME_MAC_WINDOW (f), true);
+ FRAME_SAMPLE_VISIBILITY (f);
+
+ if (! FRAME_VISIBLE_P (f))
+ ShowWindow (FRAME_MAC_WINDOW (f));
+
+ err = CollapseWindow (FRAME_MAC_WINDOW (f), true);
UNBLOCK_INPUT;
+
+ if (err != noErr)
+ error ("Can't notify window manager of iconification");
+
+#if !USE_CARBON_EVENTS
+ mac_handle_visibility_change (f);
+#endif
}
@@ -6179,9 +6098,9 @@ x_get_font_info (f, font_idx)
}
/* the global font name table */
-char **font_name_table = NULL;
-int font_name_table_size = 0;
-int font_name_count = 0;
+static char **font_name_table = NULL;
+static int font_name_table_size = 0;
+static int font_name_count = 0;
/* Alist linking character set strings to Mac text encoding and Emacs
coding system. */
@@ -7338,7 +7257,7 @@ x_load_font (f, fontname, size)
/* Set global flag fonts_changed_p to non-zero if the font loaded
has a character with a smaller width than any other character
- before, or if the font loaded has a smalle>r height than any
+ before, or if the font loaded has a smaller height than any
other font loaded before. If this happens, it will make a
glyph matrix reallocation necessary. */
fonts_changed_p |= x_compute_min_glyph_bounds (f);
@@ -7435,22 +7354,6 @@ x_find_ccl_program (fontp)
#define MIN_DOC_SIZE 64
#define MAX_DOC_SIZE 32767
-#if 0
-/* sleep time for WaitNextEvent */
-#define WNE_SLEEP_AT_SUSPEND 10
-#define WNE_SLEEP_AT_RESUME 1
-
-/* the flag appl_is_suspended is used both for determining the sleep
- time to be passed to WaitNextEvent and whether the cursor should be
- drawn when updating the display. The cursor is turned off when
- Emacs is suspended. Redrawing it is unnecessary and what needs to
- be done depends on whether the cursor lies inside or outside the
- redraw region. So we might as well skip drawing it when Emacs is
- suspended. */
-static Boolean app_is_suspended = false;
-static long app_sleep_time = WNE_SLEEP_AT_RESUME;
-#endif
-
#define EXTRA_STACK_ALLOC (256 * 1024)
#define ARGV_STRING_LIST_ID 129
@@ -7485,19 +7388,17 @@ Lisp_Object Vmac_pass_command_to_system;
/* If Non-nil, the Mac "Control" key is passed on to the Mac Toolbox
for processing before Emacs sees it. */
Lisp_Object Vmac_pass_control_to_system;
+#endif
/* Points to the variable `inev' in the function XTread_socket. It is
- used for passing an input event to the function back from a Carbon
- event handler. */
+ used for passing an input event to the function back from
+ Carbon/Apple event handlers. */
static struct input_event *read_socket_inev = NULL;
-#endif
/* Set in term/mac-win.el to indicate that event loop can now generate
drag and drop events. */
Lisp_Object Qmac_ready_for_drag_n_drop;
-Lisp_Object drag_and_drop_file_list;
-
Point saved_menu_event_location;
/* Apple Events */
@@ -7777,37 +7678,30 @@ do_window_update (WindowPtr win)
{
if (f->async_visible == 0)
{
+ /* Update events may occur when a frame gets iconified. */
+#if 0
f->async_visible = 1;
f->async_iconified = 0;
SET_FRAME_GARBAGED (f);
-
- /* An update event is equivalent to MapNotify on X, so report
- visibility changes properly. */
- if (! NILP(Vframe_list) && ! NILP (XCDR (Vframe_list)))
- /* Force a redisplay sooner or later to update the
- frame titles in case this is the second frame. */
- record_asynch_buffer_change ();
+#endif
}
else
- {
+ {
Rect r;
-
#if TARGET_API_MAC_CARBON
- {
- RgnHandle region = NewRgn ();
+ RgnHandle region = NewRgn ();
- GetPortVisibleRegion (GetWindowPort (win), region);
- GetRegionBounds (region, &r);
- expose_frame (f, r.left, r.top, r.right - r.left, r.bottom - r.top);
- UpdateControls (win, region);
- DisposeRgn (region);
- }
+ GetPortVisibleRegion (GetWindowPort (win), region);
+ GetRegionBounds (region, &r);
+ expose_frame (f, r.left, r.top, r.right - r.left, r.bottom - r.top);
+ UpdateControls (win, region);
+ DisposeRgn (region);
#else
r = (*win->visRgn)->rgnBBox;
expose_frame (f, r.left, r.top, r.right - r.left, r.bottom - r.top);
UpdateControls (win, win->visRgn);
#endif
- }
+ }
}
EndUpdate (win);
@@ -7833,20 +7727,12 @@ static void
do_app_resume ()
{
/* Window-activate events will do the job. */
-#if 0
- app_is_suspended = false;
- app_sleep_time = WNE_SLEEP_AT_RESUME;
-#endif
}
static void
do_app_suspend ()
{
/* Window-deactivate events will do the job. */
-#if 0
- app_is_suspended = true;
- app_sleep_time = WNE_SLEEP_AT_SUSPEND;
-#endif
}
@@ -8347,6 +8233,17 @@ mac_handle_window_event (next_handler, event, data)
return noErr;
}
break;
+
+ case kEventWindowShown:
+ case kEventWindowHidden:
+ case kEventWindowExpanded:
+ case kEventWindowCollapsed:
+ result = CallNextEventHandler (next_handler, event);
+
+ mac_handle_visibility_change (mac_window_to_frame (wp));
+ return noErr;
+
+ break;
}
return eventNotHandledErr;
@@ -8400,8 +8297,6 @@ mac_handle_mouse_event (next_handler, event, data)
XSETINT (read_socket_inev->x, point.h);
XSETINT (read_socket_inev->y, point.v);
XSETFRAME (read_socket_inev->frame_or_window, f);
- read_socket_inev->timestamp =
- EventTimeToTicks (GetEventTime (event)) * (1000/60);
return noErr;
}
@@ -8424,7 +8319,11 @@ install_window_handler (window)
#if USE_CARBON_EVENTS
EventTypeSpec specs_window[] =
{{kEventClassWindow, kEventWindowUpdate},
- {kEventClassWindow, kEventWindowBoundsChanging}};
+ {kEventClassWindow, kEventWindowBoundsChanging},
+ {kEventClassWindow, kEventWindowShown},
+ {kEventClassWindow, kEventWindowHidden},
+ {kEventClassWindow, kEventWindowExpanded},
+ {kEventClassWindow, kEventWindowCollapsed}};
EventTypeSpec specs_mouse[] = {{kEventClassMouse, kEventMouseWheelMoved}};
static EventHandlerUPP handle_window_eventUPP = NULL;
static EventHandlerUPP handle_mouse_eventUPP = NULL;
@@ -8475,11 +8374,6 @@ do_ae_open_application(const AppleEvent *pae, AppleEvent *preply, long prefcon)
}
-/* Defined in mac.c. */
-extern int
-path_from_vol_dir_name (char *, int, short, long, char *);
-
-
/* Called when we receive an AppleEvent with an ID of
"kAEOpenDocuments". This routine gets the direct parameter,
extracts the FSSpecs in it, and puts their names on a list. */
@@ -8503,6 +8397,9 @@ do_ae_open_documents(AppleEvent *message, AppleEvent *reply, long refcon)
DescType actual_type;
Size actual_size;
SelectionRange position;
+ Lisp_Object file_list = Qnil;
+
+ xassert (read_socket_inev);
err = AEGetParamDesc (message, keyDirectObject, typeAEList, &the_desc);
if (err != noErr)
@@ -8510,10 +8407,10 @@ do_ae_open_documents(AppleEvent *message, AppleEvent *reply, long refcon)
err = AEGetParamPtr (message, keyAEPosition, typeChar, &actual_type, &position, sizeof(SelectionRange), &actual_size);
if (err == noErr)
- drag_and_drop_file_list = Fcons (list3 (make_number (position.lineNum + 1),
- make_number (position.startRange + 1),
- make_number (position.endRange + 1)),
- drag_and_drop_file_list);
+ file_list = Fcons (list3 (make_number (position.lineNum + 1),
+ make_number (position.startRange + 1),
+ make_number (position.endRange + 1)),
+ file_list);
/* Check to see that we got all of the required parameters from the
event descriptor. For an 'odoc' event this should just be the
@@ -8567,12 +8464,49 @@ do_ae_open_documents(AppleEvent *message, AppleEvent *reply, long refcon)
sizeof (unix_path_name) - 1) == noErr)
#endif
/* x-dnd functions expect undecoded filenames. */
- drag_and_drop_file_list =
- Fcons (make_unibyte_string (unix_path_name,
- strlen (unix_path_name)),
- drag_and_drop_file_list);
+ file_list = Fcons (make_unibyte_string (unix_path_name,
+ strlen (unix_path_name)),
+ file_list);
}
}
+
+ /* Build a DRAG_N_DROP_EVENT type event as is done in
+ constuct_drag_n_drop in w32term.c. */
+ if (!NILP (file_list))
+ {
+ struct frame *f = mac_focus_frame (&one_mac_display_info);
+ WindowPtr wp;
+ Lisp_Object frame;
+
+ read_socket_inev->kind = DRAG_N_DROP_EVENT;
+ read_socket_inev->code = 0;
+ read_socket_inev->modifiers = 0;
+
+ XSETINT (read_socket_inev->x, 0);
+ XSETINT (read_socket_inev->y, 0);
+
+ XSETFRAME (frame, f);
+ read_socket_inev->frame_or_window = Fcons (frame, file_list);
+
+#if 0
+ /* Regardless of whether Emacs was suspended or in the
+ foreground, ask it to redraw its entire screen. Otherwise
+ parts of the screen can be left in an inconsistent
+ state. */
+ wp = FRAME_MAC_WINDOW (f);
+ if (wp)
+#if TARGET_API_MAC_CARBON
+ {
+ Rect r;
+
+ GetWindowPortBounds (wp, &r);
+ InvalWindowRect (wp, &r);
+ }
+#else /* not TARGET_API_MAC_CARBON */
+ InvalRect (&(wp->portRect));
+#endif /* not TARGET_API_MAC_CARBON */
+#endif
+ }
}
error_exit:
@@ -8665,11 +8599,12 @@ mac_do_receive_drag (WindowPtr window, void *handlerRefCon,
ItemReference theItem;
HFSFlavor data;
Size size = sizeof (HFSFlavor);
+ Lisp_Object file_list;
if (GetFrontWindowOfClass (kMovableModalWindowClass, false))
return dragNotAcceptedErr;
- drag_and_drop_file_list = Qnil;
+ file_list = Qnil;
GetDragMouse (theDrag, &mouse, 0L);
CountDragItems (theDrag, &items);
for (index = 1; index <= items; index++)
@@ -8695,15 +8630,14 @@ mac_do_receive_drag (WindowPtr window, void *handlerRefCon,
sizeof (unix_path_name) - 1) == noErr)
#endif
/* x-dnd functions expect undecoded filenames. */
- drag_and_drop_file_list =
- Fcons (make_unibyte_string (unix_path_name,
- strlen (unix_path_name)),
- drag_and_drop_file_list);
+ file_list = Fcons (make_unibyte_string (unix_path_name,
+ strlen (unix_path_name)),
+ file_list);
}
}
/* If there are items in the list, construct an event and post it to
the queue like an interrupt using kbd_buffer_store_event. */
- if (!NILP (drag_and_drop_file_list))
+ if (!NILP (file_list))
{
struct input_event event;
Lisp_Object frame;
@@ -8720,7 +8654,7 @@ mac_do_receive_drag (WindowPtr window, void *handlerRefCon,
XSETINT (event.x, mouse.h);
XSETINT (event.y, mouse.v);
XSETFRAME (frame, f);
- event.frame_or_window = Fcons (frame, drag_and_drop_file_list);
+ event.frame_or_window = Fcons (frame, file_list);
event.arg = Qnil;
/* Post to the interrupt queue */
kbd_buffer_store_event (&event);
@@ -8979,6 +8913,7 @@ XTread_socket (sd, expected, hold_quit)
{
int do_help = 0;
struct frame *f;
+ unsigned long timestamp;
/* It is necessary to set this (additional) argument slot of an
event to nil because keyboard.c protects incompletely
@@ -8989,6 +8924,12 @@ XTread_socket (sd, expected, hold_quit)
inev.arg = Qnil;
#if USE_CARBON_EVENTS
+ timestamp = GetEventTime (eventRef) / kEventDurationMillisecond;
+#else
+ timestamp = er.when * (1000 / 60); /* ticks to milliseconds */
+#endif
+
+#if USE_CARBON_EVENTS
/* Handle new events */
if (!mac_convert_event_ref (eventRef, &er))
{
@@ -9089,8 +9030,6 @@ XTread_socket (sd, expected, hold_quit)
#endif
XSETINT (inev.x, mouse_loc.h);
XSETINT (inev.y, mouse_loc.v);
- inev.timestamp = er.when * (1000 / 60);
- /* ticks to milliseconds */
if (dpyinfo->grabbed && tracked_scroll_bar
|| ch != 0
@@ -9124,10 +9063,9 @@ XTread_socket (sd, expected, hold_quit)
&er, &inev);
else if (er.what == mouseDown)
x_scroll_bar_handle_press (bar, control_part_code,
- inev.timestamp, &inev);
+ &inev);
else
- x_scroll_bar_handle_release (bar, inev.timestamp,
- &inev);
+ x_scroll_bar_handle_release (bar, &inev);
#else /* not USE_TOOLKIT_SCROLL_BARS */
x_scroll_bar_handle_click (bar, control_part_code,
&er, &inev);
@@ -9301,8 +9239,7 @@ XTread_socket (sd, expected, hold_quit)
if (dpyinfo->grabbed && tracked_scroll_bar)
#ifdef USE_TOOLKIT_SCROLL_BARS
x_scroll_bar_handle_drag (wp, tracked_scroll_bar,
- mouse_pos, er.when * (1000 / 60),
- &inev);
+ mouse_pos, &inev);
#else /* not USE_TOOLKIT_SCROLL_BARS */
x_scroll_bar_note_movement (tracked_scroll_bar,
mouse_pos.v
@@ -9390,11 +9327,10 @@ XTread_socket (sd, expected, hold_quit)
EVENT_INIT (event);
event.kind = NO_EVENT;
- x_scroll_bar_handle_release (tracked_scroll_bar,
- er.when * (1000 / 60),
- &event);
+ x_scroll_bar_handle_release (tracked_scroll_bar, &event);
if (event.kind != NO_EVENT)
{
+ event.timestamp = timestamp;
kbd_buffer_store_event_hold (&event, hold_quit);
count++;
}
@@ -9470,6 +9406,7 @@ XTread_socket (sd, expected, hold_quit)
event.kind = LANGUAGE_CHANGE_EVENT;
event.arg = Qnil;
event.code = current_key_script;
+ event.timestamp = timestamp;
kbd_buffer_store_event (&event);
count++;
}
@@ -9534,58 +9471,18 @@ XTread_socket (sd, expected, hold_quit)
#else
inev.modifiers = mac_to_emacs_modifiers (er.modifiers);
#endif
+ inev.modifiers |= (extra_keyboard_modifiers
+ & (meta_modifier | alt_modifier
+ | hyper_modifier | super_modifier));
XSETFRAME (inev.frame_or_window, mac_focus_frame (dpyinfo));
- inev.timestamp = er.when * (1000 / 60); /* ticks to milliseconds */
break;
case kHighLevelEvent:
- drag_and_drop_file_list = Qnil;
-
- AEProcessAppleEvent(&er);
-
- /* Build a DRAG_N_DROP_EVENT type event as is done in
- constuct_drag_n_drop in w32term.c. */
- if (!NILP (drag_and_drop_file_list))
- {
- struct frame *f = mac_focus_frame (dpyinfo);
- WindowPtr wp;
- Lisp_Object frame;
-
- inev.kind = DRAG_N_DROP_EVENT;
- inev.code = 0;
- inev.timestamp = er.when * (1000 / 60);
- /* ticks to milliseconds */
-#if USE_CARBON_EVENTS
- inev.modifiers = mac_event_to_emacs_modifiers (eventRef);
-#else
- inev.modifiers = mac_to_emacs_modifiers (er.modifiers);
-#endif
-
- XSETINT (inev.x, 0);
- XSETINT (inev.y, 0);
-
- XSETFRAME (frame, f);
- inev.frame_or_window = Fcons (frame, drag_and_drop_file_list);
-
-#if 0
- /* Regardless of whether Emacs was suspended or in the
- foreground, ask it to redraw its entire screen.
- Otherwise parts of the screen can be left in an
- inconsistent state. */
- wp = FRAME_MAC_WINDOW (f);
- if (wp)
-#if TARGET_API_MAC_CARBON
- {
- Rect r;
+ read_socket_inev = &inev;
+ AEProcessAppleEvent (&er);
+ read_socket_inev = NULL;
+ break;
- GetWindowPortBounds (wp, &r);
- InvalWindowRect (wp, &r);
- }
-#else /* not TARGET_API_MAC_CARBON */
- InvalRect (&(wp->portRect));
-#endif /* not TARGET_API_MAC_CARBON */
-#endif
- }
default:
break;
}
@@ -9595,6 +9492,7 @@ XTread_socket (sd, expected, hold_quit)
if (inev.kind != NO_EVENT)
{
+ inev.timestamp = timestamp;
kbd_buffer_store_event_hold (&inev, hold_quit);
count++;
}
@@ -9634,6 +9532,29 @@ XTread_socket (sd, expected, hold_quit)
pending_autoraise_frame = 0;
}
+#if !USE_CARBON_EVENTS
+ /* Check which frames are still visible. We do this here because
+ there doesn't seem to be any direct notification from the Window
+ Manager that the visibility of a window has changed (at least,
+ not in all cases). */
+ {
+ Lisp_Object tail, frame;
+
+ FOR_EACH_FRAME (tail, frame)
+ {
+ struct frame *f = XFRAME (frame);
+
+ /* The tooltip has been drawn already. Avoid the
+ SET_FRAME_GARBAGED in mac_handle_visibility_change. */
+ if (EQ (frame, tip_frame))
+ continue;
+
+ if (FRAME_MAC_P (f))
+ mac_handle_visibility_change (f);
+ }
+ }
+#endif
+
UNBLOCK_INPUT;
return count;
}
@@ -10067,7 +9988,7 @@ mac_check_for_quit_char ()
kbd_buffer_store_event (&e);
}
}
-#endif /* MAC_OSX */
+#endif /* MAC_OSX */
static void
init_menu_bar ()
@@ -10171,7 +10092,6 @@ mac_initialize ()
bottom */
baud_rate = 19200;
- x_noop_count = 0;
last_tool_bar_item = -1;
any_help_event_p = 0;
@@ -10243,12 +10163,6 @@ syms_of_macterm ()
staticpro (&last_mouse_scroll_bar);
last_mouse_scroll_bar = Qnil;
- staticpro (&Qvendor_specific_keysyms);
- Qvendor_specific_keysyms = intern ("vendor-specific-keysyms");
-
- staticpro (&last_mouse_press_frame);
- last_mouse_press_frame = Qnil;
-
Qmac_ready_for_drag_n_drop = intern ("mac-ready-for-drag-n-drop");
staticpro (&Qmac_ready_for_drag_n_drop);
@@ -10260,14 +10174,6 @@ syms_of_macterm ()
Vx_toolkit_scroll_bars = Qnil;
#endif
- DEFVAR_BOOL ("x-use-underline-position-properties",
- &x_use_underline_position_properties,
- doc: /* *Non-nil means make use of UNDERLINE_POSITION font properties.
-nil means ignore them. If you encounter fonts with bogus
-UNDERLINE_POSITION font properties, for example 7x13 on XFree prior
-to 4.1, set this to nil. */);
- x_use_underline_position_properties = 0;
-
staticpro (&last_mouse_motion_frame);
last_mouse_motion_frame = Qnil;
@@ -10292,7 +10198,7 @@ useful for non-standard keyboard layouts. */);
doc: /* t means that when the option-key is held down while pressing the
mouse button, the click will register as mouse-2 and while the
command-key is held down, the click will register as mouse-3.
-'reverse means that the the option-key will register for mouse-3
+'reverse means that the option-key will register for mouse-3
and the command-key will register for mouse-2. nil means that
no emulation should be done and the modifiers should be placed
on the mouse-1 event. */);
diff --git a/src/macterm.h b/src/macterm.h
index ea5f7db608..948fa486ab 100644
--- a/src/macterm.h
+++ b/src/macterm.h
@@ -1,5 +1,6 @@
/* Display module for Mac OS.
- Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -38,11 +39,6 @@ Boston, MA 02110-1301, USA. */
#define BLACK_PIX_DEFAULT(f) RGB_TO_ULONG(0,0,0)
#define WHITE_PIX_DEFAULT(f) RGB_TO_ULONG(255,255,255)
-/* A black pixel in a mask bitmap/pixmap means ``draw a source
- pixel''. A white pixel means ``retain the current pixel''. */
-#define PIX_MASK_DRAW(f) BLACK_PIX_DEFAULT(f)
-#define PIX_MASK_RETAIN(f) WHITE_PIX_DEFAULT(f)
-
#define FONT_WIDTH(f) ((f)->max_bounds.width)
#define FONT_HEIGHT(f) ((f)->ascent + (f)->descent)
#define FONT_BASE(f) ((f)->ascent)
@@ -149,7 +145,7 @@ struct mac_display_info
int smallest_font_height;
/* Reusable Graphics Context for drawing a cursor in a non-default face. */
- XGCValues *scratch_cursor_gc;
+ GC scratch_cursor_gc;
/* These variables describe the range of text currently shown in its
mouse-face, together with the window they apply to. As long as
@@ -388,7 +384,7 @@ struct mac_output {
/* Relief GCs, colors etc. */
struct relief
{
- XGCValues *gc;
+ GC gc;
unsigned long pixel;
int allocated_p;
}
@@ -598,6 +594,8 @@ EXFUN (Fx_display_color_p, 1);
EXFUN (Fx_display_grayscale_p, 1);
EXFUN (Fx_display_planes, 1);
extern void x_free_gcs P_ ((struct frame *));
+extern int XParseGeometry P_ ((char *, int *, int *, unsigned int *,
+ unsigned int *));
/* Defined in macterm.c. */
@@ -611,6 +609,7 @@ extern Pixmap XCreatePixmapFromBitmapData P_ ((Display *, WindowPtr, char *,
unsigned long, unsigned long,
unsigned int));
extern void XFreePixmap P_ ((Display *, Pixmap));
+extern GC XCreateGC P_ ((Display *, Window, unsigned long, XGCValues *));
extern void XSetForeground P_ ((Display *, GC, unsigned long));
extern void XSetBackground P_ ((Display *, GC, unsigned long));
extern void XSetWindowBackground P_ ((Display *, WindowPtr, unsigned long));
diff --git a/src/makefile.w32-in b/src/makefile.w32-in
index a4084046fa..1ee232949d 100644
--- a/src/makefile.w32-in
+++ b/src/makefile.w32-in
@@ -1,5 +1,6 @@
# -*- Makefile -*- for GNU Emacs on the Microsoft W32 API.
-# Copyright (c) 2000-2001, 2004 Free Software Foundation, Inc.
+# Copyright (C) 2000, 2001, 2002, 2003, 2004,
+# 2005 Free Software Foundation, Inc.
#
# This file is part of GNU Emacs.
#
diff --git a/src/marker.c b/src/marker.c
index d6029c79c9..11b077761e 100644
--- a/src/marker.c
+++ b/src/marker.c
@@ -1,5 +1,6 @@
/* Markers: examining, setting and deleting.
- Copyright (C) 1985, 1997, 1998, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1997, 1998, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/md5.c b/src/md5.c
index 039213fd76..4f055447ea 100644
--- a/src/md5.c
+++ b/src/md5.c
@@ -1,6 +1,7 @@
/* Functions to compute MD5 message digest of files or memory blocks.
according to the definition of MD5 in RFC 1321 from April 1992.
- Copyright (C) 1995, 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1995, 1996, 1997, 1999, 2000, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of the GNU Emacs.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/src/md5.h b/src/md5.h
index 229da8daa8..adcc6bf48f 100644
--- a/src/md5.h
+++ b/src/md5.h
@@ -1,6 +1,7 @@
/* Declaration of functions and data types used for MD5 sum computing
library functions.
- Copyright (C) 1995, 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1995, 1996, 1997, 1999, 2000, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/src/mem-limits.h b/src/mem-limits.h
index aac8a39617..d7ac6a3e36 100644
--- a/src/mem-limits.h
+++ b/src/mem-limits.h
@@ -1,5 +1,6 @@
/* Includes for memory limit warnings.
- Copyright (C) 1990, 93, 94, 95, 1996, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1990, 1993, 1994, 1995, 1996, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/minibuf.c b/src/minibuf.c
index e04be1465e..8f07a4603c 100644
--- a/src/minibuf.c
+++ b/src/minibuf.c
@@ -1,6 +1,6 @@
/* Minibuffer input and completion.
- Copyright (C) 1985,86,93,94,95,96,97,98,99,2000,01,03,04,05
- Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+ 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -350,7 +350,7 @@ BUFFER can be a buffer or a buffer name. */)
DEFUN ("minibuffer-prompt-end", Fminibuffer_prompt_end,
Sminibuffer_prompt_end, 0, 0, 0,
doc: /* Return the buffer position of the end of the minibuffer prompt.
-Return (point-min) if current buffer is not a mini-buffer. */)
+Return (point-min) if current buffer is not a minibuffer. */)
()
{
/* This function is written to be most efficient when there's a prompt. */
@@ -1019,7 +1019,7 @@ DEFUN ("eval-minibuffer", Feval_minibuffer, Seval_minibuffer, 1, 2, 0,
Prompt with PROMPT. If non-nil, optional second arg INITIAL-CONTENTS
is a string to insert in the minibuffer before reading.
\(INITIAL-CONTENTS can also be a cons of a string and an integer. Such
-arguments are used as in `read-from-minibuffer') */)
+arguments are used as in `read-from-minibuffer'.) */)
(prompt, initial_contents)
Lisp_Object prompt, initial_contents;
{
@@ -1763,7 +1763,7 @@ the values STRING, PREDICATE and `lambda'. */)
|| NILP (alist))
{
tem = Fassoc_string (string, alist, completion_ignore_case ? Qt : Qnil);
- if NILP (tem)
+ if (NILP (tem))
return Qnil;
}
else if (VECTORP (alist))
diff --git a/src/mktime.c b/src/mktime.c
index c61f146356..025f54d95c 100644
--- a/src/mktime.c
+++ b/src/mktime.c
@@ -1,5 +1,6 @@
/* Convert a `struct tm' to a time_t value.
- Copyright (C) 1993, 94, 95, 96, 97, 98, 99 Free Software Foundation, Inc.
+ Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Contributed by Paul Eggert (eggert@twinsun.com).
NOTE: The canonical source of this file is maintained with the GNU C Library.
diff --git a/src/msdos.c b/src/msdos.c
index 07ee522f98..4ea4ab0cf1 100644
--- a/src/msdos.c
+++ b/src/msdos.c
@@ -1,6 +1,6 @@
/* MS-DOS specific C utilities. -*- coding: raw-text -*-
- Copyright (C) 1993, 94, 95, 96, 97, 1999, 2000, 01, 2003
- Free Software Foundation, Inc.
+ Copyright (C) 1993, 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2002,
+ 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/msdos.h b/src/msdos.h
index 7f2f013fd1..b6c6aca149 100644
--- a/src/msdos.h
+++ b/src/msdos.h
@@ -1,5 +1,6 @@
/* MS-DOS specific C utilities, interface.
- Copyright (C) 1993, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1993, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/prefix-args.c b/src/prefix-args.c
index 8c4043f83c..c2f6303786 100644
--- a/src/prefix-args.c
+++ b/src/prefix-args.c
@@ -1,5 +1,5 @@
/* prefix-args.c - echo each argument, prefixed by a string.
- Copyright (C) 1992 Free Software Foundation, Inc.
+ Copyright (C) 1992, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/print.c b/src/print.c
index 6150ff2efe..65c48b6d82 100644
--- a/src/print.c
+++ b/src/print.c
@@ -1,6 +1,7 @@
/* Lisp object printing and output streams.
- Copyright (C) 1985, 1986, 1988, 1993, 1994, 1995, 1997, 1998, 1999,
- 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1988, 1993, 1994, 1995, 1997,
+ 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/process.c b/src/process.c
index 3879821c2f..f23b8368f6 100644
--- a/src/process.c
+++ b/src/process.c
@@ -1,6 +1,7 @@
/* Asynchronous subprocess control for GNU Emacs.
- Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1996, 1998, 1999,
- 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995,
+ 1996, 1998, 1999, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -293,7 +294,10 @@ static Lisp_Object Vprocess_adaptive_read_buffering;
#include "sysselect.h"
-extern int keyboard_bit_set P_ ((SELECT_TYPE *));
+static int keyboard_bit_set P_ ((SELECT_TYPE *));
+static void deactivate_process P_ ((Lisp_Object));
+static void status_notify P_ ((struct Lisp_Process *));
+static int read_process_output P_ ((Lisp_Object, int));
/* If we support a window system, turn on the code to poll periodically
to detect C-g. It isn't actually used when doing interrupt input. */
@@ -390,9 +394,9 @@ static char pty_name[24];
/* Compute the Lisp form of the process status, p->status, from
the numeric status that was returned by `wait'. */
-Lisp_Object status_convert ();
+static Lisp_Object status_convert ();
-void
+static void
update_status (p)
struct Lisp_Process *p;
{
@@ -406,7 +410,7 @@ update_status (p)
/* Convert a process status word in Unix format to
the list that we use internally. */
-Lisp_Object
+static Lisp_Object
status_convert (w)
WAITTYPE w;
{
@@ -425,7 +429,7 @@ status_convert (w)
/* Given a status-list, extract the three pieces of information
and store them individually through the three pointers. */
-void
+static void
decode_status (l, symbol, code, coredump)
Lisp_Object l;
Lisp_Object *symbol;
@@ -504,7 +508,7 @@ status_message (p)
The file name of the terminal corresponding to the pty
is left in the variable pty_name. */
-int
+static int
allocate_pty ()
{
register int c, i;
@@ -589,7 +593,7 @@ allocate_pty ()
}
#endif /* HAVE_PTYS */
-Lisp_Object
+static Lisp_Object
make_process (name)
Lisp_Object name;
{
@@ -633,7 +637,7 @@ make_process (name)
return val;
}
-void
+static void
remove_process (proc)
register Lisp_Object proc;
{
@@ -767,23 +771,27 @@ nil, indicating the current buffer's process. */)
(process)
register Lisp_Object process;
{
+ register struct Lisp_Process *p;
+
process = get_process (process);
- XPROCESS (process)->raw_status_low = Qnil;
- XPROCESS (process)->raw_status_high = Qnil;
- if (NETCONN_P (process))
+ p = XPROCESS (process);
+
+ p->raw_status_low = Qnil;
+ p->raw_status_high = Qnil;
+ if (NETCONN1_P (p))
{
- XPROCESS (process)->status = Fcons (Qexit, Fcons (make_number (0), Qnil));
- XSETINT (XPROCESS (process)->tick, ++process_tick);
- status_notify ();
+ p->status = Fcons (Qexit, Fcons (make_number (0), Qnil));
+ XSETINT (p->tick, ++process_tick);
+ status_notify (p);
}
- else if (XINT (XPROCESS (process)->infd) >= 0)
+ else if (XINT (p->infd) >= 0)
{
Fkill_process (process, Qnil);
/* Do this now, since remove_process will make sigchld_handler do nothing. */
- XPROCESS (process)->status
+ p->status
= Fcons (Qsignal, Fcons (make_number (SIGKILL), Qnil));
- XSETINT (XPROCESS (process)->tick, ++process_tick);
- status_notify ();
+ XSETINT (p->tick, ++process_tick);
+ status_notify (p);
}
remove_process (process);
return Qnil;
@@ -1237,7 +1245,7 @@ IP address. Returns nil if format of ADDRESS is invalid. */)
}
#endif
-Lisp_Object
+static Lisp_Object
list_processes_1 (query_only)
Lisp_Object query_only;
{
@@ -1707,7 +1715,7 @@ start_process_unwind (proc)
return Qnil;
}
-void
+static void
create_process_1 (timer)
struct atimer *timer;
{
@@ -2530,7 +2538,7 @@ OPTION is not a supported option, return nil instead; otherwise return t. */)
/* A version of request_sigio suitable for a record_unwind_protect. */
-Lisp_Object
+static Lisp_Object
unwind_request_sigio (dummy)
Lisp_Object dummy;
{
@@ -4221,7 +4229,7 @@ wait_reading_process_output (time_limit, microsecs, read_kbd, do_display,
/* It's okay for us to do this and then continue with
the loop, since timeout has already been zeroed out. */
clear_waiting_for_input ();
- status_notify ();
+ status_notify (NULL);
}
}
@@ -4739,7 +4747,7 @@ read_process_output_error_handler (error)
The characters read are decoded according to PROC's coding-system
for decoding. */
-int
+static int
read_process_output (proc, channel)
Lisp_Object proc;
register int channel;
@@ -5130,7 +5138,7 @@ send_process_trap ()
This function can evaluate Lisp code and can garbage collect. */
-void
+static void
send_process (proc, buf, len, object)
volatile Lisp_Object proc;
unsigned char *volatile buf;
@@ -5724,7 +5732,7 @@ process_send_signal (process, signo, current_group, nomsg)
p->status = Qrun;
XSETINT (p->tick, ++process_tick);
if (!nomsg)
- status_notify ();
+ status_notify (NULL);
break;
#endif /* ! defined (SIGCONT) */
case SIGINT:
@@ -6392,8 +6400,9 @@ exec_sentinel (proc, reason)
This is usually done while Emacs is waiting for keyboard input
but can be done at other times. */
-void
-status_notify ()
+static void
+status_notify (deleting_process)
+ struct Lisp_Process *deleting_process;
{
register Lisp_Object proc, buffer;
Lisp_Object tail, msg;
@@ -6429,6 +6438,7 @@ status_notify ()
&& ! EQ (p->status, Qlisten)
&& ! EQ (p->command, Qt) /* Network process not stopped. */
&& XINT (p->infd) >= 0
+ && p != deleting_process
&& read_process_output (proc, XINT (p->infd)) > 0);
buffer = p->buffer;
@@ -6624,7 +6634,7 @@ delete_keyboard_wait_descriptor (desc)
/* Return nonzero if *MASK has a bit set
that corresponds to one of the keyboard input descriptors. */
-int
+static int
keyboard_bit_set (mask)
SELECT_TYPE *mask;
{
diff --git a/src/process.h b/src/process.h
index a58b08a197..cadc9b7031 100644
--- a/src/process.h
+++ b/src/process.h
@@ -1,5 +1,6 @@
/* Definitions for asynchronous process control in GNU Emacs.
- Copyright (C) 1985, 1994 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1994, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/puresize.h b/src/puresize.h
index 2e7637c672..7951f7ecbf 100644
--- a/src/puresize.h
+++ b/src/puresize.h
@@ -1,5 +1,5 @@
/* How much read-only Lisp storage a dumped Emacs needs.
- Copyright (C) 1993, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1993, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/ralloc.c b/src/ralloc.c
index 824fb536fc..35a8cb9c58 100644
--- a/src/ralloc.c
+++ b/src/ralloc.c
@@ -1,5 +1,6 @@
/* Block-relocating memory allocator.
- Copyright (C) 1993, 1995, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1993, 1995, 2000, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/regex.c b/src/regex.c
index c82bdb0edd..fd18864110 100644
--- a/src/regex.c
+++ b/src/regex.c
@@ -2,7 +2,8 @@
0.12. (Implements POSIX draft P1003.2/D11.2, except for some of the
internationalization features.)
- Copyright (C) 1993,94,95,96,97,98,99,2000,04 Free Software Foundation, Inc.
+ Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+ 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/src/regex.h b/src/regex.h
index 89532b7ee9..557700dc93 100644
--- a/src/regex.h
+++ b/src/regex.h
@@ -1,7 +1,8 @@
/* Definitions for data structures and routines for the regular
expression library, version 0.12.
- Copyright (C) 1985,89,90,91,92,93,95,2000 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1989, 1990, 1991, 1992, 1993, 1995, 2000, 2002,
+ 2003, 2004, 2005 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/src/region-cache.c b/src/region-cache.c
index 22eac35ca8..d49278eb88 100644
--- a/src/region-cache.c
+++ b/src/region-cache.c
@@ -1,6 +1,6 @@
/* Caching facts about regions of the buffer, for optimization.
- Copyright (C) 1985, 1986, 1987, 1988, 1989, 1993, 1995
- Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1987, 1988, 1989, 1993, 1995, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/region-cache.h b/src/region-cache.h
index 5c27d00740..51d2ceb1e6 100644
--- a/src/region-cache.h
+++ b/src/region-cache.h
@@ -1,5 +1,6 @@
/* Header file: Caching facts about regions of the buffer, for optimization.
- Copyright (C) 1985, 1986, 1993, 1995 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1993, 1995, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/aix3-1.h b/src/s/aix3-1.h
index 8fe7bd8fa2..eedfe3d15b 100644
--- a/src/s/aix3-1.h
+++ b/src/s/aix3-1.h
@@ -1,5 +1,6 @@
/* Definitions file for GNU Emacs running on IBM AIX version 3.1
- Copyright (C) 1985, 1986, 1990, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1990, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/bsd4-1.h b/src/s/bsd4-1.h
index 7316841e21..f36bc016ca 100644
--- a/src/s/bsd4-1.h
+++ b/src/s/bsd4-1.h
@@ -1,5 +1,6 @@
/* Definitions file for GNU Emacs running on bsd 4.1.
- Copyright (C) 1985, 1986, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/bsd4-2.h b/src/s/bsd4-2.h
index 386ab1bbbe..f4e60b0fdb 100644
--- a/src/s/bsd4-2.h
+++ b/src/s/bsd4-2.h
@@ -1,5 +1,6 @@
/* Definitions file for GNU Emacs running on bsd 4.2
- Copyright (C) 1985, 1986, 1994 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1994, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/bsd4-3.h b/src/s/bsd4-3.h
index bbb2715bdf..37d6a63e98 100644
--- a/src/s/bsd4-3.h
+++ b/src/s/bsd4-3.h
@@ -1,5 +1,6 @@
/* Definitions file for GNU Emacs running on bsd 4.3
- Copyright (C) 1985, 1986 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/cxux.h b/src/s/cxux.h
index 2af6d00609..118d93d579 100644
--- a/src/s/cxux.h
+++ b/src/s/cxux.h
@@ -1,5 +1,5 @@
/* Header file for Harris CXUX.
- Copyright (C) 1994 Free Software Foundation, Inc.
+ Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/cygwin.h b/src/s/cygwin.h
index 0094ef793d..921cff35bc 100644
--- a/src/s/cygwin.h
+++ b/src/s/cygwin.h
@@ -1,7 +1,8 @@
/* Template for system description header files.
This file describes the parameters that system description files
should define or not.
- Copyright (C) 1985, 1986, 1992, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1992, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -123,8 +124,6 @@ Boston, MA 02110-1301, USA. */
emacs lisp pointers */
#define DATA_SEG_BITS 0x20000000
#define LINKER $(CC) -Wl,--image-base,DATA_SEG_BITS
-/* gettext.h is in a strange place */
-#define C_SWITCH_SYSTEM -I/usr/share/gettext
/* Use terminfo instead of termcap. Fewer environment variables to
go wrong, more terminal types. */
diff --git a/src/s/darwin.h b/src/s/darwin.h
index fea5b4c282..fad445d755 100644
--- a/src/s/darwin.h
+++ b/src/s/darwin.h
@@ -1,5 +1,5 @@
/* System description header file for Darwin (Mac OS X).
- Copyright (C) 2001, 02, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/dgux.h b/src/s/dgux.h
index fb01b539f2..82956a900d 100644
--- a/src/s/dgux.h
+++ b/src/s/dgux.h
@@ -1,6 +1,7 @@
/* Definitions file for GNU Emacs running on Data General's DG/UX
version 4.32 upto and including 5.4.1.
- Copyright (C) 1994, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1994, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/dgux4.h b/src/s/dgux4.h
index d866d63e6c..35834ad4da 100644
--- a/src/s/dgux4.h
+++ b/src/s/dgux4.h
@@ -1,6 +1,6 @@
/* Definitions file for GNU Emacs running on Data General's DG/UX
Release 4.10 and above.
- Copyright (C) 1996 Free Software Foundation, Inc.
+ Copyright (C) 1996, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/dgux5-4-3.h b/src/s/dgux5-4-3.h
index a95420595a..7ec88a435e 100644
--- a/src/s/dgux5-4-3.h
+++ b/src/s/dgux5-4-3.h
@@ -1,6 +1,6 @@
/* Definitions file for GNU Emacs running on Data General's DG/UX
version 5.4 Release 3.00 and above.
- Copyright (C) 1994 Free Software Foundation, Inc.
+ Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/dgux5-4r2.h b/src/s/dgux5-4r2.h
index c2c7461a20..3f059c32c2 100644
--- a/src/s/dgux5-4r2.h
+++ b/src/s/dgux5-4r2.h
@@ -1,6 +1,6 @@
/* Definitions file for GNU Emacs running on Data General's DG/UX
5.4 Release 2.xx systems.
- Copyright (C) 1994 Free Software Foundation, Inc.
+ Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/freebsd.h b/src/s/freebsd.h
index dc26eb9f39..83949fd281 100644
--- a/src/s/freebsd.h
+++ b/src/s/freebsd.h
@@ -1,8 +1,8 @@
/* System description header for FreeBSD systems.
This file describes the parameters that system description files
should define or not.
- Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
- Free Software Foundation, Inc.
+ Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+ 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/gnu-linux.h b/src/s/gnu-linux.h
index 2563496af5..f87dcaded1 100644
--- a/src/s/gnu-linux.h
+++ b/src/s/gnu-linux.h
@@ -1,5 +1,6 @@
/* This file is the configuration file for Linux-based GNU systems
- Copyright (C) 1985, 86, 92, 94, 96, 1999, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1992, 1994, 1996, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/gnu.h b/src/s/gnu.h
index 79e5a88a7b..0da816c32d 100644
--- a/src/s/gnu.h
+++ b/src/s/gnu.h
@@ -1,5 +1,6 @@
/* Definitions file for GNU Emacs running on the GNU Hurd.
- Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
+ Copyright (C) 1994, 1995, 1996, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/hpux.h b/src/s/hpux.h
index 665b1f3063..30ade71bf2 100644
--- a/src/s/hpux.h
+++ b/src/s/hpux.h
@@ -1,6 +1,7 @@
/* Definitions file for GNU Emacs running on HPUX release 7.0.
Based on AT&T System V.2.
- Copyright (C) 1985, 1986, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/iris3-5.h b/src/s/iris3-5.h
index 8815bb56f3..a3b6c8ad0a 100644
--- a/src/s/iris3-5.h
+++ b/src/s/iris3-5.h
@@ -1,5 +1,6 @@
/* Definitions file for GNU Emacs running on Silicon Graphics 3.5
- Copyright (C) 1987, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1987, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/iris3-6.h b/src/s/iris3-6.h
index 64187428c2..1d8b96cc23 100644
--- a/src/s/iris3-6.h
+++ b/src/s/iris3-6.h
@@ -1,5 +1,6 @@
/* Definitions file for GNU Emacs running on Silicon Graphics system 3.6.
- Copyright (C) 1987, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1987, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/irix3-3.h b/src/s/irix3-3.h
index 60dd6d49c7..a613779913 100644
--- a/src/s/irix3-3.h
+++ b/src/s/irix3-3.h
@@ -1,5 +1,6 @@
/* Definitions file for GNU Emacs running on Silicon Graphics Irix system 3.3.
- Copyright (C) 1987, 1990, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1987, 1990, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/lynxos.h b/src/s/lynxos.h
index 55de8cba6f..614735d290 100644
--- a/src/s/lynxos.h
+++ b/src/s/lynxos.h
@@ -1,5 +1,6 @@
/* Definitions file for GNU Emacs running on LynxOS-3.0.1
- Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/ms-w32.h b/src/s/ms-w32.h
index c4697db34d..b1989318fb 100644
--- a/src/s/ms-w32.h
+++ b/src/s/ms-w32.h
@@ -1,5 +1,6 @@
/* System description file for Windows NT.
- Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc.
+ Copyright (C) 1993, 1994, 1995, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/msdos.h b/src/s/msdos.h
index 5a0cbba595..9469b33227 100644
--- a/src/s/msdos.h
+++ b/src/s/msdos.h
@@ -1,6 +1,7 @@
/* System description file for MS-DOS
- Copyright (C) 1993, 1996, 1997, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1993, 1996, 1997, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/newsos5.h b/src/s/newsos5.h
index c674bfc559..d2bed2189b 100644
--- a/src/s/newsos5.h
+++ b/src/s/newsos5.h
@@ -1,5 +1,6 @@
/* Definitions file for GNU Emacs running on Sony's NEWS-OS 5.0.2
- Copyright (C) 1992, 1994 Free Software Foundation, Inc.
+ Copyright (C) 1992, 1994, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/nextstep.h b/src/s/nextstep.h
index 9253e6acff..0c0b01c10b 100644
--- a/src/s/nextstep.h
+++ b/src/s/nextstep.h
@@ -1,5 +1,6 @@
/* Configuration file for the NeXTstep system.
- Copyright (C) 1990, 1995 Free Software Foundation, Inc.
+ Copyright (C) 1990, 1995, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/ptx.h b/src/s/ptx.h
index e490ba659a..1411dee70d 100644
--- a/src/s/ptx.h
+++ b/src/s/ptx.h
@@ -1,5 +1,6 @@
/* Definitions file for GNU Emacs running on Sequent DYNIX/ptx 1.x/2.x
- Copyright (C) 1987, 1990, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1987, 1990, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/riscix1-1.h b/src/s/riscix1-1.h
index ccfa5704b8..aee5d6ddc5 100644
--- a/src/s/riscix1-1.h
+++ b/src/s/riscix1-1.h
@@ -1,5 +1,5 @@
/* Definitions file for GNU Emacs running on RISCiX 1.1 (bsd 4.3)
- Copyright (C) 1994 Free Software Foundation, Inc.
+ Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/riscix12.h b/src/s/riscix12.h
index b0e00e780c..625b667d7b 100644
--- a/src/s/riscix12.h
+++ b/src/s/riscix12.h
@@ -1,5 +1,5 @@
/* Definitions file for GNU Emacs running on RISCiX 1.2 (bsd 4.3)
- Copyright (C) 1994 Free Software Foundation, Inc.
+ Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/rtu.h b/src/s/rtu.h
index 92afbaf632..b2d0c16e59 100644
--- a/src/s/rtu.h
+++ b/src/s/rtu.h
@@ -1,5 +1,6 @@
/* Definitions file for GNU Emacs running on RTU 3.0, ucb universe.
- Copyright (C) 1986, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1986, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/sco4.h b/src/s/sco4.h
index 757eb0b57b..627007e9a5 100644
--- a/src/s/sco4.h
+++ b/src/s/sco4.h
@@ -1,5 +1,6 @@
/* System description file for SCO 3.2v4.
- Copyright (C) 1993, 1994 Free Software Foundation, Inc.
+ Copyright (C) 1993, 1994, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/sco5.h b/src/s/sco5.h
index e490a91b60..9fbbf072a1 100644
--- a/src/s/sco5.h
+++ b/src/s/sco5.h
@@ -1,5 +1,5 @@
/* System description file for SCO 3.2v5.
- Copyright (C) 1996, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1996, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/template.h b/src/s/template.h
index 5ef1049164..0610e16473 100644
--- a/src/s/template.h
+++ b/src/s/template.h
@@ -1,7 +1,8 @@
/* Template for system description header files.
This file describes the parameters that system description files
should define or not.
- Copyright (C) 1985, 1986, 1992, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1992, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/umax.h b/src/s/umax.h
index 1741b1d04e..f4923f3305 100644
--- a/src/s/umax.h
+++ b/src/s/umax.h
@@ -1,5 +1,6 @@
/* Definitions file for GNU Emacs running on UMAX 4.2
- Copyright (C) 1985, 1986 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/unipl5-2.h b/src/s/unipl5-2.h
index 05d162239a..cca703adb8 100644
--- a/src/s/unipl5-2.h
+++ b/src/s/unipl5-2.h
@@ -1,5 +1,6 @@
/* Definitions file for GNU Emacs running on UniSoft's UniPlus 5.2
- Copyright (C) 1985, 1986, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/usg5-0.h b/src/s/usg5-0.h
index 21b469dcd5..5f9943f847 100644
--- a/src/s/usg5-0.h
+++ b/src/s/usg5-0.h
@@ -1,5 +1,6 @@
/* Definitions file for GNU Emacs running on AT&T's System V.0
- Copyright (C) 1985, 1986, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/usg5-2-2.h b/src/s/usg5-2-2.h
index dff90efb22..b090f3c32b 100644
--- a/src/s/usg5-2-2.h
+++ b/src/s/usg5-2-2.h
@@ -1,5 +1,6 @@
/* Definitions file for GNU Emacs running on AT&T's System V Release 2.2
- Copyright (C) 1985, 1986, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/usg5-2.h b/src/s/usg5-2.h
index 0da477276f..e63bddfc06 100644
--- a/src/s/usg5-2.h
+++ b/src/s/usg5-2.h
@@ -1,5 +1,6 @@
/* Definitions file for GNU Emacs running on AT&T's System V Release 2.0
- Copyright (C) 1985, 1986, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/usg5-3.h b/src/s/usg5-3.h
index 285bae670d..1225993692 100644
--- a/src/s/usg5-3.h
+++ b/src/s/usg5-3.h
@@ -1,5 +1,6 @@
/* Definitions file for GNU Emacs running on AT&T's System V Release 3
- Copyright (C) 1987, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1987, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/usg5-4.h b/src/s/usg5-4.h
index 4edda95b39..b8c2f8d9fa 100644
--- a/src/s/usg5-4.h
+++ b/src/s/usg5-4.h
@@ -1,5 +1,6 @@
/* Definitions file for GNU Emacs running on AT&T's System V Release 4
- Copyright (C) 1987, 1990, 1999, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1987, 1990, 1999, 2000, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/vms.h b/src/s/vms.h
index 9afd69b853..e3c9dc725c 100644
--- a/src/s/vms.h
+++ b/src/s/vms.h
@@ -1,5 +1,5 @@
/* system description header for VMS
- Copyright (C) 1986 Free Software Foundation, Inc.
+ Copyright (C) 1986, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/s/xenix.h b/src/s/xenix.h
index 763a10956f..e67b897faf 100644
--- a/src/s/xenix.h
+++ b/src/s/xenix.h
@@ -1,5 +1,6 @@
/* Definitions file for GNU Emacs running SCO Xenix 386 Release 2.2
- Copyright (C) 1988, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1988, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/scroll.c b/src/scroll.c
index f73f6f4fa8..04db528cc6 100644
--- a/src/scroll.c
+++ b/src/scroll.c
@@ -1,5 +1,6 @@
/* Calculate what line insertion or deletion to do, and do it,
- Copyright (C) 1985, 1986, 1990, 1993, 1994 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1990, 1993, 1994, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/search.c b/src/search.c
index 6beaa2d418..aa7f6fda69 100644
--- a/src/search.c
+++ b/src/search.c
@@ -1,6 +1,6 @@
/* String search routines for GNU Emacs.
- Copyright (C) 1985, 86,87,93,94,97,98, 1999, 2004
- Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1987, 1993, 1994, 1997, 1998, 1999, 2002, 2003,
+ 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -3085,6 +3085,7 @@ syms_of_search ()
searchbufs[i].regexp = Qnil;
searchbufs[i].whitespace_regexp = Qnil;
staticpro (&searchbufs[i].regexp);
+ staticpro (&searchbufs[i].whitespace_regexp);
searchbufs[i].next = (i == REGEXP_CACHE_SIZE-1 ? 0 : &searchbufs[i+1]);
}
searchbuf_head = &searchbufs[0];
diff --git a/src/sheap.c b/src/sheap.c
index b7f01d448a..635c3dc014 100644
--- a/src/sheap.c
+++ b/src/sheap.c
@@ -1,8 +1,7 @@
/* simulate sbrk() with an array in .bss, for unexec() support for Cygwin;
complete rewrite of xemacs Cygwin unexec() code
- Copyright (C) 2004
- Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/sound.c b/src/sound.c
index 93e456cbc4..1e6a17d027 100644
--- a/src/sound.c
+++ b/src/sound.c
@@ -1,5 +1,6 @@
/* sound.c -- sound support.
- Copyright (C) 1998, 1999, 2001 Free Software Foundation.
+ Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/strftime.c b/src/strftime.c
index 41566ec868..88a54b7bee 100644
--- a/src/strftime.c
+++ b/src/strftime.c
@@ -1,5 +1,5 @@
-/* Copyright (C) 1991,92,93,94,95,96,97,98,99,2000,2003
- Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+ 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
NOTE: The canonical source of this file is maintained with gnulib.
Bugs can be reported to bug-gnulib@gnu.org.
diff --git a/src/sunfns.c b/src/sunfns.c
index 6a16e6cc08..8de639b748 100644
--- a/src/sunfns.c
+++ b/src/sunfns.c
@@ -1,5 +1,6 @@
/* Functions for Sun Windows menus and selection buffer.
- Copyright (C) 1987, 1999, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1987, 1999, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is probably totally obsolete. In any case, the FSF is
unwilling to support it. We agreed to include it in our distribution
diff --git a/src/syntax.c b/src/syntax.c
index 480fa6de82..2043cff63d 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -1,5 +1,6 @@
/* GNU Emacs routines to deal with syntax tables; also word and list parsing.
- Copyright (C) 1985, 87, 93, 94, 95, 97, 1998, 1999, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1987, 1993, 1994, 1995, 1997, 1998, 1999, 2002,
+ 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -132,7 +133,7 @@ update_syntax_table (charpos, count, init, object)
{
Lisp_Object tmp_table;
int cnt = 0, invalidate = 1;
- INTERVAL i, oldi;
+ INTERVAL i;
if (init)
{
@@ -163,7 +164,7 @@ update_syntax_table (charpos, count, init, object)
gl_state.e_property = INTERVAL_LAST_POS (i) - gl_state.offset;
goto update;
}
- oldi = i = count > 0 ? gl_state.forward_i : gl_state.backward_i;
+ i = count > 0 ? gl_state.forward_i : gl_state.backward_i;
/* We are guaranteed to be called with CHARPOS either in i,
or further off. */
@@ -248,7 +249,8 @@ update_syntax_table (charpos, count, init, object)
}
else
{
- gl_state.b_property = i->position + LENGTH (i) - gl_state.offset;
+ gl_state.b_property
+ = i->position + LENGTH (i) - gl_state.offset;
gl_state.backward_i = i;
}
return;
@@ -257,7 +259,12 @@ update_syntax_table (charpos, count, init, object)
{
if (count > 0)
{
- gl_state.e_property = i->position + LENGTH (i) - gl_state.offset;
+ gl_state.e_property
+ = i->position + LENGTH (i) - gl_state.offset
+ /* e_property at EOB is not set to ZV but to ZV+1, so that
+ we can do INC(from);UPDATE_SYNTAX_TABLE_FORWARD without
+ having to check eob between the two. */
+ + (NULL_INTERVAL_P (next_interval (i)) ? 1 : 0);
gl_state.forward_i = i;
}
else
@@ -3168,6 +3175,14 @@ syms_of_syntax ()
staticpro (&Vsyntax_code_object);
+ staticpro (&gl_state.object);
+ staticpro (&gl_state.global_code);
+ staticpro (&gl_state.current_syntax_table);
+ staticpro (&gl_state.old_prop);
+
+ /* Defined in regex.c */
+ staticpro (&re_match_object);
+
Qscan_error = intern ("scan-error");
staticpro (&Qscan_error);
Fput (Qscan_error, Qerror_conditions,
diff --git a/src/syntax.h b/src/syntax.h
index 581b4a783e..c29e26c20b 100644
--- a/src/syntax.h
+++ b/src/syntax.h
@@ -1,5 +1,6 @@
/* Declarations having to do with GNU Emacs syntax tables.
- Copyright (C) 1985, 93, 94, 97, 1998 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1993, 1994, 1997, 1998, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/sysdep.c b/src/sysdep.c
index 7f0c363f7c..9ffb167bdf 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -1,6 +1,6 @@
/* Interfaces to system-dependent kernel and library entries.
Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1999, 2000, 2001,
- 2003, 2004, 2005 Free Software Foundation, Inc.
+ 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/sysselect.h b/src/sysselect.h
index 0030e737bc..d57527f9ed 100644
--- a/src/sysselect.h
+++ b/src/sysselect.h
@@ -1,5 +1,5 @@
/* sysselect.h - System-dependent definitions for the select function.
- Copyright (C) 1995 Free Software Foundation, Inc.
+ Copyright (C) 1995, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/syssignal.h b/src/syssignal.h
index 2f8aa43f2f..1e9c0dbb38 100644
--- a/src/syssignal.h
+++ b/src/syssignal.h
@@ -1,5 +1,6 @@
/* syssignal.h - System-dependent definitions for signals.
- Copyright (C) 1993, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1993, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/systime.h b/src/systime.h
index cf2bc0b084..12d8d406d8 100644
--- a/src/systime.h
+++ b/src/systime.h
@@ -1,5 +1,6 @@
/* systime.h - System-dependent definitions for time manipulations.
- Copyright (C) 1993, 1994 Free Software Foundation, Inc.
+ Copyright (C) 1993, 1994, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/systty.h b/src/systty.h
index b322ca6008..af9f5e3aa8 100644
--- a/src/systty.h
+++ b/src/systty.h
@@ -1,5 +1,6 @@
/* systty.h - System-dependent definitions for terminals.
- Copyright (C) 1993, 1994 Free Software Foundation, Inc.
+ Copyright (C) 1993, 1994, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/syswait.h b/src/syswait.h
index 78057e3fed..37d59d68ac 100644
--- a/src/syswait.h
+++ b/src/syswait.h
@@ -1,5 +1,6 @@
/* Define wait system call interface for Emacs.
- Copyright (C) 1993, 1994, 1995, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1993, 1994, 1995, 2000, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/term.c b/src/term.c
index e340edb6c1..77720779ba 100644
--- a/src/term.c
+++ b/src/term.c
@@ -1,6 +1,6 @@
/* Terminal control module for terminals described by TERMCAP
- Copyright (C) 1985, 86, 87, 93, 94, 95, 98, 2000, 2001, 2002, 2005
- Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1998, 2000, 2001,
+ 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -245,6 +245,17 @@ tty_set_terminal_modes (struct device *display)
if (tty->output)
{
+ if (tty->TS_termcap_modes)
+ OUTPUT (tty, tty->TS_termcap_modes);
+ else
+ {
+ /* Output enough newlines to scroll all the old screen contents
+ off the screen, so it won't be overwritten and lost. */
+ int i;
+ for (i = 0; i < FRAME_LINES (XFRAME (selected_frame)); i++)
+ putchar ('\n');
+ }
+
OUTPUT_IF (tty, tty->TS_termcap_modes);
OUTPUT_IF (tty, tty->TS_cursor_visible);
OUTPUT_IF (tty, tty->TS_keypad_mode);
@@ -1846,24 +1857,20 @@ turn_on_face (f, face_id)
if (tty->TN_max_colors > 0)
{
- char *p;
+ char *ts, *p;
- if (fg >= 0 && tty->TS_set_foreground)
+ ts = tty->standout_mode ? tty->TS_set_background : tty->TS_set_foreground;
+ if (fg >= 0 && ts)
{
- if (tty->standout_mode)
- p = tparam (tty->TS_set_background, NULL, 0, (int) fg);
- else
- p = tparam (tty->TS_set_foreground, NULL, 0, (int) fg);
+ p = tparam (ts, NULL, 0, (int) fg);
OUTPUT (tty, p);
xfree (p);
}
- if (bg >= 0 && tty->TS_set_background)
+ ts = tty->standout_mode ? tty->TS_set_foreground : tty->TS_set_background;
+ if (bg >= 0 && ts)
{
- if (tty->standout_mode)
- p = tparam (tty->TS_set_foreground, NULL, 0, (int) bg);
- else
- p = tparam (tty->TS_set_background, NULL, 0, (int) bg);
+ p = tparam (ts, NULL, 0, (int) bg);
OUTPUT (tty, p);
xfree (p);
}
diff --git a/src/termcap.c b/src/termcap.c
index 5f2fa55556..2f6f324ead 100644
--- a/src/termcap.c
+++ b/src/termcap.c
@@ -1,6 +1,6 @@
/* Work-alike for termcap, plus extra features.
- Copyright (C) 1985, 86, 93, 94, 95, 2000, 2001
- Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1993, 1994, 1995, 2000, 2001, 2002, 2003,
+ 2004, 2005 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/src/termchar.h b/src/termchar.h
index 1f6580b91f..8707213631 100644
--- a/src/termchar.h
+++ b/src/termchar.h
@@ -1,5 +1,6 @@
/* Flags and parameters describing terminal's characteristics.
- Copyright (C) 1985, 1986 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/termhooks.h b/src/termhooks.h
index 5b411c6ab7..3fea7c366f 100644
--- a/src/termhooks.h
+++ b/src/termhooks.h
@@ -1,5 +1,6 @@
-/* Parameters and display hooks for output devices
- Copyright (C) 1985,86,93,94,2003 Free Software Foundation, Inc.
+/* Parameters and display hooks for output devices.
+ Copyright (C) 1985, 1986, 1993, 1994, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/terminfo.c b/src/terminfo.c
index 8f040d10c6..5c0aa1ccf0 100644
--- a/src/terminfo.c
+++ b/src/terminfo.c
@@ -1,5 +1,6 @@
/* Interface from Emacs to terminfo.
- Copyright (C) 1985, 1986 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/termopts.h b/src/termopts.h
index 94d3f3bb9d..2e5da3c994 100644
--- a/src/termopts.h
+++ b/src/termopts.h
@@ -1,5 +1,6 @@
/* Flags and parameters describing user options for handling the terminal.
- Copyright (C) 1985, 1986, 1990 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1990, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/textprop.c b/src/textprop.c
index 718051e38f..fa9b0e498c 100644
--- a/src/textprop.c
+++ b/src/textprop.c
@@ -1,6 +1,6 @@
/* Interface code for dealing with text properties.
- Copyright (C) 1993, 1994, 1995, 1997, 1999, 2000, 2001, 2002, 2003, 2004
- Free Software Foundation, Inc.
+ Copyright (C) 1993, 1994, 1995, 1997, 1999, 2000, 2001, 2002, 2003,
+ 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -719,7 +719,7 @@ it finds a change in some text property, or the beginning or end of an
overlay, and returns the position of that.
If none is found, the function returns (point-max).
-If the optional third argument LIMIT is non-nil, don't search
+If the optional second argument LIMIT is non-nil, don't search
past position LIMIT; return LIMIT if nothing is found before LIMIT. */)
(position, limit)
Lisp_Object position, limit;
@@ -744,7 +744,7 @@ finds a change in some text property, or the beginning or end of an
overlay, and returns the position of that.
If none is found, the function returns (point-max).
-If the optional third argument LIMIT is non-nil, don't search
+If the optional second argument LIMIT is non-nil, don't search
past position LIMIT; return LIMIT if nothing is found before LIMIT. */)
(position, limit)
Lisp_Object position, limit;
diff --git a/src/tparam.c b/src/tparam.c
index e05f01f491..e593589d5c 100644
--- a/src/tparam.c
+++ b/src/tparam.c
@@ -1,5 +1,6 @@
/* Merge parameters into a termcap entry string.
- Copyright (C) 1985, 87, 93, 95, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1987, 1993, 1995, 2000, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/src/uaf.h b/src/uaf.h
index 71ae726714..7863c41227 100644
--- a/src/uaf.h
+++ b/src/uaf.h
@@ -1,5 +1,5 @@
/* GNU Emacs VMS UAF definition file.
- Copyright (C) 1986 Free Software Foundation, Inc.
+ Copyright (C) 1986, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/undo.c b/src/undo.c
index 13ee40130a..9839906ca7 100644
--- a/src/undo.c
+++ b/src/undo.c
@@ -1,6 +1,6 @@
/* undo handling for GNU Emacs.
- Copyright (C) 1990, 1993, 1994, 2000, 2002, 2004, 2005
- Free Software Foundation, Inc.
+ Copyright (C) 1990, 1993, 1994, 2000, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/unexaix.c b/src/unexaix.c
index 4c9f2727e8..071f09898e 100644
--- a/src/unexaix.c
+++ b/src/unexaix.c
@@ -1,5 +1,6 @@
/* Dump an executable image.
- Copyright (C) 1985, 1986, 1987, 1988, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1987, 1988, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/unexalpha.c b/src/unexalpha.c
index aa32f411fc..069c39b398 100644
--- a/src/unexalpha.c
+++ b/src/unexalpha.c
@@ -1,6 +1,7 @@
/* Unexec for DEC alpha. schoepf@sc.ZIB-Berlin.DE (Rainer Schoepf).
- Copyright (C) 1994, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1994, 2000, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/unexapollo.c b/src/unexapollo.c
index d9bff96369..f1481d684a 100644
--- a/src/unexapollo.c
+++ b/src/unexapollo.c
@@ -1,5 +1,6 @@
/* unexapollo.c -- COFF File UNEXEC for GNU Emacs on Apollo SR10.x
- Copyright (C) 1988, 1994 Free Software Foundation, Inc.
+ Copyright (C) 1988, 1994, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/unexconvex.c b/src/unexconvex.c
index cbd1dd29fd..6f05e4ae93 100644
--- a/src/unexconvex.c
+++ b/src/unexconvex.c
@@ -7,7 +7,8 @@
think about it, or about whether other Emacs maintenance might
break it.
- Copyright (C) 1985, 1986, 1988 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1988, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/unexcw.c b/src/unexcw.c
index 77d5866136..cfd87781a1 100644
--- a/src/unexcw.c
+++ b/src/unexcw.c
@@ -1,8 +1,7 @@
/* unexec() support for Cygwin;
complete rewrite of xemacs Cygwin unexec() code
- Copyright (C) 2004
- Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/unexec.c b/src/unexec.c
index bf231b0062..ebf813306d 100644
--- a/src/unexec.c
+++ b/src/unexec.c
@@ -1,4 +1,5 @@
-/* Copyright (C) 1985,86,87,88,92,93,94 Free Software Foundation, Inc.
+/* Copyright (C) 1985, 1986, 1987, 1988, 1992, 1993, 1994, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/unexelf.c b/src/unexelf.c
index 9e8b827a75..ee563b36a9 100644
--- a/src/unexelf.c
+++ b/src/unexelf.c
@@ -1,5 +1,5 @@
-/* Copyright (C) 1985,86,87,88,90,92,1999,2000,01,2003
- Free Software Foundation, Inc.
+/* Copyright (C) 1985, 1986, 1987, 1988, 1990, 1992, 1999, 2000, 2001,
+ 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/unexenix.c b/src/unexenix.c
index 94ac3eb821..159c0b2f6d 100644
--- a/src/unexenix.c
+++ b/src/unexenix.c
@@ -6,7 +6,8 @@
we don't plan to think about it, or about whether other Emacs
maintenance might break it.
- Copyright (C) 1988, 1994 Free Software Foundation, Inc.
+ Copyright (C) 1988, 1994, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/unexmacosx.c b/src/unexmacosx.c
index a191c0721e..9db9622f6f 100644
--- a/src/unexmacosx.c
+++ b/src/unexmacosx.c
@@ -1,5 +1,5 @@
/* Dump Emacs in Mach-O format for use on Mac OS X.
- Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/unexmips.c b/src/unexmips.c
index 53b40f6274..212f7ed592 100644
--- a/src/unexmips.c
+++ b/src/unexmips.c
@@ -6,7 +6,8 @@
we don't plan to think about it, or about whether other Emacs
maintenance might break it.
- Copyright (C) 1988, 1994 Free Software Foundation, Inc.
+ Copyright (C) 1988, 1994, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/unexnext.c b/src/unexnext.c
index 2a0b66bc86..b374dd8e9b 100644
--- a/src/unexnext.c
+++ b/src/unexnext.c
@@ -1,5 +1,6 @@
/* Dump Emacs in macho format.
- Copyright (C) 1990, 1993 Free Software Foundation, Inc.
+ Copyright (C) 1990, 1993, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
Written by Bradley Taylor (btaylor@next.com).
This file is part of GNU Emacs.
diff --git a/src/unexsni.c b/src/unexsni.c
index 0c67af899d..d6b3ae6896 100644
--- a/src/unexsni.c
+++ b/src/unexsni.c
@@ -1,6 +1,6 @@
/* Unexec for Siemens machines running Sinix (modified SVR4).
- Copyright (C) 1985, 1986, 1987, 1988, 1990, 1992, 1993, 1994, 1995
- Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1987, 1988, 1990, 1992, 1993, 1994, 1995, 2002,
+ 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/unexsunos4.c b/src/unexsunos4.c
index 9ad06b6ada..5e221050f3 100644
--- a/src/unexsunos4.c
+++ b/src/unexsunos4.c
@@ -1,5 +1,6 @@
/* Unexec for Sunos 4 using shared libraries.
- Copyright (C) 1990, 1994, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1990, 1994, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/unexw32.c b/src/unexw32.c
index 5380ca5c8f..bc462c18a1 100644
--- a/src/unexw32.c
+++ b/src/unexw32.c
@@ -1,5 +1,5 @@
/* unexec for GNU Emacs on Windows NT.
- Copyright (C) 1994, 2005 Free Software Foundation, Inc.
+ Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/vm-limit.c b/src/vm-limit.c
index 1840eb61c0..0c12dec9b0 100644
--- a/src/vm-limit.c
+++ b/src/vm-limit.c
@@ -1,5 +1,6 @@
/* Functions for memory limit warnings.
- Copyright (C) 1990, 1992 Free Software Foundation, Inc.
+ Copyright (C) 1990, 1992, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/w16select.c b/src/w16select.c
index 406f0a1b88..b0c30eb58d 100644
--- a/src/w16select.c
+++ b/src/w16select.c
@@ -1,5 +1,6 @@
/* 16-bit Windows Selection processing for emacs on MS-Windows
- Copyright (C) 1996, 1997, 2001 Free Software Foundation.
+ Copyright (C) 1996, 1997, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/w32.c b/src/w32.c
index 7795903791..c7f6e3172f 100644
--- a/src/w32.c
+++ b/src/w32.c
@@ -1,5 +1,6 @@
/* Utility and Unix shadow routines for GNU Emacs on the Microsoft W32 API.
- Copyright (C) 1994, 1995, 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1994, 1995, 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -20,8 +21,6 @@ Boston, MA 02110-1301, USA.
Geoff Voelker (voelker@cs.washington.edu) 7-29-94
*/
-
-
#include <stddef.h> /* for offsetof */
#include <stdlib.h>
#include <stdio.h>
@@ -73,6 +72,7 @@ Boston, MA 02110-1301, USA.
#define _ANONYMOUS_STRUCT
#endif
#include <windows.h>
+#include <shlobj.h>
#ifdef HAVE_SOCKETS /* TCP connection support, if kernel can do it */
#include <sys/socket.h>
@@ -100,6 +100,9 @@ Boston, MA 02110-1301, USA.
#include "w32heap.h"
#include "systime.h"
+typedef HRESULT (WINAPI * ShGetFolderPath_fn)
+ (IN HWND, IN int, IN HANDLE, IN DWORD, OUT char *);
+
void globals_of_w32 ();
extern Lisp_Object Vw32_downcase_file_names;
@@ -903,7 +906,9 @@ init_environment (char ** argv)
static const char * const tempdirs[] = {
"$TMPDIR", "$TEMP", "$TMP", "c:/"
};
+
int i;
+
const int imax = sizeof (tempdirs) / sizeof (tempdirs[0]);
/* Make sure they have a usable $TMPDIR. Many Emacs functions use
@@ -942,6 +947,8 @@ init_environment (char ** argv)
LPBYTE lpval;
DWORD dwType;
char locale_name[32];
+ struct stat ignored;
+ char default_home[MAX_PATH];
static struct env_entry
{
@@ -964,6 +971,35 @@ init_environment (char ** argv)
{"LANG", NULL},
};
+ /* For backwards compatibility, check if a .emacs file exists in C:/
+ If not, then we can try to default to the appdata directory under the
+ user's profile, which is more likely to be writable. */
+ if (stat ("C:/.emacs", &ignored) < 0)
+ {
+ HRESULT profile_result;
+ /* Dynamically load ShGetFolderPath, as it won't exist on versions
+ of Windows 95 and NT4 that have not been updated to include
+ MSIE 5. Also we don't link with shell32.dll by default. */
+ HMODULE shell32_dll;
+ ShGetFolderPath_fn get_folder_path;
+ shell32_dll = GetModuleHandle ("shell32.dll");
+ get_folder_path = (ShGetFolderPath_fn)
+ GetProcAddress (shell32_dll, "SHGetFolderPathA");
+
+ if (get_folder_path != NULL)
+ {
+ profile_result = get_folder_path (NULL, CSIDL_APPDATA, NULL,
+ 0, default_home);
+
+ /* If we can't get the appdata dir, revert to old behaviour. */
+ if (profile_result == S_OK)
+ env_vars[0].def_value = default_home;
+ }
+
+ /* Unload shell32.dll, it is not needed anymore. */
+ FreeLibrary (shell32_dll);
+ }
+
/* Get default locale info and use it for LANG. */
if (GetLocaleInfo (LOCALE_USER_DEFAULT,
LOCALE_SABBREVLANGNAME | LOCALE_USE_CP_ACP,
diff --git a/src/w32.h b/src/w32.h
index 622a2256f0..2981e5bb97 100644
--- a/src/w32.h
+++ b/src/w32.h
@@ -2,7 +2,7 @@
#define EMACS_W32_H
/* Support routines for the NT version of Emacs.
- Copyright (C) 1994 Free Software Foundation, Inc.
+ Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/w32bdf.c b/src/w32bdf.c
index e8612c7b5d..10780f2f0c 100644
--- a/src/w32bdf.c
+++ b/src/w32bdf.c
@@ -1,5 +1,5 @@
/* Implementation of BDF font handling on the Microsoft W32 API.
- Copyright (C) 1999 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/w32bdf.h b/src/w32bdf.h
index ca8a5f368c..9d3d306d56 100644
--- a/src/w32bdf.h
+++ b/src/w32bdf.h
@@ -1,5 +1,5 @@
/* Definitions and header for handling BDF fonts on the Microsoft W32 API.
- Copyright (C) 1999 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/w32console.c b/src/w32console.c
index 0ebda17966..a81591fb96 100644
--- a/src/w32console.c
+++ b/src/w32console.c
@@ -1,5 +1,6 @@
/* Terminal hooks for GNU Emacs on the Microsoft W32 API.
- Copyright (C) 1992, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1992, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/w32fns.c b/src/w32fns.c
index eedc06dda1..9346941813 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -1,6 +1,6 @@
/* Graphical user interface functions for the Microsoft W32 API.
- Copyright (C) 1989, 1992, 93, 94, 95, 96, 97, 98, 99, 2000, 01, 04
- Free Software Foundation, Inc.
+ Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+ 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -153,7 +153,7 @@ int display_hourglass_p;
over text or in the modeline. */
Lisp_Object Vx_pointer_shape, Vx_nontext_pointer_shape, Vx_mode_pointer_shape;
-Lisp_Object Vx_hourglass_pointer_shape, Vx_window_horizontal_drag_shape, Vx_hand_shape;
+Lisp_Object Vx_hourglass_pointer_shape, Vx_window_horizontal_drag_shape;
/* The shape when over mouse-sensitive text. */
@@ -395,10 +395,10 @@ x_window_to_frame (dpyinfo, wdesc)
}
-BOOL my_show_window P_ ((struct frame *, HWND, int));
-void my_set_window_pos P_ ((HWND, HWND, int, int, int, int, UINT));
static Lisp_Object unwind_create_frame P_ ((Lisp_Object));
static Lisp_Object unwind_create_tip_frame P_ ((Lisp_Object));
+static void my_create_window P_ ((struct frame *));
+static void my_create_tip_window P_ ((struct frame *));
/* TODO: Native Input Method support; see x_create_im. */
void x_set_foreground_color P_ ((struct frame *, Lisp_Object, Lisp_Object));
@@ -3847,7 +3847,7 @@ w32_wnd_proc (hwnd, msg, wParam, lParam)
return 0;
}
-void
+static void
my_create_window (f)
struct frame * f;
{
@@ -3863,7 +3863,7 @@ my_create_window (f)
indirectly via the Window thread, as we do not need to process Window
messages for the tooltip. Creating tooltips indirectly also creates
deadlocks when tooltips are created for menu items. */
-void
+static void
my_create_tip_window (f)
struct frame *f;
{
@@ -8760,6 +8760,8 @@ versions of Windows) characters. */);
staticpro (&Qw32_charset_ansi);
Qw32_charset_ansi = intern ("w32-charset-ansi");
staticpro (&Qw32_charset_symbol);
+ Qw32_charset_default = intern ("w32-charset-default");
+ staticpro (&Qw32_charset_default);
Qw32_charset_symbol = intern ("w32-charset-symbol");
staticpro (&Qw32_charset_shiftjis);
Qw32_charset_shiftjis = intern ("w32-charset-shiftjis");
diff --git a/src/w32gui.h b/src/w32gui.h
index 1fd145cd02..644adcea92 100644
--- a/src/w32gui.h
+++ b/src/w32gui.h
@@ -1,5 +1,5 @@
/* Definitions and headers for communication on the Microsoft W32 API.
- Copyright (C) 1995 Free Software Foundation, Inc.
+ Copyright (C) 1995, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/w32heap.c b/src/w32heap.c
index 7de08bb2b4..a0c50da550 100644
--- a/src/w32heap.c
+++ b/src/w32heap.c
@@ -1,5 +1,5 @@
/* Heap management routines for GNU Emacs on the Microsoft W32 API.
- Copyright (C) 1994 Free Software Foundation, Inc.
+ Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/w32heap.h b/src/w32heap.h
index 259d0bf9ed..1b3b815b11 100644
--- a/src/w32heap.h
+++ b/src/w32heap.h
@@ -1,5 +1,5 @@
/* Heap management routines (including unexec) for GNU Emacs on Windows NT.
- Copyright (C) 1994 Free Software Foundation, Inc.
+ Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/w32inevt.c b/src/w32inevt.c
index cc7c5e1e61..ffa2cd0989 100644
--- a/src/w32inevt.c
+++ b/src/w32inevt.c
@@ -1,5 +1,6 @@
/* Input event support for Emacs on the Microsoft W32 API.
- Copyright (C) 1992, 1993, 1995 Free Software Foundation, Inc.
+ Copyright (C) 1992, 1993, 1995, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/w32inevt.h b/src/w32inevt.h
index f811c96c31..e0a9428720 100644
--- a/src/w32inevt.h
+++ b/src/w32inevt.h
@@ -1,5 +1,5 @@
/* Input routines for GNU Emacs on the Microsoft W32 API.
- Copyright (C) 1995 Free Software Foundation, Inc.
+ Copyright (C) 1995, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/w32menu.c b/src/w32menu.c
index 065355f875..d441d14b25 100644
--- a/src/w32menu.c
+++ b/src/w32menu.c
@@ -1,5 +1,6 @@
/* Menu support for GNU Emacs on the Microsoft W32 API.
- Copyright (C) 1986,88,93,94,96,98,1999,2003 Free Software Foundation, Inc.
+ Copyright (C) 1986, 1988, 1993, 1994, 1996, 1998, 1999, 2002, 2003,
+ 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -2320,7 +2321,23 @@ add_menu_item (HMENU menu, widget_value *wv, HMENU item)
item != NULL ? (UINT) item
: (UINT) wv->call_data,
utf16_string);
- if (fuFlags & MF_OWNERDRAW)
+ if (!return_value)
+ {
+ /* On W9x/ME, unicode menus are not supported, though AppendMenuW
+ apparently does exist at least in some cases and appears to be
+ stubbed out to do nothing. out_string is UTF-8, but since
+ our standard menus are in English and this is only going to
+ happen the first time a menu is used, the encoding is
+ of minor importance compared with menus not working at all. */
+ return_value =
+ AppendMenu (menu, fuFlags,
+ item != NULL ? (UINT) item: (UINT) wv->call_data,
+ out_string);
+ /* Don't use unicode menus in future. */
+ unicode_append_menu = NULL;
+ }
+
+ if (unicode_append_menu && (fuFlags & MF_OWNERDRAW))
local_free (out_string);
}
else
@@ -2418,8 +2435,11 @@ w32_menu_display_help (HWND owner, HMENU menu, UINT item, UINT flags)
struct frame *f = x_window_to_frame (&one_w32_display_info, owner);
Lisp_Object frame, help;
- /* No help echo on owner-draw menu items. */
- if (flags & MF_OWNERDRAW || flags & MF_POPUP)
+ /* No help echo on owner-draw menu items, or when the keyboard is used
+ to navigate the menus, since tooltips are distracting if they pop
+ up elsewhere. */
+ if (flags & MF_OWNERDRAW || flags & MF_POPUP
+ || !(flags & MF_MOUSESELECT))
help = Qnil;
else
{
diff --git a/src/w32proc.c b/src/w32proc.c
index 0e3f8f2fd4..628a763c67 100644
--- a/src/w32proc.c
+++ b/src/w32proc.c
@@ -1,5 +1,6 @@
/* Process support for GNU Emacs on the Microsoft W32 API.
- Copyright (C) 1992, 95, 99, 2000, 01, 04 Free Software Foundation, Inc.
+ Copyright (C) 1992, 1995, 1999, 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -2146,6 +2147,8 @@ syms_of_ntproc ()
{
Qhigh = intern ("high");
Qlow = intern ("low");
+ staticpro (&Qhigh);
+ staticpro (&Qlow);
#ifdef HAVE_SOCKETS
defsubr (&Sw32_has_winsock);
@@ -2241,6 +2244,9 @@ the truename of a file can be slow. */);
Note that this option is only useful for files on NTFS volumes, where hard links
are supported. Moreover, it slows down `file-attributes' noticeably. */);
Vw32_get_true_file_attributes = Qt;
+
+ staticpro (&Vw32_valid_locale_ids);
+ staticpro (&Vw32_valid_codepages);
}
/* end of ntproc.c */
diff --git a/src/w32reg.c b/src/w32reg.c
index a70835ac30..40d84df3d1 100644
--- a/src/w32reg.c
+++ b/src/w32reg.c
@@ -1,5 +1,6 @@
/* Emulate the X Resource Manager through the registry.
- Copyright (C) 1990, 1993, 1994 Free Software Foundation.
+ Copyright (C) 1990, 1993, 1994, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/w32select.c b/src/w32select.c
index db29c07814..3556c62a35 100644
--- a/src/w32select.c
+++ b/src/w32select.c
@@ -1,5 +1,6 @@
/* Selection processing for Emacs on the Microsoft W32 API.
- Copyright (C) 1993, 1994, 2004 Free Software Foundation.
+ Copyright (C) 1993, 1994, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/w32term.c b/src/w32term.c
index abf8e377ef..4e7ed968b8 100644
--- a/src/w32term.c
+++ b/src/w32term.c
@@ -1,6 +1,6 @@
/* Implementation of GUI terminal on the Microsoft W32 API.
- Copyright (C) 1989, 93, 94, 95, 96, 1997, 1998, 1999, 2000, 2001
- Free Software Foundation, Inc.
+ Copyright (C) 1989, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+ 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -272,6 +272,11 @@ static void x_draw_hollow_cursor P_ ((struct window *, struct glyph_row *));
static void x_draw_bar_cursor P_ ((struct window *, struct glyph_row *, int,
enum text_cursor_kinds));
static void w32_clip_to_row P_ ((struct window *, struct glyph_row *, int, HDC));
+static BOOL my_show_window P_ ((struct frame *, HWND, int));
+static void my_set_window_pos P_ ((HWND, HWND, int, int, int, int, UINT));
+static void my_set_focus P_ ((struct frame *, HWND));
+static void my_set_foreground_window P_ ((HWND));
+static void my_destroy_window P_ ((struct frame *, HWND));
static Lisp_Object Qvendor_specific_keysyms;
@@ -3632,7 +3637,7 @@ my_create_scrollbar (f, bar)
/*#define ATTACH_THREADS*/
-BOOL
+static BOOL
my_show_window (FRAME_PTR f, HWND hwnd, int how)
{
#ifndef ATTACH_THREADS
@@ -3643,7 +3648,7 @@ my_show_window (FRAME_PTR f, HWND hwnd, int how)
#endif
}
-void
+static void
my_set_window_pos (HWND hwnd, HWND hwndAfter,
int x, int y, int cx, int cy, UINT flags)
{
@@ -3661,7 +3666,7 @@ my_set_window_pos (HWND hwnd, HWND hwndAfter,
#endif
}
-void
+static void
my_set_focus (f, hwnd)
struct frame * f;
HWND hwnd;
@@ -3670,14 +3675,15 @@ my_set_focus (f, hwnd)
(WPARAM) hwnd, 0);
}
-void
+static void
my_set_foreground_window (hwnd)
HWND hwnd;
{
SendMessage (hwnd, WM_EMACS_SETFOREGROUND, (WPARAM) hwnd, 0);
}
-void
+
+static void
my_destroy_window (f, hwnd)
struct frame * f;
HWND hwnd;
diff --git a/src/w32term.h b/src/w32term.h
index 1557a45653..34932c44d3 100644
--- a/src/w32term.h
+++ b/src/w32term.h
@@ -1,5 +1,6 @@
/* Definitions and headers for communication on the Microsoft W32 API.
- Copyright (C) 1995, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1995, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/w32xfns.c b/src/w32xfns.c
index ba705d9498..46a71b942c 100644
--- a/src/w32xfns.c
+++ b/src/w32xfns.c
@@ -1,5 +1,6 @@
/* Functions taken directly from X sources for use with the Microsoft W32 API.
- Copyright (C) 1989, 1992, 1993, 1994, 1995, 1999 Free Software Foundation.
+ Copyright (C) 1989, 1992, 1993, 1994, 1995, 1999, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/widget.c b/src/widget.c
index fdd927cb17..0386890d93 100644
--- a/src/widget.c
+++ b/src/widget.c
@@ -1,5 +1,6 @@
/* The emacs frame widget.
- Copyright (C) 1992, 1993, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1992, 1993, 2000, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/widget.h b/src/widget.h
index 174a6a720d..00d743234c 100644
--- a/src/widget.h
+++ b/src/widget.h
@@ -1,5 +1,5 @@
/* The emacs frame widget public header file.
- Copyright (C) 1993 Free Software Foundation, Inc.
+ Copyright (C) 1993, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/widgetprv.h b/src/widgetprv.h
index ce087e825c..2027b4f602 100644
--- a/src/widgetprv.h
+++ b/src/widgetprv.h
@@ -1,5 +1,5 @@
/* The emacs frame widget private header file.
- Copyright (C) 1993 Free Software Foundation, Inc.
+ Copyright (C) 1993, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/window.c b/src/window.c
index c0cf06d5e4..3140bbaf00 100644
--- a/src/window.c
+++ b/src/window.c
@@ -1,7 +1,7 @@
/* Window creation, deletion and examination for GNU Emacs.
Does not include redisplay.
Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998, 2000,
- 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+ 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -5626,8 +5626,6 @@ struct saved_window
Lisp_Object scroll_bar_width, vertical_scroll_bar_type;
};
-#define SAVED_WINDOW_VECTOR_SIZE 24 /* Arg to Fmake_vector */
-
#define SAVED_WINDOW_N(swv,n) \
((struct saved_window *) (XVECTOR ((swv)->contents[(n)])))
@@ -6207,7 +6205,7 @@ redirection (see `redirect-frame-focus'). */)
data->saved_windows = tem;
for (i = 0; i < n_windows; i++)
XVECTOR (tem)->contents[i]
- = Fmake_vector (make_number (SAVED_WINDOW_VECTOR_SIZE), Qnil);
+ = Fmake_vector (make_number (VECSIZE (struct saved_window)), Qnil);
save_window_save (FRAME_ROOT_WINDOW (f), XVECTOR (tem), 0);
XSETWINDOW_CONFIGURATION (tem, data);
return (tem);
@@ -6248,33 +6246,33 @@ Second arg LEFT-WIDTH specifies the number of character cells to
reserve for the left marginal area. Optional third arg RIGHT-WIDTH
does the same for the right marginal area. A nil width parameter
means no margin. */)
- (window, left, right)
- Lisp_Object window, left, right;
+ (window, left_width, right_width)
+ Lisp_Object window, left_width, right_width;
{
struct window *w = decode_window (window);
/* Translate negative or zero widths to nil.
Margins that are too wide have to be checked elsewhere. */
- if (!NILP (left))
+ if (!NILP (left_width))
{
- CHECK_NUMBER (left);
- if (XINT (left) <= 0)
- left = Qnil;
+ CHECK_NUMBER (left_width);
+ if (XINT (left_width) <= 0)
+ left_width = Qnil;
}
- if (!NILP (right))
+ if (!NILP (right_width))
{
- CHECK_NUMBER (right);
- if (XINT (right) <= 0)
- right = Qnil;
+ CHECK_NUMBER (right_width);
+ if (XINT (right_width) <= 0)
+ right_width = Qnil;
}
- if (!EQ (w->left_margin_cols, left)
- || !EQ (w->right_margin_cols, right))
+ if (!EQ (w->left_margin_cols, left_width)
+ || !EQ (w->right_margin_cols, right_width))
{
- w->left_margin_cols = left;
- w->right_margin_cols = right;
+ w->left_margin_cols = left_width;
+ w->right_margin_cols = right_width;
adjust_window_margins (w);
@@ -6319,22 +6317,22 @@ the command `set-fringe-style'.
If optional fourth arg OUTSIDE-MARGINS is non-nil, draw the fringes
outside of the display margins. By default, fringes are drawn between
display marginal areas and the text area. */)
- (window, left, right, outside_margins)
- Lisp_Object window, left, right, outside_margins;
+ (window, left_width, right_width, outside_margins)
+ Lisp_Object window, left_width, right_width, outside_margins;
{
struct window *w = decode_window (window);
- if (!NILP (left))
- CHECK_NATNUM (left);
- if (!NILP (right))
- CHECK_NATNUM (right);
+ if (!NILP (left_width))
+ CHECK_NATNUM (left_width);
+ if (!NILP (right_width))
+ CHECK_NATNUM (right_width);
- if (!EQ (w->left_fringe_width, left)
- || !EQ (w->right_fringe_width, right)
+ if (!EQ (w->left_fringe_width, left_width)
+ || !EQ (w->right_fringe_width, right_width)
|| !EQ (w->fringes_outside_margins, outside_margins))
{
- w->left_fringe_width = left;
- w->right_fringe_width = right;
+ w->left_fringe_width = left_width;
+ w->right_fringe_width = right_width;
w->fringes_outside_margins = outside_margins;
adjust_window_margins (w);
diff --git a/src/window.h b/src/window.h
index 7e34ddee26..4ca46b20af 100644
--- a/src/window.h
+++ b/src/window.h
@@ -1,6 +1,6 @@
/* Window definitions for GNU Emacs.
- Copyright (C) 1985,86,93,95,97,98,99, 2000,01,03,04
- Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1993, 1995, 1997, 1998, 1999, 2000, 2001,
+ 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/xdisp.c b/src/xdisp.c
index 1754598f92..a32cb70f43 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -1,6 +1,7 @@
/* Display generation from window structure and buffer text.
- Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1997, 1998, 1999,
- 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995,
+ 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+ 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -231,7 +232,7 @@ extern Lisp_Object Qhelp_echo;
Lisp_Object Qoverriding_local_map, Qoverriding_terminal_local_map;
Lisp_Object Qwindow_scroll_functions, Vwindow_scroll_functions;
-Lisp_Object Qredisplay_end_trigger_functions;
+Lisp_Object Qredisplay_end_trigger_functions, Vredisplay_end_trigger_functions;
Lisp_Object Qinhibit_point_motion_hooks;
Lisp_Object QCeval, QCfile, QCdata, QCpropertize;
Lisp_Object Qfontified;
@@ -1333,6 +1334,9 @@ pos_visible_p (w, charpos, x, y, rtop, rbot, exact_mode_line_heights_p)
current_header_line_height = current_mode_line_height = -1;
+ if (visible_p && XFASTINT (w->hscroll) > 0)
+ *x -= XFASTINT (w->hscroll);
+
return visible_p;
}
@@ -2395,7 +2399,9 @@ start_display (it, w, pos)
init_iterator (it, w, CHARPOS (pos), BYTEPOS (pos), row, DEFAULT_FACE_ID);
it->first_vpos = first_vpos;
- if (!it->truncate_lines_p)
+ /* Don't reseat to previous visible line start if current start
+ position is in a string or image. */
+ if (it->method == GET_FROM_BUFFER && !it->truncate_lines_p)
{
int start_at_line_beg_p;
int first_y = it->current_y;
@@ -5858,6 +5864,15 @@ next_element_from_composition (it)
Moving an iterator without producing glyphs
***********************************************************************/
+/* Check if iterator is at a position corresponding to a valid buffer
+ position after some move_it_ call. */
+
+#define IT_POS_VALID_AFTER_MOVE_P(it) \
+ ((it)->method == GET_FROM_STRING \
+ ? IT_STRING_CHARPOS (*it) == 0 \
+ : 1)
+
+
/* Move iterator IT to a specified buffer or X position within one
line on the display without producing glyphs.
@@ -6366,8 +6381,12 @@ move_it_vertically_backward (it, dy)
y-distance. */
it2 = *it;
it2.max_ascent = it2.max_descent = 0;
- move_it_to (&it2, start_pos, -1, -1, it2.vpos + 1,
- MOVE_TO_POS | MOVE_TO_VPOS);
+ do
+ {
+ move_it_to (&it2, start_pos, -1, -1, it2.vpos + 1,
+ MOVE_TO_POS | MOVE_TO_VPOS);
+ }
+ while (!IT_POS_VALID_AFTER_MOVE_P (&it2));
xassert (IT_CHARPOS (*it) >= BEGV);
it3 = it2;
@@ -6565,21 +6584,45 @@ move_it_by_lines (it, dvpos, need_y_p)
last_height = 0;
}
else if (dvpos > 0)
- move_it_to (it, -1, -1, -1, it->vpos + dvpos, MOVE_TO_VPOS);
+ {
+ move_it_to (it, -1, -1, -1, it->vpos + dvpos, MOVE_TO_VPOS);
+ if (!IT_POS_VALID_AFTER_MOVE_P (it))
+ move_it_to (it, IT_CHARPOS (*it) + 1, -1, -1, -1, MOVE_TO_POS);
+ }
else
{
struct it it2;
int start_charpos, i;
/* Start at the beginning of the screen line containing IT's
- position. */
+ position. This may actually move vertically backwards,
+ in case of overlays, so adjust dvpos accordingly. */
+ dvpos += it->vpos;
move_it_vertically_backward (it, 0);
+ dvpos -= it->vpos;
/* Go back -DVPOS visible lines and reseat the iterator there. */
start_charpos = IT_CHARPOS (*it);
- for (i = -dvpos; i && IT_CHARPOS (*it) > BEGV; --i)
+ for (i = -dvpos; i > 0 && IT_CHARPOS (*it) > BEGV; --i)
back_to_previous_visible_line_start (it);
reseat (it, it->current.pos, 1);
+
+ /* Move further back if we end up in a string or an image. */
+ while (!IT_POS_VALID_AFTER_MOVE_P (it))
+ {
+ /* First try to move to start of display line. */
+ dvpos += it->vpos;
+ move_it_vertically_backward (it, 0);
+ dvpos -= it->vpos;
+ if (IT_POS_VALID_AFTER_MOVE_P (it))
+ break;
+ /* If start of line is still in string or image,
+ move further back. */
+ back_to_previous_visible_line_start (it);
+ reseat (it, it->current.pos, 1);
+ dvpos--;
+ }
+
it->current_x = it->hpos = 0;
/* Above call may have moved too far if continuation lines
@@ -7044,6 +7087,9 @@ message3_nolog (m, nbytes, multibyte)
set_message (NULL, m, nbytes, multibyte);
if (minibuffer_auto_raise)
Fraise_frame (frame);
+ /* Assume we are not echoing.
+ (If we are, echo_now will override this.) */
+ echo_message_buffer = Qnil;
}
else
clear_message (1, 1);
@@ -7587,13 +7633,16 @@ display_echo_area_1 (a1, a2, a3, a4)
int window_height_changed_p = 0;
/* Do this before displaying, so that we have a large enough glyph
- matrix for the display. */
+ matrix for the display. If we can't get enough space for the
+ whole text, display the last N lines. That works by setting w->start. */
window_height_changed_p = resize_mini_window (w, 0);
+ /* Use the starting position chosen by resize_mini_window. */
+ SET_TEXT_POS_FROM_MARKER (start, w->start);
+
/* Display. */
clear_glyph_matrix (w->desired_matrix);
XSETWINDOW (window, w);
- SET_TEXT_POS (start, BEG, BEG_BYTE);
try_window (window, start, 0);
return window_height_changed_p;
@@ -7649,8 +7698,14 @@ resize_mini_window_1 (a1, exactly, a3, a4)
/* Resize mini-window W to fit the size of its contents. EXACT:P
means size the window exactly to the size needed. Otherwise, it's
- only enlarged until W's buffer is empty. Value is non-zero if
- the window height has been changed. */
+ only enlarged until W's buffer is empty.
+
+ Set W->start to the right place to begin display. If the whole
+ contents fit, start at the beginning. Otherwise, start so as
+ to make the end of the contents appear. This is particularly
+ important for y-or-n-p, but seems desirable generally.
+
+ Value is non-zero if the window height has been changed. */
int
resize_mini_window (w, exact_p)
@@ -7662,6 +7717,11 @@ resize_mini_window (w, exact_p)
xassert (MINI_WINDOW_P (w));
+ /* By default, start display at the beginning. */
+ set_marker_both (w->start, w->buffer,
+ BUF_BEGV (XBUFFER (w->buffer)),
+ BUF_BEGV_BYTE (XBUFFER (w->buffer)));
+
/* Don't resize windows while redisplaying a window; it would
confuse redisplay functions when the size of the window they are
displaying changes from under them. Such a resizing can happen,
@@ -7725,7 +7785,7 @@ resize_mini_window (w, exact_p)
if (height > max_height)
{
height = max_height;
- init_iterator (&it, w, PT, PT_BYTE, NULL, DEFAULT_FACE_ID);
+ init_iterator (&it, w, ZV, ZV_BYTE, NULL, DEFAULT_FACE_ID);
move_it_vertically_backward (&it, (height - 1) * unit);
start = it.current.pos;
}
@@ -10050,7 +10110,9 @@ select_frame_for_redisplay (frame)
(BUFFER_LOCAL_VALUEP (val)
|| SOME_BUFFER_LOCAL_VALUEP (val)))
&& XBUFFER_LOCAL_VALUE (val)->check_frame)
- Fsymbol_value (sym);
+ /* Use find_symbol_value rather than Fsymbol_value
+ to avoid an error if it is void. */
+ find_symbol_value (sym);
for (tail = XFRAME (old)->param_alist; CONSP (tail); tail = XCDR (tail))
if (CONSP (XCAR (tail))
@@ -10061,7 +10123,7 @@ select_frame_for_redisplay (frame)
(BUFFER_LOCAL_VALUEP (val)
|| SOME_BUFFER_LOCAL_VALUEP (val)))
&& XBUFFER_LOCAL_VALUE (val)->check_frame)
- Fsymbol_value (sym);
+ find_symbol_value (sym);
}
@@ -10135,6 +10197,16 @@ redisplay_internal (preserve_echo_area)
++redisplaying_p;
specbind (Qinhibit_free_realized_faces, Qnil);
+ {
+ Lisp_Object tail, frame;
+
+ FOR_EACH_FRAME (tail, frame)
+ {
+ struct frame *f = XFRAME (frame);
+ f->already_hscrolled_p = 0;
+ }
+ }
+
retry:
pause = 0;
reconsider_clip_changes (w, current_buffer);
@@ -10569,8 +10641,12 @@ redisplay_internal (preserve_echo_area)
if (FRAME_VISIBLE_P (f) && !FRAME_OBSCURED_P (f))
{
/* See if we have to hscroll. */
- if (hscroll_windows (f->root_window))
- goto retry;
+ if (!f->already_hscrolled_p)
+ {
+ f->already_hscrolled_p = 1;
+ if (hscroll_windows (f->root_window))
+ goto retry;
+ }
/* Prevent various kinds of signals during display
update. stdio is not robust about handling
@@ -11301,7 +11377,7 @@ cursor_row_fully_visible_p (w, force_p, current_matrix_p)
window_height = window_box_height (w);
if (row->height >= window_height)
{
- if (!force_p || w->vscroll)
+ if (!force_p || MINI_WINDOW_P (w) || w->vscroll)
return 1;
}
return 0;
@@ -11831,7 +11907,10 @@ try_cursor_movement (window, startp, scroll_step)
while (!row->mode_line_p
&& (MATRIX_ROW_START_CHARPOS (row) > PT
|| (MATRIX_ROW_START_CHARPOS (row) == PT
- && MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P (row)))
+ && (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P (row)
+ || (/* STARTS_IN_MIDDLE_OF_STRING_P (row) */
+ row > w->current_matrix->rows
+ && (row-1)->ends_in_newline_from_string_p))))
&& (row->y > top_scroll_margin
|| CHARPOS (startp) == BEGV))
{
@@ -12661,10 +12740,9 @@ redisplay_window (window, just_this_one_p)
#ifdef HAVE_WINDOW_SYSTEM
if (FRAME_WINDOW_P (f)
- && update_window_fringes (w, 0)
- && !just_this_one_p
- && (used_current_matrix_p || overlay_arrow_seen)
- && !w->pseudo_window_p)
+ && update_window_fringes (w, (just_this_one_p
+ || (!used_current_matrix_p && !overlay_arrow_seen)
+ || w->pseudo_window_p)))
{
update_begin (f);
BLOCK_INPUT;
@@ -12741,7 +12819,8 @@ try_window (window, pos, check_margins)
}
/* Don't let the cursor end in the scroll margins. */
- if (check_margins)
+ if (check_margins
+ && !MINI_WINDOW_P (w))
{
int this_scroll_margin, cursor_height;
@@ -15006,10 +15085,12 @@ cursor_row_p (w, row)
if (PT == MATRIX_ROW_END_CHARPOS (row))
{
/* If the row ends with a newline from a string, we don't want
- the cursor there (if the row is continued it doesn't end in a
- newline). */
+ the cursor there, but we still want it at the start of the
+ string if the string starts in this row.
+ If the row is continued it doesn't end in a newline. */
if (CHARPOS (row->end.string_pos) >= 0)
- cursor_row_p = row->continued_p;
+ cursor_row_p = (row->continued_p
+ || PT >= MATRIX_ROW_START_CHARPOS (row));
else if (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P (row))
{
/* If the row ends in middle of a real character,
@@ -17566,6 +17647,15 @@ calc_pixel_width_or_height (res, it, prop, font, width_p, align_to)
if (pixels > 0)
{
double ppi;
+#ifdef HAVE_WINDOW_SYSTEM
+ if (FRAME_WINDOW_P (it->f)
+ && (ppi = (width_p
+ ? FRAME_X_DISPLAY_INFO (it->f)->resx
+ : FRAME_X_DISPLAY_INFO (it->f)->resy),
+ ppi > 0))
+ return OK_PIXELS (ppi / pixels);
+#endif
+
if ((ppi = NUMVAL (Vdisplay_pixels_per_inch), ppi > 0)
|| (CONSP (Vdisplay_pixels_per_inch)
&& (ppi = (width_p
@@ -23001,7 +23091,7 @@ of the top or bottom of the window. */);
scroll_margin = 0;
DEFVAR_LISP ("display-pixels-per-inch", &Vdisplay_pixels_per_inch,
- doc: /* Pixels per inch on current display.
+ doc: /* Pixels per inch value for non-window system displays.
Value is a number or a cons (WIDTH-DPI . HEIGHT-DPI). */);
Vdisplay_pixels_per_inch = make_float (72.0);
@@ -23088,6 +23178,12 @@ and its new display-start position. Note that the value of `window-end'
is not valid when these functions are called. */);
Vwindow_scroll_functions = Qnil;
+ DEFVAR_LISP ("redisplay-end-trigger-functions", &Vredisplay_end_trigger_functions,
+ doc: /* Functions called when redisplay of a window reaches the end trigger.
+Each function is called with two arguments, the window and the end trigger value.
+See `set-window-redisplay-end-trigger'. */);
+ Vredisplay_end_trigger_functions = Qnil;
+
DEFVAR_BOOL ("mouse-autoselect-window", &mouse_autoselect_window,
doc: /* *Non-nil means autoselect window with mouse pointer. */);
mouse_autoselect_window = 0;
diff --git a/src/xfaces.c b/src/xfaces.c
index 0667d3823c..06022383cb 100644
--- a/src/xfaces.c
+++ b/src/xfaces.c
@@ -1,6 +1,6 @@
/* xfaces.c -- "Face" primitives.
- Copyright (C) 1993, 1994, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
- Free Software Foundation.
+ Copyright (C) 1993, 1994, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -786,8 +786,6 @@ x_free_gc (f, gc)
#ifdef MAC_OS
/* Mac OS emulation of GCs */
-extern XGCValues *XCreateGC (void *, Window, unsigned long, XGCValues *);
-
static INLINE GC
x_create_gc (f, mask, xgcv)
struct frame *f;
@@ -3926,7 +3924,7 @@ Value is a vector of face attributes. */)
DEFUN ("internal-lisp-face-p", Finternal_lisp_face_p,
Sinternal_lisp_face_p, 1, 2, 0,
doc: /* Return non-nil if FACE names a face.
-If optional second parameter FRAME is non-nil, check for the
+If optional second argument FRAME is non-nil, check for the
existence of a frame-local face with name FACE on that frame.
Otherwise check for the existence of a global face. */)
(face, frame)
@@ -4735,7 +4733,12 @@ x_update_menu_appearance (f)
const char *suffix = "List";
Bool motif = True;
#else
+#if defined HAVE_X_I18N
+
+ const char *suffix = "Set";
+#else
const char *suffix = "";
+#endif
Bool motif = False;
#endif
#if defined HAVE_X_I18N
@@ -6757,14 +6760,21 @@ try_font_list (f, attrs, family, registry, fonts, prefer_face_family)
nfonts = try_alternative_families (f, try_family, registry, fonts);
#ifdef MAC_OS
- /* When realizing the default face and a font spec does not matched
- exactly, Emacs looks for ones with the same registry as the
- default font. On the Mac, this is mac-roman, which does not work
- if the family is -etl-fixed, e.g. The following widens the
- choices and fixes that problem. */
- if (nfonts == 0 && STRINGP (try_family) && STRINGP (registry)
- && xstricmp (SDATA (registry), "mac-roman") == 0)
- nfonts = try_alternative_families (f, try_family, Qnil, fonts);
+ if (nfonts == 0 && STRINGP (try_family) && STRINGP (registry))
+ if (xstricmp (SDATA (registry), "mac-roman") == 0)
+ /* When realizing the default face and a font spec does not
+ matched exactly, Emacs looks for ones with the same registry
+ as the default font. On the Mac, this is mac-roman, which
+ does not work if the family is -etl-fixed, e.g. The
+ following widens the choices and fixes that problem. */
+ nfonts = try_alternative_families (f, try_family, Qnil, fonts);
+ else if (SBYTES (try_family) > 0
+ && SREF (try_family, SBYTES (try_family) - 1) != '*')
+ /* Some Central European/Cyrillic font family names have the
+ Roman counterpart name as their prefix. */
+ nfonts = try_alternative_families (f, concat2 (try_family,
+ build_string ("*")),
+ registry, fonts);
#endif
if (EQ (try_family, family))
diff --git a/src/xfns.c b/src/xfns.c
index f629ee31ae..11f4c2eadb 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -1,6 +1,6 @@
/* Functions for the X window system.
Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
- 2001, 2002, 2003, 2004, 2005 Free Software Foundation.
+ 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/xmenu.c b/src/xmenu.c
index 321e6deb7c..4abf89655d 100644
--- a/src/xmenu.c
+++ b/src/xmenu.c
@@ -1,6 +1,6 @@
/* X Communication module for terminals which understand the X protocol.
- Copyright (C) 1986, 1988, 1993, 1994, 1996, 1999, 2000, 2001, 2003, 2004,
- 2005 Free Software Foundation, Inc.
+ Copyright (C) 1986, 1988, 1993, 1994, 1996, 1999, 2000, 2001, 2002, 2003,
+ 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/xrdb.c b/src/xrdb.c
index 248e5eba64..822fb6e262 100644
--- a/src/xrdb.c
+++ b/src/xrdb.c
@@ -1,5 +1,6 @@
/* Deal with the X Resource Manager.
- Copyright (C) 1990, 1993, 1994, 2000, 2001 Free Software Foundation.
+ Copyright (C) 1990, 1993, 1994, 2000, 2001, 2002, 2003, 2004,
+ 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/xselect.c b/src/xselect.c
index e7c6d57f87..432365fdb6 100644
--- a/src/xselect.c
+++ b/src/xselect.c
@@ -1,6 +1,6 @@
/* X Selection processing for Emacs.
- Copyright (C) 1993, 1994, 1995, 1996, 1997, 2000, 2001, 2003, 2004
- Free Software Foundation.
+ Copyright (C) 1993, 1994, 1995, 1996, 1997, 2000, 2001, 2002, 2003,
+ 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -2986,7 +2986,6 @@ A value of 0 means wait as long as necessary. This is initialized from the
QTEXT = intern ("TEXT"); staticpro (&QTEXT);
QCOMPOUND_TEXT = intern ("COMPOUND_TEXT"); staticpro (&QCOMPOUND_TEXT);
QUTF8_STRING = intern ("UTF8_STRING"); staticpro (&QUTF8_STRING);
- QTIMESTAMP = intern ("TIMESTAMP"); staticpro (&QTIMESTAMP);
QDELETE = intern ("DELETE"); staticpro (&QDELETE);
QMULTIPLE = intern ("MULTIPLE"); staticpro (&QMULTIPLE);
QINCR = intern ("INCR"); staticpro (&QINCR);
diff --git a/src/xsmfns.c b/src/xsmfns.c
index 88bc416e5d..fc427a2979 100644
--- a/src/xsmfns.c
+++ b/src/xsmfns.c
@@ -1,6 +1,6 @@
/* Session management module for systems which understand the X Session
management protocol.
- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
diff --git a/src/xterm.c b/src/xterm.c
index aa0ea804ae..04f9b89574 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -1,6 +1,6 @@
/* X Communication module for terminals which understand the X protocol.
Copyright (C) 1989, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
- 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+ 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -9285,7 +9285,14 @@ x_wm_set_icon_pixmap (f, pixmap_id)
#endif
}
-#ifdef USE_X_TOOLKIT /* same as in x_wm_set_window_state. */
+
+#ifdef USE_GTK
+ {
+ xg_set_frame_icon (f, icon_pixmap, icon_mask);
+ return;
+ }
+
+#elif defined (USE_X_TOOLKIT) /* same as in x_wm_set_window_state. */
{
Arg al[1];
@@ -9295,12 +9302,12 @@ x_wm_set_icon_pixmap (f, pixmap_id)
XtSetValues (f->output_data.x->widget, al, 1);
}
-#else /* not USE_X_TOOLKIT */
+#else /* not USE_X_TOOLKIT && not USE_GTK */
f->output_data.x->wm_hints.flags |= (IconPixmapHint | IconMaskHint);
XSetWMHints (FRAME_X_DISPLAY (f), window, &f->output_data.x->wm_hints);
-#endif /* not USE_X_TOOLKIT */
+#endif /* not USE_X_TOOLKIT && not USE_GTK */
}
void
diff --git a/src/xterm.h b/src/xterm.h
index 835434d090..aa615d06a1 100644
--- a/src/xterm.h
+++ b/src/xterm.h
@@ -1,6 +1,6 @@
/* Definitions and headers for communication with X protocol.
- Copyright (C) 1989, 1993, 1994, 1998, 1999, 2000,01,02,03,04
- Free Software Foundation, Inc.
+ Copyright (C) 1989, 1993, 1994, 1998, 1999, 2000, 2001, 2002, 2003,
+ 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Emacs.