summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorMiles Bader <miles@gnu.org>2007-07-31 05:50:45 +0000
committerMiles Bader <miles@gnu.org>2007-07-31 05:50:45 +0000
commit9899d01a0ccec166e04caa60657a44e614be50cd (patch)
tree6f7874938065fd9808765059213ff7a94ab3268b /lisp
parent96157d113ae5828cc280488211610db1960d572c (diff)
parent2f12b713116a4e15b4744fc78d5f0dbb57fcd1ca (diff)
downloademacs-9899d01a0ccec166e04caa60657a44e614be50cd.tar.gz
Merge from emacs--devo--0
Patches applied: * emacs--devo--0 (patch 824-838) - Update from CVS - Merge from emacs--rel--22 - Remove lisp/erc/erc-nicklist.el - Update some .arch-inventory files - Fix void function definition error in cus-edit.el - Restore lisp/emacs-lisp/cl-loaddefs.el * emacs--rel--22 (patch 70-83) - Update from CVS - Remove lisp/erc/erc-nicklist.el - Update some .arch-inventory files - Indicate that emacs--devo--0--patch-834 does not need to be applied - Merge from gnus--rel--5.10 - Restore lisp/emacs-lisp/cl-loaddefs.el * gnus--rel--5.10 (patch 239-241) - Merge from emacs--devo--0 - Update from CVS Revision: emacs@sv.gnu.org/emacs--multi-tty--0--patch-28
Diffstat (limited to 'lisp')
-rw-r--r--lisp/COPYING911
-rw-r--r--lisp/ChangeLog459
-rw-r--r--lisp/ChangeLog.12
-rw-r--r--lisp/ChangeLog.102
-rw-r--r--lisp/ChangeLog.112
-rw-r--r--lisp/ChangeLog.122
-rw-r--r--lisp/ChangeLog.22
-rw-r--r--lisp/ChangeLog.32
-rw-r--r--lisp/ChangeLog.42
-rw-r--r--lisp/ChangeLog.52
-rw-r--r--lisp/ChangeLog.62
-rw-r--r--lisp/ChangeLog.72
-rw-r--r--lisp/ChangeLog.82
-rw-r--r--lisp/ChangeLog.92
-rw-r--r--lisp/Makefile.in2
-rw-r--r--lisp/abbrev.el2
-rw-r--r--lisp/abbrevlist.el2
-rw-r--r--lisp/add-log.el25
-rw-r--r--lisp/align.el2
-rw-r--r--lisp/allout.el2
-rw-r--r--lisp/ansi-color.el2
-rw-r--r--lisp/apropos.el2
-rw-r--r--lisp/arc-mode.el2
-rw-r--r--lisp/array.el2
-rw-r--r--lisp/autoarg.el2
-rw-r--r--lisp/autoinsert.el2
-rw-r--r--lisp/autorevert.el2
-rw-r--r--lisp/avoid.el2
-rw-r--r--lisp/battery.el2
-rw-r--r--lisp/bindings.el4
-rw-r--r--lisp/bookmark.el2
-rw-r--r--lisp/bs.el2
-rw-r--r--lisp/buff-menu.el2
-rw-r--r--lisp/button.el2
-rw-r--r--lisp/calc/README2
-rw-r--r--lisp/calc/README.prev2
-rw-r--r--lisp/calc/calc-aent.el2
-rw-r--r--lisp/calc/calc-alg.el2
-rw-r--r--lisp/calc/calc-arith.el2
-rw-r--r--lisp/calc/calc-bin.el2
-rw-r--r--lisp/calc/calc-comb.el2
-rw-r--r--lisp/calc/calc-cplx.el2
-rw-r--r--lisp/calc/calc-embed.el2
-rw-r--r--lisp/calc/calc-ext.el2
-rw-r--r--lisp/calc/calc-fin.el2
-rw-r--r--lisp/calc/calc-forms.el2
-rw-r--r--lisp/calc/calc-frac.el2
-rw-r--r--lisp/calc/calc-funcs.el2
-rw-r--r--lisp/calc/calc-graph.el2
-rw-r--r--lisp/calc/calc-help.el2
-rw-r--r--lisp/calc/calc-incom.el2
-rw-r--r--lisp/calc/calc-keypd.el2
-rw-r--r--lisp/calc/calc-lang.el2
-rw-r--r--lisp/calc/calc-macs.el2
-rw-r--r--lisp/calc/calc-map.el2
-rw-r--r--lisp/calc/calc-math.el2
-rw-r--r--lisp/calc/calc-misc.el2
-rw-r--r--lisp/calc/calc-mode.el2
-rw-r--r--lisp/calc/calc-mtx.el2
-rw-r--r--lisp/calc/calc-poly.el2
-rw-r--r--lisp/calc/calc-prog.el2
-rw-r--r--lisp/calc/calc-rewr.el2
-rw-r--r--lisp/calc/calc-rules.el2
-rw-r--r--lisp/calc/calc-sel.el2
-rw-r--r--lisp/calc/calc-stat.el2
-rw-r--r--lisp/calc/calc-store.el2
-rw-r--r--lisp/calc/calc-stuff.el2
-rw-r--r--lisp/calc/calc-trail.el2
-rw-r--r--lisp/calc/calc-undo.el2
-rw-r--r--lisp/calc/calc-units.el2
-rw-r--r--lisp/calc/calc-vec.el2
-rw-r--r--lisp/calc/calc-yank.el2
-rw-r--r--lisp/calc/calc.el2
-rw-r--r--lisp/calc/calcalg2.el2
-rw-r--r--lisp/calc/calcalg3.el2
-rw-r--r--lisp/calc/calccomp.el2
-rw-r--r--lisp/calc/calcsel2.el2
-rw-r--r--lisp/calculator.el2
-rw-r--r--lisp/calendar/appt.el10
-rw-r--r--lisp/calendar/cal-bahai.el204
-rw-r--r--lisp/calendar/cal-china.el2
-rw-r--r--lisp/calendar/cal-coptic.el2
-rw-r--r--lisp/calendar/cal-dst.el2
-rw-r--r--lisp/calendar/cal-french.el2
-rw-r--r--lisp/calendar/cal-hebrew.el142
-rw-r--r--lisp/calendar/cal-html.el2
-rw-r--r--lisp/calendar/cal-islam.el142
-rw-r--r--lisp/calendar/cal-iso.el2
-rw-r--r--lisp/calendar/cal-julian.el2
-rw-r--r--lisp/calendar/cal-mayan.el2
-rw-r--r--lisp/calendar/cal-menu.el474
-rw-r--r--lisp/calendar/cal-move.el66
-rw-r--r--lisp/calendar/cal-persia.el2
-rw-r--r--lisp/calendar/cal-tex.el1693
-rw-r--r--lisp/calendar/cal-x.el4
-rw-r--r--lisp/calendar/calendar.el144
-rw-r--r--lisp/calendar/diary-lib.el175
-rw-r--r--lisp/calendar/holidays.el2
-rw-r--r--lisp/calendar/icalendar.el2
-rw-r--r--lisp/calendar/lunar.el2
-rw-r--r--lisp/calendar/parse-time.el2
-rw-r--r--lisp/calendar/solar.el2
-rw-r--r--lisp/calendar/time-date.el2
-rw-r--r--lisp/calendar/timeclock.el2
-rw-r--r--lisp/calendar/todo-mode.el2
-rw-r--r--lisp/case-table.el2
-rw-r--r--lisp/cdl.el2
-rw-r--r--lisp/chistory.el2
-rw-r--r--lisp/cmuscheme.el2
-rw-r--r--lisp/comint.el2
-rw-r--r--lisp/compare-w.el2
-rw-r--r--lisp/complete.el2
-rw-r--r--lisp/completion.el2
-rw-r--r--lisp/composite.el2
-rw-r--r--lisp/cus-dep.el2
-rw-r--r--lisp/cus-edit.el109
-rw-r--r--lisp/cus-face.el2
-rw-r--r--lisp/cus-start.el2
-rw-r--r--lisp/cus-theme.el2
-rw-r--r--lisp/custom.el2
-rw-r--r--lisp/cvs-status.el2
-rw-r--r--lisp/dabbrev.el2
-rw-r--r--lisp/delim-col.el2
-rw-r--r--lisp/delsel.el2
-rw-r--r--lisp/descr-text.el2
-rw-r--r--lisp/desktop.el2
-rw-r--r--lisp/dframe.el2
-rw-r--r--lisp/diff-mode.el2
-rw-r--r--lisp/diff.el2
-rw-r--r--lisp/dired-aux.el2
-rw-r--r--lisp/dired-x.el2
-rw-r--r--lisp/dired.el26
-rw-r--r--lisp/dirtrack.el2
-rw-r--r--lisp/disp-table.el2
-rw-r--r--lisp/dnd.el2
-rw-r--r--lisp/dos-fns.el2
-rw-r--r--lisp/dos-vars.el2
-rw-r--r--lisp/dos-w32.el2
-rw-r--r--lisp/double.el2
-rw-r--r--lisp/ebuff-menu.el2
-rw-r--r--lisp/echistory.el2
-rw-r--r--lisp/ediff-diff.el2
-rw-r--r--lisp/ediff-help.el2
-rw-r--r--lisp/ediff-hook.el2
-rw-r--r--lisp/ediff-init.el2
-rw-r--r--lisp/ediff-merg.el2
-rw-r--r--lisp/ediff-mult.el2
-rw-r--r--lisp/ediff-ptch.el2
-rw-r--r--lisp/ediff-util.el2
-rw-r--r--lisp/ediff-vers.el2
-rw-r--r--lisp/ediff-wind.el2
-rw-r--r--lisp/ediff.el2
-rw-r--r--lisp/edmacro.el2
-rw-r--r--lisp/ehelp.el2
-rw-r--r--lisp/electric.el2
-rw-r--r--lisp/elide-head.el2
-rw-r--r--lisp/emacs-lisp/advice.el43
-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.el2
-rw-r--r--lisp/emacs-lisp/benchmark.el2
-rw-r--r--lisp/emacs-lisp/bindat.el2
-rw-r--r--lisp/emacs-lisp/byte-opt.el2
-rw-r--r--lisp/emacs-lisp/byte-run.el2
-rw-r--r--lisp/emacs-lisp/bytecomp.el16
-rw-r--r--lisp/emacs-lisp/checkdoc.el2
-rw-r--r--lisp/emacs-lisp/cl-compat.el2
-rw-r--r--lisp/emacs-lisp/cl-extra.el2
-rw-r--r--lisp/emacs-lisp/cl-indent.el2
-rw-r--r--lisp/emacs-lisp/cl-macs.el2
-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.el19
-rw-r--r--lisp/emacs-lisp/crm.el2
-rw-r--r--lisp/emacs-lisp/cust-print.el2
-rw-r--r--lisp/emacs-lisp/debug.el2
-rw-r--r--lisp/emacs-lisp/derived.el2
-rw-r--r--lisp/emacs-lisp/disass.el2
-rw-r--r--lisp/emacs-lisp/easy-mmode.el2
-rw-r--r--lisp/emacs-lisp/easymenu.el2
-rw-r--r--lisp/emacs-lisp/edebug.el2
-rw-r--r--lisp/emacs-lisp/eldoc.el2
-rw-r--r--lisp/emacs-lisp/elint.el2
-rw-r--r--lisp/emacs-lisp/elp.el2
-rw-r--r--lisp/emacs-lisp/ewoc.el2
-rw-r--r--lisp/emacs-lisp/find-func.el2
-rw-r--r--lisp/emacs-lisp/find-gc.el2
-rw-r--r--lisp/emacs-lisp/float-sup.el2
-rw-r--r--lisp/emacs-lisp/generic.el2
-rw-r--r--lisp/emacs-lisp/gulp.el2
-rw-r--r--lisp/emacs-lisp/helper.el2
-rw-r--r--lisp/emacs-lisp/levents.el2
-rw-r--r--lisp/emacs-lisp/lisp-mnt.el2
-rw-r--r--lisp/emacs-lisp/lisp-mode.el4
-rw-r--r--lisp/emacs-lisp/lisp.el2
-rw-r--r--lisp/emacs-lisp/lmenu.el2
-rw-r--r--lisp/emacs-lisp/lselect.el2
-rw-r--r--lisp/emacs-lisp/lucid.el2
-rw-r--r--lisp/emacs-lisp/macroexp.el2
-rw-r--r--lisp/emacs-lisp/map-ynp.el2
-rw-r--r--lisp/emacs-lisp/pp.el2
-rw-r--r--lisp/emacs-lisp/re-builder.el2
-rw-r--r--lisp/emacs-lisp/regexp-opt.el2
-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.el2
-rw-r--r--lisp/emacs-lisp/syntax.el2
-rw-r--r--lisp/emacs-lisp/tcover-ses.el2
-rw-r--r--lisp/emacs-lisp/tcover-unsafep.el2
-rw-r--r--lisp/emacs-lisp/testcover.el2
-rw-r--r--lisp/emacs-lisp/timer.el2
-rw-r--r--lisp/emacs-lisp/tq.el2
-rw-r--r--lisp/emacs-lisp/trace.el2
-rw-r--r--lisp/emacs-lisp/unsafep.el2
-rw-r--r--lisp/emacs-lisp/warnings.el2
-rw-r--r--lisp/emacs-lock.el2
-rw-r--r--lisp/emulation/crisp.el2
-rw-r--r--lisp/emulation/cua-base.el2
-rw-r--r--lisp/emulation/cua-gmrk.el2
-rw-r--r--lisp/emulation/cua-rect.el2
-rw-r--r--lisp/emulation/edt-lk201.el2
-rw-r--r--lisp/emulation/edt-mapper.el2
-rw-r--r--lisp/emulation/edt-pc.el2
-rw-r--r--lisp/emulation/edt-vt100.el2
-rw-r--r--lisp/emulation/edt.el2
-rw-r--r--lisp/emulation/keypad.el2
-rw-r--r--lisp/emulation/pc-mode.el2
-rw-r--r--lisp/emulation/pc-select.el2
-rw-r--r--lisp/emulation/tpu-edt.el2
-rw-r--r--lisp/emulation/tpu-extras.el2
-rw-r--r--lisp/emulation/tpu-mapper.el2
-rw-r--r--lisp/emulation/vip.el2
-rw-r--r--lisp/emulation/viper-cmd.el2
-rw-r--r--lisp/emulation/viper-ex.el2
-rw-r--r--lisp/emulation/viper-init.el2
-rw-r--r--lisp/emulation/viper-keym.el2
-rw-r--r--lisp/emulation/viper-macs.el2
-rw-r--r--lisp/emulation/viper-mous.el2
-rw-r--r--lisp/emulation/viper-util.el2
-rw-r--r--lisp/emulation/viper.el2
-rw-r--r--lisp/emulation/ws-mode.el2
-rw-r--r--lisp/env.el2
-rw-r--r--lisp/erc/ChangeLog12
-rw-r--r--lisp/erc/ChangeLog.012
-rw-r--r--lisp/erc/ChangeLog.022
-rw-r--r--lisp/erc/ChangeLog.032
-rw-r--r--lisp/erc/ChangeLog.042
-rw-r--r--lisp/erc/ChangeLog.052
-rw-r--r--lisp/erc/ChangeLog.062
-rw-r--r--lisp/erc/erc-autoaway.el2
-rw-r--r--lisp/erc/erc-backend.el2
-rw-r--r--lisp/erc/erc-button.el2
-rw-r--r--lisp/erc/erc-capab.el2
-rw-r--r--lisp/erc/erc-compat.el2
-rw-r--r--lisp/erc/erc-dcc.el2
-rw-r--r--lisp/erc/erc-ezbounce.el2
-rw-r--r--lisp/erc/erc-fill.el2
-rw-r--r--lisp/erc/erc-goodies.el2
-rw-r--r--lisp/erc/erc-hecomplete.el2
-rw-r--r--lisp/erc/erc-ibuffer.el2
-rw-r--r--lisp/erc/erc-identd.el2
-rw-r--r--lisp/erc/erc-imenu.el2
-rw-r--r--lisp/erc/erc-join.el2
-rw-r--r--lisp/erc/erc-lang.el2
-rw-r--r--lisp/erc/erc-log.el2
-rw-r--r--lisp/erc/erc-match.el2
-rw-r--r--lisp/erc/erc-menu.el2
-rw-r--r--lisp/erc/erc-netsplit.el2
-rw-r--r--lisp/erc/erc-networks.el2
-rw-r--r--lisp/erc/erc-nicklist.el414
-rw-r--r--lisp/erc/erc-notify.el2
-rw-r--r--lisp/erc/erc-page.el2
-rw-r--r--lisp/erc/erc-pcomplete.el2
-rw-r--r--lisp/erc/erc-replace.el2
-rw-r--r--lisp/erc/erc-ring.el2
-rw-r--r--lisp/erc/erc-services.el2
-rw-r--r--lisp/erc/erc-sound.el2
-rw-r--r--lisp/erc/erc-speedbar.el2
-rw-r--r--lisp/erc/erc-spelling.el2
-rw-r--r--lisp/erc/erc-stamp.el2
-rw-r--r--lisp/erc/erc-track.el2
-rw-r--r--lisp/erc/erc-truncate.el2
-rw-r--r--lisp/erc/erc-xdcc.el2
-rw-r--r--lisp/erc/erc.el2
-rw-r--r--lisp/eshell/em-alias.el2
-rw-r--r--lisp/eshell/em-banner.el2
-rw-r--r--lisp/eshell/em-basic.el2
-rw-r--r--lisp/eshell/em-cmpl.el2
-rw-r--r--lisp/eshell/em-dirs.el2
-rw-r--r--lisp/eshell/em-glob.el2
-rw-r--r--lisp/eshell/em-hist.el2
-rw-r--r--lisp/eshell/em-ls.el2
-rw-r--r--lisp/eshell/em-pred.el2
-rw-r--r--lisp/eshell/em-prompt.el2
-rw-r--r--lisp/eshell/em-rebind.el2
-rw-r--r--lisp/eshell/em-script.el2
-rw-r--r--lisp/eshell/em-smart.el2
-rw-r--r--lisp/eshell/em-term.el2
-rw-r--r--lisp/eshell/em-unix.el2
-rw-r--r--lisp/eshell/em-xtra.el2
-rw-r--r--lisp/eshell/esh-arg.el2
-rw-r--r--lisp/eshell/esh-cmd.el2
-rw-r--r--lisp/eshell/esh-ext.el2
-rw-r--r--lisp/eshell/esh-io.el2
-rw-r--r--lisp/eshell/esh-maint.el2
-rw-r--r--lisp/eshell/esh-mode.el2
-rw-r--r--lisp/eshell/esh-module.el2
-rw-r--r--lisp/eshell/esh-opt.el2
-rw-r--r--lisp/eshell/esh-proc.el2
-rw-r--r--lisp/eshell/esh-test.el2
-rw-r--r--lisp/eshell/esh-util.el2
-rw-r--r--lisp/eshell/esh-var.el2
-rw-r--r--lisp/eshell/eshell.el4
-rw-r--r--lisp/expand.el2
-rw-r--r--lisp/ezimage.el2
-rw-r--r--lisp/facemenu.el2
-rw-r--r--lisp/faces.el2
-rw-r--r--lisp/ffap.el2
-rw-r--r--lisp/filecache.el2
-rw-r--r--lisp/files.el2
-rw-r--r--lisp/filesets.el2
-rw-r--r--lisp/find-dired.el2
-rw-r--r--lisp/find-file.el2
-rw-r--r--lisp/find-lisp.el2
-rw-r--r--lisp/finder.el2
-rw-r--r--lisp/flow-ctrl.el2
-rw-r--r--lisp/foldout.el2
-rw-r--r--lisp/follow.el2
-rw-r--r--lisp/font-core.el2
-rw-r--r--lisp/font-lock.el2
-rw-r--r--lisp/format.el2
-rw-r--r--lisp/forms-d2.el15
-rw-r--r--lisp/forms.el2
-rw-r--r--lisp/frame.el131
-rw-r--r--lisp/fringe.el2
-rw-r--r--lisp/generic-x.el2
-rw-r--r--lisp/gnus/ChangeLog15
-rw-r--r--lisp/gnus/ChangeLog.12
-rw-r--r--lisp/gnus/ChangeLog.22
-rw-r--r--lisp/gnus/binhex.el2
-rw-r--r--lisp/gnus/canlock.el2
-rw-r--r--lisp/gnus/compface.el2
-rw-r--r--lisp/gnus/deuglify.el2
-rw-r--r--lisp/gnus/dig.el2
-rw-r--r--lisp/gnus/dns.el2
-rw-r--r--lisp/gnus/earcon.el2
-rw-r--r--lisp/gnus/flow-fill.el2
-rw-r--r--lisp/gnus/format-spec.el2
-rw-r--r--lisp/gnus/gmm-utils.el2
-rw-r--r--lisp/gnus/gnus-agent.el2
-rw-r--r--lisp/gnus/gnus-art.el2
-rw-r--r--lisp/gnus/gnus-async.el2
-rw-r--r--lisp/gnus/gnus-audio.el2
-rw-r--r--lisp/gnus/gnus-bcklg.el2
-rw-r--r--lisp/gnus/gnus-cache.el2
-rw-r--r--lisp/gnus/gnus-cite.el2
-rw-r--r--lisp/gnus/gnus-cus.el2
-rw-r--r--lisp/gnus/gnus-delay.el2
-rw-r--r--lisp/gnus/gnus-demon.el2
-rw-r--r--lisp/gnus/gnus-diary.el10
-rw-r--r--lisp/gnus/gnus-dired.el2
-rw-r--r--lisp/gnus/gnus-draft.el2
-rw-r--r--lisp/gnus/gnus-dup.el2
-rw-r--r--lisp/gnus/gnus-eform.el2
-rw-r--r--lisp/gnus/gnus-ems.el2
-rw-r--r--lisp/gnus/gnus-fun.el2
-rw-r--r--lisp/gnus/gnus-gl.el2
-rw-r--r--lisp/gnus/gnus-group.el2
-rw-r--r--lisp/gnus/gnus-int.el2
-rw-r--r--lisp/gnus/gnus-kill.el2
-rw-r--r--lisp/gnus/gnus-logic.el2
-rw-r--r--lisp/gnus/gnus-mh.el2
-rw-r--r--lisp/gnus/gnus-ml.el2
-rw-r--r--lisp/gnus/gnus-mlspl.el2
-rw-r--r--lisp/gnus/gnus-move.el2
-rw-r--r--lisp/gnus/gnus-msg.el40
-rw-r--r--lisp/gnus/gnus-nocem.el2
-rw-r--r--lisp/gnus/gnus-picon.el2
-rw-r--r--lisp/gnus/gnus-range.el2
-rw-r--r--lisp/gnus/gnus-registry.el2
-rw-r--r--lisp/gnus/gnus-salt.el2
-rw-r--r--lisp/gnus/gnus-score.el2
-rw-r--r--lisp/gnus/gnus-setup.el2
-rw-r--r--lisp/gnus/gnus-sieve.el2
-rw-r--r--lisp/gnus/gnus-soup.el2
-rw-r--r--lisp/gnus/gnus-spec.el2
-rw-r--r--lisp/gnus/gnus-srvr.el2
-rw-r--r--lisp/gnus/gnus-start.el2
-rw-r--r--lisp/gnus/gnus-sum.el2
-rw-r--r--lisp/gnus/gnus-topic.el2
-rw-r--r--lisp/gnus/gnus-undo.el2
-rw-r--r--lisp/gnus/gnus-util.el2
-rw-r--r--lisp/gnus/gnus-uu.el2
-rw-r--r--lisp/gnus/gnus-vm.el2
-rw-r--r--lisp/gnus/gnus-win.el2
-rw-r--r--lisp/gnus/gnus.el2
-rw-r--r--lisp/gnus/hex-util.el2
-rw-r--r--lisp/gnus/html2text.el2
-rw-r--r--lisp/gnus/ietf-drums.el2
-rw-r--r--lisp/gnus/imap.el2
-rw-r--r--lisp/gnus/legacy-gnus-agent.el2
-rw-r--r--lisp/gnus/mail-parse.el2
-rw-r--r--lisp/gnus/mail-prsvr.el2
-rw-r--r--lisp/gnus/mail-source.el2
-rw-r--r--lisp/gnus/mailcap.el2
-rw-r--r--lisp/gnus/message.el4
-rw-r--r--lisp/gnus/messcompat.el2
-rw-r--r--lisp/gnus/mm-bodies.el2
-rw-r--r--lisp/gnus/mm-decode.el2
-rw-r--r--lisp/gnus/mm-encode.el2
-rw-r--r--lisp/gnus/mm-extern.el2
-rw-r--r--lisp/gnus/mm-partial.el2
-rw-r--r--lisp/gnus/mm-url.el2
-rw-r--r--lisp/gnus/mm-util.el2
-rw-r--r--lisp/gnus/mm-uu.el2
-rw-r--r--lisp/gnus/mm-view.el2
-rw-r--r--lisp/gnus/mml-sec.el2
-rw-r--r--lisp/gnus/mml-smime.el2
-rw-r--r--lisp/gnus/mml.el2
-rw-r--r--lisp/gnus/mml1991.el2
-rw-r--r--lisp/gnus/mml2015.el2
-rw-r--r--lisp/gnus/nnagent.el2
-rw-r--r--lisp/gnus/nnbabyl.el2
-rw-r--r--lisp/gnus/nndb.el2
-rw-r--r--lisp/gnus/nndiary.el10
-rw-r--r--lisp/gnus/nndir.el2
-rw-r--r--lisp/gnus/nndoc.el2
-rw-r--r--lisp/gnus/nndraft.el2
-rw-r--r--lisp/gnus/nneething.el2
-rw-r--r--lisp/gnus/nnfolder.el2
-rw-r--r--lisp/gnus/nngateway.el2
-rw-r--r--lisp/gnus/nnheader.el2
-rw-r--r--lisp/gnus/nnimap.el2
-rw-r--r--lisp/gnus/nnkiboze.el2
-rw-r--r--lisp/gnus/nnlistserv.el2
-rw-r--r--lisp/gnus/nnmail.el2
-rw-r--r--lisp/gnus/nnmaildir.el2
-rw-r--r--lisp/gnus/nnmbox.el2
-rw-r--r--lisp/gnus/nnmh.el2
-rw-r--r--lisp/gnus/nnml.el2
-rw-r--r--lisp/gnus/nnnil.el2
-rw-r--r--lisp/gnus/nnoo.el2
-rw-r--r--lisp/gnus/nnrss.el2
-rw-r--r--lisp/gnus/nnslashdot.el2
-rw-r--r--lisp/gnus/nnsoup.el2
-rw-r--r--lisp/gnus/nnspool.el2
-rw-r--r--lisp/gnus/nntp.el2
-rw-r--r--lisp/gnus/nnultimate.el2
-rw-r--r--lisp/gnus/nnvirtual.el2
-rw-r--r--lisp/gnus/nnwarchive.el2
-rw-r--r--lisp/gnus/nnweb.el2
-rw-r--r--lisp/gnus/nnwfm.el2
-rw-r--r--lisp/gnus/pop3.el2
-rw-r--r--lisp/gnus/qp.el2
-rw-r--r--lisp/gnus/rfc1843.el2
-rw-r--r--lisp/gnus/rfc2045.el2
-rw-r--r--lisp/gnus/rfc2047.el2
-rw-r--r--lisp/gnus/rfc2104.el2
-rw-r--r--lisp/gnus/rfc2231.el2
-rw-r--r--lisp/gnus/score-mode.el2
-rw-r--r--lisp/gnus/sha1.el2
-rw-r--r--lisp/gnus/sieve-manage.el2
-rw-r--r--lisp/gnus/sieve-mode.el2
-rw-r--r--lisp/gnus/sieve.el2
-rw-r--r--lisp/gnus/smiley.el2
-rw-r--r--lisp/gnus/smime.el2
-rw-r--r--lisp/gnus/spam-report.el2
-rw-r--r--lisp/gnus/spam-stat.el2
-rw-r--r--lisp/gnus/spam.el2
-rw-r--r--lisp/gnus/starttls.el2
-rw-r--r--lisp/gnus/utf7.el2
-rw-r--r--lisp/gnus/uudecode.el2
-rw-r--r--lisp/gnus/webmail.el2
-rw-r--r--lisp/gnus/yenc.el2
-rw-r--r--lisp/gs.el2
-rw-r--r--lisp/help-at-pt.el2
-rw-r--r--lisp/help-fns.el2
-rw-r--r--lisp/help-macro.el2
-rw-r--r--lisp/help-mode.el2
-rw-r--r--lisp/help.el2
-rw-r--r--lisp/hexl.el2
-rw-r--r--lisp/hi-lock.el2
-rw-r--r--lisp/hilit-chg.el2
-rw-r--r--lisp/hippie-exp.el2
-rw-r--r--lisp/hl-line.el2
-rw-r--r--lisp/ibuf-ext.el2
-rw-r--r--lisp/ibuf-macs.el2
-rw-r--r--lisp/ibuffer.el2
-rw-r--r--lisp/icomplete.el2
-rw-r--r--lisp/ido.el2
-rw-r--r--lisp/ielm.el2
-rw-r--r--lisp/iimage.el2
-rw-r--r--lisp/image-dired.el2
-rw-r--r--lisp/image-file.el2
-rw-r--r--lisp/image-mode.el2
-rw-r--r--lisp/image.el2
-rw-r--r--lisp/imenu.el2
-rw-r--r--lisp/indent.el2
-rw-r--r--lisp/info-look.el2
-rw-r--r--lisp/info-xref.el2
-rw-r--r--lisp/info.el2
-rw-r--r--lisp/informat.el2
-rw-r--r--lisp/international/ccl.el2
-rw-r--r--lisp/international/characters.el2
-rw-r--r--lisp/international/code-pages.el2
-rw-r--r--lisp/international/codepage.el2
-rw-r--r--lisp/international/encoded-kb.el2
-rw-r--r--lisp/international/fontset.el2
-rw-r--r--lisp/international/isearch-x.el2
-rw-r--r--lisp/international/iso-ascii.el2
-rw-r--r--lisp/international/iso-cvt.el2
-rw-r--r--lisp/international/iso-transl.el2
-rw-r--r--lisp/international/ja-dic-cnv.el2
-rw-r--r--lisp/international/ja-dic-utl.el2
-rw-r--r--lisp/international/kinsoku.el2
-rw-r--r--lisp/international/kkc.el2
-rw-r--r--lisp/international/latexenc.el2
-rw-r--r--lisp/international/latin-1.el2
-rw-r--r--lisp/international/latin-2.el2
-rw-r--r--lisp/international/latin-3.el2
-rw-r--r--lisp/international/latin-4.el2
-rw-r--r--lisp/international/latin-5.el2
-rw-r--r--lisp/international/latin-8.el2
-rw-r--r--lisp/international/latin-9.el2
-rw-r--r--lisp/international/latin1-disp.el2
-rw-r--r--lisp/international/mule-cmds.el2
-rw-r--r--lisp/international/mule-conf.el2
-rw-r--r--lisp/international/mule-diag.el2
-rw-r--r--lisp/international/mule-util.el2
-rw-r--r--lisp/international/mule.el2
-rw-r--r--lisp/international/ogonek.el2
-rw-r--r--lisp/international/quail.el2
-rw-r--r--lisp/international/subst-big5.el2
-rw-r--r--lisp/international/subst-gb2312.el2
-rw-r--r--lisp/international/subst-jis.el2
-rw-r--r--lisp/international/subst-ksc.el2
-rw-r--r--lisp/international/titdic-cnv.el2
-rw-r--r--lisp/international/ucs-tables.el2
-rw-r--r--lisp/international/utf-16.el2
-rw-r--r--lisp/international/utf-7.el2
-rw-r--r--lisp/international/utf-8.el2
-rw-r--r--lisp/isearch.el2
-rw-r--r--lisp/isearchb.el2
-rw-r--r--lisp/iswitchb.el2
-rw-r--r--lisp/jit-lock.el2
-rw-r--r--lisp/jka-cmpr-hook.el2
-rw-r--r--lisp/jka-compr.el2
-rw-r--r--lisp/kermit.el2
-rw-r--r--lisp/kmacro.el2
-rw-r--r--lisp/language/china-util.el2
-rw-r--r--lisp/language/chinese.el2
-rw-r--r--lisp/language/cyril-util.el2
-rw-r--r--lisp/language/cyrillic.el2
-rw-r--r--lisp/language/czech.el2
-rw-r--r--lisp/language/devan-util.el2
-rw-r--r--lisp/language/devanagari.el2
-rw-r--r--lisp/language/english.el2
-rw-r--r--lisp/language/ethio-util.el2
-rw-r--r--lisp/language/ethiopic.el2
-rw-r--r--lisp/language/european.el2
-rw-r--r--lisp/language/georgian.el2
-rw-r--r--lisp/language/greek.el2
-rw-r--r--lisp/language/hebrew.el2
-rw-r--r--lisp/language/ind-util.el2
-rw-r--r--lisp/language/indian.el2
-rw-r--r--lisp/language/japan-util.el2
-rw-r--r--lisp/language/japanese.el2
-rw-r--r--lisp/language/kannada.el2
-rw-r--r--lisp/language/knd-util.el2
-rw-r--r--lisp/language/korea-util.el2
-rw-r--r--lisp/language/korean.el2
-rw-r--r--lisp/language/lao-util.el2
-rw-r--r--lisp/language/lao.el2
-rw-r--r--lisp/language/malayalam.el2
-rw-r--r--lisp/language/misc-lang.el2
-rw-r--r--lisp/language/mlm-util.el2
-rw-r--r--lisp/language/romanian.el2
-rw-r--r--lisp/language/slovak.el2
-rw-r--r--lisp/language/tamil.el2
-rw-r--r--lisp/language/thai-util.el2
-rw-r--r--lisp/language/thai-word.el2
-rw-r--r--lisp/language/thai.el2
-rw-r--r--lisp/language/tibet-util.el2
-rw-r--r--lisp/language/tibetan.el2
-rw-r--r--lisp/language/tml-util.el2
-rw-r--r--lisp/language/utf-8-lang.el2
-rw-r--r--lisp/language/viet-util.el2
-rw-r--r--lisp/language/vietnamese.el2
-rw-r--r--lisp/ledit.el2
-rw-r--r--lisp/loadhist.el2
-rw-r--r--lisp/loadup.el2
-rw-r--r--lisp/locate.el2
-rw-r--r--lisp/log-edit.el2
-rw-r--r--lisp/log-view.el2
-rw-r--r--lisp/longlines.el2
-rw-r--r--lisp/lpr.el2
-rw-r--r--lisp/ls-lisp.el2
-rw-r--r--lisp/macros.el2
-rw-r--r--lisp/mail/blessmail.el2
-rw-r--r--lisp/mail/emacsbug.el2
-rw-r--r--lisp/mail/footnote.el2
-rw-r--r--lisp/mail/mail-extr.el2
-rw-r--r--lisp/mail/mail-hist.el2
-rw-r--r--lisp/mail/mail-utils.el2
-rw-r--r--lisp/mail/mailabbrev.el2
-rw-r--r--lisp/mail/mailalias.el2
-rw-r--r--lisp/mail/mailclient.el2
-rw-r--r--lisp/mail/mailheader.el2
-rw-r--r--lisp/mail/metamail.el2
-rw-r--r--lisp/mail/mspools.el2
-rw-r--r--lisp/mail/reporter.el2
-rw-r--r--lisp/mail/rfc2368.el2
-rw-r--r--lisp/mail/rfc822.el2
-rw-r--r--lisp/mail/rmail-spam-filter.el2
-rw-r--r--lisp/mail/rmail.el2
-rw-r--r--lisp/mail/rmailedit.el2
-rw-r--r--lisp/mail/rmailkwd.el2
-rw-r--r--lisp/mail/rmailmsc.el2
-rw-r--r--lisp/mail/rmailout.el2
-rw-r--r--lisp/mail/rmailsort.el2
-rw-r--r--lisp/mail/rmailsum.el2
-rw-r--r--lisp/mail/sendmail.el2
-rw-r--r--lisp/mail/smtpmail.el2
-rw-r--r--lisp/mail/supercite.el2
-rw-r--r--lisp/mail/uce.el2
-rw-r--r--lisp/mail/undigest.el2
-rw-r--r--lisp/mail/unrmail.el2
-rw-r--r--lisp/mail/vms-pmail.el2
-rw-r--r--lisp/makefile.w32-in2
-rw-r--r--lisp/makesum.el2
-rw-r--r--lisp/man.el2
-rw-r--r--lisp/master.el2
-rw-r--r--lisp/mb-depth.el2
-rw-r--r--lisp/menu-bar.el2
-rw-r--r--lisp/mh-e/ChangeLog6
-rw-r--r--lisp/mh-e/ChangeLog.12
-rw-r--r--lisp/mh-e/mh-acros.el2
-rw-r--r--lisp/mh-e/mh-alias.el2
-rw-r--r--lisp/mh-e/mh-buffers.el2
-rw-r--r--lisp/mh-e/mh-comp.el2
-rw-r--r--lisp/mh-e/mh-compat.el2
-rw-r--r--lisp/mh-e/mh-e.el2
-rw-r--r--lisp/mh-e/mh-folder.el2
-rw-r--r--lisp/mh-e/mh-funcs.el2
-rw-r--r--lisp/mh-e/mh-gnus.el2
-rw-r--r--lisp/mh-e/mh-identity.el2
-rw-r--r--lisp/mh-e/mh-inc.el2
-rw-r--r--lisp/mh-e/mh-junk.el2
-rw-r--r--lisp/mh-e/mh-letter.el2
-rw-r--r--lisp/mh-e/mh-limit.el2
-rw-r--r--lisp/mh-e/mh-mime.el2
-rw-r--r--lisp/mh-e/mh-print.el2
-rw-r--r--lisp/mh-e/mh-scan.el2
-rw-r--r--lisp/mh-e/mh-search.el2
-rw-r--r--lisp/mh-e/mh-seq.el2
-rw-r--r--lisp/mh-e/mh-show.el2
-rw-r--r--lisp/mh-e/mh-speed.el2
-rw-r--r--lisp/mh-e/mh-thread.el2
-rw-r--r--lisp/mh-e/mh-tool-bar.el2
-rw-r--r--lisp/mh-e/mh-utils.el2
-rw-r--r--lisp/mh-e/mh-xface.el2
-rw-r--r--lisp/midnight.el2
-rw-r--r--lisp/minibuf-eldef.el2
-rw-r--r--lisp/misc.el2
-rw-r--r--lisp/mouse-copy.el2
-rw-r--r--lisp/mouse-drag.el2
-rw-r--r--lisp/mouse-sel.el2
-rw-r--r--lisp/mouse.el2
-rw-r--r--lisp/msb.el2
-rw-r--r--lisp/mwheel.el2
-rw-r--r--lisp/net/ange-ftp.el2
-rw-r--r--lisp/net/browse-url.el2
-rw-r--r--lisp/net/eudc-bob.el2
-rw-r--r--lisp/net/eudc-export.el2
-rw-r--r--lisp/net/eudc-hotlist.el2
-rw-r--r--lisp/net/eudc-vars.el2
-rw-r--r--lisp/net/eudc.el2
-rw-r--r--lisp/net/eudcb-bbdb.el2
-rw-r--r--lisp/net/eudcb-ldap.el2
-rw-r--r--lisp/net/eudcb-mab.el2
-rw-r--r--lisp/net/eudcb-ph.el2
-rw-r--r--lisp/net/goto-addr.el2
-rw-r--r--lisp/net/ldap.el2
-rw-r--r--lisp/net/net-utils.el2
-rw-r--r--lisp/net/netrc.el2
-rw-r--r--lisp/net/newsticker.el11
-rw-r--r--lisp/net/quickurl.el2
-rw-r--r--lisp/net/rcirc.el2
-rw-r--r--lisp/net/rcompile.el2
-rw-r--r--lisp/net/rlogin.el2
-rw-r--r--lisp/net/snmp-mode.el2
-rw-r--r--lisp/net/socks.el2
-rw-r--r--lisp/net/telnet.el2
-rw-r--r--lisp/net/tls.el2
-rw-r--r--lisp/net/tramp-cache.el5
-rw-r--r--lisp/net/tramp-fish.el5
-rw-r--r--lisp/net/tramp-ftp.el6
-rw-r--r--lisp/net/tramp-gw.el5
-rw-r--r--lisp/net/tramp-smb.el6
-rw-r--r--lisp/net/tramp-uu.el8
-rw-r--r--lisp/net/tramp.el13
-rw-r--r--lisp/net/trampver.el12
-rw-r--r--lisp/net/webjump.el16
-rw-r--r--lisp/newcomment.el2
-rw-r--r--lisp/novice.el2
-rw-r--r--lisp/obsolete/awk-mode.el2
-rw-r--r--lisp/obsolete/bg-mouse.el2
-rw-r--r--lisp/obsolete/fast-lock.el2
-rw-r--r--lisp/obsolete/float.el2
-rw-r--r--lisp/obsolete/hilit19.el2
-rw-r--r--lisp/obsolete/hscroll.el2
-rw-r--r--lisp/obsolete/iso-acc.el2
-rw-r--r--lisp/obsolete/iso-insert.el2
-rw-r--r--lisp/obsolete/iso-swed.el2
-rw-r--r--lisp/obsolete/keyswap.el2
-rw-r--r--lisp/obsolete/lazy-lock.el2
-rw-r--r--lisp/obsolete/mlsupport.el2
-rw-r--r--lisp/obsolete/ooutline.el2
-rw-r--r--lisp/obsolete/options.el2
-rw-r--r--lisp/obsolete/profile.el2
-rw-r--r--lisp/obsolete/rnews.el2
-rw-r--r--lisp/obsolete/rnewspost.el2
-rw-r--r--lisp/obsolete/rsz-mini.el2
-rw-r--r--lisp/obsolete/scribe.el2
-rw-r--r--lisp/obsolete/sun-curs.el2
-rw-r--r--lisp/obsolete/sun-fns.el2
-rw-r--r--lisp/obsolete/swedish.el2
-rw-r--r--lisp/obsolete/uncompress.el2
-rw-r--r--lisp/obsolete/x-apollo.el2
-rw-r--r--lisp/obsolete/x-menu.el2
-rw-r--r--lisp/outline.el2
-rw-r--r--lisp/paren.el2
-rw-r--r--lisp/paths.el2
-rw-r--r--lisp/pcmpl-cvs.el2
-rw-r--r--lisp/pcmpl-gnu.el2
-rw-r--r--lisp/pcmpl-linux.el2
-rw-r--r--lisp/pcmpl-rpm.el2
-rw-r--r--lisp/pcmpl-unix.el2
-rw-r--r--lisp/pcomplete.el2
-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.el2
-rw-r--r--lisp/pcvs.el11
-rw-r--r--lisp/pgg-def.el2
-rw-r--r--lisp/pgg-gpg.el2
-rw-r--r--lisp/pgg-parse.el2
-rw-r--r--lisp/pgg-pgp.el2
-rw-r--r--lisp/pgg-pgp5.el2
-rw-r--r--lisp/pgg.el2
-rw-r--r--lisp/play/5x5.el2
-rw-r--r--lisp/play/animate.el2
-rw-r--r--lisp/play/blackbox.el2
-rw-r--r--lisp/play/bruce.el2
-rw-r--r--lisp/play/cookie1.el2
-rw-r--r--lisp/play/decipher.el2
-rw-r--r--lisp/play/dissociate.el2
-rw-r--r--lisp/play/doctor.el2
-rw-r--r--lisp/play/dunnet.el2
-rw-r--r--lisp/play/fortune.el2
-rw-r--r--lisp/play/gamegrid.el2
-rw-r--r--lisp/play/gametree.el2
-rw-r--r--lisp/play/gomoku.el2
-rw-r--r--lisp/play/handwrite.el2
-rw-r--r--lisp/play/landmark.el2
-rw-r--r--lisp/play/life.el2
-rw-r--r--lisp/play/morse.el2
-rw-r--r--lisp/play/mpuz.el2
-rw-r--r--lisp/play/pong.el2
-rw-r--r--lisp/play/snake.el2
-rw-r--r--lisp/play/solitaire.el2
-rw-r--r--lisp/play/spook.el2
-rw-r--r--lisp/play/tetris.el2
-rw-r--r--lisp/play/yow.el2
-rw-r--r--lisp/play/zone.el2
-rw-r--r--lisp/printing.el2
-rw-r--r--lisp/progmodes/ada-mode.el2
-rw-r--r--lisp/progmodes/ada-prj.el2
-rw-r--r--lisp/progmodes/ada-stmt.el19
-rw-r--r--lisp/progmodes/ada-xref.el2
-rw-r--r--lisp/progmodes/antlr-mode.el2
-rw-r--r--lisp/progmodes/asm-mode.el2
-rw-r--r--lisp/progmodes/autoconf.el2
-rw-r--r--lisp/progmodes/cc-align.el2
-rw-r--r--lisp/progmodes/cc-awk.el2
-rw-r--r--lisp/progmodes/cc-bytecomp.el2
-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.el2
-rw-r--r--lisp/progmodes/cc-fonts.el2
-rw-r--r--lisp/progmodes/cc-langs.el12
-rw-r--r--lisp/progmodes/cc-menus.el2
-rw-r--r--lisp/progmodes/cc-mode.el11
-rw-r--r--lisp/progmodes/cc-styles.el2
-rw-r--r--lisp/progmodes/cc-subword.el2
-rw-r--r--lisp/progmodes/cc-vars.el2
-rw-r--r--lisp/progmodes/cfengine.el2
-rw-r--r--lisp/progmodes/cmacexp.el2
-rw-r--r--lisp/progmodes/compile.el44
-rw-r--r--lisp/progmodes/cperl-mode.el2
-rw-r--r--lisp/progmodes/cpp.el2
-rw-r--r--lisp/progmodes/cwarn.el2
-rw-r--r--lisp/progmodes/dcl-mode.el2
-rw-r--r--lisp/progmodes/delphi.el2
-rw-r--r--lisp/progmodes/ebnf-abn.el10
-rw-r--r--lisp/progmodes/ebnf-bnf.el10
-rw-r--r--lisp/progmodes/ebnf-dtd.el10
-rw-r--r--lisp/progmodes/ebnf-ebx.el10
-rw-r--r--lisp/progmodes/ebnf-iso.el12
-rw-r--r--lisp/progmodes/ebnf-otz.el2
-rw-r--r--lisp/progmodes/ebnf-yac.el10
-rw-r--r--lisp/progmodes/ebnf2ps.el820
-rw-r--r--lisp/progmodes/ebrowse.el2
-rw-r--r--lisp/progmodes/etags.el2
-rw-r--r--lisp/progmodes/executable.el2
-rw-r--r--lisp/progmodes/f90.el2
-rw-r--r--lisp/progmodes/flymake.el2
-rw-r--r--lisp/progmodes/fortran.el2
-rw-r--r--lisp/progmodes/gdb-ui.el2
-rw-r--r--lisp/progmodes/glasses.el2
-rw-r--r--lisp/progmodes/grep.el2
-rw-r--r--lisp/progmodes/gud.el2
-rw-r--r--lisp/progmodes/hideif.el2
-rw-r--r--lisp/progmodes/hideshow.el2
-rw-r--r--lisp/progmodes/icon.el2
-rw-r--r--lisp/progmodes/idlw-complete-structtag.el2
-rw-r--r--lisp/progmodes/idlw-help.el2
-rw-r--r--lisp/progmodes/idlw-shell.el2
-rw-r--r--lisp/progmodes/idlw-toolbar.el2
-rw-r--r--lisp/progmodes/idlwave.el2
-rw-r--r--lisp/progmodes/inf-lisp.el2
-rw-r--r--lisp/progmodes/ld-script.el2
-rw-r--r--lisp/progmodes/m4-mode.el2
-rw-r--r--lisp/progmodes/make-mode.el2
-rw-r--r--lisp/progmodes/mantemp.el2
-rw-r--r--lisp/progmodes/meta-mode.el2
-rw-r--r--lisp/progmodes/mixal-mode.el32
-rw-r--r--lisp/progmodes/octave-hlp.el2
-rw-r--r--lisp/progmodes/octave-inf.el2
-rw-r--r--lisp/progmodes/octave-mod.el2
-rw-r--r--lisp/progmodes/pascal.el2
-rw-r--r--lisp/progmodes/perl-mode.el2
-rw-r--r--lisp/progmodes/prolog.el2
-rw-r--r--lisp/progmodes/ps-mode.el2
-rw-r--r--lisp/progmodes/python.el4
-rw-r--r--lisp/progmodes/scheme.el2
-rw-r--r--lisp/progmodes/sh-script.el2
-rw-r--r--lisp/progmodes/simula.el2
-rw-r--r--lisp/progmodes/sql.el2
-rw-r--r--lisp/progmodes/tcl.el2
-rw-r--r--lisp/progmodes/vera-mode.el2
-rw-r--r--lisp/progmodes/vhdl-mode.el2
-rw-r--r--lisp/progmodes/which-func.el2
-rw-r--r--lisp/progmodes/xscheme.el2
-rw-r--r--lisp/ps-bdf.el2
-rw-r--r--lisp/ps-mule.el161
-rw-r--r--lisp/ps-print.el26
-rw-r--r--lisp/recentf.el2
-rw-r--r--lisp/rect.el2
-rw-r--r--lisp/register.el2
-rw-r--r--lisp/repeat.el2
-rw-r--r--lisp/replace.el2
-rw-r--r--lisp/reposition.el2
-rw-r--r--lisp/resume.el2
-rw-r--r--lisp/reveal.el2
-rw-r--r--lisp/rfn-eshadow.el2
-rw-r--r--lisp/rot13.el2
-rw-r--r--lisp/ruler-mode.el2
-rw-r--r--lisp/s-region.el2
-rw-r--r--lisp/savehist.el2
-rw-r--r--lisp/saveplace.el2
-rw-r--r--lisp/sb-image.el2
-rw-r--r--lisp/scroll-all.el2
-rw-r--r--lisp/scroll-bar.el2
-rw-r--r--lisp/scroll-lock.el2
-rw-r--r--lisp/select.el2
-rw-r--r--lisp/server.el2
-rw-r--r--lisp/ses.el2
-rw-r--r--lisp/shadowfile.el2
-rw-r--r--lisp/shell.el2
-rw-r--r--lisp/simple.el2
-rw-r--r--lisp/skeleton.el2
-rw-r--r--lisp/smerge-mode.el2
-rw-r--r--lisp/sort.el2
-rw-r--r--lisp/soundex.el2
-rw-r--r--lisp/speedbar.el2
-rw-r--r--lisp/startup.el10
-rw-r--r--lisp/strokes.el2
-rw-r--r--lisp/subr.el21
-rw-r--r--lisp/t-mouse.el2
-rw-r--r--lisp/tabify.el2
-rw-r--r--lisp/talk.el2
-rw-r--r--lisp/tar-mode.el2
-rw-r--r--lisp/tempo.el2
-rw-r--r--lisp/term.el2
-rw-r--r--lisp/term/AT386.el2
-rw-r--r--lisp/term/README2
-rw-r--r--lisp/term/internal.el2
-rw-r--r--lisp/term/iris-ansi.el2
-rw-r--r--lisp/term/mac-win.el2
-rw-r--r--lisp/term/news.el2
-rw-r--r--lisp/term/pc-win.el2
-rw-r--r--lisp/term/rxvt.el2
-rw-r--r--lisp/term/sun-mouse.el2
-rw-r--r--lisp/term/sun.el2
-rw-r--r--lisp/term/sup-mouse.el2
-rw-r--r--lisp/term/tty-colors.el2
-rw-r--r--lisp/term/tvi970.el2
-rw-r--r--lisp/term/vt100.el2
-rw-r--r--lisp/term/w32-win.el2
-rw-r--r--lisp/term/wyse50.el2
-rw-r--r--lisp/term/x-win.el2
-rw-r--r--lisp/term/xterm.el2
-rw-r--r--lisp/terminal.el2
-rw-r--r--lisp/textmodes/artist.el2
-rw-r--r--lisp/textmodes/bib-mode.el2
-rw-r--r--lisp/textmodes/bibtex-style.el2
-rw-r--r--lisp/textmodes/bibtex.el2
-rw-r--r--lisp/textmodes/conf-mode.el2
-rw-r--r--lisp/textmodes/css-mode.el2
-rw-r--r--lisp/textmodes/dns-mode.el2
-rw-r--r--lisp/textmodes/enriched.el2
-rw-r--r--lisp/textmodes/fill.el2
-rw-r--r--lisp/textmodes/flyspell.el2
-rw-r--r--lisp/textmodes/ispell.el2
-rw-r--r--lisp/textmodes/makeinfo.el2
-rw-r--r--lisp/textmodes/nroff-mode.el2
-rw-r--r--lisp/textmodes/org-publish.el2
-rw-r--r--lisp/textmodes/org.el2
-rw-r--r--lisp/textmodes/page-ext.el2
-rw-r--r--lisp/textmodes/page.el2
-rw-r--r--lisp/textmodes/paragraphs.el2
-rw-r--r--lisp/textmodes/picture.el2
-rw-r--r--lisp/textmodes/po.el2
-rw-r--r--lisp/textmodes/refbib.el2
-rw-r--r--lisp/textmodes/refer.el2
-rw-r--r--lisp/textmodes/refill.el2
-rw-r--r--lisp/textmodes/reftex-auc.el2
-rw-r--r--lisp/textmodes/reftex-cite.el2
-rw-r--r--lisp/textmodes/reftex-dcr.el2
-rw-r--r--lisp/textmodes/reftex-global.el2
-rw-r--r--lisp/textmodes/reftex-index.el2
-rw-r--r--lisp/textmodes/reftex-parse.el2
-rw-r--r--lisp/textmodes/reftex-ref.el2
-rw-r--r--lisp/textmodes/reftex-sel.el2
-rw-r--r--lisp/textmodes/reftex-toc.el2
-rw-r--r--lisp/textmodes/reftex-vars.el2
-rw-r--r--lisp/textmodes/reftex.el2
-rw-r--r--lisp/textmodes/sgml-mode.el2
-rw-r--r--lisp/textmodes/spell.el2
-rw-r--r--lisp/textmodes/table.el2
-rw-r--r--lisp/textmodes/tex-mode.el2
-rw-r--r--lisp/textmodes/texinfmt.el2
-rw-r--r--lisp/textmodes/texinfo.el2
-rw-r--r--lisp/textmodes/texnfo-upd.el2
-rw-r--r--lisp/textmodes/text-mode.el2
-rw-r--r--lisp/textmodes/tildify.el2
-rw-r--r--lisp/textmodes/two-column.el2
-rw-r--r--lisp/textmodes/underline.el2
-rw-r--r--lisp/thingatpt.el2
-rw-r--r--lisp/thumbs.el2
-rw-r--r--lisp/time-stamp.el2
-rw-r--r--lisp/time.el2
-rw-r--r--lisp/timezone.el2
-rw-r--r--lisp/tmm.el2
-rw-r--r--lisp/tool-bar.el2
-rw-r--r--lisp/tooltip.el2
-rw-r--r--lisp/tree-widget.el2
-rw-r--r--lisp/tutorial.el2
-rw-r--r--lisp/type-break.el2
-rw-r--r--lisp/uniquify.el2
-rw-r--r--lisp/url/ChangeLog6
-rw-r--r--lisp/url/url-about.el2
-rw-r--r--lisp/url/url-auth.el2
-rw-r--r--lisp/url/url-cache.el2
-rw-r--r--lisp/url/url-cid.el2
-rw-r--r--lisp/url/url-cookie.el2
-rw-r--r--lisp/url/url-dav.el2
-rw-r--r--lisp/url/url-dired.el2
-rw-r--r--lisp/url/url-expand.el2
-rw-r--r--lisp/url/url-file.el2
-rw-r--r--lisp/url/url-ftp.el2
-rw-r--r--lisp/url/url-gw.el2
-rw-r--r--lisp/url/url-handlers.el2
-rw-r--r--lisp/url/url-history.el2
-rw-r--r--lisp/url/url-http.el2
-rw-r--r--lisp/url/url-imap.el2
-rw-r--r--lisp/url/url-irc.el2
-rw-r--r--lisp/url/url-ldap.el2
-rw-r--r--lisp/url/url-mailto.el2
-rw-r--r--lisp/url/url-methods.el2
-rw-r--r--lisp/url/url-misc.el2
-rw-r--r--lisp/url/url-news.el2
-rw-r--r--lisp/url/url-nfs.el2
-rw-r--r--lisp/url/url-ns.el2
-rw-r--r--lisp/url/url-parse.el2
-rw-r--r--lisp/url/url-privacy.el2
-rw-r--r--lisp/url/url-proxy.el2
-rw-r--r--lisp/url/url-util.el2
-rw-r--r--lisp/url/url-vars.el2
-rw-r--r--lisp/url/url.el2
-rw-r--r--lisp/url/vc-dav.el2
-rw-r--r--lisp/userlock.el2
-rw-r--r--lisp/vc-arch.el2
-rw-r--r--lisp/vc-bzr.el4
-rw-r--r--lisp/vc-cvs.el2
-rw-r--r--lisp/vc-git.el151
-rw-r--r--lisp/vc-hg.el6
-rw-r--r--lisp/vc-hooks.el8
-rw-r--r--lisp/vc-mcvs.el2
-rw-r--r--lisp/vc-rcs.el2
-rw-r--r--lisp/vc-sccs.el2
-rw-r--r--lisp/vc-svn.el2
-rw-r--r--lisp/vc.el15
-rw-r--r--lisp/vcursor.el2
-rw-r--r--lisp/version.el2
-rw-r--r--lisp/view.el2
-rw-r--r--lisp/vms-patch.el2
-rw-r--r--lisp/vmsproc.el2
-rw-r--r--lisp/vt-control.el2
-rw-r--r--lisp/vt100-led.el2
-rw-r--r--lisp/w32-fns.el2
-rw-r--r--lisp/w32-vars.el2
-rw-r--r--lisp/wdired.el19
-rw-r--r--lisp/whitespace.el2
-rw-r--r--lisp/wid-browse.el2
-rw-r--r--lisp/wid-edit.el2
-rw-r--r--lisp/widget.el2
-rw-r--r--lisp/windmove.el2
-rw-r--r--lisp/window.el115
-rw-r--r--lisp/winner.el2
-rw-r--r--lisp/woman.el2
-rw-r--r--lisp/x-dnd.el2
-rw-r--r--lisp/xml.el2
-rw-r--r--lisp/xt-mouse.el2
1040 files changed, 4955 insertions, 3966 deletions
diff --git a/lisp/COPYING b/lisp/COPYING
index d511905c164..94a9ed024d3 100644
--- a/lisp/COPYING
+++ b/lisp/COPYING
@@ -1,285 +1,626 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
- Preamble
+ Preamble
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.) You can apply it to
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
this License.
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
@@ -287,15 +628,15 @@ free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
+state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
- This program is free software; you can redistribute it and/or modify
+ 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
+ the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
@@ -303,37 +644,31 @@ the "copyright" line and a pointer to where the full notice is found.
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.
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
- Gnomovision version 69, Copyright (C) year name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ <program> Copyright (C) <year> <name of author>
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License.
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 0a8e7421056..f48ea78a246 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,433 @@
+2007-07-29 Kimit Yada <kimitto@gmail.com> (tiny change)
+
+ * emacs-lisp/copyright.el (copyright-update-year, copyright-update)
+ (copyright-fix-years, copyright): Correctly handle the case where
+ copyright-limit is nil.
+
+2007-07-28 Konstantin Novitsky <knovitsk@Bear.com> (tiny change)
+
+ * progmodes/python.el (run-python): Fix path separator under w32.
+
+2007-07-30 Richard Stallman <rms@gnu.org>
+
+ * emacs-lisp/lisp-mode.el (emacs-lisp-mode-syntax-table):
+ Treat non-break space as whitespace in Lisp.
+
+2007-07-30 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * vc.el (vc-dired-hook): Use inhibit-read-only.
+
+ * progmodes/compile.el (compilation-forget-errors):
+ Reset compilation-auto-jump-to-next.
+
+2007-07-30 Michael Olson <mwolson@gnu.org>
+
+ * cus-edit.el (custom-group-save): Fix void function definition
+ error. Thanks to Zhang Wei for the report.
+
+ * ps-print.el: Check in trivial changes to the autoloads section
+ caused by the build process. These autoloads really ought to be
+ placed in a separate file, methinks.
+
+2007-07-29 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * calendar/calendar.el (calendar-mode): Make sure
+ displayed-(month|year) are set.
+ (calendar-basic-setup): Display buffer before adjusting window sizes.
+ (generate-calendar-window): Use inhibit-read-only. Simplify.
+ Generate buffer and set displayed-month and displayed-year before
+ calling update-calendar-mode-line.
+
+2007-07-29 Michael Albinus <michael.albinus@gmx.de>
+
+ * tramp.el:
+ * tramp-uu.el:
+ * trampver.el: Use utf-8 encoding with coding cookie.
+
+ * tramp-cache.el:
+ * tramp-fish.el:
+ * tramp-ftp.el:
+ * tramp-gw.el:
+ * tramp-smb.el: Remove coding cookie.
+
+ * tramp.el (tramp-handle-verify-visited-file-modtime):
+ Flush buffer file-name's file property.
+ (tramp-handle-file-remote-p): The first parameter is FILENAME.
+
+ * trampver.el: Update release number.
+
+2007-07-29 Juri Linkov <juri@jurta.org>
+
+ * dired.el (dired-mode-map): Bind C-x C-q to dired-toggle-read-only.
+ Filter out menu item "Edit File Names" `wdired-change-to-wdired-mode'
+ when major-mode is not dired-mode.
+ (dired-toggle-read-only): New function.
+ (dired-recursive-deletes): Remove obsolete comments about old
+ default value.
+ (dired-do-flagged-delete, dired-do-delete): Refill docstring.
+
+ * wdired.el (wdired-exit): New function.
+ (wdired-mode-map): Bind C-x C-q to wdired-exit.
+
+2007-07-28 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * cus-edit.el (customize-read-group): New fun.
+ (customize-group-other-window, customize-face-other-window):
+ Prompt before delegating to customize-(group|face).
+ Bind pop-up-windows rather than use the other-window argument.
+ (customize-group, customize-face): Prompt from the interactive spec.
+ Remove args `prompt-for-group' and `other-window'.
+
+ * emacs-lisp/advice.el (ad-interactive-form): Re-introduce.
+ (ad-body-forms, ad-advised-interactive-form): Revert this part of
+ last change.
+
+2007-07-28 Masatake YAMATO <jet@gyve.org>
+
+ * vc.el (vc-dired-mode): Add a menu for VC related operation.
+ Use backend name as the menu label Suggested by David Kastrup.
+
+2007-07-28 Alan Mackenzie <acm@muc.de>
+
+ Fix problem with modes derived from CC Mode:
+ * progmodes/cc-mode.el (c-make-emacs-variables-local): Move this
+ macro to cc-langs.
+ (c-init-language-vars-for): Remove call to above macro.
+ * progmodes/cc-langs.el (c-make-emacs-variables-local): Macro has
+ been moved to here.
+ (c-make-init-lang-vars-fun): Call c-make-emacs-variables-local.
+
+2007-07-28 Eli Zaretskii <eliz@gnu.org>
+
+ * net/trampver.el: Fix the `coding' cookie.
+
+2007-07-28 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * vc-git.el (vc-git-print-log): Support both the old single file
+ interface and the new one.
+
+2007-07-28 Nick Roberts <nickrob@snap.net.nz>
+
+ * bindings.el (mode-line-remote): Use updated %@ construct.
+
+2007-07-27 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * calendar/cal-bahai.el (calendar-bahai-month-name-array)
+ (calendar-bahai-epoch, calendar-bahai-leap-year-p)
+ (calendar-bahai-leap-base, calendar-bahai-prompt-for-date)
+ (diary-list-bahai-entries, diary-bahai-mark-entries)
+ (calendar-bahai-mark-date-pattern, diary-insert-bahai-entry)
+ (diary-bahai-insert-monthly-entry, diary-bahai-insert-yearly-entry):
+ New names to clean up namespace.
+ (list-bahai-diary-entries, mark-bahai-diary-entries)
+ (insert-bahai-diary-entry, insert-monthly-bahai-diary-entry)
+ (insert-yearly-bahai-diary-entry, mark-bahai-calendar-date-pattern):
+ Add compatibility aliases.
+
+ * calendar/appt.el: Don't wrap defvar within eval-when-compile.
+
+ * calendar/cal-move.el (calendar-scroll-left, calendar-scroll-right)
+ (calendar-scroll-left-three-months)
+ (calendar-scroll-right-three-months): Clean up namespace.
+ (scroll-calendar-left, scroll-calendar-right)
+ (scroll-calendar-left-three-months)
+ (scroll-calendar-right-three-months): Add compatibility aliases.
+
+ * calendar/cal-move.el (calendar-scroll-left, calendar-scroll-right):
+ Behave like mouse-scroll-calendar-* when used from the mouse.
+
+ * calendar/cal-menu.el (cal-menu-scroll-menu)
+ (cal-menu-global-mouse-menu):
+ * calendar/calendar.el (calendar-mode-map):
+ Use new calendar-scroll-* names.
+ (mouse-scroll-calendar-left, mouse-scroll-calendar-right):
+ Remove. Use calendar-scroll-* directly instead.
+
+2007-07-26 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * emacs-lisp/advice.el (ad-interactive-p, ad-interactive-form): Remove.
+ (ad-body-forms, ad-advised-interactive-form, ad-make-cache-id)
+ (ad-make-advised-definition, ad-cache-id-verification-code):
+ Use commandp and interactive-form instead.
+
+2007-07-26 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * vc-git.el: Relicense to GPLv3 or later.
+ (vc-directory-exclusion-list, vc-handled-backends): Remove.
+
+ * vc-hooks.el (vc-handled-backends): Add GIT.
+
+ * vc.el (vc-directory-exclusion-list): Add .git.
+
+2007-07-26 Alexandre Julliard <julliard@winehq.org>
+
+ * vc-git.el (vc-git-revision-table)
+ (vc-git-revision-completion-table): New functions.
+
+2007-07-26 Vinicius Jose Latorre <viniciusjl@ig.com.br>
+
+ * progmodes/ebnf-abn.el (ebnf-abn-skip-comment):
+ * progmodes/ebnf-bnf.el (ebnf-bnf-skip-comment):
+ * progmodes/ebnf-dtd.el (ebnf-dtd-skip-comment):
+ * progmodes/ebnf-ebx.el (ebnf-ebx-skip-comment):
+ * progmodes/ebnf-iso.el (ebnf-iso-skip-comment):
+ * progmodes/ebnf-yac.el (ebnf-yac-skip-comment): New version.
+ New command actions for EPS header and EPS footer.
+
+ * progmodes/ebnf2ps.el: New command actions for EPS header and EPS
+ footer. Fix some problems with one-or-more, zero-or-more and
+ alternative constructions generation. Some log messages
+ implementation. Doc fix.
+ (ebnf-version): New version 4.4.
+ (ebnf-eps-header-font, ebnf-eps-header, ebnf-eps-footer-font)
+ (ebnf-eps-footer, ebnf-log): New options.
+ (ebnf-find-style, ebnf-eps-header-footer, ebnf-eps-header)
+ (ebnf-eps-footer, ebnf-eps-string, ebnf-eps-header-footer-comment)
+ (ebnf-eps-header-footer-p, ebnf-eps-header-comment)
+ (ebnf-eps-footer-comment, ebnf-eps-header-footer-file)
+ (ebnf-eps-header-footer-set, ebnf-log-header, ebnf-log): New funs.
+ (ebnf-style-custom-list, ebnf-style-database): Put new values.
+ (ebnf-print-directory, ebnf-print-file, ebnf-print-buffer)
+ (ebnf-print-region, ebnf-spool-directory, ebnf-spool-file)
+ (ebnf-spool-buffer, ebnf-spool-region, ebnf-eps-directory)
+ (ebnf-eps-file, ebnf-eps-buffer, ebnf-eps-region)
+ (ebnf-syntax-directory, ebnf-syntax-file, ebnf-syntax-buffer)
+ (ebnf-syntax-region, ebnf-parse-and-sort, ebnf-begin-job)
+ (ebnf-dimensions, ebnf-production-dimension, ebnf-terminal-dimension)
+ (ebnf-non-terminal-dimension, ebnf-special-dimension)
+ (ebnf-terminal-dimension1, ebnf-repeat-dimension)
+ (ebnf-except-dimension, ebnf-alternative-dimension)
+ (ebnf-optional-dimension, ebnf-one-or-more-dimension)
+ (ebnf-zero-or-more-dimension, ebnf-sequence-dimension): Insert log
+ message fun.
+ (ebnf-setup, ebnf-generate-one-or-more, ebnf-generate-zero-or-more)
+ (ebnf-begin-job, ebnf-begin-file, ebnf-eps-finish-and-write)
+ (ebnf-insert-ebnf-prologue, ebnf-production-dimension)
+ (ebnf-terminal-dimension1, ebnf-alternative-dimension)
+ (ebnf-one-or-more-dimension, ebnf-zero-or-more-dimension)
+ (ebnf-eps-add-context, ebnf-eps-add-production): Fix code.
+ (ebnf-eps-filename, ebnf-trim-right): Replace `?\s' by `?\ ' to keep
+ compatibility with Emacs 20 & 21.
+ (ebnf-eps-header-comment, ebnf-eps-footer-comment)
+ (ebnf-eps-file-alist, ebnf-basic-width-extra)
+ (ebnf-basic-empty-height): New vars.
+ (ebnf-prologue): Fix PostScript code.
+ (ebnf-make-empty, ebnf-make-terminal1, ebnf-make-or-more1)
+ (ebnf-make-production, ebnf-make-alternative, ebnf-make-optional)
+ (ebnf-make-except, ebnf-make-repeat, ebnf-make-sequence)
+ (ebnf-make-dup-sequence, ebnf-token-alternative): Add comments.
+
+2007-07-25 Glenn Morris <rgm@gnu.org>
+
+ * Relicense all FSF files to GPLv3 or later.
+
+ * COPYING: Switch to GPLv3.
+
+2007-07-25 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * pcvs.el (cvs-temp-buffer): Undo last ill-conceived change.
+ Replace it with another one which disables undo before calling
+ erase-buffer and then turns it back on if needed.
+
+2007-07-24 Vinicius Jose Latorre <viniciusjl@ig.com.br>
+
+ * ps-print.el: Problem with foreground and background color when
+ printing a buffer with and without faces. Reported by Christian
+ Schlauer <cs-muelleimer-rubbish.bin@arcor.de>.
+ (ps-print-version): New version 6.7.5.
+ (ps-default-fg): Change default value to nil, so black color is used
+ when a face does not specify a foreground color.
+ (ps-default-bg): Change default value to nil, so white color is used
+ for background color.
+ (ps-begin-job): Fix code.
+
+2007-07-24 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * vc-hg.el (vc-hg-revision-completion-table): Temporarily comment out.
+
+2007-07-24 Glenn Morris <rgm@gnu.org>
+
+ * calendar/cal-tex.el (cal-tex-holidays, cal-tex-diary)
+ (cal-tex-rules, cal-tex-buffer, cal-tex-24)
+ (cal-tex-cursor-month-landscape, cal-tex-cursor-month)
+ (cal-tex-cursor-week, cal-tex-cursor-week2)
+ (cal-tex-cursor-week-iso, cal-tex-week-hours)
+ (cal-tex-cursor-week-monday, cal-tex-weekly4-box)
+ (cal-tex-cursor-filofax-2week, cal-tex-cursor-filofax-week)
+ (cal-tex-cursor-filofax-daily, cal-tex-daily-page): Doc fix.
+
+2007-07-25 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * calendar/calendar.el (calendar-mode-map): Move initialization
+ into declaration. Add menu bindings (used to be done in cal-menu).
+ (calendar-mode): Don't add an activate-menubar-hook.
+
+ * calendar/cal-menu.el: Break dependency on calendar.el (i.e. do not
+ modify calendar-mode-map), use easy-menu, and make sure that C-h k
+ can be used on the menu entries.
+ (cal-menu-holiday-window-suffix, cal-menu-set-date-title): New funs.
+ (cal-menu-moon-menu, cal-menu-diary-menu, cal-menu-holidays-menu)
+ (cal-menu-goto-menu, cal-menu-scroll-menu): New consts.
+ (cal-menu-context-mouse-menu, cal-menu-global-mouse-menu): New menus.
+ (calendar-flatten, cal-menu-update): Remove.
+ (calendar-mouse-insert-hebrew-diary-entry)
+ (calendar-mouse-insert-islamic-diary-entry)
+ (calendar-mouse-insert-bahai-diary-entry):
+ Remove (fold into cal-menu-diary-menu).
+ (calendar-mouse-2-date-menu, calendar-mouse-cal-tex-menu)
+ (cal-tex-mouse-filofax): Remove (fold into cal-menu-context-mouse-menu).
+ (calendar-mouse-3-map): Remove (turn into cal-menu-global-mouse-menu).
+ (calendar-mouse-view-diary-entries): Minor simplifications.
+ (calendar-event-to-date): Use with-current-buffer.
+
+2007-07-25 Nick Roberts <nickrob@snap.net.nz>
+
+ * add-log.el (change-log-redate): Remove (not needed anymore and
+ doesn't appear to work).
+
+2007-07-25 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * frame.el: Use mapc and dolist instead of mapcar where possible.
+ (close-display-connection): New command.
+
+2007-07-25 Alexandre Julliard <julliard@winehq.org>
+
+ * vc-git.el (vc-git-log-view-mode): Port to the multi-file vc interface.
+ (vc-git-create-snapshot, vc-git-retrieve-snapshot): New functions.
+
+2007-07-25 Vinicius Jose Latorre <viniciusjl@ig.com.br>
+
+ * ps-print.el (ps-multibyte-buffer): Docstring fix.
+
+ * ps-mule.el: Doc fix.
+ (ps-multibyte-buffer, ps-mule-font-info-database-default)
+ (ps-mule-external-libraries, ps-mule-begin-job): Docstring fix.
+
+2007-07-25 Glenn Morris <rgm@gnu.org>
+
+ * calendar/cal-tex.el (cal-tex-which-days, cal-tex-holidays)
+ (cal-tex-diary, cal-tex-daily-string, cal-tex-daily-start)
+ (cal-tex-daily-end, cal-tex-hook)
+ (cal-tex-cal-one-month, cal-tex-cal-multi-month)
+ (cal-tex-year, cal-tex-cursor-week, cal-tex-cursor-week2)
+ (cal-tex-cursor-week-iso, cal-tex-week-hours)
+ (cal-tex-cursor-week-monday, cal-tex-weekly4-box)
+ (cal-tex-cursor-day, cal-tex-insert-preamble): Doc fix.
+ (cal-tex-day-prefix, cal-tex-day-name-format)
+ (cal-tex-cal-one-month, cal-tex-cal-multi-month, cal-tex-myday)
+ (cal-tex-caldate, cal-tex-LaTeX-hourbox)
+ (cal-tex-LaTeX-subst-list): Change from variables to constants.
+ (cal-tex-preamble, cal-tex-arg, cal-tex-nl): Simplify with `format'.
+ (cal-tex-cursor-filofax-year, cal-tex-weekly4-box): Use \textbf,
+ etc, rather than \bf.
+ (cal-tex-mini-calendar): Fix typos in previous change.
+ (cal-tex-latexify-list): Remove inner let binding.
+ (cal-tex-end-document, cal-tex-banner): Use multi-line
+ cal-tex-comment.
+ (cal-tex-comment): Handle embedded newlines.
+ (cal-tex-LaTeXify-string): Use substring-no-properties.
+
+2007-07-25 Joakim Verona <joakim@verona.se> (tiny change)
+
+ * progmodes/compile.el (compilation-error-regexp-alist-alist):
+ Add support for the Maden build tool.
+
+2007-07-25 William Xu <william.xwl@gmail.com> (tiny change)
+
+ * net/webjump.el (webjump-url-encode): Fix for non-ASCII characters.
+
+2007-07-24 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * pcvs.el (cvs-temp-buffer): Disable undo in temp buffers.
+
+2007-07-24 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * dired.el (dired-mode-map): Bind wdired-change-to-wdired-mode to
+ C-x C-q.
+
+ * vc-git.el (vc-git-print-log): Fix previous change.
+
+2007-07-24 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * window.el (save-selected-window): Minor optimization.
+ (bw-adjust-window): If operation failed, try with a smaller delta.
+ (window-fixed-size-p): New function.
+ (window-area-factor): New var.
+ (balance-windows-area): New command.
+
+ * ps-mule.el (ps-multibyte-buffer): Docstring fixes.
+ (ps-mule-encode-ethiopic): Make it clear that it's always defined.
+ (ps-mule-prepare-font-for-components, ps-mule-encode-header-string)
+ (ps-mule-encode-bit, ps-mule-encode-ucs2): Use dotimes.
+ (ps-mule-begin-job): Use dolist.
+
+2007-07-24 Michael Albinus <michael.albinus@gmx.de>
+
+ * subr.el (start-file-process-shell-command)
+ (process-file-shell-command): New defuns.
+
+ * progmodes/compile.el (compilation-start):
+ Apply `start-file-process-shell-command'.
+
+2007-07-24 Alexandre Julliard <julliard@winehq.org>
+
+ * vc-git.el (vc-git-checkout, vc-directory-exclusion-list): Fix typos.
+
+2007-07-24 Alan Mackenzie <acm@muc.de>
+
+ * emacs-lisp/bytecomp.el (byte-compile-from-buffer):
+ Initialise byte-compile-unresolved-functions before rather than
+ after a compilation.
+ (byte-compile-unresolved-functions): Amplify doc string.
+
+2007-07-24 Glenn Morris <rgm@gnu.org>
+
+ * startup.el (normal-splash-screen): Use `emacs-copyright'.
+
+ * calendar/cal-tex.el (cal-tex-holidays, cal-tex-diary)
+ (cal-tex-rules, cal-tex-buffer, cal-tex-24)
+ (cal-tex-cursor-month-landscape, cal-tex-cursor-month)
+ (cal-tex-cursor-week, cal-tex-cursor-week2)
+ (cal-tex-cursor-week-iso, cal-tex-week-hours)
+ (cal-tex-cursor-week-monday, cal-tex-weekly4-box)
+ (cal-tex-cursor-filofax-2week, cal-tex-cursor-filofax-week)
+ (cal-tex-cursor-filofax-daily, cal-tex-daily-page): Doc fix.
+
+ * calendar/cal-tex.el: Remove leading `*' from defcustom docs.
+ (cal-tex-daily-string, cal-tex-daily-start, cal-tex-daily-end)
+ (cal-tex-day-name-format, cal-tex-cal-one-month)
+ (cal-tex-cal-multi-month, cal-tex-myday, cal-tex-preamble)
+ (cal-tex-comment, cal-tex-nl, cal-tex-cmd, cal-tex-e-parbox)
+ (cal-tex-mini-calendar, cal-tex-em): Doc fix.
+ (cal-tex-list-holidays, cal-tex-cursor-year)
+ (cal-tex-cursor-year-landscape, cal-tex-year)
+ (cal-tex-cursor-filofax-year, cal-tex-cursor-month-landscape)
+ (cal-tex-cursor-month, cal-tex-insert-days)
+ (cal-tex-insert-day-names, cal-tex-insert-blank-days)
+ (cal-tex-first-blank-p, cal-tex-cursor-week)
+ (cal-tex-cursor-week2, cal-tex-cursor-week-iso)
+ (cal-tex-week-hours, cal-tex-cursor-week-monday)
+ (cal-tex-weekly4-box, cal-tex-cursor-filofax-2week)
+ (cal-tex-cursor-filofax-week, cal-tex-cursor-filofax-daily)
+ (cal-tex-cursor-day, cal-tex-daily-page, cal-tex-mini-calendar)
+ (cal-tex-latexify-list, cal-tex-previous-month)
+ (cal-tex-next-month, cal-tex-insert-preamble): General tidy-up and
+ modernization, including using dotimes rather than
+ calendar-for-loop.
+ (cal-tex-LaTeX-subst-list): Remove `@'.
+ (cal-tex-em, cal-tex-bf, cal-tex-Huge-bf, cal-tex-large-bf):
+ Use \textit and \textbf rather than \em and \it.
+
+ * calendar/cal-bahai.el (list-bahai-diary-entries)
+ * calendar/cal-hebrew.el (list-hebrew-diary-entries)
+ * calendar/cal-islam.el (list-islamic-diary-entries)
+ * calendar/calendar.el (generate-calendar, generate-calendar-month)
+ * calendar/diary-lib.el (diary-list-entries)
+ (mark-calendar-date-pattern): Use `dotimes' rather than
+ `calendar-for-loop'.
+
+ * calendar/calendar.el (calendar-for-loop): Doc fix.
+
2007-07-23 Stefan Monnier <monnier@iro.umontreal.ca>
* ses.el (ses-cleanup): Prevent Emacs from spuriously checking if the
@@ -12,12 +442,12 @@
* vc-hooks.el (vc-mode-line-map): New const.
(vc-mode-line): Use it.
-2007-07-23 Alexandre Julliard <julliard@winehq.org>
+2007-07-23 Alexandre Julliard <julliard@winehq.org>
* vc-git.el (vc-git-delete-file, vc-git-rename-file)
(vc-git-unregister): New functions.
(vc-git-find-version): Use the result of ls-files as a parameter
- for cat-file
+ for cat-file.
2007-07-23 Michael Albinus <michael.albinus@gmx.de>
@@ -63,12 +493,12 @@
2007-07-23 Dan Nicolaescu <dann@ics.uci.edu>
* vc-git.el (vc-git-checkin): Delete unused parameter and the code
- handling it. Use vc-git-command.
+ handling it. Use vc-git-command.
(vc-git-find-version, vc-git-diff-tree): New functions.
(vc-git-revert): Use vc-git-command.
(vc-git--run-command): Delete.
-2007-07-23 Alexandre Julliard <julliard@winehq.org>
+2007-07-23 Alexandre Julliard <julliard@winehq.org>
* vc-git.el (vc-git-workfile-unchanged-p): Update comment.
@@ -155,7 +585,7 @@
(reftex-access-parse-file): Do not risk destroying an existing
buffer.
-2007-07-22 Alexandre Julliard <julliard@winehq.org>
+2007-07-22 Alexandre Julliard <julliard@winehq.org>
* vc-git.el: New file.
@@ -170,7 +600,7 @@
* vc-hooks.el (vc-default-mode-line-string): Move mouse-face and
local-map handling ...
- (vc-mode-line): ... here. Improve handling of help-echo.
+ (vc-mode-line): ... here. Improve handling of help-echo.
* vc.el (mode-line-string): Document help-echo usage.
@@ -192,8 +622,8 @@
* add-log.el (change-log-fill-parenthesized-list): New function.
(change-log-indent): Call change-log-fill-parenthesized-list.
- (change-log-fill-paragraph): Bind fill-indent-according-to-mode to
- t. Have lines with leading asterisk start a paragraph.
+ (change-log-fill-paragraph): Bind fill-indent-according-to-mode to t.
+ Have lines with leading asterisk start a paragraph.
2007-07-21 Jay Belanger <jay.p.belanger@gmail.com>
@@ -537,8 +967,7 @@
* replace.el (match): Use yellow1 instead of yellow.
- * progmodes/gdb-ui.el (breakpoint-enabled): Use red1 instead of
- red.
+ * progmodes/gdb-ui.el (breakpoint-enabled): Use red1 instead of red.
* pcvs-info.el (cvs-unknown): Likewise.
@@ -547,7 +976,7 @@
* makefile.w32-in (install-lisp-SH, install-lisp-CMD): New targets.
(install): Use them to copy all *.el files before *.elc.
-2007-07-13 Drew Adams <drew.adams@oracle.com>
+2007-07-13 Drew Adams <drew.adams@oracle.com>
* bookmark.el (bookmark-jump-other-window): New function.
(bookmark-map): Bind it to "o".
@@ -1699,7 +2128,7 @@
2007-06-13 Ryan Yeske <rcyeske@gmail.com>
* rcirc.el (rcirc-format-response-string): Use rcirc-nick-syntax
- around bright and dim regexps. Make sure bright and dim matches
+ around bright and dim regexps. Make sure bright and dim matches
use word anchors. Send text through rcirc-markup functions.
(rcirc-url-regexp): Add single quote character.
(rcirc-connect): Write logs to disk on auto-save-hook.
@@ -1720,7 +2149,7 @@
(rcirc-handler-CTCP): Don't print KEEPALIVE responses.
(rcirc-omit-mode): Add minor-mode.
(rcirc-mode-map): Change C-c C-o binding.
- (rcirc-mode): Clear mode-line-process. Use a custom
+ (rcirc-mode): Clear mode-line-process. Use a custom
fill-paragraph-function. Set up buffer-invisibility-spec.
(rcirc-response-formats): Remove timestamp code.
(rcirc-omit-responses): Add variable.
@@ -1857,7 +2286,7 @@
(ediff-verbose-help-enabled): New variable.
(ediff-toggle-verbose-help-meta-buffer): New function.
(ediff-redraw-directory-group-buffer): Made aware of short/verbose
- message options
+ message options.
* ediff-ptch.el (ediff-context-diff-label-regexp): Better regexp.
(ediff-fixup-patch-map): Improve heuristic.
@@ -2785,7 +3214,7 @@ See ChangeLog.12 for earlier changes.
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)
+ the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ChangeLog.1 b/lisp/ChangeLog.1
index e068ee4cffb..b3ed7422399 100644
--- a/lisp/ChangeLog.1
+++ b/lisp/ChangeLog.1
@@ -3253,7 +3253,7 @@
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)
+ the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ChangeLog.10 b/lisp/ChangeLog.10
index d63ef8fbbd7..884a583b752 100644
--- a/lisp/ChangeLog.10
+++ b/lisp/ChangeLog.10
@@ -23541,7 +23541,7 @@ See ChangeLog.9 for earlier changes.
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)
+ the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ChangeLog.11 b/lisp/ChangeLog.11
index 0ef83a0ed9d..c92bdec978f 100644
--- a/lisp/ChangeLog.11
+++ b/lisp/ChangeLog.11
@@ -14343,7 +14343,7 @@ See ChangeLog.10 for earlier changes.
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)
+ the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ChangeLog.12 b/lisp/ChangeLog.12
index 12ea658afd0..dca4aed54d1 100644
--- a/lisp/ChangeLog.12
+++ b/lisp/ChangeLog.12
@@ -33358,7 +33358,7 @@ See ChangeLog.11 for earlier changes.
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)
+ the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ChangeLog.2 b/lisp/ChangeLog.2
index fd3d0a16b47..a5e92db37af 100644
--- a/lisp/ChangeLog.2
+++ b/lisp/ChangeLog.2
@@ -4001,7 +4001,7 @@ See ChangeLog.1 for earlier changes.
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)
+ the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ChangeLog.3 b/lisp/ChangeLog.3
index c2379009c00..e2404780519 100644
--- a/lisp/ChangeLog.3
+++ b/lisp/ChangeLog.3
@@ -12622,7 +12622,7 @@ See ChangeLog.2 for earlier changes.
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)
+ the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ChangeLog.4 b/lisp/ChangeLog.4
index 872a39fa4b2..1db8ba20a79 100644
--- a/lisp/ChangeLog.4
+++ b/lisp/ChangeLog.4
@@ -8946,7 +8946,7 @@ See ChangeLog.3 for earlier changes.
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)
+ the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ChangeLog.5 b/lisp/ChangeLog.5
index 10ac1321a35..5d2c4766d73 100644
--- a/lisp/ChangeLog.5
+++ b/lisp/ChangeLog.5
@@ -9268,7 +9268,7 @@ See ChangeLog.4 for earlier changes.
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)
+ the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ChangeLog.6 b/lisp/ChangeLog.6
index 5475a7ee100..502fb5245a8 100644
--- a/lisp/ChangeLog.6
+++ b/lisp/ChangeLog.6
@@ -8029,7 +8029,7 @@ See ChangeLog.5 for earlier changes.
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)
+ the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ChangeLog.7 b/lisp/ChangeLog.7
index 4124a1dd955..72cde28f158 100644
--- a/lisp/ChangeLog.7
+++ b/lisp/ChangeLog.7
@@ -23146,7 +23146,7 @@ See ChangeLog.6 for earlier changes.
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)
+ the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ChangeLog.8 b/lisp/ChangeLog.8
index 21ccff71d6f..6b770465df5 100644
--- a/lisp/ChangeLog.8
+++ b/lisp/ChangeLog.8
@@ -9995,7 +9995,7 @@ See ChangeLog.7 for earlier changes.
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)
+ the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ChangeLog.9 b/lisp/ChangeLog.9
index 8f6177e9fe9..4f0bfa6d2a4 100644
--- a/lisp/ChangeLog.9
+++ b/lisp/ChangeLog.9
@@ -20702,7 +20702,7 @@ See ChangeLog.8 for earlier changes.
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)
+ the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/Makefile.in b/lisp/Makefile.in
index 8d407860a7c..490bde95d35 100644
--- a/lisp/Makefile.in
+++ b/lisp/Makefile.in
@@ -6,7 +6,7 @@
# 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)
+# the Free Software Foundation; either version 3, or (at your option)
# any later version.
# GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/abbrev.el b/lisp/abbrev.el
index 83a3fbbe49d..1471ca7bebd 100644
--- a/lisp/abbrev.el
+++ b/lisp/abbrev.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/abbrevlist.el b/lisp/abbrevlist.el
index faaceaf3113..e4107737d42 100644
--- a/lisp/abbrevlist.el
+++ b/lisp/abbrevlist.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/add-log.el b/lisp/add-log.el
index 458dfcff523..4b6b3452a9e 100644
--- a/lisp/add-log.el
+++ b/lisp/add-log.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -1155,29 +1155,6 @@ old-style time formats for entries are supported."
(goto-char (point-max)))
(insert-buffer-substring other-buf start)))))))
-;;;###autoload
-(defun change-log-redate ()
- "Fix any old-style date entries in the current log file to default format."
- (interactive)
- (require 'timezone)
- (save-excursion
- (goto-char (point-min))
- (while (re-search-forward "^\\sw.........[0-9:+ ]*" nil t)
- (unless (= 12 (- (match-end 0) (match-beginning 0)))
- (let* ((date (save-match-data
- (timezone-fix-time (match-string 0) nil nil)))
- (zone (if (consp (aref date 6))
- (nth 1 (aref date 6)))))
- (replace-match (format-time-string
- "%Y-%m-%d "
- (encode-time (aref date 5)
- (aref date 4)
- (aref date 3)
- (aref date 2)
- (aref date 1)
- (aref date 0)
- zone))))))))
-
(provide 'add-log)
;; arch-tag: 81eee6fc-088f-4372-a37f-80ad9620e762
diff --git a/lisp/align.el b/lisp/align.el
index 75046c147cb..fca00b301ad 100644
--- a/lisp/align.el
+++ b/lisp/align.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/allout.el b/lisp/allout.el
index 2330e6df121..f6598063e97 100644
--- a/lisp/allout.el
+++ b/lisp/allout.el
@@ -14,7 +14,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ansi-color.el b/lisp/ansi-color.el
index ad33ab2533d..769b21a38f3 100644
--- a/lisp/ansi-color.el
+++ b/lisp/ansi-color.el
@@ -12,7 +12,7 @@
;; 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
+;; Free Software Foundation; either version 3, or (at your option) any
;; later version.
;;
;; GNU Emacs is distributed in the hope that it will be useful, but
diff --git a/lisp/apropos.el b/lisp/apropos.el
index 8df7992230a..9e784e087e6 100644
--- a/lisp/apropos.el
+++ b/lisp/apropos.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el
index 1a22ac628e6..39fd10c6b6f 100644
--- a/lisp/arc-mode.el
+++ b/lisp/arc-mode.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/array.el b/lisp/array.el
index 979101ef75d..bbb3d9d40bf 100644
--- a/lisp/array.el
+++ b/lisp/array.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/autoarg.el b/lisp/autoarg.el
index 39dd3219621..7f3412043ee 100644
--- a/lisp/autoarg.el
+++ b/lisp/autoarg.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/autoinsert.el b/lisp/autoinsert.el
index dcacc6a99ff..91bfb396b0e 100644
--- a/lisp/autoinsert.el
+++ b/lisp/autoinsert.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/autorevert.el b/lisp/autorevert.el
index 3831d7c1c05..473e8e1976b 100644
--- a/lisp/autorevert.el
+++ b/lisp/autorevert.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/avoid.el b/lisp/avoid.el
index 22eb4aad9aa..341aaf0f7b8 100644
--- a/lisp/avoid.el
+++ b/lisp/avoid.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/battery.el b/lisp/battery.el
index f10245f44ac..e1dbc183557 100644
--- a/lisp/battery.el
+++ b/lisp/battery.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/bindings.el b/lisp/bindings.el
index df435ed532f..38184ae88a4 100644
--- a/lisp/bindings.el
+++ b/lisp/bindings.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -256,7 +256,7 @@ Normally nil in most modes, since there is no process to display.")
(defvar mode-line-remote
(list (propertize
- "%1R"
+ "%1@"
'help-echo (purecopy (lambda (window object point)
(format "%s"
(save-selected-window
diff --git a/lisp/bookmark.el b/lisp/bookmark.el
index f8440731419..c1904cb0393 100644
--- a/lisp/bookmark.el
+++ b/lisp/bookmark.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/bs.el b/lisp/bs.el
index 5951d129d96..9d89eb17b2d 100644
--- a/lisp/bs.el
+++ b/lisp/bs.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/buff-menu.el b/lisp/buff-menu.el
index a6e24b5343e..51db6bc50d9 100644
--- a/lisp/buff-menu.el
+++ b/lisp/buff-menu.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/button.el b/lisp/button.el
index ebc078f8193..3afe9302042 100644
--- a/lisp/button.el
+++ b/lisp/button.el
@@ -10,7 +10,7 @@
;;
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;;
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/README b/lisp/calc/README
index 5dfaf57403c..bed46422972 100644
--- a/lisp/calc/README
+++ b/lisp/calc/README
@@ -233,7 +233,7 @@ 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)
+the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/README.prev b/lisp/calc/README.prev
index 3dfcfc7fac7..a805b9a1a9a 100644
--- a/lisp/calc/README.prev
+++ b/lisp/calc/README.prev
@@ -987,7 +987,7 @@ 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)
+the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-aent.el b/lisp/calc/calc-aent.el
index be77030c914..e640eb5c438 100644
--- a/lisp/calc/calc-aent.el
+++ b/lisp/calc/calc-aent.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-alg.el b/lisp/calc/calc-alg.el
index 70900b9e5c3..51606079253 100644
--- a/lisp/calc/calc-alg.el
+++ b/lisp/calc/calc-alg.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-arith.el b/lisp/calc/calc-arith.el
index 1b291cbb84e..40c6ffbc485 100644
--- a/lisp/calc/calc-arith.el
+++ b/lisp/calc/calc-arith.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-bin.el b/lisp/calc/calc-bin.el
index 2dde6216a06..c58d0addd77 100644
--- a/lisp/calc/calc-bin.el
+++ b/lisp/calc/calc-bin.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-comb.el b/lisp/calc/calc-comb.el
index c933ecd7e00..90a0a20f5d6 100644
--- a/lisp/calc/calc-comb.el
+++ b/lisp/calc/calc-comb.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-cplx.el b/lisp/calc/calc-cplx.el
index 0879e308a86..76826aaf664 100644
--- a/lisp/calc/calc-cplx.el
+++ b/lisp/calc/calc-cplx.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-embed.el b/lisp/calc/calc-embed.el
index f31c19e3390..ff2dc3e5d29 100644
--- a/lisp/calc/calc-embed.el
+++ b/lisp/calc/calc-embed.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-ext.el b/lisp/calc/calc-ext.el
index 65383df308c..b517a54c6f0 100644
--- a/lisp/calc/calc-ext.el
+++ b/lisp/calc/calc-ext.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-fin.el b/lisp/calc/calc-fin.el
index 443ab99a8fe..23ea9ccb5e4 100644
--- a/lisp/calc/calc-fin.el
+++ b/lisp/calc/calc-fin.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-forms.el b/lisp/calc/calc-forms.el
index 5f319800999..7ac0a0bb0db 100644
--- a/lisp/calc/calc-forms.el
+++ b/lisp/calc/calc-forms.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-frac.el b/lisp/calc/calc-frac.el
index 2fa3bce8508..d3ff4684331 100644
--- a/lisp/calc/calc-frac.el
+++ b/lisp/calc/calc-frac.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-funcs.el b/lisp/calc/calc-funcs.el
index 78d0df34cdb..b0209d39d73 100644
--- a/lisp/calc/calc-funcs.el
+++ b/lisp/calc/calc-funcs.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-graph.el b/lisp/calc/calc-graph.el
index e5ffd2263fa..48bdecf59a6 100644
--- a/lisp/calc/calc-graph.el
+++ b/lisp/calc/calc-graph.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-help.el b/lisp/calc/calc-help.el
index e310020e399..871f281aa5e 100644
--- a/lisp/calc/calc-help.el
+++ b/lisp/calc/calc-help.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-incom.el b/lisp/calc/calc-incom.el
index ee20476938e..84886b39179 100644
--- a/lisp/calc/calc-incom.el
+++ b/lisp/calc/calc-incom.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-keypd.el b/lisp/calc/calc-keypd.el
index 1f71c648ef3..95cdf273acb 100644
--- a/lisp/calc/calc-keypd.el
+++ b/lisp/calc/calc-keypd.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-lang.el b/lisp/calc/calc-lang.el
index c009dbe18aa..efaf17ecae8 100644
--- a/lisp/calc/calc-lang.el
+++ b/lisp/calc/calc-lang.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-macs.el b/lisp/calc/calc-macs.el
index 68b42876e94..27001b43f36 100644
--- a/lisp/calc/calc-macs.el
+++ b/lisp/calc/calc-macs.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-map.el b/lisp/calc/calc-map.el
index b9eb0019ab7..afb8a2f97af 100644
--- a/lisp/calc/calc-map.el
+++ b/lisp/calc/calc-map.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-math.el b/lisp/calc/calc-math.el
index dbafd138e45..a442f2b4e03 100644
--- a/lisp/calc/calc-math.el
+++ b/lisp/calc/calc-math.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-misc.el b/lisp/calc/calc-misc.el
index ecc304a5f5f..10222fc1625 100644
--- a/lisp/calc/calc-misc.el
+++ b/lisp/calc/calc-misc.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-mode.el b/lisp/calc/calc-mode.el
index 7240009a8e8..3d6fafc844a 100644
--- a/lisp/calc/calc-mode.el
+++ b/lisp/calc/calc-mode.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-mtx.el b/lisp/calc/calc-mtx.el
index 0ab90a4a51d..a48b05bc199 100644
--- a/lisp/calc/calc-mtx.el
+++ b/lisp/calc/calc-mtx.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-poly.el b/lisp/calc/calc-poly.el
index 23000888749..de2cf2e0166 100644
--- a/lisp/calc/calc-poly.el
+++ b/lisp/calc/calc-poly.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-prog.el b/lisp/calc/calc-prog.el
index cacad666772..4ceeeba3b42 100644
--- a/lisp/calc/calc-prog.el
+++ b/lisp/calc/calc-prog.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-rewr.el b/lisp/calc/calc-rewr.el
index bf9ac13c6cf..dcd29fa6d8e 100644
--- a/lisp/calc/calc-rewr.el
+++ b/lisp/calc/calc-rewr.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-rules.el b/lisp/calc/calc-rules.el
index 09f71014a0d..bca780916e4 100644
--- a/lisp/calc/calc-rules.el
+++ b/lisp/calc/calc-rules.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-sel.el b/lisp/calc/calc-sel.el
index fe67127d649..3e68194cdbc 100644
--- a/lisp/calc/calc-sel.el
+++ b/lisp/calc/calc-sel.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-stat.el b/lisp/calc/calc-stat.el
index 967d45e7ba8..62021b43ab7 100644
--- a/lisp/calc/calc-stat.el
+++ b/lisp/calc/calc-stat.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-store.el b/lisp/calc/calc-store.el
index 8fa77563211..75a17661746 100644
--- a/lisp/calc/calc-store.el
+++ b/lisp/calc/calc-store.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-stuff.el b/lisp/calc/calc-stuff.el
index 89cf044c097..a1f50816519 100644
--- a/lisp/calc/calc-stuff.el
+++ b/lisp/calc/calc-stuff.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-trail.el b/lisp/calc/calc-trail.el
index ba18a633c43..8f79f723185 100644
--- a/lisp/calc/calc-trail.el
+++ b/lisp/calc/calc-trail.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-undo.el b/lisp/calc/calc-undo.el
index 9df08597956..de245d603c3 100644
--- a/lisp/calc/calc-undo.el
+++ b/lisp/calc/calc-undo.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-units.el b/lisp/calc/calc-units.el
index 81062b356fa..82769a66b13 100644
--- a/lisp/calc/calc-units.el
+++ b/lisp/calc/calc-units.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-vec.el b/lisp/calc/calc-vec.el
index e85d1259b5f..e4b3e1e5bbc 100644
--- a/lisp/calc/calc-vec.el
+++ b/lisp/calc/calc-vec.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc-yank.el b/lisp/calc/calc-yank.el
index a872f69d83f..d83321eb8a1 100644
--- a/lisp/calc/calc-yank.el
+++ b/lisp/calc/calc-yank.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calc.el b/lisp/calc/calc.el
index 6a235e42321..755834f913c 100644
--- a/lisp/calc/calc.el
+++ b/lisp/calc/calc.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calcalg2.el b/lisp/calc/calcalg2.el
index 8b1d4a2c9b3..4afed43d99c 100644
--- a/lisp/calc/calcalg2.el
+++ b/lisp/calc/calcalg2.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calcalg3.el b/lisp/calc/calcalg3.el
index 5864091614a..9f263a2281a 100644
--- a/lisp/calc/calcalg3.el
+++ b/lisp/calc/calcalg3.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calccomp.el b/lisp/calc/calccomp.el
index 3b52edecaec..6bd663cef5b 100644
--- a/lisp/calc/calccomp.el
+++ b/lisp/calc/calccomp.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calc/calcsel2.el b/lisp/calc/calcsel2.el
index afc3bb45a1e..adf47198792 100644
--- a/lisp/calc/calcsel2.el
+++ b/lisp/calc/calcsel2.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calculator.el b/lisp/calculator.el
index b0e3069d3e1..6f3c2a0e593 100644
--- a/lisp/calculator.el
+++ b/lisp/calculator.el
@@ -11,7 +11,7 @@
;; 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
+;; Free Software Foundation; either version 3, or (at your option) any
;; later version.
;; GNU Emacs is distributed in the hope that it will be useful, but
diff --git a/lisp/calendar/appt.el b/lisp/calendar/appt.el
index 02865c994e3..94df068b012 100644
--- a/lisp/calendar/appt.el
+++ b/lisp/calendar/appt.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -531,9 +531,9 @@ The time should be in either 24 hour format or am/pm format."
(message "")))
-(eval-when-compile (defvar number)
- (defvar original-date)
- (defvar diary-entries-list))
+(defvar number)
+(defvar original-date)
+(defvar diary-entries-list)
;;;###autoload
(defun appt-make-list ()
"Update the appointments list from today's diary buffer.
@@ -634,7 +634,7 @@ appointment package (if it is not already active)."
(defun appt-sort-list (appt-list)
"Sort an appointment list, putting earlier items at the front.
APPT-LIST is a list of the same format as `appt-time-msg-list'."
-(sort appt-list (lambda (e1 e2) (< (caar e1) (caar e2)))))
+ (sort appt-list (lambda (e1 e2) (< (caar e1) (caar e2)))))
(defun appt-convert-time (time2conv)
diff --git a/lisp/calendar/cal-bahai.el b/lisp/calendar/cal-bahai.el
index 06703e3b73b..1657611466c 100644
--- a/lisp/calendar/cal-bahai.el
+++ b/lisp/calendar/cal-bahai.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -63,19 +63,19 @@
(require 'cal-julian)
-(defvar bahai-calendar-month-name-array
+(defconst calendar-bahai-month-name-array
["Baha" "Jalal" "Jamal" "`Azamat" "Nur" "Rahmat" "Kalimat" "Kamal"
"Asma" "`Izzat" "Mashiyyat" "`Ilm" "Qudrat" "Qawl" "Masa'il"
"Sharaf" "Sultan" "Mulk" "`Ala"])
-(defvar calendar-bahai-epoch (calendar-absolute-from-gregorian '(3 21 1844))
+(defconst calendar-bahai-epoch (calendar-absolute-from-gregorian '(3 21 1844))
"Absolute date of start of Baha'i calendar = March 19, 622 A.D. (Julian).")
-(defun bahai-calendar-leap-year-p (year)
+(defun calendar-bahai-leap-year-p (year)
"True if YEAR is a leap year on the Baha'i calendar."
(calendar-leap-year-p (+ year 1844)))
-(defvar bahai-calendar-leap-base
+(defconst calendar-bahai-leap-base
(+ (/ 1844 4) (- (/ 1844 100)) (/ 1844 400)))
(defun calendar-absolute-from-bahai (date)
@@ -89,7 +89,7 @@ Gregorian date Sunday, December 31, 1 BC."
(leap-days (- (+ (/ prior-years 4) ; Leap days in prior years.
(- (/ prior-years 100))
(/ prior-years 400))
- bahai-calendar-leap-base)))
+ calendar-bahai-leap-base)))
(+ (1- calendar-bahai-epoch) ; Days before epoch
(* 365 (1- year)) ; Days in prior years.
leap-days
@@ -131,10 +131,10 @@ Defaults to today's date if DATE is not given."
(if (and (= m 19)
(<= d 0))
"Ayyam-i-Ha"
- (aref bahai-calendar-month-name-array (1- m))))
+ (aref calendar-bahai-month-name-array (1- m))))
(day (int-to-string
(if (<= d 0)
- (if (bahai-calendar-leap-year-p y)
+ (if (calendar-bahai-leap-year-p y)
(+ d 5)
(+ d 4))
d)))
@@ -152,12 +152,12 @@ Defaults to today's date if DATE is not given."
(defun calendar-goto-bahai-date (date &optional noecho)
"Move cursor to Baha'i date DATE.
Echo Baha'i date unless NOECHO is t."
- (interactive (bahai-prompt-for-date))
+ (interactive (calendar-bahai-prompt-for-date))
(calendar-goto-date (calendar-gregorian-from-absolute
(calendar-absolute-from-bahai date)))
(or noecho (calendar-print-bahai-date)))
-(defun bahai-prompt-for-date ()
+(defun calendar-bahai-prompt-for-date ()
"Ask for a Baha'i date."
(let* ((today (calendar-current-date))
(year (calendar-read
@@ -172,9 +172,9 @@ Echo Baha'i date unless NOECHO is t."
(completing-read
"Baha'i calendar month name: "
(mapcar 'list
- (append bahai-calendar-month-name-array nil))
+ (append calendar-bahai-month-name-array nil))
nil t)
- (calendar-make-alist bahai-calendar-month-name-array
+ (calendar-make-alist calendar-bahai-month-name-array
1))))
(day (calendar-read "Baha'i calendar day (1-19): "
'(lambda (x) (and (< 0 x) (<= x 19))))))
@@ -204,7 +204,7 @@ nil if it is not visible in the current calendar window."
(if (calendar-date-is-visible-p date)
(list (list date string))))))))
-(defun list-bahai-diary-entries ()
+(defun diary-list-bahai-entries ()
"Add any Baha'i date entries from the diary file to `diary-entries-list'.
Baha'i date diary entries must be prefaced by an
`bahai-diary-entry-symbol' (normally a `B'). The same diary date
@@ -220,77 +220,77 @@ calendar. This function is provided for use with the
(diary-modified (buffer-modified-p))
(gdate original-date)
(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
- (calendar-absolute-from-gregorian gdate)))
- (month (extract-calendar-month bdate))
- (day (extract-calendar-day bdate))
- (year (extract-calendar-year bdate)))
- (while d
- (let*
- ((date-form (if (equal (car (car d)) 'backup)
- (cdr (car d))
- (car d)))
- (backup (equal (car (car d)) 'backup))
- (dayname
- (concat
- (calendar-day-name gdate) "\\|"
- (substring (calendar-day-name gdate) 0 3) ".?"))
- (calendar-month-name-array
- bahai-calendar-month-name-array)
- (monthname
- (concat
- "\\*\\|"
- (calendar-month-name month)))
- (month (concat "\\*\\|0*" (int-to-string month)))
- (day (concat "\\*\\|0*" (int-to-string day)))
- (year
- (concat
- "\\*\\|0*" (int-to-string year)
- (if abbreviated-calendar-year
- (concat "\\|" (int-to-string (% year 100)))
- "")))
- (regexp
- (concat
- "\\(\\`\\|\^M\\|\n\\)" mark "?"
- (regexp-quote bahai-diary-entry-symbol)
- "\\("
- (mapconcat 'eval date-form "\\)\\(")
- "\\)"))
- (case-fold-search t))
- (goto-char (point-min))
- (while (re-search-forward regexp nil t)
- (if backup (re-search-backward "\\<" nil t))
- (if (and (or (char-equal (preceding-char) ?\^M)
- (char-equal (preceding-char) ?\n))
- (not (looking-at " \\|\^I")))
- ;; Diary entry that consists only of date.
- (backward-char 1)
- ;; Found a nonempty diary entry--make it visible and
- ;; add it to the list.
- (let ((entry-start (point))
- (date-start))
- (re-search-backward "\^M\\|\n\\|\\`")
- (setq date-start (point))
- (re-search-forward "\^M\\|\n" nil t 2)
- (while (looking-at " \\|\^I")
- (re-search-forward "\^M\\|\n" nil t))
- (backward-char 1)
- (subst-char-in-region date-start (point) ?\^M ?\n t)
- (add-to-diary-list
- gdate
- (buffer-substring-no-properties entry-start (point))
- (buffer-substring-no-properties
- (1+ date-start) (1- entry-start)))))))
- (setq d (cdr d))))
- (setq gdate
- (calendar-gregorian-from-absolute
- (1+ (calendar-absolute-from-gregorian gdate)))))
- (set-buffer-modified-p diary-modified))
- (goto-char (point-min))))
-
-(defun mark-bahai-diary-entries ()
+ (dotimes (idummy number)
+ (let* ((d diary-date-forms)
+ (bdate (calendar-bahai-from-absolute
+ (calendar-absolute-from-gregorian gdate)))
+ (month (extract-calendar-month bdate))
+ (day (extract-calendar-day bdate))
+ (year (extract-calendar-year bdate)))
+ (while d
+ (let*
+ ((date-form (if (equal (car (car d)) 'backup)
+ (cdr (car d))
+ (car d)))
+ (backup (equal (car (car d)) 'backup))
+ (dayname
+ (concat
+ (calendar-day-name gdate) "\\|"
+ (substring (calendar-day-name gdate) 0 3) ".?"))
+ (calendar-month-name-array
+ calendar-bahai-month-name-array)
+ (monthname
+ (concat
+ "\\*\\|"
+ (calendar-month-name month)))
+ (month (concat "\\*\\|0*" (int-to-string month)))
+ (day (concat "\\*\\|0*" (int-to-string day)))
+ (year
+ (concat
+ "\\*\\|0*" (int-to-string year)
+ (if abbreviated-calendar-year
+ (concat "\\|" (int-to-string (% year 100)))
+ "")))
+ (regexp
+ (concat
+ "\\(\\`\\|\^M\\|\n\\)" mark "?"
+ (regexp-quote bahai-diary-entry-symbol)
+ "\\("
+ (mapconcat 'eval date-form "\\)\\(")
+ "\\)"))
+ (case-fold-search t))
+ (goto-char (point-min))
+ (while (re-search-forward regexp nil t)
+ (if backup (re-search-backward "\\<" nil t))
+ (if (and (or (char-equal (preceding-char) ?\^M)
+ (char-equal (preceding-char) ?\n))
+ (not (looking-at " \\|\^I")))
+ ;; Diary entry that consists only of date.
+ (backward-char 1)
+ ;; Found a nonempty diary entry--make it visible and
+ ;; add it to the list.
+ (let ((entry-start (point))
+ (date-start))
+ (re-search-backward "\^M\\|\n\\|\\`")
+ (setq date-start (point))
+ (re-search-forward "\^M\\|\n" nil t 2)
+ (while (looking-at " \\|\^I")
+ (re-search-forward "\^M\\|\n" nil t))
+ (backward-char 1)
+ (subst-char-in-region date-start (point) ?\^M ?\n t)
+ (add-to-diary-list
+ gdate
+ (buffer-substring-no-properties entry-start (point))
+ (buffer-substring-no-properties
+ (1+ date-start) (1- entry-start)))))))
+ (setq d (cdr d))))
+ (setq gdate
+ (calendar-gregorian-from-absolute
+ (1+ (calendar-absolute-from-gregorian gdate)))))
+ (set-buffer-modified-p diary-modified))
+ (goto-char (point-min))))
+
+(defun diary-bahai-mark-entries ()
"Mark days in the calendar window that have Baha'i date diary entries.
Each entry in diary-file (or included files) visible in the calendar
window is marked. Baha'i date entries are prefaced by a
@@ -311,7 +311,7 @@ nongregorian-diary-marking-hook."
(dayname (diary-name-pattern calendar-day-name-array))
(monthname
(concat
- (diary-name-pattern bahai-calendar-month-name-array t)
+ (diary-name-pattern calendar-bahai-month-name-array t)
"\\|\\*"))
(month "[0-9]+\\|\\*")
(day "[0-9]+\\|\\*")
@@ -395,12 +395,12 @@ nongregorian-diary-marking-hook."
(cdr (assoc-string
mm-name
(calendar-make-alist
- bahai-calendar-month-name-array)
+ calendar-bahai-month-name-array)
t)))))
- (mark-bahai-calendar-date-pattern mm dd yy)))))
+ (calendar-bahai-mark-date-pattern mm dd yy)))))
(setq d (cdr d)))))
-(defun mark-bahai-calendar-date-pattern (month day year)
+(defun calendar-bahai-mark-date-pattern (month day year)
"Mark dates in calendar window that conform to Baha'i date MONTH/DAY/YEAR.
A value of 0 in any position is a wildcard."
(save-excursion
@@ -458,12 +458,12 @@ A value of 0 in any position is a wildcard."
(mark-visible-calendar-date
(calendar-gregorian-from-absolute date)))))))))
-(defun insert-bahai-diary-entry (arg)
+(defun diary-insert-bahai-entry (arg)
"Insert a diary entry.
For the Baha'i date corresponding to the date indicated by point.
Prefix arg will make the entry nonmarking."
(interactive "P")
- (let* ((calendar-month-name-array bahai-calendar-month-name-array))
+ (let* ((calendar-month-name-array calendar-bahai-month-name-array))
(make-diary-entry
(concat
bahai-diary-entry-symbol
@@ -474,14 +474,14 @@ Prefix arg will make the entry nonmarking."
nil t))
arg)))
-(defun insert-monthly-bahai-diary-entry (arg)
+(defun diary-bahai-insert-monthly-entry (arg)
"Insert a monthly diary entry.
For the day of the Baha'i month corresponding to the date indicated by point.
Prefix arg will make the entry nonmarking."
(interactive "P")
(let* ((calendar-date-display-form
(if european-calendar-style '(day " * ") '("* " day )))
- (calendar-month-name-array bahai-calendar-month-name-array))
+ (calendar-month-name-array calendar-bahai-month-name-array))
(make-diary-entry
(concat
bahai-diary-entry-symbol
@@ -491,7 +491,7 @@ Prefix arg will make the entry nonmarking."
(calendar-cursor-to-date t)))))
arg)))
-(defun insert-yearly-bahai-diary-entry (arg)
+(defun diary-bahai-insert-yearly-entry (arg)
"Insert an annual diary entry.
For the day of the Baha'i year corresponding to the date indicated by point.
Prefix arg will make the entry nonmarking."
@@ -500,7 +500,7 @@ Prefix arg will make the entry nonmarking."
(if european-calendar-style
'(day " " monthname)
'(monthname " " day)))
- (calendar-month-name-array bahai-calendar-month-name-array))
+ (calendar-month-name-array calendar-bahai-month-name-array))
(make-diary-entry
(concat
bahai-diary-entry-symbol
@@ -510,7 +510,21 @@ Prefix arg will make the entry nonmarking."
(calendar-cursor-to-date t)))))
arg)))
+;; Backward compatibility.
+(define-obsolete-function-alias
+ 'list-bahai-diary-entries 'diary-list-bahai-entries "23.1")
+(define-obsolete-function-alias
+ 'mark-bahai-diary-entries 'diary-mark-bahai-entries "23.1")
+(define-obsolete-function-alias
+ 'insert-bahai-diary-entry 'diary-insert-bahai-entry "23.1")
+(define-obsolete-function-alias
+ 'insert-monthly-bahai-diary-entry 'diary-insert-bahai-monthly-entry "23.1")
+(define-obsolete-function-alias
+ 'insert-yearly-bahai-diary-entry 'diary-insert-bahai-yearly-entry "23.1")
+(define-obsolete-function-alias
+ 'mark-bahai-calendar-date-pattern 'calendar-bahai-mark-date-pattern "23.1")
+
(provide 'cal-bahai)
-;;; arch-tag: c1cb1d67-862a-4264-a01c-41cb4df01f14
+;; arch-tag: c1cb1d67-862a-4264-a01c-41cb4df01f14
;;; cal-bahai.el ends here
diff --git a/lisp/calendar/cal-china.el b/lisp/calendar/cal-china.el
index 7f6646dda64..f7e93f091b4 100644
--- a/lisp/calendar/cal-china.el
+++ b/lisp/calendar/cal-china.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calendar/cal-coptic.el b/lisp/calendar/cal-coptic.el
index b5cf96949c6..f864079e760 100644
--- a/lisp/calendar/cal-coptic.el
+++ b/lisp/calendar/cal-coptic.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calendar/cal-dst.el b/lisp/calendar/cal-dst.el
index 6159d7e9dc1..875db6ff6a8 100644
--- a/lisp/calendar/cal-dst.el
+++ b/lisp/calendar/cal-dst.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calendar/cal-french.el b/lisp/calendar/cal-french.el
index 439dbd34632..49304fb83ec 100644
--- a/lisp/calendar/cal-french.el
+++ b/lisp/calendar/cal-french.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calendar/cal-hebrew.el b/lisp/calendar/cal-hebrew.el
index 9f32d9df471..f48d3b25e32 100644
--- a/lisp/calendar/cal-hebrew.el
+++ b/lisp/calendar/cal-hebrew.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -516,76 +516,76 @@ not be marked in the calendar. This function is provided for use with the
(diary-modified (buffer-modified-p))
(gdate original-date)
(mark (regexp-quote diary-nonmarking-symbol)))
- (calendar-for-loop i from 1 to number do
- (let* ((d diary-date-forms)
- (hdate (calendar-hebrew-from-absolute
- (calendar-absolute-from-gregorian gdate)))
- (month (extract-calendar-month hdate))
- (day (extract-calendar-day hdate))
- (year (extract-calendar-year hdate)))
- (while d
- (let*
- ((date-form (if (equal (car (car d)) 'backup)
- (cdr (car d))
- (car d)))
- (backup (equal (car (car d)) 'backup))
- (dayname
- (format "%s\\|%s\\.?"
- (calendar-day-name gdate)
- (calendar-day-name gdate 'abbrev)))
- (calendar-month-name-array
- calendar-hebrew-month-name-array-leap-year)
- (monthname
- (concat
- "\\*\\|"
- (calendar-month-name month)))
- (month (concat "\\*\\|0*" (int-to-string month)))
- (day (concat "\\*\\|0*" (int-to-string day)))
- (year
- (concat
- "\\*\\|0*" (int-to-string year)
- (if abbreviated-calendar-year
- (concat "\\|" (int-to-string (% year 100)))
- "")))
- (regexp
- (concat
- "\\(\\`\\|\^M\\|\n\\)" mark "?"
- (regexp-quote hebrew-diary-entry-symbol)
- "\\("
- (mapconcat 'eval date-form "\\)\\(")
- "\\)"))
- (case-fold-search t))
- (goto-char (point-min))
- (while (re-search-forward regexp nil t)
- (if backup (re-search-backward "\\<" nil t))
- (if (and (or (char-equal (preceding-char) ?\^M)
- (char-equal (preceding-char) ?\n))
- (not (looking-at " \\|\^I")))
- ;; Diary entry that consists only of date.
- (backward-char 1)
- ;; Found a nonempty diary entry--make it visible and
- ;; add it to the list.
- (let ((entry-start (point))
- (date-start))
- (re-search-backward "\^M\\|\n\\|\\`")
- (setq date-start (point))
- (re-search-forward "\^M\\|\n" nil t 2)
- (while (looking-at " \\|\^I")
- (re-search-forward "\^M\\|\n" nil t))
- (backward-char 1)
- (subst-char-in-region date-start (point) ?\^M ?\n t)
- (add-to-diary-list
- gdate
- (buffer-substring-no-properties entry-start (point))
- (buffer-substring-no-properties
- (1+ date-start) (1- entry-start))
- (copy-marker entry-start))))))
- (setq d (cdr d))))
- (setq gdate
- (calendar-gregorian-from-absolute
- (1+ (calendar-absolute-from-gregorian gdate)))))
- (set-buffer-modified-p diary-modified))
- (goto-char (point-min))))
+ (dotimes (idummy number)
+ (let* ((d diary-date-forms)
+ (hdate (calendar-hebrew-from-absolute
+ (calendar-absolute-from-gregorian gdate)))
+ (month (extract-calendar-month hdate))
+ (day (extract-calendar-day hdate))
+ (year (extract-calendar-year hdate)))
+ (while d
+ (let*
+ ((date-form (if (equal (car (car d)) 'backup)
+ (cdr (car d))
+ (car d)))
+ (backup (equal (car (car d)) 'backup))
+ (dayname
+ (format "%s\\|%s\\.?"
+ (calendar-day-name gdate)
+ (calendar-day-name gdate 'abbrev)))
+ (calendar-month-name-array
+ calendar-hebrew-month-name-array-leap-year)
+ (monthname
+ (concat
+ "\\*\\|"
+ (calendar-month-name month)))
+ (month (concat "\\*\\|0*" (int-to-string month)))
+ (day (concat "\\*\\|0*" (int-to-string day)))
+ (year
+ (concat
+ "\\*\\|0*" (int-to-string year)
+ (if abbreviated-calendar-year
+ (concat "\\|" (int-to-string (% year 100)))
+ "")))
+ (regexp
+ (concat
+ "\\(\\`\\|\^M\\|\n\\)" mark "?"
+ (regexp-quote hebrew-diary-entry-symbol)
+ "\\("
+ (mapconcat 'eval date-form "\\)\\(")
+ "\\)"))
+ (case-fold-search t))
+ (goto-char (point-min))
+ (while (re-search-forward regexp nil t)
+ (if backup (re-search-backward "\\<" nil t))
+ (if (and (or (char-equal (preceding-char) ?\^M)
+ (char-equal (preceding-char) ?\n))
+ (not (looking-at " \\|\^I")))
+ ;; Diary entry that consists only of date.
+ (backward-char 1)
+ ;; Found a nonempty diary entry--make it visible and
+ ;; add it to the list.
+ (let ((entry-start (point))
+ (date-start))
+ (re-search-backward "\^M\\|\n\\|\\`")
+ (setq date-start (point))
+ (re-search-forward "\^M\\|\n" nil t 2)
+ (while (looking-at " \\|\^I")
+ (re-search-forward "\^M\\|\n" nil t))
+ (backward-char 1)
+ (subst-char-in-region date-start (point) ?\^M ?\n t)
+ (add-to-diary-list
+ gdate
+ (buffer-substring-no-properties entry-start (point))
+ (buffer-substring-no-properties
+ (1+ date-start) (1- entry-start))
+ (copy-marker entry-start))))))
+ (setq d (cdr d))))
+ (setq gdate
+ (calendar-gregorian-from-absolute
+ (1+ (calendar-absolute-from-gregorian gdate)))))
+ (set-buffer-modified-p diary-modified))
+ (goto-char (point-min))))
(defun mark-hebrew-calendar-date-pattern (month day year)
"Mark dates in calendar window that conform to Hebrew date MONTH/DAY/YEAR.
diff --git a/lisp/calendar/cal-html.el b/lisp/calendar/cal-html.el
index 110a612db66..691148bd9ed 100644
--- a/lisp/calendar/cal-html.el
+++ b/lisp/calendar/cal-html.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calendar/cal-islam.el b/lisp/calendar/cal-islam.el
index 57c0f9de65e..c562437fc14 100644
--- a/lisp/calendar/cal-islam.el
+++ b/lisp/calendar/cal-islam.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -210,76 +210,76 @@ not be marked in the calendar. This function is provided for use with the
(diary-modified (buffer-modified-p))
(gdate original-date)
(mark (regexp-quote diary-nonmarking-symbol)))
- (calendar-for-loop i from 1 to number do
- (let* ((d diary-date-forms)
- (idate (calendar-islamic-from-absolute
- (calendar-absolute-from-gregorian gdate)))
- (month (extract-calendar-month idate))
- (day (extract-calendar-day idate))
- (year (extract-calendar-year idate)))
- (while d
- (let*
- ((date-form (if (equal (car (car d)) 'backup)
- (cdr (car d))
- (car d)))
- (backup (equal (car (car d)) 'backup))
- (dayname
- (format "%s\\|%s\\.?"
- (calendar-day-name gdate)
- (calendar-day-name gdate 'abbrev)))
- (calendar-month-name-array
- calendar-islamic-month-name-array)
- (monthname
- (concat
- "\\*\\|"
- (calendar-month-name month)))
- (month (concat "\\*\\|0*" (int-to-string month)))
- (day (concat "\\*\\|0*" (int-to-string day)))
- (year
- (concat
- "\\*\\|0*" (int-to-string year)
- (if abbreviated-calendar-year
- (concat "\\|" (int-to-string (% year 100)))
- "")))
- (regexp
- (concat
- "\\(\\`\\|\^M\\|\n\\)" mark "?"
- (regexp-quote islamic-diary-entry-symbol)
- "\\("
- (mapconcat 'eval date-form "\\)\\(")
- "\\)"))
- (case-fold-search t))
- (goto-char (point-min))
- (while (re-search-forward regexp nil t)
- (if backup (re-search-backward "\\<" nil t))
- (if (and (or (char-equal (preceding-char) ?\^M)
- (char-equal (preceding-char) ?\n))
- (not (looking-at " \\|\^I")))
- ;; Diary entry that consists only of date.
- (backward-char 1)
- ;; Found a nonempty diary entry--make it visible and
- ;; add it to the list.
- (let ((entry-start (point))
- (date-start))
- (re-search-backward "\^M\\|\n\\|\\`")
- (setq date-start (point))
- (re-search-forward "\^M\\|\n" nil t 2)
- (while (looking-at " \\|\^I")
- (re-search-forward "\^M\\|\n" nil t))
- (backward-char 1)
- (subst-char-in-region date-start (point) ?\^M ?\n t)
- (add-to-diary-list
- gdate
- (buffer-substring-no-properties entry-start (point))
- (buffer-substring-no-properties
- (1+ date-start) (1- entry-start))
- (copy-marker entry-start))))))
- (setq d (cdr d))))
- (setq gdate
- (calendar-gregorian-from-absolute
- (1+ (calendar-absolute-from-gregorian gdate)))))
- (set-buffer-modified-p diary-modified))
- (goto-char (point-min))))
+ (dotimes (idummy number)
+ (let* ((d diary-date-forms)
+ (idate (calendar-islamic-from-absolute
+ (calendar-absolute-from-gregorian gdate)))
+ (month (extract-calendar-month idate))
+ (day (extract-calendar-day idate))
+ (year (extract-calendar-year idate)))
+ (while d
+ (let*
+ ((date-form (if (equal (car (car d)) 'backup)
+ (cdr (car d))
+ (car d)))
+ (backup (equal (car (car d)) 'backup))
+ (dayname
+ (format "%s\\|%s\\.?"
+ (calendar-day-name gdate)
+ (calendar-day-name gdate 'abbrev)))
+ (calendar-month-name-array
+ calendar-islamic-month-name-array)
+ (monthname
+ (concat
+ "\\*\\|"
+ (calendar-month-name month)))
+ (month (concat "\\*\\|0*" (int-to-string month)))
+ (day (concat "\\*\\|0*" (int-to-string day)))
+ (year
+ (concat
+ "\\*\\|0*" (int-to-string year)
+ (if abbreviated-calendar-year
+ (concat "\\|" (int-to-string (% year 100)))
+ "")))
+ (regexp
+ (concat
+ "\\(\\`\\|\^M\\|\n\\)" mark "?"
+ (regexp-quote islamic-diary-entry-symbol)
+ "\\("
+ (mapconcat 'eval date-form "\\)\\(")
+ "\\)"))
+ (case-fold-search t))
+ (goto-char (point-min))
+ (while (re-search-forward regexp nil t)
+ (if backup (re-search-backward "\\<" nil t))
+ (if (and (or (char-equal (preceding-char) ?\^M)
+ (char-equal (preceding-char) ?\n))
+ (not (looking-at " \\|\^I")))
+ ;; Diary entry that consists only of date.
+ (backward-char 1)
+ ;; Found a nonempty diary entry--make it visible and
+ ;; add it to the list.
+ (let ((entry-start (point))
+ (date-start))
+ (re-search-backward "\^M\\|\n\\|\\`")
+ (setq date-start (point))
+ (re-search-forward "\^M\\|\n" nil t 2)
+ (while (looking-at " \\|\^I")
+ (re-search-forward "\^M\\|\n" nil t))
+ (backward-char 1)
+ (subst-char-in-region date-start (point) ?\^M ?\n t)
+ (add-to-diary-list
+ gdate
+ (buffer-substring-no-properties entry-start (point))
+ (buffer-substring-no-properties
+ (1+ date-start) (1- entry-start))
+ (copy-marker entry-start))))))
+ (setq d (cdr d))))
+ (setq gdate
+ (calendar-gregorian-from-absolute
+ (1+ (calendar-absolute-from-gregorian gdate)))))
+ (set-buffer-modified-p diary-modified))
+ (goto-char (point-min))))
(defun mark-islamic-diary-entries ()
"Mark days in the calendar window that have Islamic date diary entries.
diff --git a/lisp/calendar/cal-iso.el b/lisp/calendar/cal-iso.el
index 052087e2558..968ea455026 100644
--- a/lisp/calendar/cal-iso.el
+++ b/lisp/calendar/cal-iso.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calendar/cal-julian.el b/lisp/calendar/cal-julian.el
index ff6a3f72e1b..ccabf290cbb 100644
--- a/lisp/calendar/cal-julian.el
+++ b/lisp/calendar/cal-julian.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calendar/cal-mayan.el b/lisp/calendar/cal-mayan.el
index 2cb6d31022e..2de31dbd1d8 100644
--- a/lisp/calendar/cal-mayan.el
+++ b/lisp/calendar/cal-mayan.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calendar/cal-menu.el b/lisp/calendar/cal-menu.el
index 25929976dbd..1f4e4df736f 100644
--- a/lisp/calendar/cal-menu.el
+++ b/lisp/calendar/cal-menu.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -33,149 +33,118 @@
;;; Code:
-(defvar displayed-month)
(defvar displayed-year)
-;; Don't require calendar because calendar requires us.
-;; (eval-when-compile (require 'calendar))
-(defvar calendar-mode-map)
-
-(define-key calendar-mode-map [menu-bar edit] 'undefined)
-(define-key calendar-mode-map [menu-bar search] 'undefined)
-
-(define-key calendar-mode-map [down-mouse-2] 'calendar-mouse-2-date-menu)
-(define-key calendar-mode-map [mouse-2] 'ignore)
-
-(defvar calendar-mouse-3-map (make-sparse-keymap "Calendar"))
-(define-key calendar-mode-map [down-mouse-3] calendar-mouse-3-map)
-
-(define-key calendar-mode-map [menu-bar moon]
- (cons "Moon" (make-sparse-keymap "Moon")))
-
-(define-key calendar-mode-map [menu-bar moon moon]
- '("Lunar Phases" . calendar-phases-of-moon))
-
-(define-key calendar-mode-map [menu-bar diary]
- (cons "Diary" (make-sparse-keymap "Diary")))
-
-(define-key calendar-mode-map [menu-bar diary heb]
- '("Insert Hebrew" . calendar-mouse-insert-hebrew-diary-entry))
-(define-key calendar-mode-map [menu-bar diary isl]
- '("Insert Islamic" . calendar-mouse-insert-islamic-diary-entry))
-(define-key calendar-mode-map [menu-bar diary baha]
- '("Insert Baha'i" . calendar-mouse-insert-bahai-diary-entry))
-(define-key calendar-mode-map [menu-bar diary cyc]
- '("Insert Cyclic" . insert-cyclic-diary-entry))
-(define-key calendar-mode-map [menu-bar diary blk]
- '("Insert Block" . insert-block-diary-entry))
-(define-key calendar-mode-map [menu-bar diary ann]
- '("Insert Anniversary" . insert-anniversary-diary-entry))
-(define-key calendar-mode-map [menu-bar diary yr]
- '("Insert Yearly" . insert-yearly-diary-entry))
-(define-key calendar-mode-map [menu-bar diary mon]
- '("Insert Monthly" . insert-monthly-diary-entry))
-(define-key calendar-mode-map [menu-bar diary wk]
- '("Insert Weekly" . insert-weekly-diary-entry))
-(define-key calendar-mode-map [menu-bar diary ent]
- '("Insert Diary Entry" . insert-diary-entry))
-(define-key calendar-mode-map [menu-bar diary all]
- '("Show All" . diary-show-all-entries))
-(define-key calendar-mode-map [menu-bar diary mark]
- '("Mark All" . mark-diary-entries))
-(define-key calendar-mode-map [menu-bar diary view]
- '("Cursor Date" . diary-view-entries))
-(define-key calendar-mode-map [menu-bar diary view]
- '("Other File" . view-other-diary-entries))
-
-(define-key calendar-mode-map [menu-bar Holidays]
- (cons "Holidays" (make-sparse-keymap "Holidays")))
-
-(define-key calendar-mode-map [menu-bar goto]
- (cons "Goto" (make-sparse-keymap "Goto")))
-
-(define-key calendar-mode-map [menu-bar goto french]
- '("French Date" . calendar-goto-french-date))
-(define-key calendar-mode-map [menu-bar goto mayan]
- (cons "Mayan Date" (make-sparse-keymap "Mayan")))
-(define-key calendar-mode-map [menu-bar goto ethiopic]
- '("Ethiopic Date" . calendar-goto-ethiopic-date))
-(define-key calendar-mode-map [menu-bar goto coptic]
- '("Coptic Date" . calendar-goto-coptic-date))
-(define-key calendar-mode-map [menu-bar goto chinese]
- '("Chinese Date" . calendar-goto-chinese-date))
-(define-key calendar-mode-map [menu-bar goto julian]
- '("Julian Date" . calendar-goto-julian-date))
-(define-key calendar-mode-map [menu-bar goto islamic]
- '("Islamic Date" . calendar-goto-islamic-date))
-(define-key calendar-mode-map [menu-bar goto persian]
- '("Baha'i Date" . calendar-goto-bahai-date))
-(define-key calendar-mode-map [menu-bar goto persian]
- '("Persian Date" . calendar-goto-persian-date))
-(define-key calendar-mode-map [menu-bar goto hebrew]
- '("Hebrew Date" . calendar-goto-hebrew-date))
-(define-key calendar-mode-map [menu-bar goto astro]
- '("Astronomical Date" . calendar-goto-astro-day-number))
-(define-key calendar-mode-map [menu-bar goto iso]
- '("ISO Date" . calendar-goto-iso-date))
-(define-key calendar-mode-map [menu-bar goto iso-week]
- '("ISO Week" . calendar-goto-iso-week))
-(define-key calendar-mode-map [menu-bar goto day-of-year]
- '("Day of Year" . calendar-goto-day-of-year))
-(define-key calendar-mode-map [menu-bar goto gregorian]
- '("Other Date" . calendar-goto-date))
-(define-key calendar-mode-map [menu-bar goto end-of-year]
- '("End of Year" . calendar-end-of-year))
-(define-key calendar-mode-map [menu-bar goto beginning-of-year]
- '("Beginning of Year" . calendar-beginning-of-year))
-(define-key calendar-mode-map [menu-bar goto end-of-month]
- '("End of Month" . calendar-end-of-month))
-(define-key calendar-mode-map [menu-bar goto beginning-of-month]
- '("Beginning of Month" . calendar-beginning-of-month))
-(define-key calendar-mode-map [menu-bar goto end-of-week]
- '("End of Week" . calendar-end-of-week))
-(define-key calendar-mode-map [menu-bar goto beginning-of-week]
- '("Beginning of Week" . calendar-beginning-of-week))
-(define-key calendar-mode-map [menu-bar goto today]
- '("Today" . calendar-goto-today))
-
-
-(define-key calendar-mode-map [menu-bar goto mayan prev-rnd]
- '("Previous Round" . calendar-previous-calendar-round-date))
-(define-key calendar-mode-map [menu-bar goto mayan nxt-rnd]
- '("Next Round" . calendar-next-calendar-round-date))
-(define-key calendar-mode-map [menu-bar goto mayan prev-haab]
- '("Previous Haab" . calendar-previous-haab-date))
-(define-key calendar-mode-map [menu-bar goto mayan next-haab]
- '("Next Haab" . calendar-next-haab-date))
-(define-key calendar-mode-map [menu-bar goto mayan prev-tzol]
- '("Previous Tzolkin" . calendar-previous-tzolkin-date))
-(define-key calendar-mode-map [menu-bar goto mayan next-tzol]
- '("Next Tzolkin" . calendar-next-tzolkin-date))
-
-(define-key calendar-mode-map [menu-bar scroll]
- (cons "Scroll" (make-sparse-keymap "Scroll")))
-
-(define-key calendar-mode-map [menu-bar scroll bk-12]
- '("Backward 1 Year" . "4\ev"))
-(define-key calendar-mode-map [menu-bar scroll bk-3]
- '("Backward 3 Months" . scroll-calendar-right-three-months))
-(define-key calendar-mode-map [menu-bar scroll bk-1]
- '("Backward 1 Month" . scroll-calendar-right))
-(define-key calendar-mode-map [menu-bar scroll fwd-12]
- '("Forward 1 Year" . "4\C-v"))
-(define-key calendar-mode-map [menu-bar scroll fwd-3]
- '("Forward 3 Months" . scroll-calendar-left-three-months))
-(define-key calendar-mode-map [menu-bar scroll fwd-1]
- '("Forward 1 Month" . scroll-calendar-left))
-
-(defun calendar-flatten (list)
- "Flatten LIST eliminating sublists structure; result is a list of atoms.
-This is the same as the preorder list of leaves in a rooted forest."
- (if (atom list)
- (list list)
- (if (cdr list)
- (append (calendar-flatten (car list)) (calendar-flatten (cdr list)))
- (calendar-flatten (car list)))))
+(defconst cal-menu-moon-menu
+ '("Moon"
+ ["Lunar Phases" calendar-phases-of-moon]))
+
+(defconst cal-menu-diary-menu
+ '("Diary"
+ ["Other File" view-other-diary-entries]
+ ["Cursor Date" diary-view-entries]
+ ["Mark All" mark-diary-entries]
+ ["Show All" diary-show-all-entries]
+ ["Insert Diary Entry" insert-diary-entry]
+ ["Insert Weekly" insert-weekly-diary-entry]
+ ["Insert Monthly" insert-monthly-diary-entry]
+ ["Insert Yearly" insert-yearly-diary-entry]
+ ["Insert Anniversary" insert-anniversary-diary-entry]
+ ["Insert Block" insert-block-diary-entry]
+ ["Insert Cyclic" insert-cyclic-diary-entry]
+ ("Insert Baha'i"
+ [" " nil :suffix (calendar-bahai-date-string (calendar-cursor-to-date))]
+ ["One time" insert-bahai-diary-entry]
+ ["Monthly" insert-monthly-bahai-diary-entry]
+ ["Yearly" insert-yearly-bahai-diary-entry])
+ ("Insert Islamic"
+ [" " nil :suffix (calendar-islamic-date-string (calendar-cursor-to-date))]
+ ["One time" insert-islamic-diary-entry]
+ ["Monthly" insert-monthly-islamic-diary-entry]
+ ["Yearly" insert-yearly-islamic-diary-entry])
+ ("Insert Hebrew"
+ [" " nil :suffix (calendar-hebrew-date-string (calendar-cursor-to-date))]
+ ["One time" insert-hebrew-diary-entry]
+ ["Monthly" insert-monthly-hebrew-diary-entry]
+ ["Yearly" insert-yearly-hebrew-diary-entry])))
+
+(defun cal-menu-holiday-window-suffix ()
+ (let ((my1 (calendar-increment-month -1))
+ (my2 (calendar-increment-month 1)))
+ (if (= (cdr my1) (cdr my2))
+ (format "%s-%s, %d"
+ (calendar-month-name (car my1) 'abbrev)
+ (calendar-month-name (car my2) 'abbrev)
+ (cdr my2))
+ (format "%s, %d-%s, %d"
+ (calendar-month-name (car my1) 'abbrev)
+ (cdr my1)
+ (calendar-month-name (car my2) 'abbrev)
+ (cdr my2)))))
+
+(defconst cal-menu-holidays-menu
+ `("Holidays"
+ ["For Cursor Date -" calendar-cursor-holidays
+ :suffix (calendar-date-string (calendar-cursor-to-date) t t)
+ :visible (calendar-cursor-to-date)]
+ ["For Window -" list-calendar-holidays
+ :suffix (cal-menu-holiday-window-suffix)]
+ ["For Today -" cal-menu-today-holidays
+ :suffix (calendar-date-string (calendar-current-date) t t)]
+ "--"
+ ,@(let ((l ()))
+ ;; Show 11 years--5 before, 5 after year of middle month.
+ (dotimes (i 11)
+ (push (vector "For Year"
+ `(lambda ()
+ (interactive)
+ (list-holidays (+ displayed-year ,(- i 5))))
+ :suffix `(number-to-string (+ displayed-year ,(- i 5))))
+ l))
+ (nreverse l))
+ "--"
+ ["Unmark Calendar" calendar-unmark]
+ ["Mark Holidays" mark-calendar-holidays]))
+
+(defconst cal-menu-goto-menu
+ '("Goto"
+ ["Today" calendar-goto-today]
+ ["Beginning of Week" calendar-beginning-of-week]
+ ["End of Week" calendar-end-of-week]
+ ["Beginning of Month" calendar-beginning-of-month]
+ ["End of Month" calendar-end-of-month]
+ ["Beginning of Year" calendar-beginning-of-year]
+ ["End of Year" calendar-end-of-year]
+ ["Other Date" calendar-goto-date]
+ ["Day of Year" calendar-goto-day-of-year]
+ ["ISO Week" calendar-goto-iso-week]
+ ["ISO Date" calendar-goto-iso-date]
+ ["Astronomical Date" calendar-goto-astro-day-number]
+ ["Hebrew Date" calendar-goto-hebrew-date]
+ ["Persian Date" calendar-goto-persian-date]
+ ["Baha'i Date" calendar-goto-bahai-date]
+ ["Islamic Date" calendar-goto-islamic-date]
+ ["Julian Date" calendar-goto-julian-date]
+ ["Chinese Date" calendar-goto-chinese-date]
+ ["Coptic Date" calendar-goto-coptic-date]
+ ["Ethiopic Date" calendar-goto-ethiopic-date]
+ ("Mayan Date"
+ ["Next Tzolkin" calendar-next-tzolkin-date]
+ ["Previous Tzolkin" calendar-previous-tzolkin-date]
+ ["Next Haab" calendar-next-haab-date]
+ ["Previous Haab" calendar-previous-haab-date]
+ ["Next Round" calendar-next-calendar-round-date]
+ ["Previous Round" calendar-previous-calendar-round-date])
+ ["French Date" calendar-goto-french-date]))
+
+(defconst cal-menu-scroll-menu
+ '("Scroll"
+ ["Forward 1 Month" calendar-scroll-left]
+ ["Forward 3 Months" calendar-scroll-left-three-months]
+ ["Forward 1 Year" "4\C-v"]
+ ["Backward 1 Month" calendar-scroll-right]
+ ["Backward 3 Months" calendar-scroll-right-three-months]
+ ["Backward 1 Year" "4\ev"]))
(defun cal-menu-x-popup-menu (position menu)
"Like `x-popup-menu', but prints an error message if popup menus are
@@ -202,103 +171,15 @@ not available."
(let ((year (1- (extract-calendar-year (calendar-cursor-to-date)))))
(list-holidays year year)))
-(defun cal-menu-update ()
- ;; Update the holiday part of calendar menu bar for the current display.
- (condition-case nil
- (if (eq major-mode 'calendar-mode)
- (let ((l))
- ;; Show 11 years--5 before, 5 after year of middle month
- (dotimes (i 11)
- (let ((y (+ displayed-year -5 i)))
- (push (vector (format "For Year %s" y)
- (list (list 'lambda 'nil '(interactive)
- (list 'list-holidays y y)))
- t)
- l)))
- (setq l (cons ["Mark Holidays" mark-calendar-holidays t]
- (cons ["Unmark Calendar" calendar-unmark t]
- (cons "--" l))))
- (define-key calendar-mode-map [menu-bar Holidays]
- (cons "Holidays" (easy-menu-create-menu "Holidays" (nreverse l))))
- (define-key calendar-mode-map [menu-bar Holidays separator]
- '("--"))
- (define-key calendar-mode-map [menu-bar Holidays today]
- `(,(format "For Today (%s)"
- (calendar-date-string (calendar-current-date) t t))
- . cal-menu-today-holidays))
- (let ((title
- (let ((my1 (calendar-increment-month -1))
- (my2 (calendar-increment-month 1)))
- (if (= (cdr my1) (cdr my2))
- (format "%s-%s, %d"
- (calendar-month-name (car my1) 'abbrev)
- (calendar-month-name (car my2) 'abbrev)
- (cdr my2))
- (format "%s, %d-%s, %d"
- (calendar-month-name (car my1) 'abbrev)
- (cdr my1)
- (calendar-month-name (car my2) 'abbrev)
- (cdr my2))))))
- (define-key calendar-mode-map [menu-bar Holidays 3-month]
- `(,(format "For Window (%s)" title)
- . list-calendar-holidays)))
- (let ((date (calendar-cursor-to-date)))
- (if date
- (define-key calendar-mode-map [menu-bar Holidays 1-day]
- `(,(format "For Cursor Date (%s)"
- (calendar-date-string date t t))
- . calendar-cursor-holidays))))))
- ;; Try to avoid entering infinite beep mode in case of errors.
- (error (ding))))
-
(defun calendar-event-to-date (&optional error)
"Date of last event.
If event is not on a specific date, signals an error if optional parameter
ERROR is t, otherwise just returns nil."
- (save-excursion
- (set-buffer (window-buffer (posn-window (event-start last-input-event))))
+ (with-current-buffer
+ (window-buffer (posn-window (event-start last-input-event)))
(goto-char (posn-point (event-start last-input-event)))
(calendar-cursor-to-date error)))
-(defun calendar-mouse-insert-hebrew-diary-entry (event)
- "Pop up menu to insert a Hebrew-date diary entry."
- (interactive "e")
- (let ((hebrew-selection
- (cal-menu-x-popup-menu
- event
- (list "Hebrew insert menu"
- (list (calendar-hebrew-date-string (calendar-cursor-to-date))
- '("One time" . insert-hebrew-diary-entry)
- '("Monthly" . insert-monthly-hebrew-diary-entry)
- '("Yearly" . insert-yearly-hebrew-diary-entry))))))
- (and hebrew-selection (call-interactively hebrew-selection))))
-
-(defun calendar-mouse-insert-islamic-diary-entry (event)
- "Pop up menu to insert an Islamic-date diary entry."
- (interactive "e")
- (let ((islamic-selection
- (cal-menu-x-popup-menu
- event
- (list "Islamic insert menu"
- (list (calendar-islamic-date-string (calendar-cursor-to-date))
- '("One time" . insert-islamic-diary-entry)
- '("Monthly" . insert-monthly-islamic-diary-entry)
- '("Yearly" . insert-yearly-islamic-diary-entry))))))
- (and islamic-selection (call-interactively islamic-selection))))
-
-(defun calendar-mouse-insert-bahai-diary-entry (event)
- "Pop up menu to insert an Baha'i-date diary entry."
- (interactive "e")
- (let ((bahai-selection
- (x-popup-menu
- event
- (list "Baha'i insert menu"
- (list (calendar-bahai-date-string (calendar-cursor-to-date))
- '("One time" . insert-bahai-diary-entry)
- '("Monthly" . insert-monthly-bahai-diary-entry)
- '("Yearly" . insert-yearly-bahai-diary-entry))))))
- (and bahai-selection (call-interactively bahai-selection))))
-
(defun calendar-mouse-sunrise/sunset ()
"Show sunrise/sunset times for mouse-selected date."
(interactive)
@@ -337,12 +218,12 @@ Use optional DATE and alternative file DIARY.
Any holidays are shown if `holidays-in-diary-buffer' is t."
(interactive "i\ni\ne")
- (let* ((date (if date date (calendar-event-to-date)))
+ (let* ((date (or date (calendar-event-to-date)))
(diary-file (if diary diary diary-file))
(diary-list-include-blanks nil)
(diary-display-hook 'ignore)
(diary-entries
- (mapcar (lambda (x) (split-string (car (cdr x)) "\^M\\|\n"))
+ (mapcar (lambda (x) (split-string (cadr x) "\n"))
(diary-list-entries date 1 'list-only)))
(holidays (if holidays-in-diary-buffer
(check-calendar-holidays date)))
@@ -360,7 +241,7 @@ Any holidays are shown if `holidays-in-diary-buffer' is t."
(if holidays
(list "--shadow-etched-in" "--shadow-etched-in"))
(if diary-entries
- (mapcar 'list (calendar-flatten diary-entries))
+ (mapcar 'list (apply 'append diary-entries))
'("None")))))))
(and selection (call-interactively selection))))
@@ -543,88 +424,49 @@ The output is in landscape format, one month to a page."
(set-buffer (window-buffer (posn-window (event-start last-input-event))))
(calendar-goto-date date))
-(defun calendar-mouse-2-date-menu (event)
+(easy-menu-define cal-menu-context-mouse-menu nil
"Pop up menu for Mouse-2 for selected date in the calendar window."
- (interactive "e")
- (let* ((date (calendar-event-to-date t))
- (selection
- (cal-menu-x-popup-menu
- event
- (list (calendar-date-string date t nil)
- (list
- ""
- '("Holidays" . calendar-mouse-holidays)
- '("Mark date" . calendar-mouse-set-mark)
- '("Sunrise/sunset" . calendar-mouse-sunrise/sunset)
- '("Other calendars" . calendar-mouse-print-dates)
- '("Prepare LaTeX buffer" . calendar-mouse-cal-tex-menu)
- '("Diary entries" . calendar-mouse-view-diary-entries)
- '("Insert diary entry" . calendar-mouse-insert-diary-entry)
- '("Other diary file entries"
- . calendar-mouse-view-other-diary-entries)
- )))))
- (and selection (call-interactively selection))))
-
-(defun calendar-mouse-cal-tex-menu (event)
- "Pop up submenu for Mouse-2 for cal-tex commands for selected date in the calendar window."
- (interactive "e")
- (let* ((selection
- (cal-menu-x-popup-menu
- event
- (list (calendar-date-string (calendar-event-to-date t) t nil)
- (list
- ""
- '("Daily (1 page)" . cal-tex-mouse-day)
- '("Weekly (1 page)" . cal-tex-mouse-week)
- '("Weekly (2 pages)" . cal-tex-mouse-week2)
- '("Weekly (other style; 1 page)" . cal-tex-mouse-week-iso)
- '("Weekly (yet another style; 1 page)" .
- cal-tex-mouse-week-monday)
- '("Monthly" . cal-tex-mouse-month)
- '("Monthly (landscape)" . cal-tex-mouse-month-landscape)
- '("Yearly" . cal-tex-mouse-year)
- '("Yearly (landscape)" . cal-tex-mouse-year-landscape)
- '("Filofax styles" . cal-tex-mouse-filofax)
- )))))
- (and selection (call-interactively selection))))
-
-(defun cal-tex-mouse-filofax (event)
- "Pop up sub-submenu for Mouse-2 for Filofax cal-tex commands for selected date."
- (interactive "e")
- (let* ((selection
- (cal-menu-x-popup-menu
- event
- (list (calendar-date-string (calendar-event-to-date t) t nil)
- (list
- ""
- '("Filofax Daily (one-day-per-page)" .
- cal-tex-mouse-filofax-daily)
- '("Filofax Weekly (2-weeks-at-a-glance)" .
- cal-tex-mouse-filofax-2week)
- '("Filofax Weekly (week-at-a-glance)" .
- cal-tex-mouse-filofax-week)
- '("Filofax Yearly" . cal-tex-mouse-filofax-year)
- )))))
- (and selection (call-interactively selection))))
-
-(define-key calendar-mouse-3-map [exit-calendar]
- '("Exit calendar" . exit-calendar))
-(define-key calendar-mouse-3-map [show-diary]
- '("Show diary" . diary-show-all-entries))
-(define-key calendar-mouse-3-map [lunar-phases]
- '("Lunar phases" . calendar-phases-of-moon))
-(define-key calendar-mouse-3-map [unmark]
- '("Unmark" . calendar-unmark))
-(define-key calendar-mouse-3-map [mark-holidays]
- '("Mark holidays" . mark-calendar-holidays))
-(define-key calendar-mouse-3-map [list-holidays]
- '("List holidays" . list-calendar-holidays))
-(define-key calendar-mouse-3-map [mark-diary-entries]
- '("Mark diary entries" . mark-diary-entries))
-(define-key calendar-mouse-3-map [scroll-backward]
- '("Scroll backward" . scroll-calendar-right-three-months))
-(define-key calendar-mouse-3-map [scroll-forward]
- '("Scroll forward" . scroll-calendar-left-three-months))
+ '("foo" :filter cal-menu-set-date-title
+ "--"
+ ["Holidays" calendar-mouse-holidays]
+ ["Mark date" calendar-mouse-set-mark]
+ ["Sunrise/sunset" calendar-mouse-sunrise/sunset]
+ ["Other calendars" calendar-mouse-print-dates]
+ ("Prepare LaTeX buffer"
+ ["Daily (1 page)" cal-tex-mouse-day]
+ ["Weekly (1 page)" cal-tex-mouse-week]
+ ["Weekly (2 pages)" cal-tex-mouse-week2]
+ ["Weekly (other style; 1 page)" cal-tex-mouse-week-iso]
+ ["Weekly (yet another style; 1 page)" cal-tex-mouse-week-monday]
+ ["Monthly" cal-tex-mouse-month]
+ ["Monthly (landscape)" cal-tex-mouse-month-landscape]
+ ["Yearly" cal-tex-mouse-year]
+ ["Yearly (landscape)" cal-tex-mouse-year-landscape]
+ ("Filofax styles"
+ ["Filofax Daily (one-day-per-page)" cal-tex-mouse-filofax-daily]
+ ["Filofax Weekly (2-weeks-at-a-glance)" cal-tex-mouse-filofax-2week]
+ ["Filofax Weekly (week-at-a-glance)" cal-tex-mouse-filofax-week]
+ ["Filofax Yearly" cal-tex-mouse-filofax-year]))
+ ["Diary entries" calendar-mouse-view-diary-entries]
+ ["Insert diary entry" calendar-mouse-insert-diary-entry]
+ ["Other diary file entries" calendar-mouse-view-other-diary-entries]))
+
+(defun cal-menu-set-date-title (menu)
+ (easy-menu-filter-return
+ menu (calendar-date-string (calendar-event-to-date t) t nil)))
+
+(easy-menu-define cal-menu-global-mouse-menu nil
+ "Menu bound to a mouse event, not specific to the mouse-click location."
+ '("Calendar"
+ ["Scroll forward" calendar-scroll-left-three-months]
+ ["Scroll backward" calendar-scroll-right-three-months]
+ ["Mark diary entries" mark-diary-entries]
+ ["List holidays" list-calendar-holidays]
+ ["Mark holidays" mark-calendar-holidays]
+ ["Unmark" calendar-unmark]
+ ["Lunar phases" calendar-phases-of-moon]
+ ["Show diary" diary-show-all-entries]
+ ["Exit calendar" exit-calendar]))
(run-hooks 'cal-menu-load-hook)
diff --git a/lisp/calendar/cal-move.el b/lisp/calendar/cal-move.el
index 3a08b98bf00..81f75114a3f 100644
--- a/lisp/calendar/cal-move.el
+++ b/lisp/calendar/cal-move.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -85,47 +85,51 @@ Movement is forward is ARG is negative."
(interactive "p")
(calendar-forward-month (* -12 arg)))
-(defun scroll-calendar-left (&optional arg)
+(defun calendar-scroll-left (&optional arg event)
"Scroll the displayed calendar left by ARG months.
If ARG is negative the calendar is scrolled right. Maintains the relative
position of the cursor with respect to the calendar as well as possible."
- (interactive "p")
+ (interactive (list (prefix-numeric-value current-prefix-arg)
+ last-nonmenu-event))
(unless arg (setq arg 1))
- (calendar-cursor-to-nearest-date)
- (let ((old-date (calendar-cursor-to-date))
- (today (calendar-current-date)))
- (if (/= arg 0)
- (let ((month displayed-month)
- (year displayed-year))
- (increment-calendar-month month year arg)
- (generate-calendar-window month year)
- (calendar-cursor-to-visible-date
- (cond
- ((calendar-date-is-visible-p old-date) old-date)
- ((calendar-date-is-visible-p today) today)
- (t (list month 1 year)))))))
- (run-hooks 'calendar-move-hook))
-
-(defun scroll-calendar-right (&optional arg)
+ (save-selected-window
+ (select-window (posn-window (event-start event)))
+ (calendar-cursor-to-nearest-date)
+ (let ((old-date (calendar-cursor-to-date))
+ (today (calendar-current-date)))
+ (if (/= arg 0)
+ (let ((month displayed-month)
+ (year displayed-year))
+ (increment-calendar-month month year arg)
+ (generate-calendar-window month year)
+ (calendar-cursor-to-visible-date
+ (cond
+ ((calendar-date-is-visible-p old-date) old-date)
+ ((calendar-date-is-visible-p today) today)
+ (t (list month 1 year)))))))
+ (run-hooks 'calendar-move-hook)))
+
+(defun calendar-scroll-right (&optional arg event)
"Scroll the displayed calendar window right by ARG months.
If ARG is negative the calendar is scrolled left. Maintains the relative
position of the cursor with respect to the calendar as well as possible."
- (interactive "p")
- (scroll-calendar-left (- (or arg 1))))
+ (interactive (list (prefix-numeric-value current-prefix-arg)
+ last-nonmenu-event))
+ (calendar-scroll-left (- (or arg 1)) event))
-(defun scroll-calendar-left-three-months (arg)
+(defun calendar-scroll-left-three-months (arg)
"Scroll the displayed calendar window left by 3*ARG months.
If ARG is negative the calendar is scrolled right. Maintains the relative
position of the cursor with respect to the calendar as well as possible."
(interactive "p")
- (scroll-calendar-left (* 3 arg)))
+ (calendar-scroll-left (* 3 arg)))
-(defun scroll-calendar-right-three-months (arg)
+(defun calendar-scroll-right-three-months (arg)
"Scroll the displayed calendar window right by 3*ARG months.
If ARG is negative the calendar is scrolled left. Maintains the relative
position of the cursor with respect to the calendar as well as possible."
(interactive "p")
- (scroll-calendar-left (* -3 arg)))
+ (calendar-scroll-left (* -3 arg)))
(defun calendar-cursor-to-nearest-date ()
"Move the cursor to the closest date.
@@ -345,7 +349,17 @@ Negative DAY counts backward from end of year."
(+ 1 day (calendar-absolute-from-gregorian (list 12 31 year))))))
(or noecho (calendar-print-day-of-year)))
+;; Backward compatibility.
+(define-obsolete-function-alias
+ 'scroll-calendar-left 'calendar-scroll-left "23.1")
+(define-obsolete-function-alias
+ 'scroll-calendar-right 'calendar-scroll-right "23.1")
+(define-obsolete-function-alias
+ 'scroll-calendar-left-three-months 'calendar-scroll-left-three-months "23.1")
+(define-obsolete-function-alias
+ 'scroll-calendar-right-three-months 'calendar-scroll-right-three-months "23.1")
+
(provide 'cal-move)
-;;; arch-tag: d0883c46-7e16-4914-8ff8-8f67e699b781
+;; arch-tag: d0883c46-7e16-4914-8ff8-8f67e699b781
;;; cal-move.el ends here
diff --git a/lisp/calendar/cal-persia.el b/lisp/calendar/cal-persia.el
index a37f9c1f27e..d6dba8a00f0 100644
--- a/lisp/calendar/cal-persia.el
+++ b/lisp/calendar/cal-persia.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calendar/cal-tex.el b/lisp/calendar/cal-tex.el
index e229f02002f..1faa71efec9 100644
--- a/lisp/calendar/cal-tex.el
+++ b/lisp/calendar/cal-tex.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -31,6 +31,21 @@
;; This collection of functions implements the creation of LaTeX calendars
;; based on the user's holiday choices and diary file.
+;; The user commands are:
+;; cal-tex-cursor-year
+;; cal-tex-cursor-year-landscape
+;; cal-tex-cursor-filofax-year
+;; cal-tex-cursor-month-landscape
+;; cal-tex-cursor-month
+;; cal-tex-cursor-week
+;; cal-tex-cursor-week2
+;; cal-tex-cursor-week-iso
+;; cal-tex-cursor-week-monday
+;; cal-tex-cursor-filofax-2week
+;; cal-tex-cursor-filofax-week
+;; cal-tex-cursor-filofax-daily
+;; cal-tex-cursor-day
+
;; TO DO
;;
;; (*) Add holidays and diary entries to daily calendar.
@@ -54,70 +69,73 @@
;;;
(defcustom cal-tex-which-days '(0 1 2 3 4 5 6)
- "*The days of the week that are displayed on the portrait monthly calendar.
+ "The days of the week that are displayed on the portrait monthly calendar.
Sunday is 0, Monday is 1, and so on. The default is to print from Sunday to
-Saturday. For example, use
-
- (setq cal-tex-which-days '(1 3 5))
-
-to only print Monday, Wednesday, Friday."
+Saturday. For example, use '(1 3 5) to only print Monday, Wednesday, Friday."
:type '(repeat integer)
:group 'calendar-tex)
(defcustom cal-tex-holidays t
- "*If t (default), then the holidays are also printed.
-If finding the holidays is too slow, set this to nil."
+ "Non-nil means holidays are printed in the LaTeX calendars that support it.
+Setting this to nil may speed up calendar generation."
:type 'boolean
:group 'calendar-tex)
(defcustom cal-tex-diary nil
- "*If t, the diary entries are printed in the calendar."
+ "Non-nil means diary entries are printed in LaTeX calendars that support it.
+At present, this only affects the monthly, filofax, and iso-week
+calendars (i.e. not the yearly, plain weekly, or daily calendars).
+Setting this to nil may speed up calendar generation."
:type 'boolean
:group 'calendar-tex)
(defcustom cal-tex-rules nil
- "*If t, pages will be ruled in some styles."
+ "Non-nil means pages will be ruled in some LaTeX calendar styles.
+At present, this only affects the daily filofax calendar."
:type 'boolean
:group 'calendar-tex)
(defcustom cal-tex-daily-string
'(let* ((year (extract-calendar-year date))
- (day (calendar-day-number date))
+ (day (calendar-day-number date))
(days-remaining (- (calendar-day-number (list 12 31 year)) day)))
- (format "%d/%d" day days-remaining))
- "*An expression in the variable `date' whose value is placed on date.
-The string resulting from evaluating this expression is placed at the bottom
-center of `date' on the monthly calendar, next to the date in the weekly
-calendars, and in the top center of daily calendars.
+ (format "%d/%d" day days-remaining))
+ "Lisp expression giving the date format to use in the LaTeX calendars.
+This should be an expression involving the variable `date'. When
+this expression is called, `date' is a list of the form '(MONTH DAY YEAR)'.
+
+The string resulting from evaluating this expression is placed at
+the bottom center of each date in monthly calendars, next to the
+date in the weekly calendars, and in the top center of daily calendars.
-Default is ordinal day number of the year and the number of days remaining.
-As an example of what you do, setting this to
+The default is ordinal day number of the year and the number of
+days remaining. As an example, setting this to
- '(progn
- (require 'cal-hebrew)
- (calendar-hebrew-date-string date))
+ '(calendar-hebrew-date-string date)
will put the Hebrew date at the bottom of each day."
:type 'sexp
:group 'calendar-tex)
(defcustom cal-tex-buffer "calendar.tex"
- "*The name for the tex-ed calendar."
+ "The name for the output LaTeX calendar buffer."
:type 'string
:group 'calendar-tex)
(defcustom cal-tex-24 nil
- "*If t, use a 24 hour clock in the daily calendar."
+ "Non-nil means use a 24 hour clock in the daily calendar."
:type 'boolean
:group 'calendar-tex)
(defcustom cal-tex-daily-start 8
- "*The first hour of the daily calendar page."
+ "The first hour of the daily LaTeX calendar page.
+At present, this only affects `cal-tex-cursor-day'."
:type 'integer
:group 'calendar-tex)
(defcustom cal-tex-daily-end 20
- "*The last hour of the daily calendar page."
+ "The last hour of the daily LaTeX calendar page.
+At present, this only affects `cal-tex-cursor-day'"
:type 'integer
:group 'calendar-tex)
@@ -130,31 +148,31 @@ For example, to include extra packages:
:version "22.1")
(defcustom cal-tex-hook nil
- "*List of functions called after any LaTeX calendar buffer is generated.
+ "List of functions called after any LaTeX calendar buffer is generated.
You can use this to do postprocessing on the buffer. For example, to change
characters with diacritical marks to their LaTeX equivalents, use
- (add-hook 'cal-tex-hook
- '(lambda () (iso-iso2tex (point-min) (point-max))))"
+ (add-hook 'cal-tex-hook
+ (lambda () (iso-iso2tex (point-min) (point-max))))"
:type 'hook
:group 'calendar-tex)
(defcustom cal-tex-year-hook nil
- "*List of functions called after a LaTeX year calendar buffer is generated."
+ "List of functions called after a LaTeX year calendar buffer is generated."
:type 'hook
:group 'calendar-tex)
(defcustom cal-tex-month-hook nil
- "*List of functions called after a LaTeX month calendar buffer is generated."
+ "List of functions called after a LaTeX month calendar buffer is generated."
:type 'hook
:group 'calendar-tex)
(defcustom cal-tex-week-hook nil
- "*List of functions called after a LaTeX week calendar buffer is generated."
+ "List of functions called after a LaTeX week calendar buffer is generated."
:type 'hook
:group 'calendar-tex)
(defcustom cal-tex-daily-hook nil
- "*List of functions called after a LaTeX daily calendar buffer is generated."
+ "List of functions called after a LaTeX daily calendar buffer is generated."
:type 'hook
:group 'calendar-tex)
@@ -162,42 +180,42 @@ characters with diacritical marks to their LaTeX equivalents, use
;;; Definitions for LaTeX code
;;;
-(defvar cal-tex-day-prefix "\\caldate{%s}{%s}"
+(defconst cal-tex-day-prefix "\\caldate{%s}{%s}"
"The initial LaTeX code for a day.
The holidays, diary entries, bottom string, and the text follow.")
-(defvar cal-tex-day-name-format "\\myday{%s}%%"
- "The format for LaTeX code for a day name. The names are taken from
-`calendar-day-name-array'.")
+(defconst cal-tex-day-name-format "\\myday{%s}%%"
+ "The format for LaTeX code for a day name.
+The names are taken from `calendar-day-name-array'.")
-(defvar cal-tex-cal-one-month
-"\\def\\calmonth#1#2%
+(defconst cal-tex-cal-one-month
+ "\\def\\calmonth#1#2%
{\\begin{center}%
\\Huge\\bf\\uppercase{#1} #2 \\\\[1cm]%
\\end{center}}%
\\vspace*{-1.5cm}%
%
"
- "LaTeX code for the month header")
+ "LaTeX code for the month header, for a single month calendar.")
-(defvar cal-tex-cal-multi-month
-"\\def\\calmonth#1#2#3#4%
+(defconst cal-tex-cal-multi-month
+ "\\def\\calmonth#1#2#3#4%
{\\begin{center}%
\\Huge\\bf #1 #2---#3 #4\\\\[1cm]%
\\end{center}}%
\\vspace*{-1.5cm}%
%
"
- "LaTeX code for the month header")
+ "LaTeX code for the month header, for a multi-month calendar.")
-(defvar cal-tex-myday
-"\\renewcommand{\\myday}[1]%
+(defconst cal-tex-myday
+ "\\renewcommand{\\myday}[1]%
{\\makebox[\\cellwidth]{\\hfill\\large\\bf#1\\hfill}}
%
"
- "LaTeX code for a day heading")
+ "LaTeX code for a day heading.")
-(defvar cal-tex-caldate
+(defconst cal-tex-caldate
"\\fboxsep=0pt
\\long\\def\\caldate#1#2#3#4#5#6{%
\\fbox{\\hbox to\\cellwidth{%
@@ -230,18 +248,16 @@ This definition is the heart of the calendar!")
(1+ (/ (calendar-interval displayed-month displayed-year
end-month end-year)
3)))
- (holidays nil)
- (in-range))
+ holidays in-range a)
(increment-calendar-month displayed-month displayed-year 1)
- (calendar-for-loop i from 1 to number-of-intervals do
+ (dotimes (idummy number-of-intervals)
(setq holidays (append holidays (calendar-holiday-list)))
(increment-calendar-month displayed-month displayed-year 3))
- (while holidays
- (and (car (car holidays))
- (let ((a (calendar-absolute-from-gregorian (car (car holidays)))))
- (and (<= d1 a) (<= a d2)))
- (setq in-range (append (list (car holidays)) in-range)))
- (setq holidays (cdr holidays)))
+ (dolist (hol holidays)
+ (and (car hol)
+ (setq a (calendar-absolute-from-gregorian (car hol)))
+ (and (<= d1 a) (<= a d2))
+ (setq in-range (append (list hol) in-range))))
in-range))
(defun cal-tex-list-diary-entries (d1 d2)
@@ -253,15 +269,15 @@ This definition is the heart of the calendar!")
(1+ (- d2 d1)))))
(defun cal-tex-preamble (&optional args)
- "Insert the LaTeX preamble.
-Preamble Includes initial definitions for various LaTeX commands.
-Optional ARGS are included."
+ "Insert the LaTeX calendar preamble into `cal-tex-buffer'.
+Preamble includes initial definitions for various LaTeX commands.
+Optional string ARGS are included as options for the article document class."
+ ;; FIXME use generate-new-buffer, and adjust cal-tex-end-document.
(set-buffer (get-buffer-create cal-tex-buffer))
- (erase-buffer)
- (insert "\\documentclass")
- (if args
- (insert "[" args "]"))
- (insert "{article}\n")
+ (insert (format "\\documentclass%s{article}\n"
+ (if (stringp args)
+ (format "[%s]" args)
+ "")))
(if (stringp cal-tex-preamble-extra)
(insert cal-tex-preamble-extra "\n"))
(insert "\\hbadness 20000
@@ -293,61 +309,60 @@ Optional ARGS are included."
(defun cal-tex-cursor-year (&optional arg)
"Make a buffer with LaTeX commands for the year cursor is on.
-Optional prefix argument specifies number of years."
+Optional prefix argument ARG specifies number of years."
(interactive "p")
(cal-tex-year (extract-calendar-year (calendar-cursor-to-date t))
- (if arg arg 1)))
+ (or arg 1)))
(defun cal-tex-cursor-year-landscape (&optional arg)
"Make a buffer with LaTeX commands for the year cursor is on.
-Optional prefix argument specifies number of years."
+Optional prefix argument ARG specifies number of years."
(interactive "p")
(cal-tex-year (extract-calendar-year (calendar-cursor-to-date t))
- (if arg arg 1)
- t))
+ (or arg 1) t))
(defun cal-tex-year (year n &optional landscape)
"Make a one page yearly calendar of YEAR; do this for N years.
-There are four rows of three months each, unless optional LANDSCAPE is t,
-in which case the calendar isprinted in landscape mode with three rows of
-four months each."
+There are four rows of three months each, unless optional
+LANDSCAPE is non-nil, in which case the calendar is printed in
+landscape mode with three rows of four months each."
(cal-tex-insert-preamble 1 landscape "12pt")
(if landscape
(cal-tex-vspace "-.6cm")
(cal-tex-vspace "-3.1cm"))
- (calendar-for-loop j from 1 to n do
- (insert "\\vfill%\n")
- (cal-tex-b-center)
- (cal-tex-Huge (number-to-string year))
- (cal-tex-e-center)
- (cal-tex-vspace "1cm")
- (cal-tex-b-center)
- (cal-tex-b-parbox "l" (if landscape "5.9in" "4.3in"))
- (insert "\n")
- (cal-tex-noindent)
- (cal-tex-nl)
- (calendar-for-loop i from 1 to 12 do
- (insert (cal-tex-mini-calendar i year "month" "1.1in" "1in"))
- (insert "\\month")
- (cal-tex-hspace "0.5in")
- (if (zerop (mod i (if landscape 4 3)))
- (cal-tex-nl "0.5in")))
- (cal-tex-e-parbox)
- (cal-tex-e-center)
- (insert "\\vfill%\n")
- (setq year (1+ year))
- (if (/= j n)
- (cal-tex-newpage)
- (cal-tex-end-document))
- (run-hooks 'cal-tex-year-hook))
+ (dotimes (j n)
+ (insert "\\vfill%\n")
+ (cal-tex-b-center)
+ (cal-tex-Huge (number-to-string year))
+ (cal-tex-e-center)
+ (cal-tex-vspace "1cm")
+ (cal-tex-b-center)
+ (cal-tex-b-parbox "l" (if landscape "5.9in" "4.3in"))
+ (insert "\n")
+ (cal-tex-noindent)
+ (cal-tex-nl)
+ (dotimes (i 12)
+ (insert (cal-tex-mini-calendar (1+ i) year "month" "1.1in" "1in"))
+ (insert "\\month")
+ (cal-tex-hspace "0.5in")
+ (if (zerop (mod (1+ i) (if landscape 4 3)))
+ (cal-tex-nl "0.5in")))
+ (cal-tex-e-parbox)
+ (cal-tex-e-center)
+ (insert "\\vfill%\n")
+ (setq year (1+ year))
+ (if (= j (1- n))
+ (cal-tex-end-document)
+ (cal-tex-newpage))
+ (run-hooks 'cal-tex-year-hook))
(run-hooks 'cal-tex-hook))
(defun cal-tex-cursor-filofax-year (&optional arg)
"Make a Filofax one page yearly calendar of year indicated by cursor.
-Optional parameter specifies number of years."
+Optional prefix argument ARG specifies number of years."
(interactive "p")
- (let* ((n (if arg arg 1))
- (year (extract-calendar-year (calendar-cursor-to-date t))))
+ (let ((n (or arg 1))
+ (year (extract-calendar-year (calendar-cursor-to-date t))))
(cal-tex-preamble "twoside")
(cal-tex-cmd "\\textwidth 3.25in")
(cal-tex-cmd "\\textheight 6.5in")
@@ -359,36 +374,35 @@ Optional parameter specifies number of years."
(cal-tex-cmd "\\pagestyle{empty}")
(cal-tex-b-document)
(cal-tex-cmd "\\vspace*{0.25in}")
- (calendar-for-loop j from 1 to n do
- (insert (format "\\hfil {\\Large \\bf %s} \\hfil\\\\\n" year))
- (cal-tex-b-center)
- (cal-tex-b-parbox "l" "\\textwidth")
- (insert "\n")
- (cal-tex-noindent)
- (cal-tex-nl)
- (let ((month-names; don't use default in case user changed it
- ;; These are only used to define the command names, not
- ;; the names of the months they insert.
- ["January" "February" "March" "April" "May" "June"
- "July" "August" "September" "October" "November" "December"]))
- (calendar-for-loop i from 1 to 12 do
- (insert (cal-tex-mini-calendar i year
- (aref month-names (1- i))
- "1in" ".9in" "tiny" "0.6mm"))))
- (insert
-"\\noindent\\fbox{\\January}\\fbox{\\February}\\fbox{\\March}\\\\
+ (dotimes (j n)
+ (insert (format "\\hfil \\textbf{\\Large %s} \\hfil\\\\\n" year))
+ (cal-tex-b-center)
+ (cal-tex-b-parbox "l" "\\textwidth")
+ (insert "\n")
+ (cal-tex-noindent)
+ (cal-tex-nl)
+ (let ((month-names; don't use default in case user changed it
+ ;; These are only used to define the command names, not
+ ;; the names of the months they insert.
+ ["January" "February" "March" "April" "May" "June"
+ "July" "August" "September" "October" "November" "December"]))
+ (dotimes (i 12)
+ (insert (cal-tex-mini-calendar (1+ i) year (aref month-names i)
+ "1in" ".9in" "tiny" "0.6mm"))))
+ (insert
+ "\\noindent\\fbox{\\January}\\fbox{\\February}\\fbox{\\March}\\\\
\\noindent\\fbox{\\April}\\fbox{\\May}\\fbox{\\June}\\\\
\\noindent\\fbox{\\July}\\fbox{\\August}\\fbox{\\September}\\\\
\\noindent\\fbox{\\October}\\fbox{\\November}\\fbox{\\December}
")
- (cal-tex-e-parbox)
- (cal-tex-e-center)
- (setq year (1+ year))
- (if (= j n)
- (cal-tex-end-document)
- (cal-tex-newpage)
- (cal-tex-cmd "\\vspace*{0.25in}"))
- (run-hooks 'cal-tex-year-hook))
+ (cal-tex-e-parbox)
+ (cal-tex-e-center)
+ (setq year (1+ year))
+ (if (= j (1- n))
+ (cal-tex-end-document)
+ (cal-tex-newpage)
+ (cal-tex-cmd "\\vspace*{0.25in}"))
+ (run-hooks 'cal-tex-year-hook))
(run-hooks 'cal-tex-hook)))
;;;
@@ -396,114 +410,97 @@ Optional parameter specifies number of years."
;;;
(defun cal-tex-cursor-month-landscape (&optional arg)
- "Make a buffer with LaTeX commands for the month cursor is on.
-Optional prefix argument specifies number of months to be produced.
-The output is in landscape format, one month to a page."
+ "Make a LaTeX calendar buffer for the month the cursor is on.
+Optional prefix argument ARG specifies number of months to be
+produced (default 1). The output is in landscape format, one
+month to a page. It shows holiday and diary entries if
+`cal-tex-holidays' and `cal-tex-diary', respectively, are non-nil."
(interactive "p")
- (let* ((n (if arg arg 1))
+ (let* ((n (or arg 1))
(date (calendar-cursor-to-date t))
(month (extract-calendar-month date))
(year (extract-calendar-year date))
(end-month month)
(end-year year)
- (cal-tex-which-days '(0 1 2 3 4 5 6)))
+ (cal-tex-which-days '(0 1 2 3 4 5 6))
+ (d1 (calendar-absolute-from-gregorian (list month 1 year)))
+ (d2 (calendar-absolute-from-gregorian
+ (list end-month
+ (calendar-last-day-of-month end-month end-year)
+ end-year))))
(increment-calendar-month end-month end-year (1- n))
(let ((diary-list (if cal-tex-diary
- (cal-tex-list-diary-entries
- (calendar-absolute-from-gregorian
- (list month 1 year))
- (calendar-absolute-from-gregorian
- (list end-month
- (calendar-last-day-of-month
- end-month end-year)
- end-year)))))
+ (cal-tex-list-diary-entries d1 d2)))
(holidays (if cal-tex-holidays
- (cal-tex-list-holidays
- (calendar-absolute-from-gregorian
- (list month 1 year))
- (calendar-absolute-from-gregorian
- (list end-month
- (calendar-last-day-of-month end-month end-year)
- end-year)))))
- (other-month)
- (other-year)
- (small-months-at-start))
+ (cal-tex-list-holidays d1 d2)))
+ other-month other-year small-months-at-start)
(cal-tex-insert-preamble (cal-tex-number-weeks month year 1) t "12pt")
(cal-tex-cmd cal-tex-cal-one-month)
- (calendar-for-loop i from 1 to n do
- (setq other-month month)
- (setq other-year year)
- (increment-calendar-month other-month other-year -1)
- (insert (cal-tex-mini-calendar other-month other-year "lastmonth"
- "\\cellwidth" "\\cellheight"))
- (increment-calendar-month other-month other-year 2)
- (insert (cal-tex-mini-calendar other-month other-year "nextmonth"
- "\\cellwidth" "\\cellheight"))
- (cal-tex-insert-month-header 1 month year month year)
- (cal-tex-insert-day-names)
- (cal-tex-nl ".2cm")
- (setq small-months-at-start
- (< 1 (mod (- (calendar-day-of-week (list month 1 year))
- calendar-week-start-day)
- 7)))
- (if small-months-at-start
- (insert "\\lastmonth\\nextmonth\\hspace*{-2\\cellwidth}"))
- (cal-tex-insert-blank-days month year cal-tex-day-prefix)
- (cal-tex-insert-days month year diary-list holidays
- cal-tex-day-prefix)
- (cal-tex-insert-blank-days-at-end month year cal-tex-day-prefix)
- (if (and (not small-months-at-start)
- (< 1 (mod (- (1- calendar-week-start-day)
- (calendar-day-of-week
- (list month
- (calendar-last-day-of-month month year)
- year)))
- 7)))
- (insert "\\vspace*{-\\cellwidth}\\hspace*{-2\\cellwidth}"
- "\\lastmonth\\nextmonth%
+ (dotimes (i n)
+ (setq other-month month
+ other-year year)
+ (increment-calendar-month other-month other-year -1)
+ (insert (cal-tex-mini-calendar other-month other-year "lastmonth"
+ "\\cellwidth" "\\cellheight"))
+ (increment-calendar-month other-month other-year 2)
+ (insert (cal-tex-mini-calendar other-month other-year "nextmonth"
+ "\\cellwidth" "\\cellheight"))
+ (cal-tex-insert-month-header 1 month year month year)
+ (cal-tex-insert-day-names)
+ (cal-tex-nl ".2cm")
+ (if (setq small-months-at-start
+ (< 1 (mod (- (calendar-day-of-week (list month 1 year))
+ calendar-week-start-day)
+ 7)))
+ (insert "\\lastmonth\\nextmonth\\hspace*{-2\\cellwidth}"))
+ (cal-tex-insert-blank-days month year cal-tex-day-prefix)
+ (cal-tex-insert-days month year diary-list holidays
+ cal-tex-day-prefix)
+ (cal-tex-insert-blank-days-at-end month year cal-tex-day-prefix)
+ (if (and (not small-months-at-start)
+ (< 1 (mod (- (1- calendar-week-start-day)
+ (calendar-day-of-week
+ (list month
+ (calendar-last-day-of-month month year)
+ year)))
+ 7)))
+ (insert "\\vspace*{-\\cellwidth}\\hspace*{-2\\cellwidth}"
+ "\\lastmonth\\nextmonth%
"))
- (if (/= i n)
- (progn
- (run-hooks 'cal-tex-month-hook)
- (cal-tex-newpage)
- (increment-calendar-month month year 1)
- (cal-tex-vspace "-2cm")
- (cal-tex-insert-preamble
- (cal-tex-number-weeks month year 1) t "12pt" t))))
+ (unless (= i (1- n))
+ (run-hooks 'cal-tex-month-hook)
+ (cal-tex-newpage)
+ (increment-calendar-month month year 1)
+ (cal-tex-vspace "-2cm")
+ (cal-tex-insert-preamble
+ (cal-tex-number-weeks month year 1) t "12pt" t)))
(cal-tex-end-document)
(run-hooks 'cal-tex-hook))))
(defun cal-tex-cursor-month (arg)
- "Make a buffer with LaTeX commands for the month cursor is on.
-Optional prefix argument specifies number of months to be produced.
-Calendar is condensed onto one page."
+ "Make a LaTeX calendar buffer for the month the cursor is on.
+Optional prefix argument ARG specifies number of months to be
+produced (default 1). The calendar is condensed onto one page.
+It shows holiday and diary entries if `cal-tex-holidays' and
+`cal-tex-diary', respectively, are non-nil."
(interactive "p")
(let* ((date (calendar-cursor-to-date t))
(month (extract-calendar-month date))
(year (extract-calendar-year date))
(end-month month)
(end-year year)
- (n (if arg arg 1)))
+ (n (or arg 1))
+ (d1 (calendar-absolute-from-gregorian (list month 1 year)))
+ (d2 (calendar-absolute-from-gregorian
+ (list end-month
+ (calendar-last-day-of-month end-month end-year)
+ end-year))))
(increment-calendar-month end-month end-year (1- n))
(let ((diary-list (if cal-tex-diary
- (cal-tex-list-diary-entries
- (calendar-absolute-from-gregorian
- (list month 1 year))
- (calendar-absolute-from-gregorian
- (list end-month
- (calendar-last-day-of-month
- end-month end-year)
- end-year)))))
+ (cal-tex-list-diary-entries d1 d2)))
(holidays (if cal-tex-holidays
- (cal-tex-list-holidays
- (calendar-absolute-from-gregorian
- (list month 1 year))
- (calendar-absolute-from-gregorian
- (list end-month
- (calendar-last-day-of-month end-month end-year)
- end-year)))))
- (other-month)
- (other-year))
+ (cal-tex-list-holidays d1 d2)))
+ other-month other-year)
(cal-tex-insert-preamble (cal-tex-number-weeks month year n) nil"12pt")
(if (> n 1)
(cal-tex-cmd cal-tex-cal-multi-month)
@@ -512,21 +509,19 @@ Calendar is condensed onto one page."
(cal-tex-insert-day-names)
(cal-tex-nl ".2cm")
(cal-tex-insert-blank-days month year cal-tex-day-prefix)
- (calendar-for-loop i from 1 to n do
- (setq other-month month)
- (setq other-year year)
- (cal-tex-insert-days month year diary-list holidays
- cal-tex-day-prefix)
- (if (= (mod (calendar-absolute-from-gregorian
- (list month
- (calendar-last-day-of-month month year)
- year))
- 7)
- 6); last day of month was Saturday
- (progn
- (cal-tex-hfill)
- (cal-tex-nl)))
- (increment-calendar-month month year 1))
+ (dotimes (idummy n)
+ (setq other-month month
+ other-year year)
+ (cal-tex-insert-days month year diary-list holidays cal-tex-day-prefix)
+ (when (= (mod (calendar-absolute-from-gregorian
+ (list month
+ (calendar-last-day-of-month month year)
+ year))
+ 7)
+ 6) ; last day of month was Saturday
+ (cal-tex-hfill)
+ (cal-tex-nl))
+ (increment-calendar-month month year 1))
(cal-tex-insert-blank-days-at-end end-month end-year cal-tex-day-prefix)
(cal-tex-end-document)))
(run-hooks 'cal-tex-hook))
@@ -534,52 +529,51 @@ Calendar is condensed onto one page."
(defun cal-tex-insert-days (month year diary-list holidays day-format)
"Insert LaTeX commands for a range of days in monthly calendars.
LaTeX commands are inserted for the days of the MONTH in YEAR.
-Diary entries on DIARY-LIST are included. Holidays on HOLIDAYS are included.
-Each day is formatted using format DAY-FORMAT."
- (let* ((blank-days;; at start of month
- (mod
- (- (calendar-day-of-week (list month 1 year))
- calendar-week-start-day)
- 7))
- (date)
- (last (calendar-last-day-of-month month year)))
- (calendar-for-loop i from 1 to last do
- (setq date (list month i year))
- (if (memq (calendar-day-of-week date) cal-tex-which-days)
- (progn
- (insert (format day-format (cal-tex-month-name month) i))
- (cal-tex-arg (cal-tex-latexify-list diary-list date))
- (cal-tex-arg (cal-tex-latexify-list holidays date))
- (cal-tex-arg (eval cal-tex-daily-string))
- (cal-tex-arg)
- (cal-tex-comment)))
- (if (and (zerop (mod (+ i blank-days) 7))
- (/= i last))
- (progn
- (cal-tex-hfill)
- (cal-tex-nl))))))
+Diary entries on DIARY-LIST are included. Holidays on HOLIDAYS
+are included. Each day is formatted using format DAY-FORMAT."
+ (let ((blank-days ; at start of month
+ (mod
+ (- (calendar-day-of-week (list month 1 year))
+ calendar-week-start-day)
+ 7))
+ (last (calendar-last-day-of-month month year))
+ date j)
+ (dotimes (i last)
+ (setq j (1+ i) ; 1-last, incl
+ date (list month j year))
+ (when (memq (calendar-day-of-week date) cal-tex-which-days)
+ (insert (format day-format (cal-tex-month-name month) j))
+ (cal-tex-arg (cal-tex-latexify-list diary-list date))
+ (cal-tex-arg (cal-tex-latexify-list holidays date))
+ (cal-tex-arg (eval cal-tex-daily-string))
+ (cal-tex-arg)
+ (cal-tex-comment))
+ (when (and (zerop (mod (+ j blank-days) 7))
+ (/= j last))
+ (cal-tex-hfill)
+ (cal-tex-nl)))))
(defun cal-tex-insert-day-names ()
"Insert the names of the days at top of a monthly calendar."
- (calendar-for-loop i from 0 to 6 do
- (if (memq i cal-tex-which-days)
- (insert (format cal-tex-day-name-format
- (cal-tex-LaTeXify-string
- (aref calendar-day-name-array
- (mod (+ calendar-week-start-day i) 7))))))
- (cal-tex-comment)))
+ (dotimes (i 7)
+ (if (memq i cal-tex-which-days)
+ (insert (format cal-tex-day-name-format
+ (cal-tex-LaTeXify-string
+ (aref calendar-day-name-array
+ (mod (+ calendar-week-start-day i) 7))))))
+ (cal-tex-comment)))
(defun cal-tex-insert-month-header (n month year end-month end-year)
"Create a title for a calendar.
A title is inserted for a calendar with N months starting with
MONTH YEAR and ending with END-MONTH END-YEAR."
- (let ((month-name (cal-tex-month-name month))
- (end-month-name (cal-tex-month-name end-month)))
+ (let ((month-name (cal-tex-month-name month))
+ (end-month-name (cal-tex-month-name end-month)))
(if (= 1 n)
(insert (format "\\calmonth{%s}{%s}\n\\vspace*{-0.5cm}"
- month-name year) )
- (insert (format "\\calmonth{%s}{%s}{%s}{%s}\n\\vspace*{-0.5cm}"
- month-name year end-month-name end-year))))
+ month-name year) )
+ (insert (format "\\calmonth{%s}{%s}{%s}{%s}\n\\vspace*{-0.5cm}"
+ month-name year end-month-name end-year))))
(cal-tex-comment))
(defun cal-tex-insert-blank-days (month year day-format)
@@ -588,14 +582,14 @@ Insert LaTeX code for the blank days at the beginning of the MONTH in
YEAR. The entry is formatted using DAY-FORMAT. If the entire week is
blank, no days are inserted."
(if (cal-tex-first-blank-p month year)
- (let* ((blank-days;; at start of month
- (mod
- (- (calendar-day-of-week (list month 1 year))
- calendar-week-start-day)
- 7)))
- (calendar-for-loop i from 0 to (1- blank-days) do
- (if (memq i cal-tex-which-days)
- (insert (format day-format " " " ") "{}{}{}{}%\n"))))))
+ (let ((blank-days ; at start of month
+ (mod
+ (- (calendar-day-of-week (list month 1 year))
+ calendar-week-start-day)
+ 7)))
+ (dotimes (i blank-days)
+ (if (memq i cal-tex-which-days)
+ (insert (format day-format " " " ") "{}{}{}{}%\n"))))))
(defun cal-tex-insert-blank-days-at-end (month year day-format)
"Insert code for final days not in calendar.
@@ -603,7 +597,7 @@ Insert LaTeX code for the blank days at the end of the MONTH in YEAR.
The entry is formatted using DAY-FORMAT."
(if (cal-tex-last-blank-p month year)
(let* ((last-day (calendar-last-day-of-month month year))
- (blank-days;; at end of month
+ (blank-days ; at end of month
(mod
(- (calendar-day-of-week (list month last-day year))
calendar-week-start-day)
@@ -616,24 +610,22 @@ The entry is formatted using DAY-FORMAT."
"Determine if any days of the first week will be printed.
Return t if there will there be any days of the first week printed
in the calendar starting in MONTH YEAR."
- (let ((any-days nil)
- (the-saturday)) ;the day of week of 1st Saturday
- (calendar-for-loop i from 1 to 7 do
- (if (= 6 (calendar-day-of-week (list month i year)))
- (setq the-saturday i)))
- (calendar-for-loop i from 1 to the-saturday do
- (if (memq (calendar-day-of-week (list month i year))
- cal-tex-which-days)
- (setq any-days t)))
+ (let (any-days the-saturday) ; the day of week of 1st Saturday
+ (dotimes (i 7)
+ (if (= 6 (calendar-day-of-week (list month (1+ i) year)))
+ (setq the-saturday (1+ i))))
+ (dotimes (i the-saturday)
+ (if (memq (calendar-day-of-week (list month (1+ i) year))
+ cal-tex-which-days)
+ (setq any-days t)))
any-days))
(defun cal-tex-last-blank-p (month year)
"Determine if any days of the last week will be printed.
Return t if there will there be any days of the last week printed
in the calendar starting in MONTH YEAR."
- (let ((any-days nil)
- (last-day (calendar-last-day-of-month month year))
- (the-sunday)) ;the day of week of last Sunday
+ (let ((last-day (calendar-last-day-of-month month year))
+ any-days the-sunday) ; the day of week of last Sunday
(calendar-for-loop i from (- last-day 6) to last-day do
(if (= 0 (calendar-day-of-week (list month i year)))
(setq the-sunday i)))
@@ -646,7 +638,7 @@ in the calendar starting in MONTH YEAR."
(defun cal-tex-number-weeks (month year n)
"Determine the number of weeks in a range of dates.
Compute the number of weeks in the calendar starting with MONTH and YEAR,
-and lasting N months, including only the days in WHICH-DAYS. As it stands,
+and lasting N months, including only the days in WHICH-DAYS. As it stands,
this is only an upper bound."
(let ((d (list month 1 year)))
(increment-calendar-month month year (1- n))
@@ -663,18 +655,21 @@ this is only an upper bound."
;;; Weekly calendars
;;;
-(defvar cal-tex-LaTeX-hourbox
+(defconst cal-tex-LaTeX-hourbox
"\\newcommand{\\hourbox}[2]%
{\\makebox[2em]{\\rule{0cm}{#2ex}#1}\\rule{3in}{.15mm}}\n"
"One hour and a line on the right.")
+;; TODO cal-tex-diary-support.
+;; TODO respect cal-tex-daily-start,end (see cal-tex-week-hours).
(defun cal-tex-cursor-week (&optional arg)
- "Make a buffer with LaTeX commands for a two-page one-week calendar.
-It applies to the week that point is in.
-Optional prefix argument specifies number of weeks.
-Holidays are included if `cal-tex-holidays' is t."
+ "Make a LaTeX calendar buffer for a two-page one-week calendar.
+It applies to the week that point is in. The optional prefix
+argument ARG specifies the number of weeks (default 1). The calendar
+shows holidays if `cal-tex-holidays' is non-nil (note that diary
+entries are not shown). The calendar shows the hours 8-12am, 1-5pm."
(interactive "p")
- (let* ((n (if arg arg 1))
+ (let* ((n (or arg 1))
(date (calendar-gregorian-from-absolute
(calendar-dayname-on-or-before
calendar-week-start-day
@@ -682,11 +677,10 @@ Holidays are included if `cal-tex-holidays' is t."
(calendar-cursor-to-date t)))))
(month (extract-calendar-month date))
(year (extract-calendar-year date))
+ (d1 (calendar-absolute-from-gregorian date))
+ (d2 (+ (* 7 n) d1))
(holidays (if cal-tex-holidays
- (cal-tex-list-holidays
- (calendar-absolute-from-gregorian date)
- (+ (* 7 n)
- (calendar-absolute-from-gregorian date))))))
+ (cal-tex-list-holidays d1 d2))))
(cal-tex-preamble "11pt")
(cal-tex-cmd "\\textwidth 6.5in")
(cal-tex-cmd "\\textheight 10.5in")
@@ -695,37 +689,39 @@ Holidays are included if `cal-tex-holidays' is t."
(insert cal-tex-LaTeX-hourbox)
(cal-tex-b-document)
(cal-tex-cmd "\\pagestyle{empty}")
- (calendar-for-loop i from 1 to n do
- (cal-tex-vspace "-1.5in")
- (cal-tex-b-center)
- (cal-tex-Huge-bf (format "\\uppercase{%s}"
- (cal-tex-month-name month)))
- (cal-tex-hspace "2em")
- (cal-tex-Huge-bf (number-to-string year))
- (cal-tex-nl ".5cm")
- (cal-tex-e-center)
- (cal-tex-hspace "-.2in")
- (cal-tex-b-parbox "l" "7in")
- (calendar-for-loop j from 1 to 7 do
- (cal-tex-week-hours date holidays "3.1")
- (setq date (cal-tex-incr-date date)))
- (cal-tex-e-parbox)
- (setq month (extract-calendar-month date))
- (setq year (extract-calendar-year date))
- (if (/= i n)
- (progn
- (run-hooks 'cal-tex-week-hook)
- (cal-tex-newpage))))
+ (dotimes (i n)
+ (cal-tex-vspace "-1.5in")
+ (cal-tex-b-center)
+ (cal-tex-Huge-bf (format "\\uppercase{%s}"
+ (cal-tex-month-name month)))
+ (cal-tex-hspace "2em")
+ (cal-tex-Huge-bf (number-to-string year))
+ (cal-tex-nl ".5cm")
+ (cal-tex-e-center)
+ (cal-tex-hspace "-.2in")
+ (cal-tex-b-parbox "l" "7in")
+ (dotimes (jdummy 7)
+ (cal-tex-week-hours date holidays "3.1")
+ (setq date (cal-tex-incr-date date)))
+ (cal-tex-e-parbox)
+ (setq month (extract-calendar-month date)
+ year (extract-calendar-year date))
+ (unless (= i (1- n))
+ (run-hooks 'cal-tex-week-hook)
+ (cal-tex-newpage)))
(cal-tex-end-document)
(run-hooks 'cal-tex-hook)))
+;; TODO cal-tex-diary support.
+;; TODO respect cal-tex-daily-start,end (see cal-tex-week-hours).
(defun cal-tex-cursor-week2 (&optional arg)
- "Make a buffer with LaTeX commands for a two-page one-week calendar.
-It applies to the week that point is in.
-Optional prefix argument specifies number of weeks.
-Holidays are included if `cal-tex-holidays' is t."
+ "Make a LaTeX calendar buffer for a two-page one-week calendar.
+It applies to the week that point is in. Optional prefix
+argument ARG specifies number of weeks (default 1). The calendar
+shows holidays if `cal-tex-holidays' is non-nil (note that diary
+entries are not shown). The calendar shows the hours 8-12am, 1-5pm"
(interactive "p")
- (let* ((n (if arg arg 1))
+ (let* ((n (or arg 1))
(date (calendar-gregorian-from-absolute
(calendar-dayname-on-or-before
calendar-week-start-day
@@ -734,11 +730,10 @@ Holidays are included if `cal-tex-holidays' is t."
(month (extract-calendar-month date))
(year (extract-calendar-year date))
(d date)
+ (d1 (calendar-absolute-from-gregorian date))
+ (d2 (+ (* 7 n) d1))
(holidays (if cal-tex-holidays
- (cal-tex-list-holidays
- (calendar-absolute-from-gregorian date)
- (+ (* 7 n)
- (calendar-absolute-from-gregorian date))))))
+ (cal-tex-list-holidays d1 d2))))
(cal-tex-preamble "12pt")
(cal-tex-cmd "\\textwidth 6.5in")
(cal-tex-cmd "\\textheight 10.5in")
@@ -747,65 +742,65 @@ Holidays are included if `cal-tex-holidays' is t."
(insert cal-tex-LaTeX-hourbox)
(cal-tex-b-document)
(cal-tex-cmd "\\pagestyle{empty}")
- (calendar-for-loop i from 1 to n do
- (cal-tex-vspace "-1.5in")
- (cal-tex-b-center)
- (cal-tex-Huge-bf (format "\\uppercase{%s}"
- (cal-tex-month-name month)))
- (cal-tex-hspace "2em")
- (cal-tex-Huge-bf (number-to-string year))
- (cal-tex-nl ".5cm")
- (cal-tex-e-center)
- (cal-tex-hspace "-.2in")
- (cal-tex-b-parbox "l" "\\textwidth")
- (calendar-for-loop j from 1 to 3 do
- (cal-tex-week-hours date holidays "5")
- (setq date (cal-tex-incr-date date)))
- (cal-tex-e-parbox)
- (cal-tex-nl)
- (insert (cal-tex-mini-calendar
- (extract-calendar-month (cal-tex-previous-month date))
- (extract-calendar-year (cal-tex-previous-month date))
- "lastmonth" "1.1in" "1in"))
- (insert (cal-tex-mini-calendar
- (extract-calendar-month date)
- (extract-calendar-year date)
- "thismonth" "1.1in" "1in"))
- (insert (cal-tex-mini-calendar
- (extract-calendar-month (cal-tex-next-month date))
- (extract-calendar-year (cal-tex-next-month date))
- "nextmonth" "1.1in" "1in"))
- (insert "\\hbox to \\textwidth{")
- (cal-tex-hfill)
- (insert "\\lastmonth")
- (cal-tex-hfill)
- (insert "\\thismonth")
- (cal-tex-hfill)
- (insert "\\nextmonth")
- (cal-tex-hfill)
- (insert "}")
- (cal-tex-nl)
- (cal-tex-b-parbox "l" "\\textwidth")
- (calendar-for-loop j from 4 to 7 do
- (cal-tex-week-hours date holidays "5")
- (setq date (cal-tex-incr-date date)))
- (cal-tex-e-parbox)
- (setq month (extract-calendar-month date))
- (setq year (extract-calendar-year date))
- (if (/= i n)
- (progn
- (run-hooks 'cal-tex-week-hook)
- (cal-tex-newpage))))
+ (dotimes (i n)
+ (cal-tex-vspace "-1.5in")
+ (cal-tex-b-center)
+ (cal-tex-Huge-bf (format "\\uppercase{%s}"
+ (cal-tex-month-name month)))
+ (cal-tex-hspace "2em")
+ (cal-tex-Huge-bf (number-to-string year))
+ (cal-tex-nl ".5cm")
+ (cal-tex-e-center)
+ (cal-tex-hspace "-.2in")
+ (cal-tex-b-parbox "l" "\\textwidth")
+ (dotimes (jdummy 3)
+ (cal-tex-week-hours date holidays "5")
+ (setq date (cal-tex-incr-date date)))
+ (cal-tex-e-parbox)
+ (cal-tex-nl)
+ (insert (cal-tex-mini-calendar
+ (extract-calendar-month (cal-tex-previous-month date))
+ (extract-calendar-year (cal-tex-previous-month date))
+ "lastmonth" "1.1in" "1in"))
+ (insert (cal-tex-mini-calendar
+ (extract-calendar-month date)
+ (extract-calendar-year date)
+ "thismonth" "1.1in" "1in"))
+ (insert (cal-tex-mini-calendar
+ (extract-calendar-month (cal-tex-next-month date))
+ (extract-calendar-year (cal-tex-next-month date))
+ "nextmonth" "1.1in" "1in"))
+ (insert "\\hbox to \\textwidth{")
+ (cal-tex-hfill)
+ (insert "\\lastmonth")
+ (cal-tex-hfill)
+ (insert "\\thismonth")
+ (cal-tex-hfill)
+ (insert "\\nextmonth")
+ (cal-tex-hfill)
+ (insert "}")
+ (cal-tex-nl)
+ (cal-tex-b-parbox "l" "\\textwidth")
+ (dotimes (jdummy 4)
+ (cal-tex-week-hours date holidays "5")
+ (setq date (cal-tex-incr-date date)))
+ (cal-tex-e-parbox)
+ (setq month (extract-calendar-month date)
+ year (extract-calendar-year date))
+ (unless (= i (1- n))
+ (run-hooks 'cal-tex-week-hook)
+ (cal-tex-newpage)))
(cal-tex-end-document)
(run-hooks 'cal-tex-hook)))
(defun cal-tex-cursor-week-iso (&optional arg)
- "Make a buffer with LaTeX commands for a one page ISO-style weekly calendar.
-Optional prefix argument specifies number of weeks.
-Diary entries are included if `cal-tex-diary' is t.
-Holidays are included if `cal-tex-holidays' is t."
+ "Make a LaTeX calendar buffer for a one page ISO-style weekly calendar.
+Optional prefix argument ARG specifies number of weeks (default 1).
+The calendar shows holiday and diary entries if
+`cal-tex-holidays' and `cal-tex-diary', respectively, are non-nil.
+It does not show hours of the day."
(interactive "p")
- (let* ((n (if arg arg 1))
+ (let* ((n (or arg 1))
(date (calendar-gregorian-from-absolute
(calendar-dayname-on-or-before
1
@@ -814,17 +809,16 @@ Holidays are included if `cal-tex-holidays' is t."
(month (extract-calendar-month date))
(year (extract-calendar-year date))
(day (extract-calendar-day date))
+ (d1 (calendar-absolute-from-gregorian date))
+ (d2 (+ (* 7 n) d1))
(holidays (if cal-tex-holidays
- (cal-tex-list-holidays
- (calendar-absolute-from-gregorian date)
- (+ (* 7 n)
- (calendar-absolute-from-gregorian date)))))
+ (cal-tex-list-holidays d1 d2)))
(diary-list (if cal-tex-diary
(cal-tex-list-diary-entries
- (calendar-absolute-from-gregorian
- (list month 1 year))
- (+ (* 7 n)
- (calendar-absolute-from-gregorian date))))))
+ ;; FIXME d1?
+ (calendar-absolute-from-gregorian (list month 1 year))
+ d2)))
+ s)
(cal-tex-preamble "11pt")
(cal-tex-cmd "\\textwidth 6.5in")
(cal-tex-cmd "\\textheight 10.5in")
@@ -832,69 +826,71 @@ Holidays are included if `cal-tex-holidays' is t."
(cal-tex-cmd "\\evensidemargin 0in")
(cal-tex-b-document)
(cal-tex-cmd "\\pagestyle{empty}")
- (calendar-for-loop i from 1 to n do
- (cal-tex-vspace "-1.5in")
- (cal-tex-b-center)
- (cal-tex-Huge-bf
- (let* ((d (calendar-iso-from-absolute
- (calendar-absolute-from-gregorian date))))
- (format "Week %d of %d"
- (extract-calendar-month d)
- (extract-calendar-year d))))
- (cal-tex-nl ".5cm")
- (cal-tex-e-center)
- (cal-tex-b-parbox "l" "\\textwidth")
- (calendar-for-loop j from 1 to 7 do
- (cal-tex-b-parbox "t" "\\textwidth")
- (cal-tex-b-parbox "t" "\\textwidth")
- (cal-tex-rule "0pt" "\\textwidth" ".2mm")
- (cal-tex-nl)
- (cal-tex-b-parbox "t" "\\textwidth")
- (cal-tex-large-bf (cal-tex-LaTeXify-string (calendar-day-name date)))
- (insert ", ")
- (cal-tex-large-bf (cal-tex-month-name month))
- (insert " ")
- (cal-tex-large-bf (number-to-string day))
- (if (not (string= "" (cal-tex-latexify-list holidays date)))
- (progn
- (insert ": ")
- (cal-tex-large-bf (cal-tex-latexify-list holidays date "; "))))
- (cal-tex-hfill)
- (insert " " (eval cal-tex-daily-string))
- (cal-tex-e-parbox)
- (cal-tex-nl)
- (cal-tex-noindent)
- (cal-tex-b-parbox "t" "\\textwidth")
- (if (not (string= "" (cal-tex-latexify-list diary-list date)))
- (progn
- (insert "\\vbox to 0pt{")
- (cal-tex-large-bf
- (cal-tex-latexify-list diary-list date))
- (insert "}")))
- (cal-tex-e-parbox)
- (cal-tex-nl)
- (setq date (cal-tex-incr-date date))
- (setq month (extract-calendar-month date))
- (setq day (extract-calendar-day date))
- (cal-tex-e-parbox)
- (cal-tex-e-parbox "2cm")
- (cal-tex-nl)
- (setq month (extract-calendar-month date))
- (setq year (extract-calendar-year date)))
- (cal-tex-e-parbox)
- (if (/= i n)
- (progn
- (run-hooks 'cal-tex-week-hook)
- (cal-tex-newpage))))
+ (dotimes (i n)
+ (cal-tex-vspace "-1.5in")
+ (cal-tex-b-center)
+ (cal-tex-Huge-bf
+ (let ((d (calendar-iso-from-absolute
+ (calendar-absolute-from-gregorian date))))
+ (format "Week %d of %d"
+ (extract-calendar-month d)
+ (extract-calendar-year d))))
+ (cal-tex-nl ".5cm")
+ (cal-tex-e-center)
+ (cal-tex-b-parbox "l" "\\textwidth")
+ (dotimes (j 7)
+ (cal-tex-b-parbox "t" "\\textwidth")
+ (cal-tex-b-parbox "t" "\\textwidth")
+ (cal-tex-rule "0pt" "\\textwidth" ".2mm")
+ (cal-tex-nl)
+ (cal-tex-b-parbox "t" "\\textwidth")
+ (cal-tex-large-bf (cal-tex-LaTeXify-string (calendar-day-name date)))
+ (insert ", ")
+ (cal-tex-large-bf (cal-tex-month-name month))
+ (insert " ")
+ (cal-tex-large-bf (number-to-string day))
+ (unless (string-equal "" (setq s (cal-tex-latexify-list
+ holidays date "; ")))
+ (insert ": ")
+ (cal-tex-large-bf s))
+ (cal-tex-hfill)
+ (insert " " (eval cal-tex-daily-string))
+ (cal-tex-e-parbox)
+ (cal-tex-nl)
+ (cal-tex-noindent)
+ (cal-tex-b-parbox "t" "\\textwidth")
+ (unless (string-equal "" (setq s (cal-tex-latexify-list
+ diary-list date)))
+ (insert "\\vbox to 0pt{")
+ (cal-tex-large-bf s)
+ (insert "}"))
+ (cal-tex-e-parbox)
+ (cal-tex-nl)
+ (setq date (cal-tex-incr-date date)
+ month (extract-calendar-month date)
+ day (extract-calendar-day date))
+ (cal-tex-e-parbox)
+ (cal-tex-e-parbox "2cm")
+ (cal-tex-nl)
+ (setq month (extract-calendar-month date)
+ year (extract-calendar-year date)))
+ (cal-tex-e-parbox)
+ (unless (= i (1- n))
+ (run-hooks 'cal-tex-week-hook)
+ (cal-tex-newpage)))
(cal-tex-end-document)
(run-hooks 'cal-tex-hook)))
+;; TODO respect cal-tex-daily-start,end?
+;; Using different numbers of hours will probably break some layouts.
(defun cal-tex-week-hours (date holidays height)
- "Insert hourly entries for DATE with HOLIDAYS, with line height HEIGHT."
+ "Insert hourly entries for DATE with HOLIDAYS, with line height HEIGHT.
+Uses the 24-hour clock if `cal-tex-24' is non-nil. Note that the hours
+shown are hard-coded to 8-12, 13-17."
(let ((month (extract-calendar-month date))
- (day (extract-calendar-day date))
- (year (extract-calendar-year date))
- (afternoon))
+ (day (extract-calendar-day date))
+ (year (extract-calendar-year date))
+ morning afternoon s)
(cal-tex-comment "begin cal-tex-week-hours")
(cal-tex-cmd "\\ \\\\[-.2cm]")
(cal-tex-cmd "\\noindent")
@@ -904,110 +900,117 @@ Holidays are included if `cal-tex-holidays' is t."
(cal-tex-large-bf (cal-tex-month-name month))
(insert " ")
(cal-tex-large-bf (number-to-string day))
- (if (not (string= "" (cal-tex-latexify-list holidays date)))
- (progn
- (insert ": ")
- (cal-tex-large-bf (cal-tex-latexify-list holidays date "; "))))
+ (unless (string-equal "" (setq s (cal-tex-latexify-list
+ holidays date "; ")))
+ (insert ": ")
+ (cal-tex-large-bf s))
(cal-tex-hfill)
(insert " " (eval cal-tex-daily-string))
(cal-tex-e-parbox)
(cal-tex-nl "-.3cm")
(cal-tex-rule "0pt" "6.8in" ".2mm")
(cal-tex-nl "-.1cm")
- (calendar-for-loop i from 8 to 12 do
- (if cal-tex-24
- (setq afternoon (+ i 5))
- (setq afternoon (- i 7)))
- (cal-tex-cmd "\\hourbox" (number-to-string i))
- (cal-tex-arg height)
- (cal-tex-hspace ".4cm")
- (cal-tex-cmd "\\hourbox" (number-to-string afternoon))
- (cal-tex-arg height)
- (cal-tex-nl))))
+ (dotimes (i 5)
+ (setq morning (+ i 8) ; 8-12 incl
+ afternoon (if cal-tex-24
+ (+ i 13) ; 13-17 incl
+ (1+ i))) ; 1-5 incl
+ (cal-tex-cmd "\\hourbox" (number-to-string morning))
+ (cal-tex-arg height)
+ (cal-tex-hspace ".4cm")
+ (cal-tex-cmd "\\hourbox" (number-to-string afternoon))
+ (cal-tex-arg height)
+ (cal-tex-nl))))
+;; TODO cal-tex-diary support.
+;; TODO respect cal-tex-daily-start,end (see cal-tex-weekly4-box).
(defun cal-tex-cursor-week-monday (&optional arg)
- "Make a buffer with LaTeX commands for a two-page one-week calendar.
+ "Make a LaTeX calendar buffer for a two-page one-week calendar.
It applies to the week that point is in, and starts on Monday.
-Optional prefix argument specifies number of weeks.
-Holidays are included if `cal-tex-holidays' is t."
+Optional prefix argument ARG specifies number of weeks (default 1).
+The calendar shows holidays if `cal-tex-holidays' is
+non-nil (note that diary entries are not shown). The calendar shows
+the hours 8-12am, 1-5pm."
(interactive "p")
- (let* ((n (if arg arg 1))
- (date (calendar-gregorian-from-absolute
- (calendar-dayname-on-or-before
- 0
- (calendar-absolute-from-gregorian
- (calendar-cursor-to-date t))))))
+ (let ((n (or arg 1))
+ (date (calendar-gregorian-from-absolute
+ (calendar-dayname-on-or-before
+ 0
+ (calendar-absolute-from-gregorian
+ (calendar-cursor-to-date t))))))
(cal-tex-preamble "11pt")
(cal-tex-cmd "\\textwidth 6.5in")
(cal-tex-cmd "\\textheight 10.5in")
(cal-tex-cmd "\\oddsidemargin 0in")
(cal-tex-cmd "\\evensidemargin 0in")
(cal-tex-b-document)
- (calendar-for-loop i from 1 to n do
- (cal-tex-vspace "-1cm")
- (insert "\\noindent ")
- (cal-tex-weekly4-box (cal-tex-incr-date date) nil)
- (cal-tex-weekly4-box (cal-tex-incr-date date 4) nil)
- (cal-tex-nl ".2cm")
- (cal-tex-weekly4-box (cal-tex-incr-date date 2) nil)
- (cal-tex-weekly4-box (cal-tex-incr-date date 5) nil)
- (cal-tex-nl ".2cm")
- (cal-tex-weekly4-box (cal-tex-incr-date date 3) nil)
- (cal-tex-weekly4-box (cal-tex-incr-date date 6) t)
- (if (/= i n)
- (progn
- (run-hooks 'cal-tex-week-hook)
- (setq date (cal-tex-incr-date date 7))
- (cal-tex-newpage))))
+ (dotimes (i n)
+ (cal-tex-vspace "-1cm")
+ (insert "\\noindent ")
+ (cal-tex-weekly4-box (cal-tex-incr-date date) nil)
+ (cal-tex-weekly4-box (cal-tex-incr-date date 4) nil)
+ (cal-tex-nl ".2cm")
+ (cal-tex-weekly4-box (cal-tex-incr-date date 2) nil)
+ (cal-tex-weekly4-box (cal-tex-incr-date date 5) nil)
+ (cal-tex-nl ".2cm")
+ (cal-tex-weekly4-box (cal-tex-incr-date date 3) nil)
+ (cal-tex-weekly4-box (cal-tex-incr-date date 6) t)
+ (unless (= i (1- n))
+ (run-hooks 'cal-tex-week-hook)
+ (setq date (cal-tex-incr-date date 7))
+ (cal-tex-newpage)))
(cal-tex-end-document)
(run-hooks 'cal-tex-hook)))
+;; TODO respect cal-tex-daily-start,end?
+;; Using different numbers of hours will probably break some layouts.
(defun cal-tex-weekly4-box (date weekend)
- "Make one box for DATE, different if WEEKEND."
- (let* (
- (day (extract-calendar-day date))
- (month (extract-calendar-month date))
- (year (extract-calendar-year date))
- (dayname (cal-tex-LaTeXify-string (calendar-day-name date)))
- (date1 (cal-tex-incr-date date))
- (day1 (extract-calendar-day date1))
- (month1 (extract-calendar-month date1))
- (year1 (extract-calendar-year date1))
- (dayname1 (cal-tex-LaTeXify-string (calendar-day-name date1)))
- )
+ "Make one box for DATE, different if WEEKEND.
+Uses the 24-hour clock if `cal-tex-24' is non-nil. Note that the hours
+shown are hard-coded to 8-12, 13-17."
+ (let* ((day (extract-calendar-day date))
+ (month (extract-calendar-month date))
+ (year (extract-calendar-year date))
+ (dayname (cal-tex-LaTeXify-string (calendar-day-name date)))
+ (date1 (cal-tex-incr-date date))
+ (day1 (extract-calendar-day date1))
+ (month1 (extract-calendar-month date1))
+ (year1 (extract-calendar-year date1))
+ (dayname1 (cal-tex-LaTeXify-string (calendar-day-name date1))))
(cal-tex-b-framebox "8cm" "l")
(cal-tex-b-parbox "b" "7.5cm")
- (insert (format "{\\Large\\bf %s,} %s/%s/%s\\\\\n" dayname month day year))
+ (insert (format "\\textbf{\\Large %s,} %s/%s/%s\\\\\n"
+ dayname month day year))
(cal-tex-rule "0pt" "7.5cm" ".5mm")
(cal-tex-nl)
- (if (not weekend)
- (progn
- (calendar-for-loop i from 8 to 12 do
- (insert (format "{\\large\\sf %d}\\\\\n" i)))
- (calendar-for-loop i from 1 to 5 do
- (insert (format "{\\large\\sf %d}\\\\\n"
- (if cal-tex-24 (+ i 12) i))))))
+ (unless weekend
+ (dotimes (i 5)
+ (insert (format "\\textsf{\\large %d}\\\\\n" (+ i 8))))
+ (dotimes (i 5)
+ (insert (format "\\textsf{\\large %d}\\\\\n"
+ (if cal-tex-24
+ (+ i 13) ; 13-17 incl
+ (1+ i)))))) ; 1-5 incl
(cal-tex-nl ".5cm")
- (if weekend
- (progn
- (cal-tex-vspace "1cm")
- (insert "\\ \\vfill")
- (insert (format "{\\Large\\bf %s,} %s/%s/%s\\\\\n"
- dayname1 month1 day1 year1))
- (cal-tex-rule "0pt" "7.5cm" ".5mm")
- (cal-tex-nl "1.5cm")
- (cal-tex-vspace "1cm")))
+ (when weekend
+ (cal-tex-vspace "1cm")
+ (insert "\\ \\vfill")
+ (insert (format "\\textbf{\\Large %s,} %s/%s/%s\\\\\n"
+ dayname1 month1 day1 year1))
+ (cal-tex-rule "0pt" "7.5cm" ".5mm")
+ (cal-tex-nl "1.5cm")
+ (cal-tex-vspace "1cm"))
(cal-tex-e-parbox)
(cal-tex-e-framebox)
(cal-tex-hspace "1cm")))
(defun cal-tex-cursor-filofax-2week (&optional arg)
- "Two-weeks-at-a-glance Filofax style calendar for week indicated by cursor.
-Optional prefix argument specifies number of weeks.
-Diary entries are included if `cal-tex-diary' is t.
-Holidays are included if `cal-tex-holidays' is t."
+ "Two-weeks-at-a-glance Filofax style calendar for week cursor is in.
+Optional prefix argument ARG specifies number of weeks (default 1).
+The calendar shows holiday and diary entries if
+`cal-tex-holidays' and `cal-tex-diary', respectively, are non-nil."
(interactive "p")
- (let* ((n (if arg arg 1))
+ (let* ((n (or arg 1))
(date (calendar-gregorian-from-absolute
(calendar-dayname-on-or-before
calendar-week-start-day
@@ -1016,17 +1019,15 @@ Holidays are included if `cal-tex-holidays' is t."
(month (extract-calendar-month date))
(year (extract-calendar-year date))
(day (extract-calendar-day date))
+ (d1 (calendar-absolute-from-gregorian date))
+ (d2 (+ (* 7 n) d1))
(holidays (if cal-tex-holidays
- (cal-tex-list-holidays
- (calendar-absolute-from-gregorian date)
- (+ (* 7 n)
- (calendar-absolute-from-gregorian date)))))
+ (cal-tex-list-holidays d1 d2)))
(diary-list (if cal-tex-diary
(cal-tex-list-diary-entries
- (calendar-absolute-from-gregorian
- (list month 1 year))
- (+ (* 7 n)
- (calendar-absolute-from-gregorian date))))))
+ ;; FIXME d1?
+ (calendar-absolute-from-gregorian (list month 1 year))
+ d2))))
(cal-tex-preamble "twoside")
(cal-tex-cmd "\\textwidth 3.25in")
(cal-tex-cmd "\\textheight 6.5in")
@@ -1057,59 +1058,53 @@ Holidays are included if `cal-tex-holidays' is t."
")
(cal-tex-b-document)
(cal-tex-cmd "\\pagestyle{empty}")
- (calendar-for-loop i from 1 to n do
- (if (= (mod i 2) 1)
- (insert "\\righthead")
- (insert "\\lefthead"))
- (cal-tex-arg
- (let ((d (cal-tex-incr-date date 6)))
- (if (= (extract-calendar-month date)
- (extract-calendar-month d))
- (format "%s %s"
- (cal-tex-month-name
- (extract-calendar-month date))
- (extract-calendar-year date))
- (if (= (extract-calendar-year date)
- (extract-calendar-year d))
- (format "%s---%s %s"
- (cal-tex-month-name
- (extract-calendar-month date))
- (cal-tex-month-name
- (extract-calendar-month d))
- (extract-calendar-year date))
+ (dotimes (i n)
+ (if (zerop (mod i 2))
+ (insert "\\righthead")
+ (insert "\\lefthead"))
+ (cal-tex-arg
+ (let ((d (cal-tex-incr-date date 6)))
+ (if (= (extract-calendar-month date)
+ (extract-calendar-month d))
+ (format "%s %s"
+ (cal-tex-month-name (extract-calendar-month date))
+ (extract-calendar-year date))
+ (if (= (extract-calendar-year date)
+ (extract-calendar-year d))
+ (format "%s---%s %s"
+ (cal-tex-month-name (extract-calendar-month date))
+ (cal-tex-month-name (extract-calendar-month d))
+ (extract-calendar-year date))
(format "%s %s---%s %s"
- (cal-tex-month-name
- (extract-calendar-month date))
+ (cal-tex-month-name (extract-calendar-month date))
(extract-calendar-year date)
(cal-tex-month-name (extract-calendar-month d))
(extract-calendar-year d))))))
- (insert "%\n")
- (calendar-for-loop j from 1 to 7 do
- (if (= (mod i 2) 1)
- (insert "\\rightday")
- (insert "\\leftday"))
- (cal-tex-arg (cal-tex-LaTeXify-string (calendar-day-name date)))
- (cal-tex-arg (int-to-string (extract-calendar-day date)))
- (cal-tex-arg (cal-tex-latexify-list diary-list date))
- (cal-tex-arg (cal-tex-latexify-list holidays date))
- (cal-tex-arg (eval cal-tex-daily-string))
- (insert "%\n")
- (setq date (cal-tex-incr-date date)))
- (if (/= i n)
- (progn
- (run-hooks 'cal-tex-week-hook)
- (cal-tex-newpage))))
+ (insert "%\n")
+ (dotimes (jdummy 7)
+ (if (zerop (mod i 2))
+ (insert "\\rightday")
+ (insert "\\leftday"))
+ (cal-tex-arg (cal-tex-LaTeXify-string (calendar-day-name date)))
+ (cal-tex-arg (int-to-string (extract-calendar-day date)))
+ (cal-tex-arg (cal-tex-latexify-list diary-list date))
+ (cal-tex-arg (cal-tex-latexify-list holidays date))
+ (cal-tex-arg (eval cal-tex-daily-string))
+ (insert "%\n")
+ (setq date (cal-tex-incr-date date)))
+ (unless (= i (1- n))
+ (run-hooks 'cal-tex-week-hook)
+ (cal-tex-newpage)))
(cal-tex-end-document)
(run-hooks 'cal-tex-hook)))
(defun cal-tex-cursor-filofax-week (&optional arg)
"One-week-at-a-glance Filofax style calendar for week indicated by cursor.
-Optional prefix argument specifies number of weeks.
-Weeks start on Monday.
-Diary entries are included if `cal-tex-diary' is t.
-Holidays are included if `cal-tex-holidays' is t."
+Optional prefix argument ARG specifies number of weeks (default 1),
+starting on Mondays. The calendar shows holiday and diary entries
+if `cal-tex-holidays' and `cal-tex-diary', respectively, are non-nil."
(interactive "p")
- (let* ((n (if arg arg 1))
+ (let* ((n (or arg 1))
(date (calendar-gregorian-from-absolute
(calendar-dayname-on-or-before
1
@@ -1118,17 +1113,15 @@ Holidays are included if `cal-tex-holidays' is t."
(month (extract-calendar-month date))
(year (extract-calendar-year date))
(day (extract-calendar-day date))
+ (d1 (calendar-absolute-from-gregorian date))
+ (d2 (+ (* 7 n) d1))
(holidays (if cal-tex-holidays
- (cal-tex-list-holidays
- (calendar-absolute-from-gregorian date)
- (+ (* 7 n)
- (calendar-absolute-from-gregorian date)))))
+ (cal-tex-list-holidays d1 d2)))
(diary-list (if cal-tex-diary
(cal-tex-list-diary-entries
- (calendar-absolute-from-gregorian
- (list month 1 year))
- (+ (* 7 n)
- (calendar-absolute-from-gregorian date))))))
+ ;; FIXME d1?
+ (calendar-absolute-from-gregorian (list month 1 year))
+ d2))))
(cal-tex-preamble "twoside")
(cal-tex-cmd "\\textwidth 3.25in")
(cal-tex-cmd "\\textheight 6.5in")
@@ -1168,99 +1161,90 @@ Holidays are included if `cal-tex-holidays' is t."
(cal-tex-b-document)
(cal-tex-cmd "\\pagestyle{empty}\\ ")
(cal-tex-newpage)
- (calendar-for-loop i from 1 to n do
- (insert "\\lefthead")
- (cal-tex-arg
- (let ((d (cal-tex-incr-date date 2)))
- (if (= (extract-calendar-month date)
- (extract-calendar-month d))
- (format "%s %s"
- (cal-tex-month-name
- (extract-calendar-month date))
- (extract-calendar-year date))
- (if (= (extract-calendar-year date)
- (extract-calendar-year d))
- (format "%s---%s %s"
- (cal-tex-month-name
- (extract-calendar-month date))
- (cal-tex-month-name
- (extract-calendar-month d))
- (extract-calendar-year date))
- (format "%s %s---%s %s"
- (cal-tex-month-name
- (extract-calendar-month date))
- (extract-calendar-year date)
- (cal-tex-month-name (extract-calendar-month d))
- (extract-calendar-year d))))))
- (insert "%\n")
- (calendar-for-loop j from 1 to 3 do
- (insert "\\leftday")
- (cal-tex-arg (cal-tex-LaTeXify-string (calendar-day-name date)))
- (cal-tex-arg (int-to-string (extract-calendar-day date)))
- (cal-tex-arg (cal-tex-latexify-list diary-list date))
- (cal-tex-arg (cal-tex-latexify-list holidays date))
- (cal-tex-arg (eval cal-tex-daily-string))
- (insert "%\n")
- (setq date (cal-tex-incr-date date)))
- (insert "\\noindent\\rule{\\textwidth}{0.3pt}\\\\%\n")
- (cal-tex-newpage)
- (insert "\\righthead")
- (cal-tex-arg
- (let ((d (cal-tex-incr-date date 3)))
- (if (= (extract-calendar-month date)
+ (dotimes (i n)
+ (insert "\\lefthead")
+ (cal-tex-arg
+ (let ((d (cal-tex-incr-date date 2)))
+ (if (= (extract-calendar-month date)
+ (extract-calendar-month d))
+ (format "%s %s"
+ (cal-tex-month-name (extract-calendar-month date))
+ (extract-calendar-year date))
+ (if (= (extract-calendar-year date)
+ (extract-calendar-year d))
+ (format "%s---%s %s"
+ (cal-tex-month-name (extract-calendar-month date))
+ (cal-tex-month-name (extract-calendar-month d))
+ (extract-calendar-year date))
+ (format "%s %s---%s %s"
+ (cal-tex-month-name (extract-calendar-month date))
+ (extract-calendar-year date)
+ (cal-tex-month-name (extract-calendar-month d))
+ (extract-calendar-year d))))))
+ (insert "%\n")
+ (dotimes (jdummy 3)
+ (insert "\\leftday")
+ (cal-tex-arg (cal-tex-LaTeXify-string (calendar-day-name date)))
+ (cal-tex-arg (int-to-string (extract-calendar-day date)))
+ (cal-tex-arg (cal-tex-latexify-list diary-list date))
+ (cal-tex-arg (cal-tex-latexify-list holidays date))
+ (cal-tex-arg (eval cal-tex-daily-string))
+ (insert "%\n")
+ (setq date (cal-tex-incr-date date)))
+ (insert "\\noindent\\rule{\\textwidth}{0.3pt}\\\\%\n")
+ (cal-tex-newpage)
+ (insert "\\righthead")
+ (cal-tex-arg
+ (let ((d (cal-tex-incr-date date 3)))
+ (if (= (extract-calendar-month date)
(extract-calendar-month d))
- (format "%s %s"
- (cal-tex-month-name
- (extract-calendar-month date))
- (extract-calendar-year date))
- (if (= (extract-calendar-year date)
- (extract-calendar-year d))
- (format "%s---%s %s"
- (cal-tex-month-name
- (extract-calendar-month date))
- (cal-tex-month-name
- (extract-calendar-month d))
- (extract-calendar-year date))
- (format "%s %s---%s %s"
- (cal-tex-month-name
- (extract-calendar-month date))
- (extract-calendar-year date)
- (cal-tex-month-name (extract-calendar-month d))
- (extract-calendar-year d))))))
- (insert "%\n")
- (calendar-for-loop j from 1 to 2 do
- (insert "\\rightday")
- (cal-tex-arg (cal-tex-LaTeXify-string (calendar-day-name date)))
- (cal-tex-arg (int-to-string (extract-calendar-day date)))
- (cal-tex-arg (cal-tex-latexify-list diary-list date))
- (cal-tex-arg (cal-tex-latexify-list holidays date))
- (cal-tex-arg (eval cal-tex-daily-string))
- (insert "%\n")
- (setq date (cal-tex-incr-date date)))
- (calendar-for-loop j from 1 to 2 do
- (insert "\\weekend")
- (cal-tex-arg (cal-tex-LaTeXify-string (calendar-day-name date)))
- (cal-tex-arg (int-to-string (extract-calendar-day date)))
- (cal-tex-arg (cal-tex-latexify-list diary-list date))
- (cal-tex-arg (cal-tex-latexify-list holidays date))
- (cal-tex-arg (eval cal-tex-daily-string))
- (insert "%\n")
- (setq date (cal-tex-incr-date date)))
- (if (/= i n)
- (progn
- (run-hooks 'cal-tex-week-hook)
- (cal-tex-newpage))))
+ (format "%s %s"
+ (cal-tex-month-name (extract-calendar-month date))
+ (extract-calendar-year date))
+ (if (= (extract-calendar-year date)
+ (extract-calendar-year d))
+ (format "%s---%s %s"
+ (cal-tex-month-name (extract-calendar-month date))
+ (cal-tex-month-name (extract-calendar-month d))
+ (extract-calendar-year date))
+ (format "%s %s---%s %s"
+ (cal-tex-month-name (extract-calendar-month date))
+ (extract-calendar-year date)
+ (cal-tex-month-name (extract-calendar-month d))
+ (extract-calendar-year d))))))
+ (insert "%\n")
+ (dotimes (jdummy 2)
+ (insert "\\rightday")
+ (cal-tex-arg (cal-tex-LaTeXify-string (calendar-day-name date)))
+ (cal-tex-arg (int-to-string (extract-calendar-day date)))
+ (cal-tex-arg (cal-tex-latexify-list diary-list date))
+ (cal-tex-arg (cal-tex-latexify-list holidays date))
+ (cal-tex-arg (eval cal-tex-daily-string))
+ (insert "%\n")
+ (setq date (cal-tex-incr-date date)))
+ (dotimes (jdummy 2)
+ (insert "\\weekend")
+ (cal-tex-arg (cal-tex-LaTeXify-string (calendar-day-name date)))
+ (cal-tex-arg (int-to-string (extract-calendar-day date)))
+ (cal-tex-arg (cal-tex-latexify-list diary-list date))
+ (cal-tex-arg (cal-tex-latexify-list holidays date))
+ (cal-tex-arg (eval cal-tex-daily-string))
+ (insert "%\n")
+ (setq date (cal-tex-incr-date date)))
+ (unless (= i (1- n))
+ (run-hooks 'cal-tex-week-hook)
+ (cal-tex-newpage)))
(cal-tex-end-document)
(run-hooks 'cal-tex-hook)))
(defun cal-tex-cursor-filofax-daily (&optional arg)
"Day-per-page Filofax style calendar for week indicated by cursor.
-Optional prefix argument specifies number of weeks. Weeks start on Monday.
-Diary entries are included if `cal-tex-diary' is t.
-Holidays are included if `cal-tex-holidays' is t.
-Pages are ruled if `cal-tex-rules' is t."
+Optional prefix argument ARG specifies number of weeks (default 1),
+starting on Mondays. The calendar shows holiday and diary
+entries if `cal-tex-holidays' and `cal-tex-diary', respectively,
+are non-nil. Pages are ruled if `cal-tex-rules' is non-nil."
(interactive "p")
- (let* ((n (if arg arg 1))
+ (let* ((n (or arg 1))
(date (calendar-gregorian-from-absolute
(calendar-dayname-on-or-before
1
@@ -1269,17 +1253,15 @@ Pages are ruled if `cal-tex-rules' is t."
(month (extract-calendar-month date))
(year (extract-calendar-year date))
(day (extract-calendar-day date))
+ (d1 (calendar-absolute-from-gregorian date))
+ (d2 (+ (* 7 n) d1))
(holidays (if cal-tex-holidays
- (cal-tex-list-holidays
- (calendar-absolute-from-gregorian date)
- (+ (* 7 n)
- (calendar-absolute-from-gregorian date)))))
+ (cal-tex-list-holidays d1 d2)))
(diary-list (if cal-tex-diary
(cal-tex-list-diary-entries
- (calendar-absolute-from-gregorian
- (list month 1 year))
- (+ (* 7 n)
- (calendar-absolute-from-gregorian date))))))
+ ;; FIXME d1?
+ (calendar-absolute-from-gregorian (list month 1 year))
+ d2))))
(cal-tex-preamble "twoside")
(cal-tex-cmd "\\textwidth 3.25in")
(cal-tex-cmd "\\textheight 6.5in")
@@ -1322,41 +1304,44 @@ Pages are ruled if `cal-tex-rules' is t."
")
(cal-tex-b-document)
(cal-tex-cmd "\\pagestyle{empty}")
- (calendar-for-loop i from 1 to n do
- (calendar-for-loop j from 1 to 5 do
- (let ((odd (/= 0 (% j 2))))
- (insert (if odd "\\righthead" "\\lefthead"))
- (cal-tex-arg (calendar-date-string date))
- (insert "%\n")
- (insert (if odd "\\rightday" "\\leftday")))
- (cal-tex-arg (cal-tex-latexify-list diary-list date))
- (cal-tex-arg (cal-tex-latexify-list holidays date "\\\\" t))
- (cal-tex-arg (eval cal-tex-daily-string))
- (insert "%\n")
- (if cal-tex-rules
- (insert "\\linesfill\n")
- (insert "\\vfill\\noindent\\rule{\\textwidth}{0.3pt}\\\\%\n"))
- (cal-tex-newpage)
- (setq date (cal-tex-incr-date date)))
- (insert "%\n")
- (calendar-for-loop j from 1 to 2 do
- (insert "\\lefthead")
+ (dotimes (i n)
+ (dotimes (j 4)
+ (let ((even (zerop (% j 2))))
+ (insert (if even
+ "\\righthead"
+ "\\lefthead"))
(cal-tex-arg (calendar-date-string date))
- (insert "\\weekend")
- (cal-tex-arg (cal-tex-latexify-list diary-list date))
- (cal-tex-arg (cal-tex-latexify-list holidays date "\\\\" t))
- (cal-tex-arg (eval cal-tex-daily-string))
(insert "%\n")
- (if cal-tex-rules
- (insert "\\linesfill\n")
- (insert "\\vfill"))
- (setq date (cal-tex-incr-date date)))
- (if (not cal-tex-rules)
- (insert "\\noindent\\rule{\\textwidth}{0.3pt}\\\\%\n"))
- (if (/= i n)
- (progn
- (run-hooks 'cal-tex-week-hook)
- (cal-tex-newpage))))
+ (insert (if even
+ "\\rightday"
+ "\\leftday")))
+ (cal-tex-arg (cal-tex-latexify-list diary-list date))
+ (cal-tex-arg (cal-tex-latexify-list holidays date "\\\\" t))
+ (cal-tex-arg (eval cal-tex-daily-string))
+ (insert "%\n")
+ (if cal-tex-rules
+ (insert "\\linesfill\n")
+ (insert "\\vfill\\noindent\\rule{\\textwidth}{0.3pt}\\\\%\n"))
+ (cal-tex-newpage)
+ (setq date (cal-tex-incr-date date)))
+ (insert "%\n")
+ (dotimes (jdummy 2)
+ (insert "\\lefthead")
+ (cal-tex-arg (calendar-date-string date))
+ (insert "\\weekend")
+ (cal-tex-arg (cal-tex-latexify-list diary-list date))
+ (cal-tex-arg (cal-tex-latexify-list holidays date "\\\\" t))
+ (cal-tex-arg (eval cal-tex-daily-string))
+ (insert "%\n")
+ (if cal-tex-rules
+ (insert "\\linesfill\n")
+ (insert "\\vfill"))
+ (setq date (cal-tex-incr-date date)))
+ (or cal-tex-rules
+ (insert "\\noindent\\rule{\\textwidth}{0.3pt}\\\\%\n"))
+ (unless (= i (1- n))
+ (run-hooks 'cal-tex-week-hook)
+ (cal-tex-newpage)))
(cal-tex-end-document)
(run-hooks 'cal-tex-hook)))
@@ -1367,30 +1352,34 @@ Pages are ruled if `cal-tex-rules' is t."
(defun cal-tex-cursor-day (&optional arg)
"Make a buffer with LaTeX commands for the day cursor is on.
-Optional prefix argument specifies number of days."
+Optional prefix argument ARG specifies number of days. The calendar shows
+the hours between `cal-tex-daily-start' and `cal-tex-daily-end', using
+the 24-hour clock if `cal-tex-24' is non-nil."
(interactive "p")
- (let ((n (if arg arg 1))
+ (let ((n (or arg 1))
(date (calendar-absolute-from-gregorian (calendar-cursor-to-date t))))
(cal-tex-preamble "12pt")
- (cal-tex-cmd "\\textwidth 6.5in")
+ (cal-tex-cmd "\\textwidth 6.5in")
(cal-tex-cmd "\\textheight 10.5in")
(cal-tex-b-document)
(cal-tex-cmd "\\pagestyle{empty}")
- (calendar-for-loop i from 1 to n do
- (cal-tex-vspace "-1.7in")
- (cal-tex-daily-page (calendar-gregorian-from-absolute date))
- (setq date (1+ date))
- (if (/= i n)
- (progn
- (cal-tex-newpage)
- (run-hooks 'cal-tex-daily-hook))))
+ (dotimes (i n)
+ (cal-tex-vspace "-1.7in")
+ (cal-tex-daily-page (calendar-gregorian-from-absolute date))
+ (setq date (1+ date))
+ (unless (= i (1- n))
+ (cal-tex-newpage)
+ (run-hooks 'cal-tex-daily-hook)))
(cal-tex-end-document)
(run-hooks 'cal-tex-hook)))
(defun cal-tex-daily-page (date)
- "Make a calendar page for Gregorian DATE on 8.5 by 11 paper."
- (let* ((hour)
- (month-name (cal-tex-month-name (extract-calendar-month date))))
+ "Make a calendar page for Gregorian DATE on 8.5 by 11 paper.
+Uses the 24-hour clock if `cal-tex-24' is non-nil. Produces
+hourly sections for the period specified by `cal-tex-daily-start'
+and `cal-tex-daily-end'."
+ (let ((month-name (cal-tex-month-name (extract-calendar-month date)))
+ hour)
(cal-tex-banner "cal-tex-daily-page")
(cal-tex-b-makebox "4cm" "l")
(cal-tex-b-parbox "b" "3.8cm")
@@ -1416,7 +1405,7 @@ Optional prefix argument specifies number of days."
(setq hour (if cal-tex-24
i
(mod i 12)))
- (if (= 0 hour) (setq hour 12))
+ (if (zerop hour) (setq hour 12))
(cal-tex-b-makebox "1cm" "c")
(cal-tex-arg (number-to-string hour))
(cal-tex-e-makebox)
@@ -1457,49 +1446,52 @@ Optional prefix argument specifies number of days."
(defun cal-tex-mini-calendar (month year name width height &optional ptsize colsep)
"Produce mini-calendar for MONTH, YEAR in macro NAME with WIDTH and HEIGHT.
-Optional PTSIZE gives the point ptsize; scriptsize is the default. Optional
-COLSEP gives the column separation; 1mm is the default."
- (let* ((blank-days;; at start of month
- (mod
- (- (calendar-day-of-week (list month 1 year))
- calendar-week-start-day)
- 7))
- (last (calendar-last-day-of-month month year))
- (colsep (if colsep colsep "1mm"))
- (str (concat "\\def\\" name "{\\hbox to" width "{%\n"
- "\\vbox to" height "{%\n"
- "\\vfil \\hbox to" width "{%\n"
- "\\hfil\\"
- (if ptsize ptsize "scriptsize")
- "\\begin{tabular}"
- "{@{\\hspace{0mm}}r@{\\hspace{" colsep
- "}}r@{\\hspace{" colsep "}}r@{\\hspace{" colsep
- "}}r@{\\hspace{" colsep "}}r@{\\hspace{" colsep
- "}}r@{\\hspace{" colsep "}}r@{\\hspace{0mm}}}%\n"
- "\\multicolumn{7}{c}{"
- (cal-tex-month-name month)
- " "
- (int-to-string year)
- "}\\\\[1mm]\n")))
- (calendar-for-loop i from 0 to 6 do
+Optional string PTSIZE gives the point size (default \"scriptsize\").
+Optional string COLSEP gives the column separation (default \"1mm\")."
+ (or colsep (setq colsep "1mm"))
+ (or ptsize (setq ptsize "scriptsize"))
+ (let ((blank-days ; at start of month
+ (mod
+ (- (calendar-day-of-week (list month 1 year))
+ calendar-week-start-day)
+ 7))
+ (last (calendar-last-day-of-month month year))
+ (str (concat "\\def\\" name "{\\hbox to" width "{%\n"
+ "\\vbox to" height "{%\n"
+ "\\vfil \\hbox to" width "{%\n"
+ "\\hfil\\" ptsize
+ "\\begin{tabular}"
+ "{@{\\hspace{0mm}}r@{\\hspace{" colsep
+ "}}r@{\\hspace{" colsep "}}r@{\\hspace{" colsep
+ "}}r@{\\hspace{" colsep "}}r@{\\hspace{" colsep
+ "}}r@{\\hspace{" colsep "}}r@{\\hspace{0mm}}}%\n"
+ "\\multicolumn{7}{c}{"
+ (cal-tex-month-name month)
+ " "
+ (int-to-string year)
+ "}\\\\[1mm]\n")))
+ (dotimes (i 7)
(setq str
(concat str
(cal-tex-LaTeXify-string
(substring (aref calendar-day-name-array
(mod (+ calendar-week-start-day i) 7))
+
0 2))
- (if (/= i 6)
- " & "
- "\\\\[0.7mm]\n"))))
- (calendar-for-loop i from 1 to blank-days do
+ (if (= i 6)
+ "\\\\[0.7mm]\n"
+ " & "))))
+ (dotimes (idummy blank-days)
(setq str (concat str " & ")))
- (calendar-for-loop i from 1 to last do
- (setq str (concat str (int-to-string i)))
- (setq str (concat str (if (zerop (mod (+ i blank-days) 7))
- (if (/= i last) "\\\\[0.5mm]\n" "")
+ (dotimes (i last)
+ (setq str (concat str (int-to-string (1+ i)))
+ str (concat str (if (zerop (mod (+ i 1 blank-days) 7))
+ (if (= i (1- last))
+ ""
+ "\\\\[0.5mm]\n")
" & "))))
(setq str (concat str "\n\\end{tabular}\\hfil}\\vfil}}}%\n"))
- str))
+ str))
;;;
;;; Various calendar functions
@@ -1509,40 +1501,38 @@ COLSEP gives the column separation; 1mm is the default."
"The date of the day following DATE.
If optional N is given, the date of N days after DATE."
(calendar-gregorian-from-absolute
- (+ (if n n 1) (calendar-absolute-from-gregorian date))))
+ (+ (or n 1) (calendar-absolute-from-gregorian date))))
(defun cal-tex-latexify-list (date-list date &optional separator final-separator)
- "Return string with concatenated, LaTeXified entries in DATE-LIST for DATE.
+ "Return string with concatenated, LaTeX-ified entries in DATE-LIST for DATE.
Use double backslash as a separator unless optional SEPARATOR is given.
If resulting string is not empty, put separator at end if optional
-FINAL-SEPARATOR is t."
- (let* ((sep (if separator separator "\\\\"))
- (result
- (mapconcat '(lambda (x) (cal-tex-LaTeXify-string x))
- (let ((result)
- (p date-list))
- (while p
- (and (car (car p))
- (calendar-date-equal date (car (car p)))
- (setq result (cons (car (cdr (car p))) result)))
- (setq p (cdr p)))
- (reverse result))
- sep)))
- (if (and final-separator (not (string-equal result "")))
- (concat result sep)
- result)))
+FINAL-SEPARATOR is non-nil."
+ (or separator (setq separator "\\\\"))
+ (let (result)
+ (setq result
+ (mapconcat (lambda (x) (cal-tex-LaTeXify-string x))
+ (dolist (d date-list (reverse result))
+ (and (car d)
+ (calendar-date-equal date (car d))
+ (setq result (cons (cadr d) result))))
+ separator))
+ (if (and final-separator
+ (not (string-equal result "")))
+ (concat result separator)
+ result)))
(defun cal-tex-previous-month (date)
"Return the date of the first day in the month previous to DATE."
- (let* ((month (extract-calendar-month date))
- (year (extract-calendar-year date)))
+ (let ((month (extract-calendar-month date))
+ (year (extract-calendar-year date)))
(increment-calendar-month month year -1)
(list month 1 year)))
(defun cal-tex-next-month (date)
- "Return the date of the first day in the month following DATE."
- (let* ((month (extract-calendar-month date))
- (year (extract-calendar-year date)))
+ "Return the date of the first day in the month following DATE."
+ (let ((month (extract-calendar-month date))
+ (year (extract-calendar-year date)))
(increment-calendar-month month year 1)
(list month 1 year)))
@@ -1558,40 +1548,39 @@ informative header, and run HOOK."
(latex-mode)
(pop-to-buffer cal-tex-buffer)
(goto-char (point-min))
- (cal-tex-comment " This buffer was produced by cal-tex.el.")
- (cal-tex-comment " To print a calendar, type")
- (cal-tex-comment " M-x tex-buffer RET")
- (cal-tex-comment " M-x tex-print RET")
- (goto-char (point-min)))
+ ;; FIXME auctex equivalents?
+ (cal-tex-comment
+ (format "\tThis buffer was produced by cal-tex.el.
+\tTo print a calendar, type
+\t\tM-x tex-buffer RET
+\t\tM-x tex-print RET")))
(defun cal-tex-insert-preamble (weeks landscape size &optional append)
- "Initialize the output buffer.
-Select the output buffer, and insert the preamble for a calendar of
-WEEKS weeks. Insert code for landscape mode if LANDSCAPE is true.
-Use pointsize SIZE. Optional argument APPEND, if t, means add to end of
-without erasing current contents."
+ "Initialize the output LaTeX calendar buffer, `cal-tex-buffer'.
+Select the output buffer, and insert the preamble for a calendar
+of WEEKS weeks. Insert code for landscape mode if LANDSCAPE is
+non-nil. Use pointsize SIZE. Optional argument APPEND, if
+non-nil, means add to end of buffer without erasing current contents."
(let ((width "18cm")
(height "24cm"))
- (if landscape
- (progn
- (setq width "24cm")
- (setq height "18cm")))
- (if (not append)
- (progn
- (cal-tex-preamble size)
- (if (not landscape)
- (progn
- (cal-tex-cmd "\\oddsidemargin -1.75cm")
- (cal-tex-cmd "\\def\\holidaymult{.06}"))
- (cal-tex-cmd "\\special{landscape}")
- (cal-tex-cmd "\\textwidth 9.5in")
- (cal-tex-cmd "\\textheight 7in")
- (cal-tex-comment)
- (cal-tex-cmd "\\def\\holidaymult{.08}"))
- (cal-tex-cmd cal-tex-caldate)
- (cal-tex-cmd cal-tex-myday)
- (cal-tex-b-document)
- (cal-tex-cmd "\\pagestyle{empty}")))
+ (when landscape
+ (setq width "24cm"
+ height "18cm"))
+ (unless append
+ (cal-tex-preamble size)
+ (if (not landscape)
+ (progn
+ (cal-tex-cmd "\\oddsidemargin -1.75cm")
+ (cal-tex-cmd "\\def\\holidaymult{.06}"))
+ (cal-tex-cmd "\\special{landscape}")
+ (cal-tex-cmd "\\textwidth 9.5in")
+ (cal-tex-cmd "\\textheight 7in")
+ (cal-tex-comment)
+ (cal-tex-cmd "\\def\\holidaymult{.08}"))
+ (cal-tex-cmd cal-tex-caldate)
+ (cal-tex-cmd cal-tex-myday)
+ (cal-tex-b-document)
+ (cal-tex-cmd "\\pagestyle{empty}"))
(cal-tex-cmd "\\setlength{\\cellwidth}" width)
(insert (format "\\setlength{\\cellwidth}{%f\\cellwidth}\n"
(/ 1.1 (length cal-tex-which-days))))
@@ -1601,10 +1590,12 @@ without erasing current contents."
(cal-tex-cmd "\\ \\par")
(cal-tex-vspace "-3cm")))
-(defvar cal-tex-LaTeX-subst-list
+(defconst cal-tex-LaTeX-subst-list
'(("\"". "``")
- ("\"". "''");; Quote changes meaning when list is reversed.
- ("@" . "\\verb|@|")
+ ("\"". "''") ; quote changes meaning when list is reversed
+ ;; Don't think this is necessary, and in any case, does not work:
+ ;; "LaTeX Error: \verb illegal in command argument".
+;;; ("@" . "\\verb|@|")
("&" . "\\&")
("%" . "\\%")
("$" . "\\$")
@@ -1614,8 +1605,8 @@ without erasing current contents."
("}" . "\\}")
("<" . "$<$")
(">" . "$>$")
- ("\n" . "\\ \\\\")) ;\\ needed for e.g \begin{center}\n AA\end{center}
- "List of symbols and their replacements.")
+ ("\n" . "\\ \\\\")) ; \\ needed for e.g \begin{center}\n AA\end{center}
+ "Alist of symbols and their LaTeX replacements.")
(defun cal-tex-LaTeXify-string (string)
"Protect special characters in STRING from LaTeX."
@@ -1625,23 +1616,29 @@ without erasing current contents."
(tail string)
(list cal-tex-LaTeX-subst-list))
(while (not (string-equal tail ""))
- (let* ((ch (substring tail 0 1))
+ (let* ((ch (substring-no-properties tail 0 1))
(pair (assoc ch list)))
(if (and pair (string-equal ch "\""))
- (setq list (reverse list)));; Quote changes meaning each time.
- (setq tail (substring tail 1))
- (setq head (concat head (if pair (cdr pair) ch)))))
+ (setq list (reverse list))) ; quote changes meaning each time
+ (setq tail (substring-no-properties tail 1)
+ head (concat head (if pair (cdr pair) ch)))))
head)))
(defun cal-tex-month-name (month)
"The name of MONTH, LaTeXified."
(cal-tex-LaTeXify-string (calendar-month-name month)))
-(defun cal-tex-hfill () "Insert hfill." (insert "\\hfill"))
+(defun cal-tex-hfill ()
+ "Insert hfill."
+ (insert "\\hfill"))
-(defun cal-tex-newpage () "Insert newpage." (insert "\\newpage%\n"))
+(defun cal-tex-newpage ()
+ "Insert newpage."
+ (insert "\\newpage%\n"))
-(defun cal-tex-noindent () "Insert noindent." (insert "\\noindent"))
+(defun cal-tex-noindent ()
+ "Insert noindent."
+ (insert "\\noindent"))
(defun cal-tex-vspace (space)
"Insert vspace command to move SPACE vertically."
@@ -1654,37 +1651,32 @@ without erasing current contents."
(cal-tex-comment))
(defun cal-tex-comment (&optional comment)
- "Insert % at end of line, include COMMENT if present, and move
- to next line."
- (insert "% ")
- (if comment
- (insert comment))
- (insert "\n"))
+ "Insert `% ', followed by optional string COMMENT, followed by newline.
+COMMENT may contain newlines, which are prefixed by `% ' in the output."
+ (insert (format "%% %s\n"
+ (if comment
+ (replace-regexp-in-string "\n" "\n% " comment)
+ ""))))
(defun cal-tex-banner (comment)
- "Insert the COMMENT separated by blank lines."
- (cal-tex-comment)
- (cal-tex-comment)
- (cal-tex-comment (concat "\t\t\t" comment))
- (cal-tex-comment))
-
+ "Insert string COMMENT, separated by blank lines."
+ (cal-tex-comment (format "\n\n\n\t\t\t%s\n" comment)))
(defun cal-tex-nl (&optional skip comment)
"End a line with \\. If SKIP, then add that much spacing.
- Add COMMENT if present"
- (insert "\\\\")
- (if skip
- (insert "[" skip "]"))
+Add trailing COMMENT if present."
+ (insert (format "\\\\%s"
+ (if skip
+ (format "[%s]" skip)
+ "")))
(cal-tex-comment comment))
(defun cal-tex-arg (&optional text)
- "Insert optional TEXT surrounded by braces."
- (insert "{")
- (if text (insert text))
- (insert "}"))
+ "Insert a brace {} pair containing the optional string TEXT."
+ (insert (format "{%s}" (or text ""))))
(defun cal-tex-cmd (cmd &optional arg)
- "Insert LaTeX CMD, with optional ARG, and end with %"
+ "Insert LaTeX CMD, with optional argument ARG, and end with %."
(insert cmd)
(cal-tex-arg arg)
(cal-tex-comment))
@@ -1722,15 +1714,15 @@ without erasing current contents."
(cal-tex-comment))
(defun cal-tex-e-parbox (&optional height)
- "Insert end of parbox. Force it to be a given HEIGHT."
+ "Insert end of parbox. Optionally, force it to be a given HEIGHT."
(cal-tex-comment)
(if height
(cal-tex-rule "0mm" "0mm" height))
(insert "}")
(cal-tex-comment "end parbox"))
-(defun cal-tex-b-framebox ( width position )
- "Insert framebox with parameters WIDTH and POSITION (clr)."
+(defun cal-tex-b-framebox (width position)
+ "Insert framebox with parameters WIDTH and POSITION (clr)."
(insert "\\framebox[" width "][" position "]{" )
(cal-tex-comment))
@@ -1742,7 +1734,7 @@ without erasing current contents."
(defun cal-tex-b-makebox ( width position )
- "Insert makebox with parameters WIDTH and POSITION (clr)."
+ "Insert makebox with parameters WIDTH and POSITION (clr)."
(insert "\\makebox[" width "][" position "]{" )
(cal-tex-comment))
@@ -1762,36 +1754,37 @@ without erasing current contents."
;;;
(defun cal-tex-em (string)
- "Insert STRING in bf font."
- (insert "{\\em " string "}"))
+ "Insert STRING in italic font."
+ (insert "\\textit{" string "}"))
(defun cal-tex-bf (string)
"Insert STRING in bf font."
- (insert "{\\bf " string "}"))
+ (insert "\\textbf{ " string "}"))
(defun cal-tex-scriptsize (string)
"Insert STRING in scriptsize font."
(insert "{\\scriptsize " string "}"))
(defun cal-tex-huge (string)
- "Insert STRING in huge size."
+ "Insert STRING in huge font."
(insert "{\\huge " string "}"))
(defun cal-tex-Huge (string)
- "Insert STRING in Huge size."
+ "Insert STRING in Huge font."
(insert "{\\Huge " string "}"))
(defun cal-tex-Huge-bf (string)
- "Insert STRING in Huge bf size."
- (insert "{\\Huge\\bf " string "}"))
+ "Insert STRING in Huge bf font."
+ (insert "\\textbf{\\Huge " string "}"))
(defun cal-tex-large (string)
- "Insert STRING in large size."
+ "Insert STRING in large font."
(insert "{\\large " string "}"))
(defun cal-tex-large-bf (string)
- "Insert STRING in large bf size."
- (insert "{\\large\\bf " string "}"))
+ "Insert STRING in large bf font."
+ (insert "\\textbf{\\large " string "}"))
+
(provide 'cal-tex)
diff --git a/lisp/calendar/cal-x.el b/lisp/calendar/cal-x.el
index 5f2c89e82c5..24b1f896179 100644
--- a/lisp/calendar/cal-x.el
+++ b/lisp/calendar/cal-x.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -164,5 +164,5 @@ This function requires a display capable of multiple frames, else
(provide 'cal-x)
-;;; arch-tag: c6dbddca-ae84-442d-87fc-244b76e38e17
+;; arch-tag: c6dbddca-ae84-442d-87fc-244b76e38e17
;;; cal-x.el ends here
diff --git a/lisp/calendar/calendar.el b/lisp/calendar/calendar.el
index 83ec95c844c..7611e40f8ef 100644
--- a/lisp/calendar/calendar.el
+++ b/lisp/calendar/calendar.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -1343,7 +1343,9 @@ MON defaults to `displayed-month'. YR defaults to `displayed-year'."
(cons mon yr))
(defmacro calendar-for-loop (var from init to final do &rest body)
- "Execute a for loop."
+ "Execute a for loop.
+Evaluate BODY with VAR bound to successive integers from INIT to FINAL,
+inclusive."
(declare (debug (symbolp "from" form "to" form "do" body)))
`(let ((,var (1- ,init)))
(while (>= ,final (setq ,var (1+ ,var)))
@@ -1491,19 +1493,19 @@ return negative results."
"Move the cursor backward ARG years."
t)
-(autoload 'scroll-calendar-left "cal-move"
+(autoload 'calendar-scroll-left "cal-move"
"Scroll the displayed calendar left by ARG months."
t)
-(autoload 'scroll-calendar-right "cal-move"
+(autoload 'calendar-scroll-right "cal-move"
"Scroll the displayed calendar window right by ARG months."
t)
-(autoload 'scroll-calendar-left-three-months "cal-move"
+(autoload 'calendar-scroll-left-three-months "cal-move"
"Scroll the displayed calendar window left by 3*ARG months."
t)
-(autoload 'scroll-calendar-right-three-months "cal-move"
+(autoload 'calendar-scroll-right-three-months "cal-move"
"Scroll the displayed calendar window right by 3*ARG months."
t)
@@ -1675,8 +1677,10 @@ to be replaced by asterisks to highlight it whenever it is in the window."
;; (calendar-read-date t) returns a date with day = nil, which is
;; not a legal date for the visible test in the diary section.
(if arg (setcar (cdr date) 1))
- (pop-to-buffer calendar-buffer)
(increment-calendar-month month year (- calendar-offset))
+ ;; Display the buffer before calling generate-calendar-window so that it
+ ;; can get a chance to adjust the window sizes to the frame size.
+ (pop-to-buffer calendar-buffer)
(generate-calendar-window month year)
(if (and view-diary-entries-initially (calendar-date-is-visible-p date))
(diary-view-entries)))
@@ -2056,7 +2060,7 @@ existing output files are overwritten." t)
(defun generate-calendar-window (&optional mon yr)
"Generate the calendar window for the current date.
Or, for optional MON, YR."
- (let* ((buffer-read-only nil)
+ (let* ((inhibit-read-only t)
(today (calendar-current-date))
(month (extract-calendar-month today))
(day (extract-calendar-day today))
@@ -2068,10 +2072,8 @@ Or, for optional MON, YR."
(day-in-week (calendar-day-of-week today))
(in-calendar-window (eq (window-buffer (selected-window))
(get-buffer calendar-buffer))))
+ (generate-calendar (or mon month) (or yr year))
(update-calendar-mode-line)
- (if mon
- (generate-calendar mon yr)
- (generate-calendar month year))
(calendar-cursor-to-visible-date
(if today-visible today (list displayed-month 1 displayed-year)))
(set-buffer-modified-p nil)
@@ -2100,19 +2102,19 @@ Or, for optional MON, YR."
(defun generate-calendar (month year)
"Generate a three-month Gregorian calendar centered around MONTH, YEAR."
-;;; A negative YEAR is interpreted as BC; -1 being 1 BC, and so on.
-;;; Note that while calendars for years BC could be displayed as it
-;;; stands, almost all other calendar functions (eg holidays) would
-;;; at best have unpredictable results for such dates.
+ ;; A negative YEAR is interpreted as BC; -1 being 1 BC, and so on.
+ ;; Note that while calendars for years BC could be displayed as it
+ ;; stands, almost all other calendar functions (eg holidays) would
+ ;; at best have unpredictable results for such dates.
(if (< (+ month (* 12 (1- year))) 2)
(error "Months before January, 1 AD cannot be displayed"))
(setq displayed-month month
displayed-year year)
(erase-buffer)
(increment-calendar-month month year -1)
- (calendar-for-loop i from 0 to 2 do
- (generate-calendar-month month year (+ 5 (* 25 i)))
- (increment-calendar-month month year 1)))
+ (dotimes (i 3)
+ (generate-calendar-month month year (+ 5 (* 25 i)))
+ (increment-calendar-month month year 1)))
(defun generate-calendar-month (month year indent)
"Produce a calendar for MONTH, YEAR on the Gregorian calendar.
@@ -2133,18 +2135,18 @@ line."
indent t)
(calendar-insert-indented "" indent);; Go to proper spot
;; Use the first two characters of each day to head the columns.
- (calendar-for-loop i from 0 to 6 do
- (insert
- (let ((string
- (calendar-day-name (mod (+ calendar-week-start-day i) 7) nil t)))
- (if enable-multibyte-characters
- (truncate-string-to-width string 2)
- (substring string 0 2)))
- " "))
+ (dotimes (i 7)
+ (insert
+ (let ((string
+ (calendar-day-name (mod (+ calendar-week-start-day i) 7) nil t)))
+ (if enable-multibyte-characters
+ (truncate-string-to-width string 2)
+ (substring string 0 2)))
+ " "))
(calendar-insert-indented "" 0 t);; Force onto following line
(calendar-insert-indented "" indent);; Go to proper spot
;; Add blank days before the first of the month
- (calendar-for-loop i from 1 to blank-days do (insert " "))
+ (dotimes (idummy blank-days) (insert " "))
;; Put in the days of the month
(calendar-for-loop i from 1 to last do
(insert (format "%2d " i))
@@ -2210,9 +2212,9 @@ movement commands will not work correctly."
:type 'boolean
:group 'calendar)
-(defvar calendar-mode-map nil)
-(if calendar-mode-map
- nil
+(require 'cal-menu)
+
+(defvar calendar-mode-map
(let ((map (make-keymap)))
(suppress-keymap map)
(dolist (c '(narrow-to-region mark-word mark-sexp mark-paragraph
@@ -2220,14 +2222,14 @@ movement commands will not work correctly."
downcase-region upcase-region kill-region
copy-region-as-kill capitalize-region write-region))
(define-key map (vector 'remap c) 'calendar-not-implemented))
- (define-key map "<" 'scroll-calendar-right)
- (define-key map "\C-x<" 'scroll-calendar-right)
- (define-key map [prior] 'scroll-calendar-right-three-months)
- (define-key map "\ev" 'scroll-calendar-right-three-months)
- (define-key map ">" 'scroll-calendar-left)
- (define-key map "\C-x>" 'scroll-calendar-left)
- (define-key map [next] 'scroll-calendar-left-three-months)
- (define-key map "\C-v" 'scroll-calendar-left-three-months)
+ (define-key map "<" 'calendar-scroll-right)
+ (define-key map "\C-x<" 'calendar-scroll-right)
+ (define-key map [prior] 'calendar-scroll-right-three-months)
+ (define-key map "\ev" 'calendar-scroll-right-three-months)
+ (define-key map ">" 'calendar-scroll-left)
+ (define-key map "\C-x>" 'calendar-scroll-left)
+ (define-key map [next] 'calendar-scroll-left-three-months)
+ (define-key map "\C-v" 'calendar-scroll-left-three-months)
(define-key map "\C-b" 'calendar-backward-day)
(define-key map "\C-p" 'calendar-backward-week)
(define-key map "\e{" 'calendar-backward-month)
@@ -2248,7 +2250,7 @@ movement commands will not work correctly."
(define-key map "\e>" 'calendar-end-of-year)
(define-key map "\C-@" 'calendar-set-mark)
;; Many people are used to typing C-SPC and getting C-@.
- (define-key map [?\C- ] 'calendar-set-mark)
+ (define-key map [?\C-\s] 'calendar-set-mark)
(define-key map "\C-x\C-x" 'calendar-exchange-point-and-mark)
(define-key map "\e=" 'calendar-count-days-region)
(define-key map "gd" 'calendar-goto-date)
@@ -2336,9 +2338,26 @@ movement commands will not work correctly."
(define-key map "tfy" 'cal-tex-cursor-filofax-year)
(define-key map "ty" 'cal-tex-cursor-year)
(define-key map "tY" 'cal-tex-cursor-year-landscape)
- (setq calendar-mode-map map)
- ;; Require cal-menu after initializing calendar-mode-map because it uses it.
- (require 'cal-menu)))
+
+ (define-key map [menu-bar edit] 'undefined)
+ (define-key map [menu-bar search] 'undefined)
+ ;; This ignores the mouse-up event after the mouse-down that pops up the
+ ;; context menu. It should not be necessary because the mouse-up event
+ ;; should be eaten up by the menu-handling toolkit.
+ ;; (define-key map [mouse-2] 'ignore)
+
+ (easy-menu-define nil map nil cal-menu-moon-menu)
+ (easy-menu-define nil map nil cal-menu-diary-menu)
+ (easy-menu-define nil map nil cal-menu-holidays-menu)
+ (easy-menu-define nil map nil cal-menu-goto-menu)
+ (easy-menu-define nil map nil cal-menu-scroll-menu)
+
+ (define-key map [down-mouse-3]
+ (easy-menu-binding cal-menu-context-mouse-menu))
+ (define-key map [down-mouse-2]
+ (easy-menu-binding cal-menu-global-mouse-menu))
+
+ map))
(defun describe-calendar-mode ()
"Create a help buffer with a brief description of the `calendar-mode'."
@@ -2362,7 +2381,7 @@ movement commands will not work correctly."
'help-echo "mouse-1: previous month"
'mouse-face 'mode-line-highlight
'keymap (make-mode-line-mouse-map 'mouse-1
- 'mouse-scroll-calendar-right))
+ 'calendar-scroll-right))
"Calendar"
(concat
(propertize
@@ -2391,7 +2410,7 @@ movement commands will not work correctly."
'help-echo "mouse-1: next month"
'mouse-face 'mode-line-highlight
'keymap (make-mode-line-mouse-map
- 'mouse-1 'mouse-scroll-calendar-left)))
+ 'mouse-1 'calendar-scroll-left)))
"The mode line of the calendar buffer.
This must be a list of items that evaluate to strings--those strings are
@@ -2399,8 +2418,8 @@ evaluated and concatenated together, evenly separated by blanks. The variable
`date' is available for use as the date under (or near) the cursor; `date'
defaults to the current date if it is otherwise undefined. Here is an example
value that has the Hebrew date, the day number/days remaining in the year,
-and the ISO week/year numbers in the mode. When calendar-move-hook is set to
-'update-calendar-mode-line, these mode line shows these values for the date
+and the ISO week/year numbers in the mode. When `calendar-move-hook' is set
+to `update-calendar-mode-line', these mode line shows these values for the date
under the cursor:
(list
@@ -2416,26 +2435,7 @@ under the cursor:
(format \"ISO week %d of %d\"
(extract-calendar-month iso-date)
(extract-calendar-year iso-date)))
- \"\"))
-")
-
-(defun mouse-scroll-calendar-left (event)
- "Scroll the displayed calendar left by one month.
-Maintains the relative position of the cursor
-with respect to the calendar as well as possible."
- (interactive "e")
- (save-selected-window
- (select-window (posn-window (event-start event)))
- (scroll-calendar-left 1)))
-
-(defun mouse-scroll-calendar-right (event)
- "Scroll the displayed calendar right by one month.
-Maintains the relative position of the cursor
-with respect to the calendar as well as possible."
- (interactive "e")
- (save-selected-window
- (select-window (posn-window (event-start event)))
- (scroll-calendar-right 1)))
+ \"\"))")
(defun mouse-calendar-other-month (event)
"Display a three-month calendar centered around a specified month and year."
@@ -2472,10 +2472,14 @@ For a complete description, type \
(setq buffer-read-only t)
(setq indent-tabs-mode nil)
(update-calendar-mode-line)
- (add-hook 'activate-menubar-hook 'cal-menu-update nil t)
(make-local-variable 'calendar-mark-ring)
- (make-local-variable 'displayed-month);; Month in middle of window.
- (make-local-variable 'displayed-year) ;; Year in middle of window.
+ (make-local-variable 'displayed-month) ;; Month in middle of window.
+ (make-local-variable 'displayed-year) ;; Year in middle of window.
+ ;; Most functions only work if displayed-month and displayed-year are set,
+ ;; so let's make sure they're always set. Most likely, this will be reset
+ ;; soon in generate-calendar, but better safe than sorry.
+ (unless (boundp 'displayed-month) (setq displayed-month 1))
+ (unless (boundp 'displayed-year) (setq displayed-year 2001))
(set (make-local-variable 'font-lock-defaults)
'(calendar-font-lock-keywords t))
(run-mode-hooks 'calendar-mode-hook))
@@ -2596,7 +2600,7 @@ ERROR is t, otherwise just returns nil."
(< 2 (count-lines (point-min) (point))))
(save-excursion
(if (not (looking-at " "))
- (re-search-backward "[^0-9]"))
+ (re-search-backward "[^0-9]"))
(list month
(string-to-number (buffer-substring (1+ (point)) (+ 4 (point))))
year))
diff --git a/lisp/calendar/diary-lib.el b/lisp/calendar/diary-lib.el
index ee93b60eb98..09034ab3a8d 100644
--- a/lisp/calendar/diary-lib.el
+++ b/lisp/calendar/diary-lib.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -461,95 +461,94 @@ If LIST-ONLY is non-nil don't modify or display the buffer, only return a list."
(set (make-local-variable 'diary-selective-display) t)
(overlay-put ol 'invisible 'diary)
(overlay-put ol 'evaporate t)))
- (calendar-for-loop
- i from 1 to number do
- (let ((month (extract-calendar-month date))
- (day (extract-calendar-day date))
- (year (extract-calendar-year date))
- (entry-found (list-sexp-diary-entries date)))
- (dolist (date-form diary-date-forms)
- (let*
- ((backup (when (eq (car date-form) 'backup)
- (setq date-form (cdr date-form))
- t))
- (dayname
- (format "%s\\|%s\\.?"
- (calendar-day-name date)
- (calendar-day-name date 'abbrev)))
- (monthname
- (format "\\*\\|%s\\|%s\\.?"
- (calendar-month-name month)
- (calendar-month-name month 'abbrev)))
- (month (concat "\\*\\|0*" (int-to-string month)))
- (day (concat "\\*\\|0*" (int-to-string day)))
- (year
- (concat
- "\\*\\|0*" (int-to-string year)
- (if abbreviated-calendar-year
- (concat "\\|" (format "%02d" (% year 100)))
- "")))
- (regexp
- (concat
- "\\(\\`\\|\^M\\|\n\\)" mark "?\\("
- (mapconcat 'eval date-form "\\)\\(?:")
- "\\)"))
- (case-fold-search t))
- (goto-char (point-min))
- (while (re-search-forward regexp nil t)
- (if backup (re-search-backward "\\<" nil t))
- (if (and (or (char-equal (preceding-char) ?\^M)
- (char-equal (preceding-char) ?\n))
- (not (looking-at " \\|\^I")))
- ;; Diary entry that consists only of date.
- (backward-char 1)
- ;; Found a nonempty diary entry--make it
- ;; visible and add it to the list.
- (setq entry-found t)
- (let ((entry-start (point))
- date-start temp)
- (re-search-backward "\^M\\|\n\\|\\`")
- (setq date-start (point))
- ;; When selective display (rather than
- ;; overlays) was used, diary file used to
- ;; start in a blank line and end in a
- ;; newline. Now that neither of these
- ;; need be true, 'move handles the latter
- ;; and 1/2 kludge the former.
- (re-search-forward
- "\^M\\|\n" nil 'move
- (if (and (bobp) (not (looking-at "\^M\\|\n")))
- 1
- 2))
- (while (looking-at " \\|\^I")
- (re-search-forward "\^M\\|\n" nil 'move))
- (unless (and (eobp) (not (bolp)))
- (backward-char 1))
- (unless list-only
- (remove-overlays date-start (point)
- 'invisible 'diary))
- (setq entry (buffer-substring entry-start (point))
- temp (diary-pull-attrs entry file-glob-attrs)
- entry (nth 0 temp))
- (add-to-diary-list
- date
- entry
- (buffer-substring
- (1+ date-start) (1- entry-start))
- (copy-marker entry-start) (nth 1 temp)))))))
- (or entry-found
- (not diary-list-include-blanks)
- (add-to-diary-list date "" "" "" ""))
- (setq date
- (calendar-gregorian-from-absolute
- (1+ (calendar-absolute-from-gregorian date))))
- (setq entry-found nil)))))
+ (dotimes (idummy number)
+ (let ((month (extract-calendar-month date))
+ (day (extract-calendar-day date))
+ (year (extract-calendar-year date))
+ (entry-found (list-sexp-diary-entries date)))
+ (dolist (date-form diary-date-forms)
+ (let*
+ ((backup (when (eq (car date-form) 'backup)
+ (setq date-form (cdr date-form))
+ t))
+ (dayname
+ (format "%s\\|%s\\.?"
+ (calendar-day-name date)
+ (calendar-day-name date 'abbrev)))
+ (monthname
+ (format "\\*\\|%s\\|%s\\.?"
+ (calendar-month-name month)
+ (calendar-month-name month 'abbrev)))
+ (month (concat "\\*\\|0*" (int-to-string month)))
+ (day (concat "\\*\\|0*" (int-to-string day)))
+ (year
+ (concat
+ "\\*\\|0*" (int-to-string year)
+ (if abbreviated-calendar-year
+ (concat "\\|" (format "%02d" (% year 100)))
+ "")))
+ (regexp
+ (concat
+ "\\(\\`\\|\^M\\|\n\\)" mark "?\\("
+ (mapconcat 'eval date-form "\\)\\(?:")
+ "\\)"))
+ (case-fold-search t))
+ (goto-char (point-min))
+ (while (re-search-forward regexp nil t)
+ (if backup (re-search-backward "\\<" nil t))
+ (if (and (or (char-equal (preceding-char) ?\^M)
+ (char-equal (preceding-char) ?\n))
+ (not (looking-at " \\|\^I")))
+ ;; Diary entry that consists only of date.
+ (backward-char 1)
+ ;; Found a nonempty diary entry--make it
+ ;; visible and add it to the list.
+ (setq entry-found t)
+ (let ((entry-start (point))
+ date-start temp)
+ (re-search-backward "\^M\\|\n\\|\\`")
+ (setq date-start (point))
+ ;; When selective display (rather than
+ ;; overlays) was used, diary file used to
+ ;; start in a blank line and end in a
+ ;; newline. Now that neither of these
+ ;; need be true, 'move handles the latter
+ ;; and 1/2 kludge the former.
+ (re-search-forward
+ "\^M\\|\n" nil 'move
+ (if (and (bobp) (not (looking-at "\^M\\|\n")))
+ 1
+ 2))
+ (while (looking-at " \\|\^I")
+ (re-search-forward "\^M\\|\n" nil 'move))
+ (unless (and (eobp) (not (bolp)))
+ (backward-char 1))
+ (unless list-only
+ (remove-overlays date-start (point)
+ 'invisible 'diary))
+ (setq entry (buffer-substring entry-start (point))
+ temp (diary-pull-attrs entry file-glob-attrs)
+ entry (nth 0 temp))
+ (add-to-diary-list
+ date
+ entry
+ (buffer-substring
+ (1+ date-start) (1- entry-start))
+ (copy-marker entry-start) (nth 1 temp)))))))
+ (or entry-found
+ (not diary-list-include-blanks)
+ (add-to-diary-list date "" "" "" ""))
+ (setq date
+ (calendar-gregorian-from-absolute
+ (1+ (calendar-absolute-from-gregorian date))))
+ (setq entry-found nil)))))
(goto-char (point-min))
(run-hooks 'nongregorian-diary-listing-hook
'list-diary-entries-hook)
(unless list-only
(if diary-display-hook
- (run-hooks 'diary-display-hook)
- (simple-diary-display)))
+ (run-hooks 'diary-display-hook)
+ (simple-diary-display)))
(run-hooks 'diary-hook)
diary-entries-list))))))
@@ -1190,9 +1189,9 @@ A value of 0 in any position is a wildcard."
(let ((m displayed-month)
(y displayed-year))
(increment-calendar-month m y -1)
- (calendar-for-loop i from 0 to 2 do
- (mark-calendar-month m y month day year color)
- (increment-calendar-month m y 1)))))
+ (dotimes (idummy 3)
+ (mark-calendar-month m y month day year color)
+ (increment-calendar-month m y 1)))))
(defun mark-calendar-month (month year p-month p-day p-year &optional color)
"Mark dates in the MONTH/YEAR that conform to pattern P-MONTH/P_DAY/P-YEAR.
diff --git a/lisp/calendar/holidays.el b/lisp/calendar/holidays.el
index fc6e6315916..a3a12aab2e3 100644
--- a/lisp/calendar/holidays.el
+++ b/lisp/calendar/holidays.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calendar/icalendar.el b/lisp/calendar/icalendar.el
index 6238a7f1ea9..101aaf96e43 100644
--- a/lisp/calendar/icalendar.el
+++ b/lisp/calendar/icalendar.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calendar/lunar.el b/lisp/calendar/lunar.el
index 8aa062d69c3..87210e4e45b 100644
--- a/lisp/calendar/lunar.el
+++ b/lisp/calendar/lunar.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calendar/parse-time.el b/lisp/calendar/parse-time.el
index 0913bc92160..2c2867e685f 100644
--- a/lisp/calendar/parse-time.el
+++ b/lisp/calendar/parse-time.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calendar/solar.el b/lisp/calendar/solar.el
index 4281c0e1307..cc72e2eeb25 100644
--- a/lisp/calendar/solar.el
+++ b/lisp/calendar/solar.el
@@ -14,7 +14,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calendar/time-date.el b/lisp/calendar/time-date.el
index f00c480da8b..d15312abfa3 100644
--- a/lisp/calendar/time-date.el
+++ b/lisp/calendar/time-date.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calendar/timeclock.el b/lisp/calendar/timeclock.el
index edadd2ceaea..c7f1ca03f5b 100644
--- a/lisp/calendar/timeclock.el
+++ b/lisp/calendar/timeclock.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/calendar/todo-mode.el b/lisp/calendar/todo-mode.el
index fc222c2d839..13ef042f736 100644
--- a/lisp/calendar/todo-mode.el
+++ b/lisp/calendar/todo-mode.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/case-table.el b/lisp/case-table.el
index 64cf69ba2bf..33768bb2277 100644
--- a/lisp/case-table.el
+++ b/lisp/case-table.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/cdl.el b/lisp/cdl.el
index d238a42dd68..cf8afa70372 100644
--- a/lisp/cdl.el
+++ b/lisp/cdl.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/chistory.el b/lisp/chistory.el
index 286750418cf..4616fd4c1dd 100644
--- a/lisp/chistory.el
+++ b/lisp/chistory.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/cmuscheme.el b/lisp/cmuscheme.el
index b89470b0045..0f64e8514d4 100644
--- a/lisp/cmuscheme.el
+++ b/lisp/cmuscheme.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/comint.el b/lisp/comint.el
index 17ab13337aa..23a78bba009 100644
--- a/lisp/comint.el
+++ b/lisp/comint.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/compare-w.el b/lisp/compare-w.el
index 19ad84e11c0..91edf4c3755 100644
--- a/lisp/compare-w.el
+++ b/lisp/compare-w.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/complete.el b/lisp/complete.el
index b90553b1816..9be68d833e5 100644
--- a/lisp/complete.el
+++ b/lisp/complete.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/completion.el b/lisp/completion.el
index c9e27ab3091..99d559df967 100644
--- a/lisp/completion.el
+++ b/lisp/completion.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/composite.el b/lisp/composite.el
index f22c6b52da0..a2457ab7514 100644
--- a/lisp/composite.el
+++ b/lisp/composite.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/cus-dep.el b/lisp/cus-dep.el
index 98af13cec69..815e2d454ba 100644
--- a/lisp/cus-dep.el
+++ b/lisp/cus-dep.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el
index 0b343e6653b..ff86711e041 100644
--- a/lisp/cus-edit.el
+++ b/lisp/cus-edit.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -141,9 +141,9 @@
(require 'cus-face)
(require 'wid-edit)
-(eval-when-compile
- (defvar custom-versions-load-alist) ; from cus-load
- (defvar recentf-exclude)) ; from recentf.el
+
+(defvar custom-versions-load-alist) ; from cus-load
+(defvar recentf-exclude) ; from recentf.el
(condition-case nil
(require 'cus-load)
@@ -1032,22 +1032,20 @@ then prompt for the MODE to customize."
t nil nil (if group (symbol-name major-mode))))))))
(customize-group (custom-group-of-mode mode)))
+(defun customize-read-group ()
+ (let ((completion-ignore-case t))
+ (completing-read "Customize group (default emacs): "
+ obarray
+ (lambda (symbol)
+ (or (and (get symbol 'custom-loads)
+ (not (get symbol 'custom-autoload)))
+ (get symbol 'custom-group)))
+ t)))
;;;###autoload
-(defun customize-group (&optional group prompt-for-group other-window)
+(defun customize-group (&optional group)
"Customize GROUP, which must be a customization group."
- (interactive)
- (and (null group)
- (or prompt-for-group (called-interactively-p))
- (let ((completion-ignore-case t))
- (setq group
- (completing-read "Customize group (default emacs): "
- obarray
- (lambda (symbol)
- (or (and (get symbol 'custom-loads)
- (not (get symbol 'custom-autoload)))
- (get symbol 'custom-group)))
- t))))
+ (interactive (list (customize-read-group)))
(when (stringp group)
(if (string-equal "" group)
(setq group 'emacs)
@@ -1055,25 +1053,21 @@ then prompt for the MODE to customize."
(let ((name (format "*Customize Group: %s*"
(custom-unlispify-tag-name group))))
(if (get-buffer name)
- (if other-window
- (let ((pop-up-windows t)
- (same-window-buffer-names nil)
- (same-window-regexps nil))
- (pop-to-buffer name))
- (pop-to-buffer name))
- (funcall (if other-window
- 'custom-buffer-create-other-window
- 'custom-buffer-create)
- (list (list group 'custom-group))
- name
- (concat " for group "
- (custom-unlispify-tag-name group))))))
+ (pop-to-buffer name)
+ (custom-buffer-create
+ (list (list group 'custom-group))
+ name
+ (concat " for group "
+ (custom-unlispify-tag-name group))))))
;;;###autoload
(defun customize-group-other-window (&optional group)
"Customize GROUP, which must be a customization group, in another window."
- (interactive)
- (customize-group group t t))
+ (interactive (list (customize-read-group)))
+ (let ((pop-up-windows t)
+ (same-window-buffer-names nil)
+ (same-window-regexps nil))
+ (customize-group group)))
;;;###autoload
(defalias 'customize-variable 'customize-option)
@@ -1254,41 +1248,33 @@ Emacs that is associated with version VERSION of PACKAGE."
(< minor1 minor2)))))
;;;###autoload
-(defun customize-face (&optional face prompt-for-face other-window)
+(defun customize-face (&optional face)
"Customize FACE, which should be a face name or nil.
If FACE is nil, customize all faces. If FACE is actually a
face-alias, customize the face it is aliased to.
Interactively, when point is on text which has a face specified,
suggest to customize that face, if it's customizable."
- (interactive)
- (and (null face)
- (or prompt-for-face (called-interactively-p))
- (setq face (read-face-name "Customize face" "all faces" t)))
+ (interactive (list (read-face-name "Customize face" "all faces" t)))
(if (member face '(nil ""))
(setq face (face-list)))
(if (and (listp face) (null (cdr face)))
(setq face (car face)))
- (let ((create-buffer-fn (if other-window
- 'custom-buffer-create-other-window
- 'custom-buffer-create)))
- (if (listp face)
- (funcall create-buffer-fn
- (custom-sort-items
- (mapcar (lambda (s)
- (list s 'custom-face))
- face)
- t nil)
- "*Customize Faces*")
- ;; If FACE is actually an alias, customize the face it is aliased to.
- (if (get face 'face-alias)
- (setq face (get face 'face-alias)))
- (unless (facep face)
- (error "Invalid face %S" face))
- (funcall create-buffer-fn
- (list (list face 'custom-face))
- (format "*Customize Face: %s*"
- (custom-unlispify-tag-name face))))))
+ (if (listp face)
+ (custom-buffer-create
+ (custom-sort-items
+ (mapcar (lambda (s) (list s 'custom-face)) face)
+ t nil)
+ "*Customize Faces*")
+ ;; If FACE is actually an alias, customize the face it is aliased to.
+ (if (get face 'face-alias)
+ (setq face (get face 'face-alias)))
+ (unless (facep face)
+ (error "Invalid face %S" face))
+ (custom-buffer-create
+ (list (list face 'custom-face))
+ (format "*Customize Face: %s*"
+ (custom-unlispify-tag-name face)))))
;;;###autoload
(defun customize-face-other-window (&optional face)
@@ -1297,8 +1283,11 @@ If FACE is actually a face-alias, customize the face it is aliased to.
Interactively, when point is on text which has a face specified,
suggest to customize that face, if it's customizable."
- (interactive)
- (customize-face face t t))
+ (interactive (list (read-face-name "Customize face" "all faces" t)))
+ (let ((pop-up-windows t)
+ (same-window-buffer-names nil)
+ (same-window-regexps nil))
+ (customize-face face)))
(defalias 'customize-customized 'customize-unsaved)
@@ -4025,7 +4014,7 @@ Optional EVENT is the location for the menu."
(defun custom-group-save (widget)
"Save all modified group members."
- (dolist (child (children (widget-get widget :children)))
+ (dolist (child (widget-get widget :children))
(when (memq (widget-get child :custom-state) '(modified set))
(widget-apply child :custom-save))))
diff --git a/lisp/cus-face.el b/lisp/cus-face.el
index 76935a0d605..900a815b160 100644
--- a/lisp/cus-face.el
+++ b/lisp/cus-face.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/cus-start.el b/lisp/cus-start.el
index 0dcfeee7eae..e2cb65c82c4 100644
--- a/lisp/cus-start.el
+++ b/lisp/cus-start.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/cus-theme.el b/lisp/cus-theme.el
index 5dc34410815..1c80d7977cf 100644
--- a/lisp/cus-theme.el
+++ b/lisp/cus-theme.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/custom.el b/lisp/custom.el
index 98a301d80f1..a5a455c2f32 100644
--- a/lisp/custom.el
+++ b/lisp/custom.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/cvs-status.el b/lisp/cvs-status.el
index 428b2887db5..55fc52544b1 100644
--- a/lisp/cvs-status.el
+++ b/lisp/cvs-status.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/dabbrev.el b/lisp/dabbrev.el
index e8bb0850e64..929844c06a0 100644
--- a/lisp/dabbrev.el
+++ b/lisp/dabbrev.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/delim-col.el b/lisp/delim-col.el
index 9e143dc0b09..6be6a785c2b 100644
--- a/lisp/delim-col.el
+++ b/lisp/delim-col.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/delsel.el b/lisp/delsel.el
index 09b30d3e874..8d6e6ea97d2 100644
--- a/lisp/delsel.el
+++ b/lisp/delsel.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/descr-text.el b/lisp/descr-text.el
index 8b36270f46c..d14aba7ae6f 100644
--- a/lisp/descr-text.el
+++ b/lisp/descr-text.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/desktop.el b/lisp/desktop.el
index 4ee378adb06..bddba82a965 100644
--- a/lisp/desktop.el
+++ b/lisp/desktop.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/dframe.el b/lisp/dframe.el
index 7971db19dd8..6d811a6a500 100644
--- a/lisp/dframe.el
+++ b/lisp/dframe.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/diff-mode.el b/lisp/diff-mode.el
index a1bd0afa126..cfac6517209 100644
--- a/lisp/diff-mode.el
+++ b/lisp/diff-mode.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/diff.el b/lisp/diff.el
index 7149ef0d150..3013f0d769e 100644
--- a/lisp/diff.el
+++ b/lisp/diff.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
index 8661df033ed..4d06acdcf6c 100644
--- a/lisp/dired-aux.el
+++ b/lisp/dired-aux.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/dired-x.el b/lisp/dired-x.el
index 75b6456a5cf..b06ca1b0908 100644
--- a/lisp/dired-x.el
+++ b/lisp/dired-x.el
@@ -14,7 +14,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/dired.el b/lisp/dired.el
index 4525cc2ea97..1a906093a7a 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -1247,6 +1247,7 @@ Do so according to the former subdir alist OLD-SUBDIR-ALIST."
(define-key map "$" 'dired-hide-subdir)
(define-key map "\M-$" 'dired-hide-all)
;; misc
+ (define-key map "\C-x\C-q" 'dired-toggle-read-only)
(define-key map "?" 'dired-summary)
(define-key map "\177" 'dired-unmark-backward)
(define-key map [remap undo] 'dired-undo)
@@ -1352,7 +1353,8 @@ Do so according to the former subdir alist OLD-SUBDIR-ALIST."
(define-key map [menu-bar immediate create-directory]
'(menu-item "Create Directory..." dired-create-directory))
(define-key map [menu-bar immediate wdired-mode]
- '(menu-item "Edit File Names" wdired-change-to-wdired-mode))
+ '(menu-item "Edit File Names" wdired-change-to-wdired-mode
+ :filter (lambda (x) (if (eq major-mode 'dired-mode) x))))
(define-key map [menu-bar regexp]
(cons "Regexp" (make-sparse-keymap "Regexp")))
@@ -1655,6 +1657,16 @@ You can use it to recover marks, killed lines or subdirs."
(message "Change in dired buffer undone.
Actual changes in files cannot be undone by Emacs."))
+(defun dired-toggle-read-only ()
+ "Edit dired buffer with Wdired, or set it read-only.
+Call `wdired-change-to-wdired-mode' in dired buffers whose editing is
+supported by Wdired (the major mode of the dired buffer is `dired-mode').
+Otherwise, for buffers inheriting from dired-mode, call `toggle-read-only'."
+ (interactive)
+ (if (eq major-mode 'dired-mode)
+ (wdired-change-to-wdired-mode)
+ (toggle-read-only)))
+
(defun dired-next-line (arg)
"Move down lines then position at filename.
Optional prefix ARG says how many lines to move; default is one line."
@@ -2359,7 +2371,7 @@ Optional argument means return a file name relative to `default-directory'."
;; Deleting files
-(defcustom dired-recursive-deletes 'top ; Default only delete empty directories.
+(defcustom dired-recursive-deletes 'top
"*Decide whether recursive deletes are allowed.
A value of nil means no recursive deletes.
`always' means delete recursively without asking. This is DANGEROUS!
@@ -2408,8 +2420,8 @@ Anything else, ask for each sub-directory."
"In Dired, delete the files flagged for deletion.
If NOMESSAGE is non-nil, we don't display any message
if there are no flagged files.
-`dired-recursive-deletes' controls whether
-deletion of non-empty directories is allowed."
+`dired-recursive-deletes' controls whether deletion of
+non-empty directories is allowed."
(interactive)
(let* ((dired-marker-char dired-del-marker)
(regexp (dired-marker-regexp))
@@ -2426,8 +2438,8 @@ deletion of non-empty directories is allowed."
(defun dired-do-delete (&optional arg)
"Delete all marked (or next ARG) files.
-`dired-recursive-deletes' controls whether
-deletion of non-empty directories is allowed."
+`dired-recursive-deletes' controls whether deletion of
+non-empty directories is allowed."
;; This is more consistent with the file marking feature than
;; dired-do-flagged-delete.
(interactive "P")
diff --git a/lisp/dirtrack.el b/lisp/dirtrack.el
index 36009d16172..11442d8f6f5 100644
--- a/lisp/dirtrack.el
+++ b/lisp/dirtrack.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/disp-table.el b/lisp/disp-table.el
index 207063cbba2..4bf52896cf0 100644
--- a/lisp/disp-table.el
+++ b/lisp/disp-table.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/dnd.el b/lisp/dnd.el
index 193fa962ea7..72ce4c6d777 100644
--- a/lisp/dnd.el
+++ b/lisp/dnd.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/dos-fns.el b/lisp/dos-fns.el
index cf626185e99..c66cbc7933a 100644
--- a/lisp/dos-fns.el
+++ b/lisp/dos-fns.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/dos-vars.el b/lisp/dos-vars.el
index f0b6c82f839..ef2fd5e422d 100644
--- a/lisp/dos-vars.el
+++ b/lisp/dos-vars.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/dos-w32.el b/lisp/dos-w32.el
index b1dc399418a..0de7f096507 100644
--- a/lisp/dos-w32.el
+++ b/lisp/dos-w32.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/double.el b/lisp/double.el
index bb2bf6577b3..8d36d21b0fa 100644
--- a/lisp/double.el
+++ b/lisp/double.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ebuff-menu.el b/lisp/ebuff-menu.el
index 52d4f3f6e52..3b2b17fe188 100644
--- a/lisp/ebuff-menu.el
+++ b/lisp/ebuff-menu.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/echistory.el b/lisp/echistory.el
index 036ba3044e2..7468dd0b7fd 100644
--- a/lisp/echistory.el
+++ b/lisp/echistory.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ediff-diff.el b/lisp/ediff-diff.el
index f1fbc5eea61..48cd7c79d4e 100644
--- a/lisp/ediff-diff.el
+++ b/lisp/ediff-diff.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ediff-help.el b/lisp/ediff-help.el
index c3aa34e3c69..fdc15ee2f80 100644
--- a/lisp/ediff-help.el
+++ b/lisp/ediff-help.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ediff-hook.el b/lisp/ediff-hook.el
index 17df800acc8..951abc20f73 100644
--- a/lisp/ediff-hook.el
+++ b/lisp/ediff-hook.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ediff-init.el b/lisp/ediff-init.el
index 8d05f2def09..21bf73ff76a 100644
--- a/lisp/ediff-init.el
+++ b/lisp/ediff-init.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ediff-merg.el b/lisp/ediff-merg.el
index 79a9c48718a..d9d19f17630 100644
--- a/lisp/ediff-merg.el
+++ b/lisp/ediff-merg.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ediff-mult.el b/lisp/ediff-mult.el
index 12dca168412..d94e7515932 100644
--- a/lisp/ediff-mult.el
+++ b/lisp/ediff-mult.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ediff-ptch.el b/lisp/ediff-ptch.el
index 8c0be8b1c8d..7a469879274 100644
--- a/lisp/ediff-ptch.el
+++ b/lisp/ediff-ptch.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ediff-util.el b/lisp/ediff-util.el
index 34af5cc146b..decff4474d4 100644
--- a/lisp/ediff-util.el
+++ b/lisp/ediff-util.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ediff-vers.el b/lisp/ediff-vers.el
index 9bbcf99d788..d0a323980c2 100644
--- a/lisp/ediff-vers.el
+++ b/lisp/ediff-vers.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ediff-wind.el b/lisp/ediff-wind.el
index c9162129e01..c2c130ac6bb 100644
--- a/lisp/ediff-wind.el
+++ b/lisp/ediff-wind.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ediff.el b/lisp/ediff.el
index 69717ca13ad..39700782e0e 100644
--- a/lisp/ediff.el
+++ b/lisp/ediff.el
@@ -15,7 +15,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/edmacro.el b/lisp/edmacro.el
index 86d5fb65fcf..abd08f4b0b9 100644
--- a/lisp/edmacro.el
+++ b/lisp/edmacro.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ehelp.el b/lisp/ehelp.el
index 80242ff2b03..ee4be24f3c1 100644
--- a/lisp/ehelp.el
+++ b/lisp/ehelp.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/electric.el b/lisp/electric.el
index f9699b29869..445efe76de4 100644
--- a/lisp/electric.el
+++ b/lisp/electric.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/elide-head.el b/lisp/elide-head.el
index dd211900345..ccbedfe7d0b 100644
--- a/lisp/elide-head.el
+++ b/lisp/elide-head.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/advice.el b/lisp/emacs-lisp/advice.el
index 0123124b26d..dbebf314798 100644
--- a/lisp/emacs-lisp/advice.el
+++ b/lisp/emacs-lisp/advice.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -2473,10 +2473,6 @@ will clear the cache."
(setq definition (indirect-function definition)))
(and (subrp definition) (eq (cdr (subr-arity definition)) 'unevalled)))
-(defmacro ad-interactive-p (definition)
- ;;"non-nil if DEFINITION can be called interactively."
- (list 'commandp definition))
-
(defmacro ad-subr-p (definition)
;;"non-nil if DEFINITION is a subr."
(list 'subrp definition))
@@ -2591,13 +2587,12 @@ that property, or otherwise use `(&rest ad-subr-args)'."
docstring)))
(defun ad-interactive-form (definition)
- "Return the interactive form of DEFINITION."
- (cond ((ad-compiled-p definition)
- (and (commandp definition)
- (list 'interactive (aref (ad-compiled-code definition) 5))))
- ((or (ad-advice-p definition)
- (ad-lambda-p definition))
- (commandp (ad-lambda-expression definition)))))
+ "Return the interactive form of DEFINITION.
+Like `interactive-form', but also works on pieces of advice."
+ (interactive-form
+ (if (ad-advice-p definition)
+ (ad-lambda-expression definition)
+ definition)))
(defun ad-body-forms (definition)
"Return the list of body forms of DEFINITION."
@@ -3051,7 +3046,7 @@ in any of these classes."
(ad-has-redefining-advice function))
(let* ((origdef (ad-real-orig-definition function))
(origname (ad-get-advice-info-field function 'origname))
- (orig-interactive-p (ad-interactive-p origdef))
+ (orig-interactive-p (commandp origdef))
(orig-subr-p (ad-subr-p origdef))
(orig-special-form-p (ad-special-form-p origdef))
(orig-macro-p (ad-macro-p origdef))
@@ -3063,15 +3058,11 @@ in any of these classes."
(interactive-form
(cond (orig-macro-p nil)
(advised-interactive-form)
- ((ad-interactive-form origdef)
- (if (and (symbolp function) (get function 'elp-info))
- (interactive-form (aref (get function 'elp-info) 2))
- (ad-interactive-form origdef)))
- ;; Otherwise we must have a subr: make it interactive if
- ;; we have to and initialize required arguments in case
- ;; it is called interactively:
- (orig-interactive-p
- (interactive-form origdef))))
+ ((interactive-form origdef)
+ (interactive-form
+ (if (and (symbolp function) (get function 'elp-info))
+ (aref (get function 'elp-info) 2)
+ origdef)))))
(orig-form
(cond ((or orig-special-form-p orig-macro-p)
;; Special forms and macros will be advised into macros.
@@ -3294,8 +3285,8 @@ advised definition from scratch."
t
(ad-arglist original-definition function))
(if (eq (ad-definition-type original-definition) 'function)
- (equal (ad-interactive-form original-definition)
- (ad-interactive-form cached-definition))))))
+ (equal (interactive-form original-definition)
+ (interactive-form cached-definition))))))
(defun ad-get-cache-class-id (function class)
"Return the part of FUNCTION's cache id that identifies CLASS."
@@ -3342,8 +3333,8 @@ advised definition from scratch."
(ad-arglist cached-definition))
(setq code 'interactive-form-mismatch)
(or (null (nth 5 cache-id))
- (equal (ad-interactive-form original-definition)
- (ad-interactive-form cached-definition)))
+ (equal (interactive-form original-definition)
+ (interactive-form cached-definition)))
(setq code 'verified))))
code))
diff --git a/lisp/emacs-lisp/assoc.el b/lisp/emacs-lisp/assoc.el
index e2ecc544214..8ef07e8c251 100644
--- a/lisp/emacs-lisp/assoc.el
+++ b/lisp/emacs-lisp/assoc.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/authors.el b/lisp/emacs-lisp/authors.el
index 31464269567..0c08e74d70b 100644
--- a/lisp/emacs-lisp/authors.el
+++ b/lisp/emacs-lisp/authors.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/autoload.el b/lisp/emacs-lisp/autoload.el
index 90943b33e49..5eb9b8ce621 100644
--- a/lisp/emacs-lisp/autoload.el
+++ b/lisp/emacs-lisp/autoload.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/backquote.el b/lisp/emacs-lisp/backquote.el
index 766d8b38537..54fcfc3df8a 100644
--- a/lisp/emacs-lisp/backquote.el
+++ b/lisp/emacs-lisp/backquote.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/benchmark.el b/lisp/emacs-lisp/benchmark.el
index 2936dd84ef5..afc01005209 100644
--- a/lisp/emacs-lisp/benchmark.el
+++ b/lisp/emacs-lisp/benchmark.el
@@ -7,7 +7,7 @@
;; This file 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; This file is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/bindat.el b/lisp/emacs-lisp/bindat.el
index 1e491697430..2c2bd14367f 100644
--- a/lisp/emacs-lisp/bindat.el
+++ b/lisp/emacs-lisp/bindat.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el
index 2c9dc8e3314..811dc699bd0 100644
--- a/lisp/emacs-lisp/byte-opt.el
+++ b/lisp/emacs-lisp/byte-opt.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/byte-run.el b/lisp/emacs-lisp/byte-run.el
index 84a4b39027d..267173c1713 100644
--- a/lisp/emacs-lisp/byte-run.el
+++ b/lisp/emacs-lisp/byte-run.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index 8760f36775b..286725f99c1 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -480,7 +480,8 @@ and we don't know the definition.")
(defvar byte-compile-unresolved-functions nil
"Alist of undefined functions to which calls have been compiled.
-Used for warnings when the function is not known to be defined or is later
+This variable is only significant whilst compiling an entire buffer.
+Used for warnings when a function is not known to be defined or is later
defined with incorrect args.")
(defvar byte-compile-noruntime-functions nil
@@ -1849,6 +1850,11 @@ With argument, insert value in current buffer after the form."
(and filename (byte-compile-insert-header filename inbuffer outbuffer))
(with-current-buffer inbuffer
(goto-char (point-min))
+ ;; Should we always do this? When calling multiple files, it
+ ;; would be useful to delay this warning until all have been
+ ;; compiled. A: Yes! b-c-u-f might contain dross from a
+ ;; previous byte-compile.
+ (setq byte-compile-unresolved-functions nil)
;; Compile the forms from the input buffer.
(while (progn
@@ -1865,11 +1871,7 @@ With argument, insert value in current buffer after the form."
;; Make warnings about unresolved functions
;; give the end of the file as their position.
(setq byte-compile-last-position (point-max))
- (byte-compile-warn-about-unresolved-functions)
- ;; Should we always do this? When calling multiple files, it
- ;; would be useful to delay this warning until all have
- ;; been compiled.
- (setq byte-compile-unresolved-functions nil))
+ (byte-compile-warn-about-unresolved-functions))
;; Fix up the header at the front of the output
;; if the buffer contains multibyte characters.
(and filename (byte-compile-fix-header filename inbuffer outbuffer))))
diff --git a/lisp/emacs-lisp/checkdoc.el b/lisp/emacs-lisp/checkdoc.el
index b4d925686ca..862a7efe046 100644
--- a/lisp/emacs-lisp/checkdoc.el
+++ b/lisp/emacs-lisp/checkdoc.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/cl-compat.el b/lisp/emacs-lisp/cl-compat.el
index c1f93e130e5..ebfc43ebc80 100644
--- a/lisp/emacs-lisp/cl-compat.el
+++ b/lisp/emacs-lisp/cl-compat.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/cl-extra.el b/lisp/emacs-lisp/cl-extra.el
index 98e55dab98f..375a07f9f7d 100644
--- a/lisp/emacs-lisp/cl-extra.el
+++ b/lisp/emacs-lisp/cl-extra.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/cl-indent.el b/lisp/emacs-lisp/cl-indent.el
index 7c15af60793..9df2b06a2b9 100644
--- a/lisp/emacs-lisp/cl-indent.el
+++ b/lisp/emacs-lisp/cl-indent.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el
index 2615a8fdf7c..a1264940d41 100644
--- a/lisp/emacs-lisp/cl-macs.el
+++ b/lisp/emacs-lisp/cl-macs.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/cl-seq.el b/lisp/emacs-lisp/cl-seq.el
index 742d2af2397..8016b75aad9 100644
--- a/lisp/emacs-lisp/cl-seq.el
+++ b/lisp/emacs-lisp/cl-seq.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/cl-specs.el b/lisp/emacs-lisp/cl-specs.el
index 5ea587f953b..07184d31af6 100644
--- a/lisp/emacs-lisp/cl-specs.el
+++ b/lisp/emacs-lisp/cl-specs.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/cl.el b/lisp/emacs-lisp/cl.el
index f8b178ac07c..8d609509f10 100644
--- a/lisp/emacs-lisp/cl.el
+++ b/lisp/emacs-lisp/cl.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/copyright.el b/lisp/emacs-lisp/copyright.el
index 222a903efb8..8543bad2f4e 100644
--- a/lisp/emacs-lisp/copyright.el
+++ b/lisp/emacs-lisp/copyright.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -46,8 +46,8 @@ A value of nil means to search whole buffer."
;; The character classes have the Latin-1 version and the Latin-9
;; version, which is probably enough.
(defcustom copyright-regexp
- "\\([©Ž©]\\|@copyright{}\\|[Cc]opyright\\s *:?\\s *\\(?:(C)\\)?\
-\\|[Cc]opyright\\s *:?\\s *[©Ž©]\\)\
+ "\\([©©]\\|@copyright{}\\|[Cc]opyright\\s *:?\\s *\\(?:(C)\\)?\
+\\|[Cc]opyright\\s *:?\\s *[©©]\\)\
\\s *\\([1-9]\\([-0-9, ';/*%#\n\t]\\|\\s<\\|\\s>\\)*[0-9]+\\)"
"What your copyright notice looks like.
The second \\( \\) construct must match the years."
@@ -95,7 +95,8 @@ When this is `function', only ask when called non-interactively."
(re-search-forward (concat "\\(" copyright-regexp
"\\)\\([ \t]*\n\\)?.*\\(?:"
copyright-names-regexp "\\)")
- (+ (point) copyright-limit) t)
+ (if copyright-limit (+ (point) copyright-limit))
+ t)
;; In case the regexp is rejected. This is useful because
;; copyright-update is typically called from before-save-hook where
;; such an error is very inconvenient for the user.
@@ -176,10 +177,11 @@ interactively."
(and copyright-current-gpl-version
;; match the GPL version comment in .el files, including the
;; bilingual Esperanto one in two-column, and in texinfo.tex
- (re-search-forward "\\(the Free Software Foundation;\
+ (re-search-forward
+ "\\(the Free Software Foundation;\
either \\|; a\\^u eldono \\([0-9]+\\)a, ? a\\^u (la\\^u via \\)\
version \\([0-9]+\\), or (at"
- (+ (point) copyright-limit) t)
+ (if copyright-limit (+ (point) copyright-limit)) t)
(not (string= (match-string 3) copyright-current-gpl-version))
(or noquery
(y-or-n-p (concat "Replace GPL version by "
@@ -201,7 +203,8 @@ Uses heuristic: year >= 50 means 19xx, < 50 means 20xx."
(interactive)
(widen)
(goto-char (point-min))
- (if (re-search-forward copyright-regexp (+ (point) copyright-limit) t)
+ (if (re-search-forward copyright-regexp
+ (if copyright-limit (+ (point) copyright-limit)) t)
(let ((s (match-beginning 2))
(e (copy-marker (1+ (match-end 2))))
(p (make-marker))
@@ -241,7 +244,7 @@ Uses heuristic: year >= 50 means 19xx, < 50 means 20xx."
"Copyright (C) " `(substring (current-time-string) -4) " by "
(or (getenv "ORGANIZATION")
str)
- '(if (> (point) (+ (point-min) copyright-limit))
+ '(if (and copyright-limit (> (point) (+ (point-min) copyright-limit)))
(message "Copyright extends beyond `copyright-limit' and won't be updated automatically."))
comment-end \n)
diff --git a/lisp/emacs-lisp/crm.el b/lisp/emacs-lisp/crm.el
index 54fe21f9445..84b212c52d6 100644
--- a/lisp/emacs-lisp/crm.el
+++ b/lisp/emacs-lisp/crm.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/cust-print.el b/lisp/emacs-lisp/cust-print.el
index eeaa2154d3c..54ead36e725 100644
--- a/lisp/emacs-lisp/cust-print.el
+++ b/lisp/emacs-lisp/cust-print.el
@@ -15,7 +15,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/debug.el b/lisp/emacs-lisp/debug.el
index d8169fb5f2e..2dea1d0a347 100644
--- a/lisp/emacs-lisp/debug.el
+++ b/lisp/emacs-lisp/debug.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/derived.el b/lisp/emacs-lisp/derived.el
index 5fc60cf516f..acf73d94b3c 100644
--- a/lisp/emacs-lisp/derived.el
+++ b/lisp/emacs-lisp/derived.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/disass.el b/lisp/emacs-lisp/disass.el
index 56370bc5c83..01378a7f8d6 100644
--- a/lisp/emacs-lisp/disass.el
+++ b/lisp/emacs-lisp/disass.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el
index 79ecf52dfbc..80d1625ec9b 100644
--- a/lisp/emacs-lisp/easy-mmode.el
+++ b/lisp/emacs-lisp/easy-mmode.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/easymenu.el b/lisp/emacs-lisp/easymenu.el
index 19df1a16a11..5a7dc53e917 100644
--- a/lisp/emacs-lisp/easymenu.el
+++ b/lisp/emacs-lisp/easymenu.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el
index 3d9e63bc802..5a526126c25 100644
--- a/lisp/emacs-lisp/edebug.el
+++ b/lisp/emacs-lisp/edebug.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/eldoc.el b/lisp/emacs-lisp/eldoc.el
index 37e2eb351f2..c1bc6dae515 100644
--- a/lisp/emacs-lisp/eldoc.el
+++ b/lisp/emacs-lisp/eldoc.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/elint.el b/lisp/emacs-lisp/elint.el
index d6ec46e3055..f9bff300293 100644
--- a/lisp/emacs-lisp/elint.el
+++ b/lisp/emacs-lisp/elint.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/elp.el b/lisp/emacs-lisp/elp.el
index 3855254db18..ed09599f4dd 100644
--- a/lisp/emacs-lisp/elp.el
+++ b/lisp/emacs-lisp/elp.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/ewoc.el b/lisp/emacs-lisp/ewoc.el
index 9fec81ec2c5..9af8d3b5907 100644
--- a/lisp/emacs-lisp/ewoc.el
+++ b/lisp/emacs-lisp/ewoc.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/find-func.el b/lisp/emacs-lisp/find-func.el
index 07012a38f2e..6a259ffd4f7 100644
--- a/lisp/emacs-lisp/find-func.el
+++ b/lisp/emacs-lisp/find-func.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/find-gc.el b/lisp/emacs-lisp/find-gc.el
index 0ed33dd44dc..6755b26c4fe 100644
--- a/lisp/emacs-lisp/find-gc.el
+++ b/lisp/emacs-lisp/find-gc.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/float-sup.el b/lisp/emacs-lisp/float-sup.el
index 68326c1bc06..9b7dadb86db 100644
--- a/lisp/emacs-lisp/float-sup.el
+++ b/lisp/emacs-lisp/float-sup.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/generic.el b/lisp/emacs-lisp/generic.el
index 22ed0c53175..d57e7ca7657 100644
--- a/lisp/emacs-lisp/generic.el
+++ b/lisp/emacs-lisp/generic.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/gulp.el b/lisp/emacs-lisp/gulp.el
index ab95a0dab40..9e0795c8822 100644
--- a/lisp/emacs-lisp/gulp.el
+++ b/lisp/emacs-lisp/gulp.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/helper.el b/lisp/emacs-lisp/helper.el
index a14339f8f1d..a5459a5db83 100644
--- a/lisp/emacs-lisp/helper.el
+++ b/lisp/emacs-lisp/helper.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/levents.el b/lisp/emacs-lisp/levents.el
index e409430064e..c7ec5c8c7a9 100644
--- a/lisp/emacs-lisp/levents.el
+++ b/lisp/emacs-lisp/levents.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/lisp-mnt.el b/lisp/emacs-lisp/lisp-mnt.el
index 74dd26cb02b..ea6a96c6555 100644
--- a/lisp/emacs-lisp/lisp-mnt.el
+++ b/lisp/emacs-lisp/lisp-mnt.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el
index 3160af5d80d..655677998e0 100644
--- a/lisp/emacs-lisp/lisp-mode.el
+++ b/lisp/emacs-lisp/lisp-mode.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -56,6 +56,8 @@
(modify-syntax-entry i "_ " table)
(setq i (1+ i)))
(modify-syntax-entry ?\s " " table)
+ ;; Non-break space acts as whitespace.
+ (modify-syntax-entry ?\x8a0 " " table)
(modify-syntax-entry ?\t " " table)
(modify-syntax-entry ?\f " " table)
(modify-syntax-entry ?\n "> " table)
diff --git a/lisp/emacs-lisp/lisp.el b/lisp/emacs-lisp/lisp.el
index 5254a8389b4..788be284cda 100644
--- a/lisp/emacs-lisp/lisp.el
+++ b/lisp/emacs-lisp/lisp.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/lmenu.el b/lisp/emacs-lisp/lmenu.el
index b558ac58e27..d2eceae1573 100644
--- a/lisp/emacs-lisp/lmenu.el
+++ b/lisp/emacs-lisp/lmenu.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/lselect.el b/lisp/emacs-lisp/lselect.el
index 3f54fa5ca95..54926a3844e 100644
--- a/lisp/emacs-lisp/lselect.el
+++ b/lisp/emacs-lisp/lselect.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/lucid.el b/lisp/emacs-lisp/lucid.el
index 375d7122a9e..c193c24c8d1 100644
--- a/lisp/emacs-lisp/lucid.el
+++ b/lisp/emacs-lisp/lucid.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/macroexp.el b/lisp/emacs-lisp/macroexp.el
index aaf887bd30c..ce65cb552b6 100644
--- a/lisp/emacs-lisp/macroexp.el
+++ b/lisp/emacs-lisp/macroexp.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/map-ynp.el b/lisp/emacs-lisp/map-ynp.el
index d14394b97a0..c049e0c91c7 100644
--- a/lisp/emacs-lisp/map-ynp.el
+++ b/lisp/emacs-lisp/map-ynp.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/pp.el b/lisp/emacs-lisp/pp.el
index 66abfdf2c6d..21175a03b4d 100644
--- a/lisp/emacs-lisp/pp.el
+++ b/lisp/emacs-lisp/pp.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/re-builder.el b/lisp/emacs-lisp/re-builder.el
index 2d3b4832cda..d859066c452 100644
--- a/lisp/emacs-lisp/re-builder.el
+++ b/lisp/emacs-lisp/re-builder.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/regexp-opt.el b/lisp/emacs-lisp/regexp-opt.el
index 34cd97775dc..f89909e0af8 100644
--- a/lisp/emacs-lisp/regexp-opt.el
+++ b/lisp/emacs-lisp/regexp-opt.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/regi.el b/lisp/emacs-lisp/regi.el
index 208f06e00c1..ed3f846bf0e 100644
--- a/lisp/emacs-lisp/regi.el
+++ b/lisp/emacs-lisp/regi.el
@@ -14,7 +14,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/ring.el b/lisp/emacs-lisp/ring.el
index a259d2ba514..2c8e0a29faf 100644
--- a/lisp/emacs-lisp/ring.el
+++ b/lisp/emacs-lisp/ring.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/rx.el b/lisp/emacs-lisp/rx.el
index 6caa77220bb..957c5b23541 100644
--- a/lisp/emacs-lisp/rx.el
+++ b/lisp/emacs-lisp/rx.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/shadow.el b/lisp/emacs-lisp/shadow.el
index 03c3c94b54a..312f364b8ec 100644
--- a/lisp/emacs-lisp/shadow.el
+++ b/lisp/emacs-lisp/shadow.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/sregex.el b/lisp/emacs-lisp/sregex.el
index 67824c40632..901156cefc3 100644
--- a/lisp/emacs-lisp/sregex.el
+++ b/lisp/emacs-lisp/sregex.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/syntax.el b/lisp/emacs-lisp/syntax.el
index 13087afcc61..19662b1c71a 100644
--- a/lisp/emacs-lisp/syntax.el
+++ b/lisp/emacs-lisp/syntax.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/tcover-ses.el b/lisp/emacs-lisp/tcover-ses.el
index ad61ffde43d..27ddeb25718 100644
--- a/lisp/emacs-lisp/tcover-ses.el
+++ b/lisp/emacs-lisp/tcover-ses.el
@@ -8,7 +8,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/tcover-unsafep.el b/lisp/emacs-lisp/tcover-unsafep.el
index ed380c5de50..b999ce63b8c 100644
--- a/lisp/emacs-lisp/tcover-unsafep.el
+++ b/lisp/emacs-lisp/tcover-unsafep.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/testcover.el b/lisp/emacs-lisp/testcover.el
index 7d7e788523b..2f6ccb6b08e 100644
--- a/lisp/emacs-lisp/testcover.el
+++ b/lisp/emacs-lisp/testcover.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/timer.el b/lisp/emacs-lisp/timer.el
index 092611632ca..0fed5962fcb 100644
--- a/lisp/emacs-lisp/timer.el
+++ b/lisp/emacs-lisp/timer.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/tq.el b/lisp/emacs-lisp/tq.el
index f20015fd720..8daa9a2cf40 100644
--- a/lisp/emacs-lisp/tq.el
+++ b/lisp/emacs-lisp/tq.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/trace.el b/lisp/emacs-lisp/trace.el
index 87c4a409507..4773634506d 100644
--- a/lisp/emacs-lisp/trace.el
+++ b/lisp/emacs-lisp/trace.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/unsafep.el b/lisp/emacs-lisp/unsafep.el
index 00e51f09bad..bf52acef382 100644
--- a/lisp/emacs-lisp/unsafep.el
+++ b/lisp/emacs-lisp/unsafep.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lisp/warnings.el b/lisp/emacs-lisp/warnings.el
index 99b0b3f3448..2dfaea307be 100644
--- a/lisp/emacs-lisp/warnings.el
+++ b/lisp/emacs-lisp/warnings.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emacs-lock.el b/lisp/emacs-lock.el
index dc93f093f9e..8ebf2f54a2e 100644
--- a/lisp/emacs-lock.el
+++ b/lisp/emacs-lock.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emulation/crisp.el b/lisp/emulation/crisp.el
index 106eff8e631..f267f6fa0ab 100644
--- a/lisp/emulation/crisp.el
+++ b/lisp/emulation/crisp.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emulation/cua-base.el b/lisp/emulation/cua-base.el
index da0ace34404..337be13e2e5 100644
--- a/lisp/emulation/cua-base.el
+++ b/lisp/emulation/cua-base.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emulation/cua-gmrk.el b/lisp/emulation/cua-gmrk.el
index 9f4469eff0f..6dc4d179d3d 100644
--- a/lisp/emulation/cua-gmrk.el
+++ b/lisp/emulation/cua-gmrk.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emulation/cua-rect.el b/lisp/emulation/cua-rect.el
index 7735302339f..226f696dad2 100644
--- a/lisp/emulation/cua-rect.el
+++ b/lisp/emulation/cua-rect.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emulation/edt-lk201.el b/lisp/emulation/edt-lk201.el
index 54cb1b763e0..41ef7e86498 100644
--- a/lisp/emulation/edt-lk201.el
+++ b/lisp/emulation/edt-lk201.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emulation/edt-mapper.el b/lisp/emulation/edt-mapper.el
index deae60a9714..9cf377f5645 100644
--- a/lisp/emulation/edt-mapper.el
+++ b/lisp/emulation/edt-mapper.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emulation/edt-pc.el b/lisp/emulation/edt-pc.el
index 309f03615cf..0d6a4964813 100644
--- a/lisp/emulation/edt-pc.el
+++ b/lisp/emulation/edt-pc.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emulation/edt-vt100.el b/lisp/emulation/edt-vt100.el
index e6321ddc2ce..4e094a5f703 100644
--- a/lisp/emulation/edt-vt100.el
+++ b/lisp/emulation/edt-vt100.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emulation/edt.el b/lisp/emulation/edt.el
index 45e26a1e23e..44067dba1f2 100644
--- a/lisp/emulation/edt.el
+++ b/lisp/emulation/edt.el
@@ -11,7 +11,7 @@
;; 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
+;; by the Free Software Foundation; either version 3, or (at your
;; option) any later version.
;; GNU Emacs is distributed in the hope that it will be useful, but
diff --git a/lisp/emulation/keypad.el b/lisp/emulation/keypad.el
index 28054c2dcb3..413f5e063df 100644
--- a/lisp/emulation/keypad.el
+++ b/lisp/emulation/keypad.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emulation/pc-mode.el b/lisp/emulation/pc-mode.el
index ce58205ba93..6e04d678f69 100644
--- a/lisp/emulation/pc-mode.el
+++ b/lisp/emulation/pc-mode.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emulation/pc-select.el b/lisp/emulation/pc-select.el
index d6f7fdc2cc1..e74556b5a5c 100644
--- a/lisp/emulation/pc-select.el
+++ b/lisp/emulation/pc-select.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emulation/tpu-edt.el b/lisp/emulation/tpu-edt.el
index 68e1561ae4d..f1cdc0ca864 100644
--- a/lisp/emulation/tpu-edt.el
+++ b/lisp/emulation/tpu-edt.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emulation/tpu-extras.el b/lisp/emulation/tpu-extras.el
index e368d7b963f..019896c0eb2 100644
--- a/lisp/emulation/tpu-extras.el
+++ b/lisp/emulation/tpu-extras.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emulation/tpu-mapper.el b/lisp/emulation/tpu-mapper.el
index eeaa5c7c560..3e5af7a38bd 100644
--- a/lisp/emulation/tpu-mapper.el
+++ b/lisp/emulation/tpu-mapper.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emulation/vip.el b/lisp/emulation/vip.el
index 33cabd73ca7..c2d00a8ffba 100644
--- a/lisp/emulation/vip.el
+++ b/lisp/emulation/vip.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emulation/viper-cmd.el b/lisp/emulation/viper-cmd.el
index f4c0650b1c8..8dd22e9ea1f 100644
--- a/lisp/emulation/viper-cmd.el
+++ b/lisp/emulation/viper-cmd.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emulation/viper-ex.el b/lisp/emulation/viper-ex.el
index 447ee62533c..fda882ae6a2 100644
--- a/lisp/emulation/viper-ex.el
+++ b/lisp/emulation/viper-ex.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emulation/viper-init.el b/lisp/emulation/viper-init.el
index 4a1bae82711..2b0e886b9cb 100644
--- a/lisp/emulation/viper-init.el
+++ b/lisp/emulation/viper-init.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emulation/viper-keym.el b/lisp/emulation/viper-keym.el
index 1d158274198..ac7231a3cac 100644
--- a/lisp/emulation/viper-keym.el
+++ b/lisp/emulation/viper-keym.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emulation/viper-macs.el b/lisp/emulation/viper-macs.el
index 5bd43a29a0c..ff046601a1b 100644
--- a/lisp/emulation/viper-macs.el
+++ b/lisp/emulation/viper-macs.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emulation/viper-mous.el b/lisp/emulation/viper-mous.el
index 59a83a076b6..e95e80aa4e0 100644
--- a/lisp/emulation/viper-mous.el
+++ b/lisp/emulation/viper-mous.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emulation/viper-util.el b/lisp/emulation/viper-util.el
index eef92106de2..eebf09aed22 100644
--- a/lisp/emulation/viper-util.el
+++ b/lisp/emulation/viper-util.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emulation/viper.el b/lisp/emulation/viper.el
index a42e7f1eb91..63cafb4a734 100644
--- a/lisp/emulation/viper.el
+++ b/lisp/emulation/viper.el
@@ -16,7 +16,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/emulation/ws-mode.el b/lisp/emulation/ws-mode.el
index 3df3a7333a1..ee14d587e22 100644
--- a/lisp/emulation/ws-mode.el
+++ b/lisp/emulation/ws-mode.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/env.el b/lisp/env.el
index f2609cc6784..bebfed3fed6 100644
--- a/lisp/env.el
+++ b/lisp/env.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/ChangeLog b/lisp/erc/ChangeLog
index 33206ab6cd9..a5b2a8100a8 100644
--- a/lisp/erc/ChangeLog
+++ b/lisp/erc/ChangeLog
@@ -1,3 +1,13 @@
+2007-07-30 Michael Olson <mwolson@gnu.org>
+
+ * erc-nicklist.el: Remove from the Emacs source tree. This file
+ is not release quality, and relies heavily on a module which
+ cannot be distributed with ERC due to licensing reasons.
+
+2007-07-25 Glenn Morris <rgm@gnu.org>
+
+ * Relicense all FSF files to GPLv3 or later.
+
2007-06-14 Juanma Barranquero <lekktu@gmail.com>
* erc-goodies.el (erc-scroll-to-bottom): Remove redundant check.
@@ -367,7 +377,7 @@ See ChangeLog.06 for earlier changes.
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)
+ the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/ChangeLog.01 b/lisp/erc/ChangeLog.01
index 51373669902..0700567a81e 100644
--- a/lisp/erc/ChangeLog.01
+++ b/lisp/erc/ChangeLog.01
@@ -1041,7 +1041,7 @@
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)
+ the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/ChangeLog.02 b/lisp/erc/ChangeLog.02
index 811199b8e38..5b5acdbe8f0 100644
--- a/lisp/erc/ChangeLog.02
+++ b/lisp/erc/ChangeLog.02
@@ -2602,7 +2602,7 @@ See ChangeLog.01 for earlier changes.
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)
+ the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/ChangeLog.03 b/lisp/erc/ChangeLog.03
index be68faf255d..e0367e52acc 100644
--- a/lisp/erc/ChangeLog.03
+++ b/lisp/erc/ChangeLog.03
@@ -2146,7 +2146,7 @@ See ChangeLog.02 for earlier changes.
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)
+ the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/ChangeLog.04 b/lisp/erc/ChangeLog.04
index b8cb4298787..63eb563255c 100644
--- a/lisp/erc/ChangeLog.04
+++ b/lisp/erc/ChangeLog.04
@@ -2075,7 +2075,7 @@ See ChangeLog.03 for earlier changes.
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)
+ the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/ChangeLog.05 b/lisp/erc/ChangeLog.05
index 12a51bb44ed..68224cde8ef 100644
--- a/lisp/erc/ChangeLog.05
+++ b/lisp/erc/ChangeLog.05
@@ -1223,7 +1223,7 @@ See ChangeLog.04 for earlier changes.
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)
+ the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/ChangeLog.06 b/lisp/erc/ChangeLog.06
index f7d891cb5f6..08180f19b0f 100644
--- a/lisp/erc/ChangeLog.06
+++ b/lisp/erc/ChangeLog.06
@@ -1436,7 +1436,7 @@ See ChangeLog.05 for earlier changes.
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)
+ the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/erc-autoaway.el b/lisp/erc/erc-autoaway.el
index 91a1150802b..c70beb112e2 100644
--- a/lisp/erc/erc-autoaway.el
+++ b/lisp/erc/erc-autoaway.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/erc-backend.el b/lisp/erc/erc-backend.el
index 08cb738d360..349f9137066 100644
--- a/lisp/erc/erc-backend.el
+++ b/lisp/erc/erc-backend.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/erc-button.el b/lisp/erc/erc-button.el
index 435c72bba23..35a20d5279f 100644
--- a/lisp/erc/erc-button.el
+++ b/lisp/erc/erc-button.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/erc-capab.el b/lisp/erc/erc-capab.el
index b7ccade02e0..27410296491 100644
--- a/lisp/erc/erc-capab.el
+++ b/lisp/erc/erc-capab.el
@@ -4,7 +4,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/erc-compat.el b/lisp/erc/erc-compat.el
index dcfcfe84c98..8be3bed1a78 100644
--- a/lisp/erc/erc-compat.el
+++ b/lisp/erc/erc-compat.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/erc-dcc.el b/lisp/erc/erc-dcc.el
index 2c906af4516..ed69e4553f5 100644
--- a/lisp/erc/erc-dcc.el
+++ b/lisp/erc/erc-dcc.el
@@ -14,7 +14,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/erc-ezbounce.el b/lisp/erc/erc-ezbounce.el
index f63682c51ff..58d886a06a9 100644
--- a/lisp/erc/erc-ezbounce.el
+++ b/lisp/erc/erc-ezbounce.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/erc-fill.el b/lisp/erc/erc-fill.el
index fc1c71babdf..98180e98150 100644
--- a/lisp/erc/erc-fill.el
+++ b/lisp/erc/erc-fill.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/erc-goodies.el b/lisp/erc/erc-goodies.el
index 6820f91628a..49a04513733 100644
--- a/lisp/erc/erc-goodies.el
+++ b/lisp/erc/erc-goodies.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/erc-hecomplete.el b/lisp/erc/erc-hecomplete.el
index e6f91ce8998..6876637c7d7 100644
--- a/lisp/erc/erc-hecomplete.el
+++ b/lisp/erc/erc-hecomplete.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/erc-ibuffer.el b/lisp/erc/erc-ibuffer.el
index 25ad1319bd6..ae256b877fa 100644
--- a/lisp/erc/erc-ibuffer.el
+++ b/lisp/erc/erc-ibuffer.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/erc-identd.el b/lisp/erc/erc-identd.el
index 8a70a743edb..4b72ee171b3 100644
--- a/lisp/erc/erc-identd.el
+++ b/lisp/erc/erc-identd.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/erc-imenu.el b/lisp/erc/erc-imenu.el
index 5e005181b7b..cd5923f2449 100644
--- a/lisp/erc/erc-imenu.el
+++ b/lisp/erc/erc-imenu.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/erc-join.el b/lisp/erc/erc-join.el
index fb59cd905a6..dcc7e7f7c9e 100644
--- a/lisp/erc/erc-join.el
+++ b/lisp/erc/erc-join.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/erc-lang.el b/lisp/erc/erc-lang.el
index c4d103a0f4a..e61156f3d5a 100644
--- a/lisp/erc/erc-lang.el
+++ b/lisp/erc/erc-lang.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/erc-log.el b/lisp/erc/erc-log.el
index 9801192bca0..194f8ae6bf1 100644
--- a/lisp/erc/erc-log.el
+++ b/lisp/erc/erc-log.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/erc-match.el b/lisp/erc/erc-match.el
index 35ba1b13492..c147b6566f8 100644
--- a/lisp/erc/erc-match.el
+++ b/lisp/erc/erc-match.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/erc-menu.el b/lisp/erc/erc-menu.el
index 888da702d62..dd2d9c2a666 100644
--- a/lisp/erc/erc-menu.el
+++ b/lisp/erc/erc-menu.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/erc-netsplit.el b/lisp/erc/erc-netsplit.el
index b4c26b1bb88..83bc0dffc0c 100644
--- a/lisp/erc/erc-netsplit.el
+++ b/lisp/erc/erc-netsplit.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/erc-networks.el b/lisp/erc/erc-networks.el
index 4631ceae3ae..28f6f0d7722 100644
--- a/lisp/erc/erc-networks.el
+++ b/lisp/erc/erc-networks.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/erc-nicklist.el b/lisp/erc/erc-nicklist.el
deleted file mode 100644
index f37b8eab996..00000000000
--- a/lisp/erc/erc-nicklist.el
+++ /dev/null
@@ -1,414 +0,0 @@
-;;; erc-nicklist.el --- Display channel nicknames in a side buffer.
-
-;; Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
-
-;; Filename: erc-nicklist.el
-;; Author: Lawrence Mitchell <wence@gmx.li>
-;; Created: 2004-04-30
-;; Keywords: IRC chat client Internet
-
-;; 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.
-
-;;; Commentary:
-;;
-;; This provides a minimal mIRC style nicklist buffer for ERC. To
-;; activate, do M-x erc-nicklist RET in the channel buffer you want
-;; the nicklist to appear for. To close and quit the nicklist
-;; buffer, do M-x erc-nicklist-quit RET from within the nicklist buffer.
-;;
-;; TODO:
-;; o Somehow associate nicklist windows with channel windows so they
-;; appear together, and if one gets buried, then the other does.
-;;
-;; o Make "Query" and "Message" work.
-;;
-;; o Prettify the actual list of nicks in some way.
-;;
-;; o Add a proper erc-module that people can turn on and off, figure
-;; out a way of creating the nicklist window at an appropriate time
-;; --- probably in `erc-join-hook'.
-;;
-;; o Ensure XEmacs compatibility --- the mouse-menu support is likely
-;; broken.
-;;
-;; o Add option to display in a separate frame --- will again need to
-;; be able to associate the nicklist with the currently active
-;; channel buffer or something similar.
-;;
-;; o Allow toggling of visibility of nicklist via ERC commands.
-
-;;; History:
-;;
-
-;; Changes by Edgar Gonçalves <edgar.goncalves@inesc-id.pt>
-;; Jun 25 2005:
-;; - images are changed to a standard set of names.
-;; - /images now contain gaim's status icons.
-;; May 31 2005:
-;; - tooltips are improved. they try to access bbdb for a nice nick!
-;; Apr 26 2005:
-;; - erc-nicklist-channel-users-info was fixed (sorting bug)
-;; - Away names don't need parenthesis when using icons
-;; Apr 26 2005:
-;; - nicks can display icons of their connection type (msn, icq, for now)
-;; Mar 15 2005:
-;; - nicks now are different for unvoiced and op users
-;; - nicks now have tooltips displaying more info
-;; Mar 18 2005:
-;; - queries now work ok, both on menu and keyb shortcut RET.
-;; - nicklist is now sorted ignoring the case. Voiced nicks will
-;; appear according to `erc-nicklist-voiced-position'.
-
-;;; Code:
-
-(require 'erc)
-(condition-case nil
- (require 'erc-bbdb)
- (error nil))
-(eval-when-compile (require 'cl))
-
-(defgroup erc-nicklist nil
- "Display a list of nicknames in a separate window."
- :group 'erc)
-
-(defcustom erc-nicklist-use-icons t
- "*If non-nil, display an icon instead of the name of the chat medium.
-By \"chat medium\", we mean IRC, AOL, MSN, ICQ, etc."
- :group 'erc-nicklist
- :type 'boolean)
-
-(defcustom erc-nicklist-icons-directory
- (concat default-directory "images/")
- "*Directory of the PNG files for chat icons.
-Icons are displayed if `erc-nicklist-use-icons' is non-nil."
- :group 'erc-nicklist
- :type 'directory)
-
-(defcustom erc-nicklist-voiced-position 'bottom
- "*Position of voiced nicks in the nicklist.
-The value can be `top', `bottom' or nil (don't sort)."
- :group 'erc-nicklist
- :type '(choice
- (const :tag "Top" 'top)
- (const :tag "Bottom" 'bottom)
- (const :tag "Mixed" nil)))
-
-(defcustom erc-nicklist-window-size 20.0
- "*The size of the nicklist window.
-
-This specifies a percentage of the channel window width.
-
-A negative value means the nicklist window appears on the left of the
-channel window, and vice versa."
- :group 'erc-nicklist
- :type 'float)
-
-
-(defun erc-nicklist-buffer-name (&optional buffer)
- "Return the buffer name for a nicklist associated with BUFFER.
-
-If BUFFER is nil, use the value of `current-buffer'."
- (format " *%s-nicklist*" (buffer-name (or buffer (current-buffer)))))
-
-(defun erc-nicklist-make-window ()
- "Create an ERC nicklist window.
-
-See also `erc-nicklist-window-size'."
- (let ((width (floor (* (window-width) (/ erc-nicklist-window-size 100.0))))
- (buffer (erc-nicklist-buffer-name))
- window)
- (split-window-horizontally (- width))
- (setq window (next-window))
- (set-window-buffer window (get-buffer-create buffer))
- (with-current-buffer buffer
- (set-window-dedicated-p window t))))
-
-
-(defvar erc-nicklist-images-alist '()
- "Alist that maps a connection type to an icon.")
-
-(defun erc-nicklist-insert-medium-name-or-icon (host channel is-away)
- "Inserts an icon or a string identifying the current host type.
-This is configured using `erc-nicklist-use-icons' and
-`erc-nicklist-icons-directory'."
- ;; identify the network (for bitlebee usage):
- (let ((bitlbee-p (save-match-data
- (string-match "\\`&bitlbee\\b"
- (buffer-name channel)))))
- (cond ((and bitlbee-p
- (string= "login.icq.com" host))
- (if erc-nicklist-use-icons
- (if is-away
- (insert-image (cdr (assoc 'icq-away
- erc-nicklist-images-alist)))
- (insert-image (cdr (assoc 'icq
- erc-nicklist-images-alist))))
- (insert "ICQ")))
- (bitlbee-p
- (if erc-nicklist-use-icons
- (if is-away
- (insert-image (cdr (assoc 'msn-away
- erc-nicklist-images-alist)))
- (insert-image (cdr (assoc 'msn
- erc-nicklist-images-alist))))
- (insert "MSN")))
- (t
- (if erc-nicklist-use-icons
- (if is-away
- (insert-image (cdr (assoc 'irc-away
- erc-nicklist-images-alist)))
- (insert-image (cdr (assoc 'irc
- erc-nicklist-images-alist))))
- (insert "IRC"))))
- (insert " ")))
-
-(defun erc-nicklist-search-for-nick (finger-host)
- "Return the bitlbee-nick field for this contact given FINGER-HOST.
-Seach for the BBDB record of this contact. If not found, return nil."
- (when (boundp 'erc-bbdb-bitlbee-name-field)
- (let ((record (car
- (erc-member-if
- #'(lambda (r)
- (let ((fingers (bbdb-record-finger-host r)))
- (when fingers
- (string-match finger-host
- (car (bbdb-record-finger-host r))))))
- (bbdb-records)))))
- (when record
- (bbdb-get-field record erc-bbdb-bitlbee-name-field)))))
-
-(defun erc-nicklist-insert-contents (channel)
- "Insert the nicklist contents, with text properties and the optional images."
- (setq buffer-read-only nil)
- (erase-buffer)
- (dolist (u (erc-nicklist-channel-users-info channel))
- (let* ((server-user (car u))
- (channel-user (cdr u))
- (nick (erc-server-user-nickname server-user))
- (host (erc-server-user-host server-user))
- (login (erc-server-user-login server-user))
- (full-name(erc-server-user-full-name server-user))
- (info (erc-server-user-info server-user))
- (channels (erc-server-user-buffers server-user))
- (op (erc-channel-user-op channel-user))
- (voice (erc-channel-user-voice channel-user))
- (bbdb-nick (or (erc-nicklist-search-for-nick
- (concat login "@" host))
- ""))
- (away-status (if voice "" "\n(Away)"))
- (balloon-text (concat bbdb-nick (if (string= "" bbdb-nick)
- "" "\n")
- "Login: " login "@" host
- away-status)))
- (erc-nicklist-insert-medium-name-or-icon host channel (not voice))
- (unless (or voice erc-nicklist-use-icons)
- (setq nick (concat "(" nick ")")))
- (when op
- (setq nick (concat nick " (OP)")))
- (insert (erc-propertize nick
- 'erc-nicklist-nick nick
- 'mouse-face 'highlight
- 'erc-nicklist-channel channel
- 'help-echo balloon-text)
- "\n")))
- (erc-nicklist-mode))
-
-
-(defun erc-nicklist ()
- "Create an ERC nicklist buffer."
- (interactive)
- (let ((channel (current-buffer)))
- (unless (or (not erc-nicklist-use-icons)
- erc-nicklist-images-alist)
- (setq erc-nicklist-images-alist
- `((msn . ,(create-image (concat erc-nicklist-icons-directory
- "msn-online.png")))
- (msn-away . ,(create-image (concat erc-nicklist-icons-directory
- "msn-offline.png")))
- (irc . ,(create-image (concat erc-nicklist-icons-directory
- "irc-online.png")))
- (irc-away . ,(create-image (concat erc-nicklist-icons-directory
- "irc-offline.png")))
- (icq . ,(create-image (concat erc-nicklist-icons-directory
- "icq-online.png")))
- (icq-away . ,(create-image (concat erc-nicklist-icons-directory
- "icq-offline.png"))))))
- (erc-nicklist-make-window)
- (with-current-buffer (get-buffer (erc-nicklist-buffer-name channel))
- (erc-nicklist-insert-contents channel)))
- (add-hook 'erc-channel-members-changed-hook #'erc-nicklist-update))
-
-(defun erc-nicklist-update ()
- "Update the ERC nicklist buffer."
- (let ((b (get-buffer (erc-nicklist-buffer-name)))
- (channel (current-buffer)))
- (when b
- (with-current-buffer b
- (erc-nicklist-insert-contents channel)))))
-
-(defvar erc-nicklist-mode-map
- (let ((map (make-sparse-keymap)))
- (define-key map (kbd "<down-mouse-3>") 'erc-nicklist-menu)
- (define-key map "\C-j" 'erc-nicklist-kbd-menu)
- (define-key map "q" 'erc-nicklist-quit)
- (define-key map (kbd "RET") 'erc-nicklist-kbd-cmd-QUERY)
- map)
- "Keymap for `erc-nicklist-mode'.")
-
-(define-derived-mode erc-nicklist-mode fundamental-mode
- "Nicklist"
- "Major mode for the ERC nicklist buffer."
- (setq buffer-read-only t))
-
-(defun erc-nicklist-call-erc-command (command point buffer window)
- "Call an ERC COMMAND.
-
-Depending on what COMMAND is, it's called with one of POINT, BUFFER,
-or WINDOW as arguments."
- (when command
- (let* ((p (text-properties-at point))
- (b (plist-get p 'erc-nicklist-channel)))
- (if (memq command '(erc-nicklist-quit ignore))
- (funcall command window)
- ;; EEEK! Horrble, but it's the only way we can ensure the
- ;; response goes to the correct buffer.
- (erc-set-active-buffer b)
- (switch-to-buffer-other-window b)
- (funcall command (plist-get p 'erc-nicklist-nick))))))
-
-(defun erc-nicklist-cmd-QUERY (user &optional server)
- "Opens a query buffer with USER."
- ;; FIXME: find a way to switch to that buffer afterwards...
- (let ((send (if server
- (format "QUERY %s %s" user server)
- (format "QUERY %s" user))))
- (erc-cmd-QUERY user)
- t))
-
-(defun erc-nicklist-kbd-cmd-QUERY (&optional window)
- (interactive)
- (let* ((p (text-properties-at (point)))
- (server (plist-get p 'erc-nicklist-channel))
- (nick (plist-get p 'erc-nicklist-nick))
- (nick (or (and (string-match "(\\(.*\\))" nick)
- (match-string 1 nick))
- nick))
- (nick (or (and (string-match "\\+\\(.*\\)" nick)
- (match-string 1 nick))
- nick))
- (send (format "QUERY %s %s" nick server)))
- (switch-to-buffer-other-window server)
- (erc-cmd-QUERY nick)))
-
-
-(defvar erc-nicklist-menu
- (let ((map (make-sparse-keymap "Action")))
- (define-key map [erc-cmd-WHOIS]
- '("Whois" . erc-cmd-WHOIS))
- (define-key map [erc-cmd-DEOP]
- '("Deop" . erc-cmd-DEOP))
- (define-key map [erc-cmd-MSG]
- '("Message" . erc-cmd-MSG)) ;; TODO!
- (define-key map [erc-nicklist-cmd-QUERY]
- '("Query" . erc-nicklist-kbd-cmd-QUERY))
- (define-key map [ignore]
- '("Cancel" . ignore))
- (define-key map [erc-nicklist-quit]
- '("Close nicklist" . erc-nicklist-quit))
- map)
- "Menu keymap for the ERC nicklist.")
-
-(defun erc-nicklist-quit (&optional window)
- "Delete the ERC nicklist.
-
-Deletes WINDOW and stops updating the nicklist buffer."
- (interactive)
- (let ((b (window-buffer window)))
- (with-current-buffer b
- (set-buffer-modified-p nil)
- (kill-this-buffer)
- (remove-hook 'erc-channel-members-changed-hook 'erc-nicklist-update))))
-
-
-(defun erc-nicklist-kbd-menu ()
- "Show the ERC nicklist menu."
- (interactive)
- (let* ((point (point))
- (window (selected-window))
- (buffer (current-buffer)))
- (with-current-buffer buffer
- (erc-nicklist-call-erc-command
- (car (x-popup-menu point
- erc-nicklist-menu))
- point
- buffer
- window))))
-
-(defun erc-nicklist-menu (&optional arg)
- "Show the ERC nicklist menu.
-
-ARG is a parametrized event (see `interactive')."
- (interactive "e")
- (let* ((point (nth 1 (cadr arg)))
- (window (car (cadr arg)))
- (buffer (window-buffer window)))
- (with-current-buffer buffer
- (erc-nicklist-call-erc-command
- (car (x-popup-menu arg
- erc-nicklist-menu))
- point
- buffer
- window))))
-
-
-(defun erc-nicklist-channel-users-info (channel)
- "Return a nick-sorted list of all users on CHANNEL.
-Result are elements in the form (SERVER-USER . CHANNEL-USER). The
-list has all the voiced users according to
-`erc-nicklist-voiced-position'."
- (let* ((nicks (erc-sort-channel-users-alphabetically
- (with-current-buffer channel (erc-get-channel-user-list)))))
- (if erc-nicklist-voiced-position
- (let ((voiced-nicks (erc-remove-if-not
- #'(lambda (x)
- (null (erc-channel-user-voice (cdr x))))
- nicks))
- (devoiced-nicks (erc-remove-if-not
- #'(lambda (x)
- (erc-channel-user-voice
- (cdr x)))
- nicks)))
- (cond ((eq erc-nicklist-voiced-position 'top)
- (append devoiced-nicks voiced-nicks))
- ((eq erc-nicklist-voiced-position 'bottom)
- (append voiced-nicks devoiced-nicks))))
- nicks)))
-
-
-
-(provide 'erc-nicklist)
-
-;;; erc-nicklist.el ends here
-;;
-;; Local Variables:
-;; indent-tabs-mode: t
-;; tab-width: 8
-;; coding: utf-8
-;; End:
-
-;; arch-tag: db37a256-87a7-4544-bd90-e5f16c9f5ca5
diff --git a/lisp/erc/erc-notify.el b/lisp/erc/erc-notify.el
index d34e38ade43..9216631a9b4 100644
--- a/lisp/erc/erc-notify.el
+++ b/lisp/erc/erc-notify.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/erc-page.el b/lisp/erc/erc-page.el
index de13c6037a6..535c871956a 100644
--- a/lisp/erc/erc-page.el
+++ b/lisp/erc/erc-page.el
@@ -6,7 +6,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/erc-pcomplete.el b/lisp/erc/erc-pcomplete.el
index f207bcc1b8b..a5a1bbaaf9e 100644
--- a/lisp/erc/erc-pcomplete.el
+++ b/lisp/erc/erc-pcomplete.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/erc-replace.el b/lisp/erc/erc-replace.el
index 5e63f8d7d4f..8bc5fe3ba8d 100644
--- a/lisp/erc/erc-replace.el
+++ b/lisp/erc/erc-replace.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/erc-ring.el b/lisp/erc/erc-ring.el
index 95c313a23f6..ae526c193c3 100644
--- a/lisp/erc/erc-ring.el
+++ b/lisp/erc/erc-ring.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/erc-services.el b/lisp/erc/erc-services.el
index a2cc1b19782..e6f6c40d7e8 100644
--- a/lisp/erc/erc-services.el
+++ b/lisp/erc/erc-services.el
@@ -6,7 +6,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/erc-sound.el b/lisp/erc/erc-sound.el
index fdac1cc3be0..4d3d792b1b8 100644
--- a/lisp/erc/erc-sound.el
+++ b/lisp/erc/erc-sound.el
@@ -6,7 +6,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/erc-speedbar.el b/lisp/erc/erc-speedbar.el
index 0d88589838e..b11296cccca 100644
--- a/lisp/erc/erc-speedbar.el
+++ b/lisp/erc/erc-speedbar.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/erc-spelling.el b/lisp/erc/erc-spelling.el
index a15ca17987f..3445be363ba 100644
--- a/lisp/erc/erc-spelling.el
+++ b/lisp/erc/erc-spelling.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/erc-stamp.el b/lisp/erc/erc-stamp.el
index 0b8017ffe0b..d67dffeaede 100644
--- a/lisp/erc/erc-stamp.el
+++ b/lisp/erc/erc-stamp.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/erc-track.el b/lisp/erc/erc-track.el
index 4a8b673d46b..f72a5be1de1 100644
--- a/lisp/erc/erc-track.el
+++ b/lisp/erc/erc-track.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/erc-truncate.el b/lisp/erc/erc-truncate.el
index 440dc870e2c..599e49e706a 100644
--- a/lisp/erc/erc-truncate.el
+++ b/lisp/erc/erc-truncate.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/erc-xdcc.el b/lisp/erc/erc-xdcc.el
index ea1fa27bf4b..0aed1122b0e 100644
--- a/lisp/erc/erc-xdcc.el
+++ b/lisp/erc/erc-xdcc.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el
index d6875ffc4af..d5a823ac825 100644
--- a/lisp/erc/erc.el
+++ b/lisp/erc/erc.el
@@ -17,7 +17,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/eshell/em-alias.el b/lisp/eshell/em-alias.el
index d2d5deae2f7..8ecc335523b 100644
--- a/lisp/eshell/em-alias.el
+++ b/lisp/eshell/em-alias.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/eshell/em-banner.el b/lisp/eshell/em-banner.el
index 51d547a71c4..17d930a055d 100644
--- a/lisp/eshell/em-banner.el
+++ b/lisp/eshell/em-banner.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/eshell/em-basic.el b/lisp/eshell/em-basic.el
index b727bb05932..458f6918de4 100644
--- a/lisp/eshell/em-basic.el
+++ b/lisp/eshell/em-basic.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/eshell/em-cmpl.el b/lisp/eshell/em-cmpl.el
index e0f39eea262..7247033a235 100644
--- a/lisp/eshell/em-cmpl.el
+++ b/lisp/eshell/em-cmpl.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/eshell/em-dirs.el b/lisp/eshell/em-dirs.el
index 2b308d5c6a1..0000cae5adf 100644
--- a/lisp/eshell/em-dirs.el
+++ b/lisp/eshell/em-dirs.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/eshell/em-glob.el b/lisp/eshell/em-glob.el
index 859a8a07c38..5d68fdf9437 100644
--- a/lisp/eshell/em-glob.el
+++ b/lisp/eshell/em-glob.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/eshell/em-hist.el b/lisp/eshell/em-hist.el
index 2fd0c485562..88e15423956 100644
--- a/lisp/eshell/em-hist.el
+++ b/lisp/eshell/em-hist.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/eshell/em-ls.el b/lisp/eshell/em-ls.el
index 0473ef22973..d6b4f3aed29 100644
--- a/lisp/eshell/em-ls.el
+++ b/lisp/eshell/em-ls.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/eshell/em-pred.el b/lisp/eshell/em-pred.el
index 71e34346d77..a7f68e4e222 100644
--- a/lisp/eshell/em-pred.el
+++ b/lisp/eshell/em-pred.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/eshell/em-prompt.el b/lisp/eshell/em-prompt.el
index 03c60988e58..ddbf74f5c42 100644
--- a/lisp/eshell/em-prompt.el
+++ b/lisp/eshell/em-prompt.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/eshell/em-rebind.el b/lisp/eshell/em-rebind.el
index c1488f47234..898f0b9d301 100644
--- a/lisp/eshell/em-rebind.el
+++ b/lisp/eshell/em-rebind.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/eshell/em-script.el b/lisp/eshell/em-script.el
index 92f077cd597..50fdc3ccccc 100644
--- a/lisp/eshell/em-script.el
+++ b/lisp/eshell/em-script.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/eshell/em-smart.el b/lisp/eshell/em-smart.el
index f9aed42e3ce..f99a64bd17d 100644
--- a/lisp/eshell/em-smart.el
+++ b/lisp/eshell/em-smart.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/eshell/em-term.el b/lisp/eshell/em-term.el
index bb405473239..541773a4b5b 100644
--- a/lisp/eshell/em-term.el
+++ b/lisp/eshell/em-term.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/eshell/em-unix.el b/lisp/eshell/em-unix.el
index 9c55fe16b6d..6dc02517ec1 100644
--- a/lisp/eshell/em-unix.el
+++ b/lisp/eshell/em-unix.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/eshell/em-xtra.el b/lisp/eshell/em-xtra.el
index 347ab69ff17..bd48afb6bd6 100644
--- a/lisp/eshell/em-xtra.el
+++ b/lisp/eshell/em-xtra.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/eshell/esh-arg.el b/lisp/eshell/esh-arg.el
index 9a5ead5ddff..011e2a55520 100644
--- a/lisp/eshell/esh-arg.el
+++ b/lisp/eshell/esh-arg.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/eshell/esh-cmd.el b/lisp/eshell/esh-cmd.el
index 2b48bad0166..d3194f3625a 100644
--- a/lisp/eshell/esh-cmd.el
+++ b/lisp/eshell/esh-cmd.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/eshell/esh-ext.el b/lisp/eshell/esh-ext.el
index 6951d580fdc..11090f97b83 100644
--- a/lisp/eshell/esh-ext.el
+++ b/lisp/eshell/esh-ext.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/eshell/esh-io.el b/lisp/eshell/esh-io.el
index f9684601fc4..897f9942d47 100644
--- a/lisp/eshell/esh-io.el
+++ b/lisp/eshell/esh-io.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/eshell/esh-maint.el b/lisp/eshell/esh-maint.el
index a0219beca63..61a4ef9510d 100644
--- a/lisp/eshell/esh-maint.el
+++ b/lisp/eshell/esh-maint.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/eshell/esh-mode.el b/lisp/eshell/esh-mode.el
index c6abda631dc..e6e47d6b980 100644
--- a/lisp/eshell/esh-mode.el
+++ b/lisp/eshell/esh-mode.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/eshell/esh-module.el b/lisp/eshell/esh-module.el
index 822caf54933..17067197909 100644
--- a/lisp/eshell/esh-module.el
+++ b/lisp/eshell/esh-module.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/eshell/esh-opt.el b/lisp/eshell/esh-opt.el
index 8e7b44174ce..41e12e70b43 100644
--- a/lisp/eshell/esh-opt.el
+++ b/lisp/eshell/esh-opt.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/eshell/esh-proc.el b/lisp/eshell/esh-proc.el
index 96d8255a3ab..fb226cf51fb 100644
--- a/lisp/eshell/esh-proc.el
+++ b/lisp/eshell/esh-proc.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/eshell/esh-test.el b/lisp/eshell/esh-test.el
index ed1e75eb4df..b4d65fa1f5e 100644
--- a/lisp/eshell/esh-test.el
+++ b/lisp/eshell/esh-test.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/eshell/esh-util.el b/lisp/eshell/esh-util.el
index ce309aaaf9e..25afdc38506 100644
--- a/lisp/eshell/esh-util.el
+++ b/lisp/eshell/esh-util.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/eshell/esh-var.el b/lisp/eshell/esh-var.el
index b116df456bf..7c04b5a942a 100644
--- a/lisp/eshell/esh-var.el
+++ b/lisp/eshell/esh-var.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/eshell/eshell.el b/lisp/eshell/eshell.el
index d7910dc252d..23e36149174 100644
--- a/lisp/eshell/eshell.el
+++ b/lisp/eshell/eshell.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -77,7 +77,7 @@ the tasks accomplished by such tools."
;;
;; Eshell 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;;
;; This program is distributed in the hope that it will be useful, but
diff --git a/lisp/expand.el b/lisp/expand.el
index c34c18b4483..1ab71111f68 100644
--- a/lisp/expand.el
+++ b/lisp/expand.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ezimage.el b/lisp/ezimage.el
index aaf9cabb480..53b92c5172f 100644
--- a/lisp/ezimage.el
+++ b/lisp/ezimage.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/facemenu.el b/lisp/facemenu.el
index 44f184b12ee..26a0231bf1a 100644
--- a/lisp/facemenu.el
+++ b/lisp/facemenu.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/faces.el b/lisp/faces.el
index e5796272b0c..43d95672446 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ffap.el b/lisp/ffap.el
index 314d48e9ca8..80b94a4d3ba 100644
--- a/lisp/ffap.el
+++ b/lisp/ffap.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/filecache.el b/lisp/filecache.el
index 10942c77f5e..baa171d535a 100644
--- a/lisp/filecache.el
+++ b/lisp/filecache.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/files.el b/lisp/files.el
index e91a142f3b8..33e9f9eb12c 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/filesets.el b/lisp/filesets.el
index 8b18f910a66..ae605e6806c 100644
--- a/lisp/filesets.el
+++ b/lisp/filesets.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; This program is distributed in the hope that it will be useful,
diff --git a/lisp/find-dired.el b/lisp/find-dired.el
index 47655129e29..0a3de850762 100644
--- a/lisp/find-dired.el
+++ b/lisp/find-dired.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/find-file.el b/lisp/find-file.el
index 5b15e0d1692..accf918aada 100644
--- a/lisp/find-file.el
+++ b/lisp/find-file.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/find-lisp.el b/lisp/find-lisp.el
index 0dd35f23514..9b1f3275dfc 100644
--- a/lisp/find-lisp.el
+++ b/lisp/find-lisp.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/finder.el b/lisp/finder.el
index 96a806a2e1e..26830ae1c3a 100644
--- a/lisp/finder.el
+++ b/lisp/finder.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/flow-ctrl.el b/lisp/flow-ctrl.el
index 5ba5aa6be20..af70c78cf26 100644
--- a/lisp/flow-ctrl.el
+++ b/lisp/flow-ctrl.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/foldout.el b/lisp/foldout.el
index 73c8556ad5b..2f73b2ccf15 100644
--- a/lisp/foldout.el
+++ b/lisp/foldout.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/follow.el b/lisp/follow.el
index 9d688332588..87663fae9f7 100644
--- a/lisp/follow.el
+++ b/lisp/follow.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/font-core.el b/lisp/font-core.el
index 3edf2140393..7d7a65e83cc 100644
--- a/lisp/font-core.el
+++ b/lisp/font-core.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/font-lock.el b/lisp/font-lock.el
index 98489a1ff76..1cefd8bb87d 100644
--- a/lisp/font-lock.el
+++ b/lisp/font-lock.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/format.el b/lisp/format.el
index 287f2d7ce72..d029e3d4683 100644
--- a/lisp/format.el
+++ b/lisp/format.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/forms-d2.el b/lisp/forms-d2.el
index c7e50ef15e0..e6b6fd2e376 100644
--- a/lisp/forms-d2.el
+++ b/lisp/forms-d2.el
@@ -8,6 +8,21 @@
;; 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 3, 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.
+
;;; Commentary:
;; This sample forms exploit most of the features of forms mode.
diff --git a/lisp/forms.el b/lisp/forms.el
index 9f37ce04463..e06599a3073 100644
--- a/lisp/forms.el
+++ b/lisp/forms.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/frame.el b/lisp/frame.el
index 925b61ce754..cbb8de0571b 100644
--- a/lisp/frame.el
+++ b/lisp/frame.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -459,12 +459,12 @@ there (in decreasing order of priority)."
;; variable must be handled similarly.
(let ((users-of-initial
(filtered-frame-list
- (function (lambda (frame)
- (and (not (eq frame frame-initial-frame))
- (eq (window-frame
- (minibuffer-window frame))
- frame-initial-frame)))))))
- (if (or users-of-initial
+ (lambda (frame)
+ (and (not (eq frame frame-initial-frame))
+ (eq (window-frame
+ (minibuffer-window frame))
+ frame-initial-frame))))))
+ (if (or users-of-initial
(eq default-minibuffer-frame frame-initial-frame))
;; Choose an appropriate frame. Prefer frames which
@@ -472,11 +472,10 @@ there (in decreasing order of priority)."
(let* ((new-surrogate
(car
(or (filtered-frame-list
- (function
- (lambda (frame)
- (eq (cdr (assq 'minibuffer
- (frame-parameters frame)))
- 'only))))
+ (lambda (frame)
+ (eq (cdr (assq 'minibuffer
+ (frame-parameters frame)))
+ 'only)))
(minibuffer-frame-list))))
(new-minibuffer (minibuffer-window new-surrogate)))
@@ -485,14 +484,11 @@ there (in decreasing order of priority)."
;; Wean the frames using frame-initial-frame as
;; their minibuffer frame.
- (mapcar
- (function
- (lambda (frame)
- (modify-frame-parameters
- frame (list (cons 'minibuffer new-minibuffer)))))
- users-of-initial))))
-
- ;; Redirect events enqueued at this frame to the new frame.
+ (dolist (frame users-of-initial)
+ (modify-frame-parameters
+ frame (list (cons 'minibuffer new-minibuffer)))))))
+
+ ;; Redirect events enqueued at this frame to the new frame.
;; Is this a good idea?
(redirect-frame-focus frame-initial-frame new)
@@ -632,6 +628,36 @@ additional frame parameters."
(error "Invalid terminal type"))
(make-frame `((window-system . nil) (tty . ,tty) (tty-type . ,type) . ,parameters)))
+(defun close-display-connection (display)
+ "Close the connection to a display, deleting all its associated frames.
+For DISPLAY, specify either a frame or a display name (a string).
+If DISPLAY is nil, that stands for the selected frame's display."
+ (interactive
+ (list
+ (let* ((default (frame-parameter nil 'display))
+ (display (completing-read
+ (format "Close display (default %s): " default)
+ (delete-dups
+ (mapcar (lambda (frame)
+ (frame-parameter frame 'display))
+ (frame-list)))
+ nil t nil nil
+ default)))
+ (if (zerop (length display)) default display))))
+ (let ((frames (delq nil
+ (mapcar (lambda (frame)
+ (if (equal display
+ (frame-parameter frame 'display))
+ frame))
+ (frame-list)))))
+ (if (and (consp frames)
+ (not (y-or-n-p (if (cdr frames)
+ (format "Delete %s frames? " (length frames))
+ (format "Delete %s ? " (car frames))))))
+ (error "Abort!")
+ (mapc 'delete-frame frames)
+ (x-close-connection display))))
+
(defun make-frame-command ()
"Make a new frame, and select it if the terminal displays only one frame."
(interactive)
@@ -733,8 +759,8 @@ setup is for focus to follow the pointer."
(defun minibuffer-frame-list ()
"Return a list of all frames with their own minibuffers."
(filtered-frame-list
- (function (lambda (frame)
- (eq frame (window-frame (minibuffer-window frame)))))))
+ (lambda (frame)
+ (eq frame (window-frame (minibuffer-window frame))))))
(defun frames-on-display-list (&optional terminal)
"Return a list of all frames on TERMINAL.
@@ -902,11 +928,10 @@ where
ALIST is an association list specifying some of FRAME's parameters, and
WINDOW-CONFIG is a window configuration object for FRAME."
(cons 'frame-configuration
- (mapcar (function
- (lambda (frame)
- (list frame
- (frame-parameters frame)
- (current-window-configuration frame))))
+ (mapcar (lambda (frame)
+ (list frame
+ (frame-parameters frame)
+ (current-window-configuration frame)))
(frame-list))))
(defun set-frame-configuration (configuration &optional nodelete)
@@ -923,29 +948,28 @@ is given and non-nil, the unwanted frames are iconified instead."
(list 'frame-configuration-p configuration)))
(let ((config-alist (cdr configuration))
frames-to-delete)
- (mapcar (function
- (lambda (frame)
- (let ((parameters (assq frame config-alist)))
- (if parameters
- (progn
- (modify-frame-parameters
- frame
- ;; Since we can't set a frame's minibuffer status,
- ;; we might as well omit the parameter altogether.
- (let* ((parms (nth 1 parameters))
- (mini (assq 'minibuffer parms)))
- (if mini (setq parms (delq mini parms)))
- parms))
- (set-window-configuration (nth 2 parameters)))
- (setq frames-to-delete (cons frame frames-to-delete))))))
- (frame-list))
- (if nodelete
- ;; Note: making frames invisible here was tried
- ;; but led to some strange behavior--each time the frame
- ;; was made visible again, the window manager asked afresh
- ;; for where to put it.
- (mapcar 'iconify-frame frames-to-delete)
- (mapcar 'delete-frame frames-to-delete))))
+ (dolist (frame (frame-list))
+ (let ((parameters (assq frame config-alist)))
+ (if parameters
+ (progn
+ (modify-frame-parameters
+ frame
+ ;; Since we can't set a frame's minibuffer status,
+ ;; we might as well omit the parameter altogether.
+ (let* ((parms (nth 1 parameters))
+ (mini (assq 'minibuffer parms)))
+ (if mini (setq parms (delq mini parms)))
+ parms))
+ (set-window-configuration (nth 2 parameters)))
+ (setq frames-to-delete (cons frame frames-to-delete)))))
+ (mapc (if nodelete
+ ;; Note: making frames invisible here was tried
+ ;; but led to some strange behavior--each time the frame
+ ;; was made visible again, the window manager asked afresh
+ ;; for where to put it.
+ 'iconify-frame
+ 'delete-frame)
+ frames-to-delete)))
;;;; Convenience functions for accessing and interactively changing
;;;; frame parameters.
@@ -973,12 +997,11 @@ pixels) is kept by adjusting the numbers of the lines and columns."
(interactive
(let* ((completion-ignore-case t)
(font (completing-read "Font name: "
- (mapcar #'list
;; x-list-fonts will fail with an error
;; if this frame doesn't support fonts.
- (x-list-fonts "*" nil (selected-frame)))
- nil nil nil nil
- (frame-parameter nil 'font))))
+ (x-list-fonts "*" nil (selected-frame))
+ nil nil nil nil
+ (frame-parameter nil 'font))))
(list font current-prefix-arg)))
(let (fht fwd)
(if keep-size
diff --git a/lisp/fringe.el b/lisp/fringe.el
index 06df7f36388..7ea3e8a2b5d 100644
--- a/lisp/fringe.el
+++ b/lisp/fringe.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/generic-x.el b/lisp/generic-x.el
index b60c59c0f70..fbabf6e6996 100644
--- a/lisp/generic-x.el
+++ b/lisp/generic-x.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 455c20a7a65..83ca62ca0de 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,16 @@
+2007-07-25 Glenn Morris <rgm@gnu.org>
+
+ * Relicense all FSF files to GPLv3 or later.
+
+2007-07-24 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus-msg.el (gnus-summary-supersede-article)
+ (gnus-summary-resend-message-edit): Add Gcc header.
+ (gnus-summary-resend-bounced-mail): Ditto; search whole body for parent
+ article's Message-ID; refer parent article in summary buffer.
+
+ * message.el (message-bounce): Call mime-to-mml.
+
2007-07-21 Reiner Steib <Reiner.Steib@gmx.de>
* mm-uu.el (mm-uu-type-alist): Refer to mm-uu-configure-list in doc
@@ -4901,7 +4914,7 @@ See ChangeLog.2 for earlier changes.
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)
+ the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/ChangeLog.1 b/lisp/gnus/ChangeLog.1
index c6550dfbcf7..e0c6642ef44 100644
--- a/lisp/gnus/ChangeLog.1
+++ b/lisp/gnus/ChangeLog.1
@@ -3733,7 +3733,7 @@
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)
+ the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/ChangeLog.2 b/lisp/gnus/ChangeLog.2
index d4472992aeb..36f92c649a0 100644
--- a/lisp/gnus/ChangeLog.2
+++ b/lisp/gnus/ChangeLog.2
@@ -18864,7 +18864,7 @@ See ChangeLog.1 for earlier changes.
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)
+ the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/binhex.el b/lisp/gnus/binhex.el
index 5bca0be13c2..69866a9eacc 100644
--- a/lisp/gnus/binhex.el
+++ b/lisp/gnus/binhex.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/canlock.el b/lisp/gnus/canlock.el
index 3f51ad47ef0..fed5598104d 100644
--- a/lisp/gnus/canlock.el
+++ b/lisp/gnus/canlock.el
@@ -8,7 +8,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; This program is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/compface.el b/lisp/gnus/compface.el
index c146c93193b..344fdf81099 100644
--- a/lisp/gnus/compface.el
+++ b/lisp/gnus/compface.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/deuglify.el b/lisp/gnus/deuglify.el
index f3052130e8f..b1fdc9a2f0e 100644
--- a/lisp/gnus/deuglify.el
+++ b/lisp/gnus/deuglify.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/dig.el b/lisp/gnus/dig.el
index 97f149c76e1..9d62fdc9919 100644
--- a/lisp/gnus/dig.el
+++ b/lisp/gnus/dig.el
@@ -10,7 +10,7 @@
;; 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
+;; by the Free Software Foundation; either version 3, or (at your
;; option) any later version.
;; GNU Emacs is distributed in the hope that it will be useful, but
diff --git a/lisp/gnus/dns.el b/lisp/gnus/dns.el
index e7cd51f0308..fdbe9258686 100644
--- a/lisp/gnus/dns.el
+++ b/lisp/gnus/dns.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/earcon.el b/lisp/gnus/earcon.el
index 8a3560fac08..2ccf4fb34e1 100644
--- a/lisp/gnus/earcon.el
+++ b/lisp/gnus/earcon.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/flow-fill.el b/lisp/gnus/flow-fill.el
index 4ab2645878f..5c2cd65b503 100644
--- a/lisp/gnus/flow-fill.el
+++ b/lisp/gnus/flow-fill.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/format-spec.el b/lisp/gnus/format-spec.el
index a01b3d0e052..137603e42c9 100644
--- a/lisp/gnus/format-spec.el
+++ b/lisp/gnus/format-spec.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gmm-utils.el b/lisp/gnus/gmm-utils.el
index 9241e96d042..d7e3c344b0e 100644
--- a/lisp/gnus/gmm-utils.el
+++ b/lisp/gnus/gmm-utils.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-agent.el b/lisp/gnus/gnus-agent.el
index 7a18c42d7cd..7b98b1e045a 100644
--- a/lisp/gnus/gnus-agent.el
+++ b/lisp/gnus/gnus-agent.el
@@ -8,7 +8,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index 020bd283189..40de10187f3 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-async.el b/lisp/gnus/gnus-async.el
index 9b81e2e061d..3493d51950d 100644
--- a/lisp/gnus/gnus-async.el
+++ b/lisp/gnus/gnus-async.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-audio.el b/lisp/gnus/gnus-audio.el
index 51cee19c873..c4b3fdf7d60 100644
--- a/lisp/gnus/gnus-audio.el
+++ b/lisp/gnus/gnus-audio.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-bcklg.el b/lisp/gnus/gnus-bcklg.el
index 5eb349fa980..99a00eed778 100644
--- a/lisp/gnus/gnus-bcklg.el
+++ b/lisp/gnus/gnus-bcklg.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-cache.el b/lisp/gnus/gnus-cache.el
index 834dcbcc521..581a8db3227 100644
--- a/lisp/gnus/gnus-cache.el
+++ b/lisp/gnus/gnus-cache.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-cite.el b/lisp/gnus/gnus-cite.el
index cb6a4c81fbb..1611dd235f5 100644
--- a/lisp/gnus/gnus-cite.el
+++ b/lisp/gnus/gnus-cite.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-cus.el b/lisp/gnus/gnus-cus.el
index 80f810138e9..f1719eb04f4 100644
--- a/lisp/gnus/gnus-cus.el
+++ b/lisp/gnus/gnus-cus.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-delay.el b/lisp/gnus/gnus-delay.el
index 8113a11257b..e928dc78c8f 100644
--- a/lisp/gnus/gnus-delay.el
+++ b/lisp/gnus/gnus-delay.el
@@ -9,7 +9,7 @@
;; 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
+;; by the Free Software Foundation; either version 3, or (at your
;; option) any later version.
;; GNU Emacs is distributed in the hope that it will be useful, but
diff --git a/lisp/gnus/gnus-demon.el b/lisp/gnus/gnus-demon.el
index 2ff32f5709f..715e77a7099 100644
--- a/lisp/gnus/gnus-demon.el
+++ b/lisp/gnus/gnus-demon.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-diary.el b/lisp/gnus/gnus-diary.el
index d5bc9c3a05d..cc3c3815a1c 100644
--- a/lisp/gnus/gnus-diary.el
+++ b/lisp/gnus/gnus-diary.el
@@ -12,8 +12,8 @@
;; 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 of the License,
-;; or (at your option) any later version.
+;; by the Free Software Foundation; either version 3, 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
@@ -21,9 +21,9 @@
;; 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.
+;; 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.
;;; Commentary:
diff --git a/lisp/gnus/gnus-dired.el b/lisp/gnus/gnus-dired.el
index c1399ab0939..93c89aec3ea 100644
--- a/lisp/gnus/gnus-dired.el
+++ b/lisp/gnus/gnus-dired.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-draft.el b/lisp/gnus/gnus-draft.el
index c946c699c8c..287d71844af 100644
--- a/lisp/gnus/gnus-draft.el
+++ b/lisp/gnus/gnus-draft.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-dup.el b/lisp/gnus/gnus-dup.el
index 574631f90a9..0c2e1af0a94 100644
--- a/lisp/gnus/gnus-dup.el
+++ b/lisp/gnus/gnus-dup.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-eform.el b/lisp/gnus/gnus-eform.el
index bbe95ce1cc4..4dc5dde369a 100644
--- a/lisp/gnus/gnus-eform.el
+++ b/lisp/gnus/gnus-eform.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-ems.el b/lisp/gnus/gnus-ems.el
index 9b2ddc3ee88..bacf5581e0d 100644
--- a/lisp/gnus/gnus-ems.el
+++ b/lisp/gnus/gnus-ems.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-fun.el b/lisp/gnus/gnus-fun.el
index 481aeab3847..83b5904e80b 100644
--- a/lisp/gnus/gnus-fun.el
+++ b/lisp/gnus/gnus-fun.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-gl.el b/lisp/gnus/gnus-gl.el
index 99d4d463e17..98326ee2923 100644
--- a/lisp/gnus/gnus-gl.el
+++ b/lisp/gnus/gnus-gl.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el
index 0494649ac8a..7cbe86623da 100644
--- a/lisp/gnus/gnus-group.el
+++ b/lisp/gnus/gnus-group.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-int.el b/lisp/gnus/gnus-int.el
index faa2feb87c7..bbd997aee8a 100644
--- a/lisp/gnus/gnus-int.el
+++ b/lisp/gnus/gnus-int.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-kill.el b/lisp/gnus/gnus-kill.el
index 2f42192c93c..edf463b8a2e 100644
--- a/lisp/gnus/gnus-kill.el
+++ b/lisp/gnus/gnus-kill.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-logic.el b/lisp/gnus/gnus-logic.el
index 7a0ffaf549c..b944dbe3582 100644
--- a/lisp/gnus/gnus-logic.el
+++ b/lisp/gnus/gnus-logic.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-mh.el b/lisp/gnus/gnus-mh.el
index 0a38f6234fd..66321c0d3e8 100644
--- a/lisp/gnus/gnus-mh.el
+++ b/lisp/gnus/gnus-mh.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-ml.el b/lisp/gnus/gnus-ml.el
index 71183dda259..b72179645ac 100644
--- a/lisp/gnus/gnus-ml.el
+++ b/lisp/gnus/gnus-ml.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-mlspl.el b/lisp/gnus/gnus-mlspl.el
index 5e7644dd9e6..7f8323258ae 100644
--- a/lisp/gnus/gnus-mlspl.el
+++ b/lisp/gnus/gnus-mlspl.el
@@ -10,7 +10,7 @@
;; 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
+;; by the Free Software Foundation; either version 3, or (at your
;; option) any later version.
;; GNU Emacs is distributed in the hope that it will be useful, but
diff --git a/lisp/gnus/gnus-move.el b/lisp/gnus/gnus-move.el
index 9cde3b9226d..93fa5a6be08 100644
--- a/lisp/gnus/gnus-move.el
+++ b/lisp/gnus/gnus-move.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-msg.el b/lisp/gnus/gnus-msg.el
index 055fc75626a..c9aedab7019 100644
--- a/lisp/gnus/gnus-msg.el
+++ b/lisp/gnus/gnus-msg.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -815,7 +815,10 @@ header line with the old Message-ID."
(set-buffer ,gnus-summary-buffer)
(gnus-cache-possibly-remove-article ,article nil nil nil t)
(gnus-summary-mark-as-read ,article gnus-canceled-mark)))))
- message-send-actions))))
+ message-send-actions)
+ ;; Add Gcc header.
+ (gnus-inews-insert-archive-gcc)
+ (gnus-inews-insert-gcc))))
@@ -1280,10 +1283,13 @@ composing a new message."
(message-narrow-to-head-1)
;; Gnus will generate a new one when sending.
(message-remove-header "Message-ID")
- (message-remove-header message-ignored-resent-headers t)
;; Remove unwanted headers.
+ (message-remove-header message-ignored-resent-headers t)
(goto-char (point-max))
(insert mail-header-separator)
+ ;; Add Gcc header.
+ (gnus-inews-insert-archive-gcc)
+ (gnus-inews-insert-gcc)
(goto-char (point-min))
(when (re-search-forward "^To:\\|^Newsgroups:" nil 'move)
(forward-char 1))
@@ -1557,15 +1563,29 @@ If FETCH, try to fetch the article that this is a reply to, if indeed
this is a reply."
(interactive "P")
(gnus-summary-select-article t)
- (set-buffer gnus-original-article-buffer)
- (gnus-setup-message 'compose-bounce
- (let* ((references (mail-fetch-field "references"))
- (parent (and references (gnus-parent-id references))))
+ (let (summary-buffer parent)
+ (if fetch
+ (progn
+ (setq summary-buffer (current-buffer))
+ (set-buffer gnus-original-article-buffer)
+ (article-goto-body)
+ (when (re-search-forward "^References:\n?" nil t)
+ (while (memq (char-after) '(?\t ? ))
+ (forward-line 1))
+ (skip-chars-backward "\t\n ")
+ (setq parent
+ (gnus-parent-id (buffer-substring (match-end 0) (point))))))
+ (set-buffer gnus-original-article-buffer))
+ (gnus-setup-message 'compose-bounce
(message-bounce)
+ ;; Add Gcc header.
+ (gnus-inews-insert-archive-gcc)
+ (gnus-inews-insert-gcc)
;; If there are references, we fetch the article we answered to.
- (and fetch parent
- (gnus-summary-refer-article parent)
- (gnus-summary-show-all-headers)))))
+ (when parent
+ (with-current-buffer summary-buffer
+ (gnus-summary-refer-article parent)
+ (gnus-summary-show-all-headers))))))
;;; Gcc handling.
diff --git a/lisp/gnus/gnus-nocem.el b/lisp/gnus/gnus-nocem.el
index 12914091ddd..7b54687c84c 100644
--- a/lisp/gnus/gnus-nocem.el
+++ b/lisp/gnus/gnus-nocem.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-picon.el b/lisp/gnus/gnus-picon.el
index 47ac9736a09..a9303af5fc8 100644
--- a/lisp/gnus/gnus-picon.el
+++ b/lisp/gnus/gnus-picon.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-range.el b/lisp/gnus/gnus-range.el
index adf6b85bb11..b9b97797d17 100644
--- a/lisp/gnus/gnus-range.el
+++ b/lisp/gnus/gnus-range.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-registry.el b/lisp/gnus/gnus-registry.el
index 3e4d3d0127c..847cbf0a734 100644
--- a/lisp/gnus/gnus-registry.el
+++ b/lisp/gnus/gnus-registry.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-salt.el b/lisp/gnus/gnus-salt.el
index 58ac1422dab..298b6dc4739 100644
--- a/lisp/gnus/gnus-salt.el
+++ b/lisp/gnus/gnus-salt.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-score.el b/lisp/gnus/gnus-score.el
index fd8fedd2011..e833c8ccc6a 100644
--- a/lisp/gnus/gnus-score.el
+++ b/lisp/gnus/gnus-score.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-setup.el b/lisp/gnus/gnus-setup.el
index 3d3a2024d54..55ab016a59e 100644
--- a/lisp/gnus/gnus-setup.el
+++ b/lisp/gnus/gnus-setup.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-sieve.el b/lisp/gnus/gnus-sieve.el
index 7483c8bdc98..ee4463c588d 100644
--- a/lisp/gnus/gnus-sieve.el
+++ b/lisp/gnus/gnus-sieve.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-soup.el b/lisp/gnus/gnus-soup.el
index c4dcb48620d..241fb6a2c86 100644
--- a/lisp/gnus/gnus-soup.el
+++ b/lisp/gnus/gnus-soup.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-spec.el b/lisp/gnus/gnus-spec.el
index b6fd0a2690c..2197e286757 100644
--- a/lisp/gnus/gnus-spec.el
+++ b/lisp/gnus/gnus-spec.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-srvr.el b/lisp/gnus/gnus-srvr.el
index 21c99749804..9e709d0916c 100644
--- a/lisp/gnus/gnus-srvr.el
+++ b/lisp/gnus/gnus-srvr.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-start.el b/lisp/gnus/gnus-start.el
index 01b320e7186..526e350f592 100644
--- a/lisp/gnus/gnus-start.el
+++ b/lisp/gnus/gnus-start.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
index 56c5fffb7e5..708689fef9e 100644
--- a/lisp/gnus/gnus-sum.el
+++ b/lisp/gnus/gnus-sum.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-topic.el b/lisp/gnus/gnus-topic.el
index 381b89fe50f..3d85d4ccf5c 100644
--- a/lisp/gnus/gnus-topic.el
+++ b/lisp/gnus/gnus-topic.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-undo.el b/lisp/gnus/gnus-undo.el
index 1c170fbd1c5..47106a49aa5 100644
--- a/lisp/gnus/gnus-undo.el
+++ b/lisp/gnus/gnus-undo.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-util.el b/lisp/gnus/gnus-util.el
index 25d6dfd47b6..d065acd75ea 100644
--- a/lisp/gnus/gnus-util.el
+++ b/lisp/gnus/gnus-util.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-uu.el b/lisp/gnus/gnus-uu.el
index 03491b3a4de..94fb854c960 100644
--- a/lisp/gnus/gnus-uu.el
+++ b/lisp/gnus/gnus-uu.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-vm.el b/lisp/gnus/gnus-vm.el
index 000be4902e2..eaf07cf262b 100644
--- a/lisp/gnus/gnus-vm.el
+++ b/lisp/gnus/gnus-vm.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus-win.el b/lisp/gnus/gnus-win.el
index cfdfdbaf137..5c57aaa1886 100644
--- a/lisp/gnus/gnus-win.el
+++ b/lisp/gnus/gnus-win.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el
index afb0724aca5..0e8e9908cf4 100644
--- a/lisp/gnus/gnus.el
+++ b/lisp/gnus/gnus.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/hex-util.el b/lisp/gnus/hex-util.el
index ca2a6e09a3f..6a10e3d2449 100644
--- a/lisp/gnus/hex-util.el
+++ b/lisp/gnus/hex-util.el
@@ -10,7 +10,7 @@
;; 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
+;; published by the Free Software Foundation; either version 3, or
;; (at your option) any later version.
;; This program is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/html2text.el b/lisp/gnus/html2text.el
index 0ecd1a37078..4baf491d47b 100644
--- a/lisp/gnus/html2text.el
+++ b/lisp/gnus/html2text.el
@@ -8,7 +8,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/ietf-drums.el b/lisp/gnus/ietf-drums.el
index a67f7bbac28..a02762804f7 100644
--- a/lisp/gnus/ietf-drums.el
+++ b/lisp/gnus/ietf-drums.el
@@ -8,7 +8,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/imap.el b/lisp/gnus/imap.el
index a52ad2e8eb4..abe1c7e1c9e 100644
--- a/lisp/gnus/imap.el
+++ b/lisp/gnus/imap.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/legacy-gnus-agent.el b/lisp/gnus/legacy-gnus-agent.el
index 743f56e1687..7ee6ac7f744 100644
--- a/lisp/gnus/legacy-gnus-agent.el
+++ b/lisp/gnus/legacy-gnus-agent.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/mail-parse.el b/lisp/gnus/mail-parse.el
index 0ee9d5eef8c..d9f3d08537b 100644
--- a/lisp/gnus/mail-parse.el
+++ b/lisp/gnus/mail-parse.el
@@ -8,7 +8,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/mail-prsvr.el b/lisp/gnus/mail-prsvr.el
index 13b08664889..e70c0a9064a 100644
--- a/lisp/gnus/mail-prsvr.el
+++ b/lisp/gnus/mail-prsvr.el
@@ -8,7 +8,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/mail-source.el b/lisp/gnus/mail-source.el
index 99596d2584b..0dc77f59e96 100644
--- a/lisp/gnus/mail-source.el
+++ b/lisp/gnus/mail-source.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/mailcap.el b/lisp/gnus/mailcap.el
index 0b02539b5a3..422b99d0e0f 100644
--- a/lisp/gnus/mailcap.el
+++ b/lisp/gnus/mailcap.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index eef854f4fb7..419fd07727c 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -6697,7 +6697,7 @@ you."
(goto-char boundary)
(when (re-search-backward "^.?From .*\n" nil t)
(delete-region (match-beginning 0) (match-end 0)))))
- (mm-enable-multibyte)
+ (mime-to-mml)
(save-restriction
(message-narrow-to-head-1)
(message-remove-header message-ignored-bounced-headers t)
diff --git a/lisp/gnus/messcompat.el b/lisp/gnus/messcompat.el
index b3bdeba56c5..2a1b7637b3a 100644
--- a/lisp/gnus/messcompat.el
+++ b/lisp/gnus/messcompat.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/mm-bodies.el b/lisp/gnus/mm-bodies.el
index c701932ebf6..0872008e48d 100644
--- a/lisp/gnus/mm-bodies.el
+++ b/lisp/gnus/mm-bodies.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el
index 028855ab341..f8de1a77f71 100644
--- a/lisp/gnus/mm-decode.el
+++ b/lisp/gnus/mm-decode.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/mm-encode.el b/lisp/gnus/mm-encode.el
index a744c3e8ba9..8c2dc04ffff 100644
--- a/lisp/gnus/mm-encode.el
+++ b/lisp/gnus/mm-encode.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/mm-extern.el b/lisp/gnus/mm-extern.el
index 342ea9e9135..14e4c77dbed 100644
--- a/lisp/gnus/mm-extern.el
+++ b/lisp/gnus/mm-extern.el
@@ -10,7 +10,7 @@
;; 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
+;; by the Free Software Foundation; either version 3, or (at your
;; option) any later version.
;; GNU Emacs is distributed in the hope that it will be useful, but
diff --git a/lisp/gnus/mm-partial.el b/lisp/gnus/mm-partial.el
index 0669b391acf..1fa3e6967e7 100644
--- a/lisp/gnus/mm-partial.el
+++ b/lisp/gnus/mm-partial.el
@@ -10,7 +10,7 @@
;; 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
+;; by the Free Software Foundation; either version 3, or (at your
;; option) any later version.
;; GNU Emacs is distributed in the hope that it will be useful, but
diff --git a/lisp/gnus/mm-url.el b/lisp/gnus/mm-url.el
index f42b2c940bb..dedc03a2edf 100644
--- a/lisp/gnus/mm-url.el
+++ b/lisp/gnus/mm-url.el
@@ -8,7 +8,7 @@
;; 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
+;; by the Free Software Foundation; either version 3, or (at your
;; option) any later version.
;; GNU Emacs is distributed in the hope that it will be useful, but
diff --git a/lisp/gnus/mm-util.el b/lisp/gnus/mm-util.el
index 8933edaf42c..76b1f2779c9 100644
--- a/lisp/gnus/mm-util.el
+++ b/lisp/gnus/mm-util.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/mm-uu.el b/lisp/gnus/mm-uu.el
index acd39c8dfa1..81d8088535f 100644
--- a/lisp/gnus/mm-uu.el
+++ b/lisp/gnus/mm-uu.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;;
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/mm-view.el b/lisp/gnus/mm-view.el
index 888c814bf24..c8a672928c0 100644
--- a/lisp/gnus/mm-view.el
+++ b/lisp/gnus/mm-view.el
@@ -8,7 +8,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/mml-sec.el b/lisp/gnus/mml-sec.el
index 911ec41f883..68df6b64c4b 100644
--- a/lisp/gnus/mml-sec.el
+++ b/lisp/gnus/mml-sec.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/mml-smime.el b/lisp/gnus/mml-smime.el
index 2508259c29e..3762c2303b3 100644
--- a/lisp/gnus/mml-smime.el
+++ b/lisp/gnus/mml-smime.el
@@ -10,7 +10,7 @@
;; 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
+;; by the Free Software Foundation; either version 3, or (at your
;; option) any later version.
;; GNU Emacs is distributed in the hope that it will be useful, but
diff --git a/lisp/gnus/mml.el b/lisp/gnus/mml.el
index ae4de03edd0..dae746fa082 100644
--- a/lisp/gnus/mml.el
+++ b/lisp/gnus/mml.el
@@ -8,7 +8,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/mml1991.el b/lisp/gnus/mml1991.el
index af2599179ff..104fb9cfaa3 100644
--- a/lisp/gnus/mml1991.el
+++ b/lisp/gnus/mml1991.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/mml2015.el b/lisp/gnus/mml2015.el
index a64f43fc9b5..4edf595faae 100644
--- a/lisp/gnus/mml2015.el
+++ b/lisp/gnus/mml2015.el
@@ -10,7 +10,7 @@
;; 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
+;; by the Free Software Foundation; either version 3, or (at your
;; option) any later version.
;; GNU Emacs is distributed in the hope that it will be useful, but
diff --git a/lisp/gnus/nnagent.el b/lisp/gnus/nnagent.el
index 1f782c6067c..7d11329f81f 100644
--- a/lisp/gnus/nnagent.el
+++ b/lisp/gnus/nnagent.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/nnbabyl.el b/lisp/gnus/nnbabyl.el
index 61cbc16f9ac..3f0631c152d 100644
--- a/lisp/gnus/nnbabyl.el
+++ b/lisp/gnus/nnbabyl.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/nndb.el b/lisp/gnus/nndb.el
index 82244ea0d3a..e8421cb2074 100644
--- a/lisp/gnus/nndb.el
+++ b/lisp/gnus/nndb.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/nndiary.el b/lisp/gnus/nndiary.el
index f6e0ae44cb2..eaa425239d2 100644
--- a/lisp/gnus/nndiary.el
+++ b/lisp/gnus/nndiary.el
@@ -12,8 +12,8 @@
;; 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 of the License, or
-;; (at your option) any later version.
+;; the Free Software Foundation; either version 3, 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
@@ -21,9 +21,9 @@
;; 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.
+;; 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.
;;; Commentary:
diff --git a/lisp/gnus/nndir.el b/lisp/gnus/nndir.el
index a341b0886cf..e21736e2ef4 100644
--- a/lisp/gnus/nndir.el
+++ b/lisp/gnus/nndir.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/nndoc.el b/lisp/gnus/nndoc.el
index 59d134346e4..ea32a8f4183 100644
--- a/lisp/gnus/nndoc.el
+++ b/lisp/gnus/nndoc.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/nndraft.el b/lisp/gnus/nndraft.el
index de1a62767c5..37bd3c1aa96 100644
--- a/lisp/gnus/nndraft.el
+++ b/lisp/gnus/nndraft.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/nneething.el b/lisp/gnus/nneething.el
index 97f7091bea0..8d1fa98d81f 100644
--- a/lisp/gnus/nneething.el
+++ b/lisp/gnus/nneething.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/nnfolder.el b/lisp/gnus/nnfolder.el
index 534720598df..4127f11463e 100644
--- a/lisp/gnus/nnfolder.el
+++ b/lisp/gnus/nnfolder.el
@@ -14,7 +14,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/nngateway.el b/lisp/gnus/nngateway.el
index b478d10444b..b9c911e00ed 100644
--- a/lisp/gnus/nngateway.el
+++ b/lisp/gnus/nngateway.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/nnheader.el b/lisp/gnus/nnheader.el
index e7e8df8e547..aa19967b412 100644
--- a/lisp/gnus/nnheader.el
+++ b/lisp/gnus/nnheader.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el
index 0e815eac8a5..235039c3ee9 100644
--- a/lisp/gnus/nnimap.el
+++ b/lisp/gnus/nnimap.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/nnkiboze.el b/lisp/gnus/nnkiboze.el
index f583f32a22a..7c7fb5a54ab 100644
--- a/lisp/gnus/nnkiboze.el
+++ b/lisp/gnus/nnkiboze.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/nnlistserv.el b/lisp/gnus/nnlistserv.el
index 980ade935b6..f2b62a4c42f 100644
--- a/lisp/gnus/nnlistserv.el
+++ b/lisp/gnus/nnlistserv.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/nnmail.el b/lisp/gnus/nnmail.el
index b080088b2ef..71a528c0f0b 100644
--- a/lisp/gnus/nnmail.el
+++ b/lisp/gnus/nnmail.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/nnmaildir.el b/lisp/gnus/nnmaildir.el
index 589c4da8caf..6769c902e2b 100644
--- a/lisp/gnus/nnmaildir.el
+++ b/lisp/gnus/nnmaildir.el
@@ -7,7 +7,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/nnmbox.el b/lisp/gnus/nnmbox.el
index 7e89d53d96f..6127974d24a 100644
--- a/lisp/gnus/nnmbox.el
+++ b/lisp/gnus/nnmbox.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; You should have received a copy of the GNU General Public License
diff --git a/lisp/gnus/nnmh.el b/lisp/gnus/nnmh.el
index 100281e140a..3eeea7487dc 100644
--- a/lisp/gnus/nnmh.el
+++ b/lisp/gnus/nnmh.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/nnml.el b/lisp/gnus/nnml.el
index 7a0209daa62..8396c174a3f 100644
--- a/lisp/gnus/nnml.el
+++ b/lisp/gnus/nnml.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/nnnil.el b/lisp/gnus/nnnil.el
index 0d4ad303282..3508a7dd94f 100644
--- a/lisp/gnus/nnnil.el
+++ b/lisp/gnus/nnnil.el
@@ -5,7 +5,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/nnoo.el b/lisp/gnus/nnoo.el
index 22ec1c313ea..fc897eb1da2 100644
--- a/lisp/gnus/nnoo.el
+++ b/lisp/gnus/nnoo.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/nnrss.el b/lisp/gnus/nnrss.el
index 1f7e5ba1de9..af2a3e2ea62 100644
--- a/lisp/gnus/nnrss.el
+++ b/lisp/gnus/nnrss.el
@@ -10,7 +10,7 @@
;; 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
+;; by the Free Software Foundation; either version 3, or (at your
;; option) any later version.
;; GNU Emacs is distributed in the hope that it will be useful, but
diff --git a/lisp/gnus/nnslashdot.el b/lisp/gnus/nnslashdot.el
index 35ce9f385e9..ee97f7085c8 100644
--- a/lisp/gnus/nnslashdot.el
+++ b/lisp/gnus/nnslashdot.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/nnsoup.el b/lisp/gnus/nnsoup.el
index e51f0d5d8bb..8167ba2bf4e 100644
--- a/lisp/gnus/nnsoup.el
+++ b/lisp/gnus/nnsoup.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/nnspool.el b/lisp/gnus/nnspool.el
index fd5076be360..39fa1874d3b 100644
--- a/lisp/gnus/nnspool.el
+++ b/lisp/gnus/nnspool.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/nntp.el b/lisp/gnus/nntp.el
index 2b62cd7fffa..869213c9ae5 100644
--- a/lisp/gnus/nntp.el
+++ b/lisp/gnus/nntp.el
@@ -11,7 +11,7 @@
;; 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
+;; by the Free Software Foundation; either version 3, or (at your
;; option) any later version.
;; GNU Emacs is distributed in the hope that it will be useful, but
diff --git a/lisp/gnus/nnultimate.el b/lisp/gnus/nnultimate.el
index 0a95039fa18..273eefeac6c 100644
--- a/lisp/gnus/nnultimate.el
+++ b/lisp/gnus/nnultimate.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/nnvirtual.el b/lisp/gnus/nnvirtual.el
index 4e0604903cc..fc2500df2f5 100644
--- a/lisp/gnus/nnvirtual.el
+++ b/lisp/gnus/nnvirtual.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/nnwarchive.el b/lisp/gnus/nnwarchive.el
index 29f30ff487c..1d2c2c8589a 100644
--- a/lisp/gnus/nnwarchive.el
+++ b/lisp/gnus/nnwarchive.el
@@ -10,7 +10,7 @@
;; 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
+;; by the Free Software Foundation; either version 3, or (at your
;; option) any later version.
;; GNU Emacs is distributed in the hope that it will be useful, but
diff --git a/lisp/gnus/nnweb.el b/lisp/gnus/nnweb.el
index 92d90eb061f..0d1fb193082 100644
--- a/lisp/gnus/nnweb.el
+++ b/lisp/gnus/nnweb.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/nnwfm.el b/lisp/gnus/nnwfm.el
index 22b1e8e2a29..94a1abdac5c 100644
--- a/lisp/gnus/nnwfm.el
+++ b/lisp/gnus/nnwfm.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/pop3.el b/lisp/gnus/pop3.el
index 333fb197b4d..97d6af02cde 100644
--- a/lisp/gnus/pop3.el
+++ b/lisp/gnus/pop3.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/qp.el b/lisp/gnus/qp.el
index 26e3077c64d..17cc7ef2cf6 100644
--- a/lisp/gnus/qp.el
+++ b/lisp/gnus/qp.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/rfc1843.el b/lisp/gnus/rfc1843.el
index 183a7c6d2a6..f27825b6d74 100644
--- a/lisp/gnus/rfc1843.el
+++ b/lisp/gnus/rfc1843.el
@@ -10,7 +10,7 @@
;; 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
+;; by the Free Software Foundation; either version 3, or (at your
;; option) any later version.
;; GNU Emacs is distributed in the hope that it will be useful, but
diff --git a/lisp/gnus/rfc2045.el b/lisp/gnus/rfc2045.el
index d022cd1ca40..9b7bb82fdee 100644
--- a/lisp/gnus/rfc2045.el
+++ b/lisp/gnus/rfc2045.el
@@ -8,7 +8,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/rfc2047.el b/lisp/gnus/rfc2047.el
index 3cf2940e031..2ad57323d47 100644
--- a/lisp/gnus/rfc2047.el
+++ b/lisp/gnus/rfc2047.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/rfc2104.el b/lisp/gnus/rfc2104.el
index 8af59e00a3b..1c4fc9e2de0 100644
--- a/lisp/gnus/rfc2104.el
+++ b/lisp/gnus/rfc2104.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/rfc2231.el b/lisp/gnus/rfc2231.el
index e450d96a298..51d7523a648 100644
--- a/lisp/gnus/rfc2231.el
+++ b/lisp/gnus/rfc2231.el
@@ -8,7 +8,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/score-mode.el b/lisp/gnus/score-mode.el
index 18ccb381cb0..33cdfe55944 100644
--- a/lisp/gnus/score-mode.el
+++ b/lisp/gnus/score-mode.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/sha1.el b/lisp/gnus/sha1.el
index 78d58a48efb..0411a983bad 100644
--- a/lisp/gnus/sha1.el
+++ b/lisp/gnus/sha1.el
@@ -10,7 +10,7 @@
;; 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
+;; published by the Free Software Foundation; either version 3, or
;; (at your option) any later version.
;; This program is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/sieve-manage.el b/lisp/gnus/sieve-manage.el
index 7272760932d..e33e5d87ca6 100644
--- a/lisp/gnus/sieve-manage.el
+++ b/lisp/gnus/sieve-manage.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/sieve-mode.el b/lisp/gnus/sieve-mode.el
index e4223823276..694cad6e77c 100644
--- a/lisp/gnus/sieve-mode.el
+++ b/lisp/gnus/sieve-mode.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/sieve.el b/lisp/gnus/sieve.el
index 124db9660ed..3605da590de 100644
--- a/lisp/gnus/sieve.el
+++ b/lisp/gnus/sieve.el
@@ -8,7 +8,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/smiley.el b/lisp/gnus/smiley.el
index 82813aa9aa2..2b13ecd7388 100644
--- a/lisp/gnus/smiley.el
+++ b/lisp/gnus/smiley.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/smime.el b/lisp/gnus/smime.el
index 112e32956fb..62d1f27b4b5 100644
--- a/lisp/gnus/smime.el
+++ b/lisp/gnus/smime.el
@@ -10,7 +10,7 @@
;; 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
+;; by the Free Software Foundation; either version 3, or (at your
;; option) any later version.
;; GNU Emacs is distributed in the hope that it will be useful, but
diff --git a/lisp/gnus/spam-report.el b/lisp/gnus/spam-report.el
index 16d096c572c..ce891a11d49 100644
--- a/lisp/gnus/spam-report.el
+++ b/lisp/gnus/spam-report.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/spam-stat.el b/lisp/gnus/spam-stat.el
index 8c67343ac38..4a13548fcab 100644
--- a/lisp/gnus/spam-stat.el
+++ b/lisp/gnus/spam-stat.el
@@ -10,7 +10,7 @@
;; This 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; This is distributed in the hope that it will be useful, but WITHOUT
diff --git a/lisp/gnus/spam.el b/lisp/gnus/spam.el
index 512192857ab..b19ce8cd285 100644
--- a/lisp/gnus/spam.el
+++ b/lisp/gnus/spam.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/starttls.el b/lisp/gnus/starttls.el
index 3b0a8d2b619..2cacdd28be7 100644
--- a/lisp/gnus/starttls.el
+++ b/lisp/gnus/starttls.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/utf7.el b/lisp/gnus/utf7.el
index 4cae4fd0032..dbe749cad69 100644
--- a/lisp/gnus/utf7.el
+++ b/lisp/gnus/utf7.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/uudecode.el b/lisp/gnus/uudecode.el
index d0eb8ae3ec9..1d1860d9a7e 100644
--- a/lisp/gnus/uudecode.el
+++ b/lisp/gnus/uudecode.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gnus/webmail.el b/lisp/gnus/webmail.el
index 272ea2017ff..c238134749a 100644
--- a/lisp/gnus/webmail.el
+++ b/lisp/gnus/webmail.el
@@ -10,7 +10,7 @@
;; 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
+;; by the Free Software Foundation; either version 3, or (at your
;; option) any later version.
;; GNU Emacs is distributed in the hope that it will be useful, but
diff --git a/lisp/gnus/yenc.el b/lisp/gnus/yenc.el
index 4b01612d04c..7550186b35e 100644
--- a/lisp/gnus/yenc.el
+++ b/lisp/gnus/yenc.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/gs.el b/lisp/gs.el
index ca58ce9c642..036eafbdcca 100644
--- a/lisp/gs.el
+++ b/lisp/gs.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/help-at-pt.el b/lisp/help-at-pt.el
index 562102217da..ee35e04dec0 100644
--- a/lisp/help-at-pt.el
+++ b/lisp/help-at-pt.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/help-fns.el b/lisp/help-fns.el
index 426db1116e3..1de255d1e63 100644
--- a/lisp/help-fns.el
+++ b/lisp/help-fns.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/help-macro.el b/lisp/help-macro.el
index e76eaaa9191..eac7d442c7b 100644
--- a/lisp/help-macro.el
+++ b/lisp/help-macro.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/help-mode.el b/lisp/help-mode.el
index 075b893ad6f..28ac693f870 100644
--- a/lisp/help-mode.el
+++ b/lisp/help-mode.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/help.el b/lisp/help.el
index 926c43c300d..f75e26f93e6 100644
--- a/lisp/help.el
+++ b/lisp/help.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/hexl.el b/lisp/hexl.el
index f63ed0aafa5..17d2d83b681 100644
--- a/lisp/hexl.el
+++ b/lisp/hexl.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/hi-lock.el b/lisp/hi-lock.el
index 62f92409bde..522a50b9a7f 100644
--- a/lisp/hi-lock.el
+++ b/lisp/hi-lock.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/hilit-chg.el b/lisp/hilit-chg.el
index 19cecb1c8be..b1238b66419 100644
--- a/lisp/hilit-chg.el
+++ b/lisp/hilit-chg.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/hippie-exp.el b/lisp/hippie-exp.el
index 49d77543123..f1a58f12c6b 100644
--- a/lisp/hippie-exp.el
+++ b/lisp/hippie-exp.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/hl-line.el b/lisp/hl-line.el
index 54f2e00b0ae..6a988d47c49 100644
--- a/lisp/hl-line.el
+++ b/lisp/hl-line.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ibuf-ext.el b/lisp/ibuf-ext.el
index 6628a07bd29..4f510472d54 100644
--- a/lisp/ibuf-ext.el
+++ b/lisp/ibuf-ext.el
@@ -12,7 +12,7 @@
;; 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
+;; published by the Free Software Foundation; either version 3, or (at
;; your option) any later version.
;; This program is distributed in the hope that it will be useful, but
diff --git a/lisp/ibuf-macs.el b/lisp/ibuf-macs.el
index f84b84cfd4d..ffab61688f2 100644
--- a/lisp/ibuf-macs.el
+++ b/lisp/ibuf-macs.el
@@ -12,7 +12,7 @@
;; 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
+;; published by the Free Software Foundation; either version 3, or (at
;; your option) any later version.
;; This program is distributed in the hope that it will be useful, but
diff --git a/lisp/ibuffer.el b/lisp/ibuffer.el
index cdb00ef2fba..c4842b9d982 100644
--- a/lisp/ibuffer.el
+++ b/lisp/ibuffer.el
@@ -12,7 +12,7 @@
;; 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
+;; published by the Free Software Foundation; either version 3, or (at
;; your option) any later version.
;; This program is distributed in the hope that it will be useful, but
diff --git a/lisp/icomplete.el b/lisp/icomplete.el
index 6599c1442bc..d1e8f9cc3f8 100644
--- a/lisp/icomplete.el
+++ b/lisp/icomplete.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ido.el b/lisp/ido.el
index 0808075b495..e5c4b644f95 100644
--- a/lisp/ido.el
+++ b/lisp/ido.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ielm.el b/lisp/ielm.el
index cceef70b37a..98df0d1e3d4 100644
--- a/lisp/ielm.el
+++ b/lisp/ielm.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/iimage.el b/lisp/iimage.el
index 76e01614f6e..29d98cbda69 100644
--- a/lisp/iimage.el
+++ b/lisp/iimage.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/image-dired.el b/lisp/image-dired.el
index 93c11813864..c2c2a1476da 100644
--- a/lisp/image-dired.el
+++ b/lisp/image-dired.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/image-file.el b/lisp/image-file.el
index 5251a2c3ebe..db6c925520a 100644
--- a/lisp/image-file.el
+++ b/lisp/image-file.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/image-mode.el b/lisp/image-mode.el
index 6ac864172d8..d4a6938a742 100644
--- a/lisp/image-mode.el
+++ b/lisp/image-mode.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/image.el b/lisp/image.el
index 06f006de252..3b0dd87d1ef 100644
--- a/lisp/image.el
+++ b/lisp/image.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/imenu.el b/lisp/imenu.el
index 5644c517395..9aa1f5ea088 100644
--- a/lisp/imenu.el
+++ b/lisp/imenu.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/indent.el b/lisp/indent.el
index 7a94963ff4d..b580e3aa3ce 100644
--- a/lisp/indent.el
+++ b/lisp/indent.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/info-look.el b/lisp/info-look.el
index a4280e97c99..8ace7730a12 100644
--- a/lisp/info-look.el
+++ b/lisp/info-look.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/info-xref.el b/lisp/info-xref.el
index 61bfcc09260..e2d08a0f991 100644
--- a/lisp/info-xref.el
+++ b/lisp/info-xref.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/info.el b/lisp/info.el
index 84e8248e029..3253ae0ab29 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/informat.el b/lisp/informat.el
index ea32343430e..18a459ba0fe 100644
--- a/lisp/informat.el
+++ b/lisp/informat.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/international/ccl.el b/lisp/international/ccl.el
index 2a6939da5f5..d155c199738 100644
--- a/lisp/international/ccl.el
+++ b/lisp/international/ccl.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/international/characters.el b/lisp/international/characters.el
index 024333c4a88..30c8a267e25 100644
--- a/lisp/international/characters.el
+++ b/lisp/international/characters.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/international/code-pages.el b/lisp/international/code-pages.el
index 5007a00b16d..d7810721c03 100644
--- a/lisp/international/code-pages.el
+++ b/lisp/international/code-pages.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/international/codepage.el b/lisp/international/codepage.el
index ff30e4c14c4..d9db7835391 100644
--- a/lisp/international/codepage.el
+++ b/lisp/international/codepage.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/international/encoded-kb.el b/lisp/international/encoded-kb.el
index 22c43fb5017..392951d1c0d 100644
--- a/lisp/international/encoded-kb.el
+++ b/lisp/international/encoded-kb.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/international/fontset.el b/lisp/international/fontset.el
index 81665ffd1ce..6a8ab89bb6e 100644
--- a/lisp/international/fontset.el
+++ b/lisp/international/fontset.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/international/isearch-x.el b/lisp/international/isearch-x.el
index b75a7cdaab3..2c6d8b2dce9 100644
--- a/lisp/international/isearch-x.el
+++ b/lisp/international/isearch-x.el
@@ -16,7 +16,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/international/iso-ascii.el b/lisp/international/iso-ascii.el
index 37e6f292353..84e1ab97099 100644
--- a/lisp/international/iso-ascii.el
+++ b/lisp/international/iso-ascii.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/international/iso-cvt.el b/lisp/international/iso-cvt.el
index 3448da812a2..d3c2f623e66 100644
--- a/lisp/international/iso-cvt.el
+++ b/lisp/international/iso-cvt.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/international/iso-transl.el b/lisp/international/iso-transl.el
index 16beb450a31..134794e5ede 100644
--- a/lisp/international/iso-transl.el
+++ b/lisp/international/iso-transl.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/international/ja-dic-cnv.el b/lisp/international/ja-dic-cnv.el
index c4475d84c10..5fa18221327 100644
--- a/lisp/international/ja-dic-cnv.el
+++ b/lisp/international/ja-dic-cnv.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/international/ja-dic-utl.el b/lisp/international/ja-dic-utl.el
index 3b16c14dc4e..ea3e4c31a3c 100644
--- a/lisp/international/ja-dic-utl.el
+++ b/lisp/international/ja-dic-utl.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/international/kinsoku.el b/lisp/international/kinsoku.el
index 2b5ba1de650..cc78623126e 100644
--- a/lisp/international/kinsoku.el
+++ b/lisp/international/kinsoku.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/international/kkc.el b/lisp/international/kkc.el
index d671d2900c2..f9f79c50793 100644
--- a/lisp/international/kkc.el
+++ b/lisp/international/kkc.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/international/latexenc.el b/lisp/international/latexenc.el
index e19cff0eace..57013b59538 100644
--- a/lisp/international/latexenc.el
+++ b/lisp/international/latexenc.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/international/latin-1.el b/lisp/international/latin-1.el
index 4c312565550..33acf132a0d 100644
--- a/lisp/international/latin-1.el
+++ b/lisp/international/latin-1.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/international/latin-2.el b/lisp/international/latin-2.el
index 755d845532a..efb63200039 100644
--- a/lisp/international/latin-2.el
+++ b/lisp/international/latin-2.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/international/latin-3.el b/lisp/international/latin-3.el
index 18f5b071077..1539206771c 100644
--- a/lisp/international/latin-3.el
+++ b/lisp/international/latin-3.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/international/latin-4.el b/lisp/international/latin-4.el
index 5fd3767742e..e3b9b04e6fb 100644
--- a/lisp/international/latin-4.el
+++ b/lisp/international/latin-4.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/international/latin-5.el b/lisp/international/latin-5.el
index a36eb89798b..97b3e0076e4 100644
--- a/lisp/international/latin-5.el
+++ b/lisp/international/latin-5.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/international/latin-8.el b/lisp/international/latin-8.el
index 710784b40fd..0f41d70ece6 100644
--- a/lisp/international/latin-8.el
+++ b/lisp/international/latin-8.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/international/latin-9.el b/lisp/international/latin-9.el
index c29925f8dc2..cb94d756cc2 100644
--- a/lisp/international/latin-9.el
+++ b/lisp/international/latin-9.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/international/latin1-disp.el b/lisp/international/latin1-disp.el
index 7a78e6628b9..515695bf503 100644
--- a/lisp/international/latin1-disp.el
+++ b/lisp/international/latin1-disp.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el
index 21985259e98..5bbe53e7ea7 100644
--- a/lisp/international/mule-cmds.el
+++ b/lisp/international/mule-cmds.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/international/mule-conf.el b/lisp/international/mule-conf.el
index 05f259b038f..0af65a90fb3 100644
--- a/lisp/international/mule-conf.el
+++ b/lisp/international/mule-conf.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/international/mule-diag.el b/lisp/international/mule-diag.el
index 80bfd2dbfa3..21b0b3485f1 100644
--- a/lisp/international/mule-diag.el
+++ b/lisp/international/mule-diag.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/international/mule-util.el b/lisp/international/mule-util.el
index 78ef30a56de..4cb0ebe9de4 100644
--- a/lisp/international/mule-util.el
+++ b/lisp/international/mule-util.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/international/mule.el b/lisp/international/mule.el
index 1c0b44f01a5..e1285aba875 100644
--- a/lisp/international/mule.el
+++ b/lisp/international/mule.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/international/ogonek.el b/lisp/international/ogonek.el
index 06bebb1f0da..4625dfa729b 100644
--- a/lisp/international/ogonek.el
+++ b/lisp/international/ogonek.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/international/quail.el b/lisp/international/quail.el
index 43251b3721e..774e3c14269 100644
--- a/lisp/international/quail.el
+++ b/lisp/international/quail.el
@@ -16,7 +16,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/international/subst-big5.el b/lisp/international/subst-big5.el
index e53826f2ee5..e744305f799 100644
--- a/lisp/international/subst-big5.el
+++ b/lisp/international/subst-big5.el
@@ -7,7 +7,7 @@
;; This file 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; This file is distributed in the hope that it will be useful,
diff --git a/lisp/international/subst-gb2312.el b/lisp/international/subst-gb2312.el
index 83ba31a2601..3c604b6308a 100644
--- a/lisp/international/subst-gb2312.el
+++ b/lisp/international/subst-gb2312.el
@@ -7,7 +7,7 @@
;; This file 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; This file is distributed in the hope that it will be useful,
diff --git a/lisp/international/subst-jis.el b/lisp/international/subst-jis.el
index b5100c683ed..af13a950c23 100644
--- a/lisp/international/subst-jis.el
+++ b/lisp/international/subst-jis.el
@@ -10,7 +10,7 @@
;; This file 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; This file is distributed in the hope that it will be useful,
diff --git a/lisp/international/subst-ksc.el b/lisp/international/subst-ksc.el
index 7ac82de9daf..69f5296e917 100644
--- a/lisp/international/subst-ksc.el
+++ b/lisp/international/subst-ksc.el
@@ -7,7 +7,7 @@
;; This file 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; This file is distributed in the hope that it will be useful,
diff --git a/lisp/international/titdic-cnv.el b/lisp/international/titdic-cnv.el
index ed5df5b9592..e6c0b5b3630 100644
--- a/lisp/international/titdic-cnv.el
+++ b/lisp/international/titdic-cnv.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/international/ucs-tables.el b/lisp/international/ucs-tables.el
index 222209582bd..18ab5688d1f 100644
--- a/lisp/international/ucs-tables.el
+++ b/lisp/international/ucs-tables.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/international/utf-16.el b/lisp/international/utf-16.el
index 9c99077cbcc..0bc8d7a7eeb 100644
--- a/lisp/international/utf-16.el
+++ b/lisp/international/utf-16.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/international/utf-7.el b/lisp/international/utf-7.el
index eb413b29f7b..0fff064ace8 100644
--- a/lisp/international/utf-7.el
+++ b/lisp/international/utf-7.el
@@ -7,7 +7,7 @@
;; This file 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; This file is distributed in the hope that it will be useful,
diff --git a/lisp/international/utf-8.el b/lisp/international/utf-8.el
index 66e8181c7ca..39dd3239bf7 100644
--- a/lisp/international/utf-8.el
+++ b/lisp/international/utf-8.el
@@ -14,7 +14,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/isearch.el b/lisp/isearch.el
index d2e68dfc0dd..93d43fcf18b 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/isearchb.el b/lisp/isearchb.el
index 3d8af066395..ff2d47f4a50 100644
--- a/lisp/isearchb.el
+++ b/lisp/isearchb.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/iswitchb.el b/lisp/iswitchb.el
index 98fad7bf824..068f5fff2cd 100644
--- a/lisp/iswitchb.el
+++ b/lisp/iswitchb.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/jit-lock.el b/lisp/jit-lock.el
index 0471edb7891..d32f150058f 100644
--- a/lisp/jit-lock.el
+++ b/lisp/jit-lock.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/jka-cmpr-hook.el b/lisp/jka-cmpr-hook.el
index b13ca7181ec..7e15af0d75f 100644
--- a/lisp/jka-cmpr-hook.el
+++ b/lisp/jka-cmpr-hook.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/jka-compr.el b/lisp/jka-compr.el
index 32df6ce53f9..33d3fe379d8 100644
--- a/lisp/jka-compr.el
+++ b/lisp/jka-compr.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/kermit.el b/lisp/kermit.el
index 5d892999781..0716957a846 100644
--- a/lisp/kermit.el
+++ b/lisp/kermit.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/kmacro.el b/lisp/kmacro.el
index 094b3b02b6f..096d35bebbd 100644
--- a/lisp/kmacro.el
+++ b/lisp/kmacro.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/china-util.el b/lisp/language/china-util.el
index 49041e611ac..d31331d1f2a 100644
--- a/lisp/language/china-util.el
+++ b/lisp/language/china-util.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/chinese.el b/lisp/language/chinese.el
index 9d2297cb7a7..c57d0e3d931 100644
--- a/lisp/language/chinese.el
+++ b/lisp/language/chinese.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/cyril-util.el b/lisp/language/cyril-util.el
index 3395ce4d1ac..aa22584d6ce 100644
--- a/lisp/language/cyril-util.el
+++ b/lisp/language/cyril-util.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/cyrillic.el b/lisp/language/cyrillic.el
index 656f6b60096..3af35f602a5 100644
--- a/lisp/language/cyrillic.el
+++ b/lisp/language/cyrillic.el
@@ -14,7 +14,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/czech.el b/lisp/language/czech.el
index 43dff0d57ba..982fa964583 100644
--- a/lisp/language/czech.el
+++ b/lisp/language/czech.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/devan-util.el b/lisp/language/devan-util.el
index b25e90cebe9..021ffce354a 100644
--- a/lisp/language/devan-util.el
+++ b/lisp/language/devan-util.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/devanagari.el b/lisp/language/devanagari.el
index c337ecb2a4f..c348a936f50 100644
--- a/lisp/language/devanagari.el
+++ b/lisp/language/devanagari.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/english.el b/lisp/language/english.el
index d12ed650186..d89d7c7d36f 100644
--- a/lisp/language/english.el
+++ b/lisp/language/english.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/ethio-util.el b/lisp/language/ethio-util.el
index 857df138670..16b0b2152e1 100644
--- a/lisp/language/ethio-util.el
+++ b/lisp/language/ethio-util.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/ethiopic.el b/lisp/language/ethiopic.el
index 1ae1f461f2d..3fb42d33bca 100644
--- a/lisp/language/ethiopic.el
+++ b/lisp/language/ethiopic.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/european.el b/lisp/language/european.el
index 75d9d1fb337..8d0a5c6997d 100644
--- a/lisp/language/european.el
+++ b/lisp/language/european.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/georgian.el b/lisp/language/georgian.el
index 21b61b2667c..9fd25ae5ed3 100644
--- a/lisp/language/georgian.el
+++ b/lisp/language/georgian.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/greek.el b/lisp/language/greek.el
index c391319b885..fb71e4a2ed2 100644
--- a/lisp/language/greek.el
+++ b/lisp/language/greek.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/hebrew.el b/lisp/language/hebrew.el
index 715b06190b4..fe4ed03ca7e 100644
--- a/lisp/language/hebrew.el
+++ b/lisp/language/hebrew.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/ind-util.el b/lisp/language/ind-util.el
index 521fc252372..d33c1ee4a9b 100644
--- a/lisp/language/ind-util.el
+++ b/lisp/language/ind-util.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/indian.el b/lisp/language/indian.el
index 0fed075f553..89b2ab44dbe 100644
--- a/lisp/language/indian.el
+++ b/lisp/language/indian.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/japan-util.el b/lisp/language/japan-util.el
index ba190ba171d..e40003996f7 100644
--- a/lisp/language/japan-util.el
+++ b/lisp/language/japan-util.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/japanese.el b/lisp/language/japanese.el
index b9b0eeb2a14..ae58c5a793a 100644
--- a/lisp/language/japanese.el
+++ b/lisp/language/japanese.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/kannada.el b/lisp/language/kannada.el
index 309f2785f5f..f720a9c7367 100644
--- a/lisp/language/kannada.el
+++ b/lisp/language/kannada.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/knd-util.el b/lisp/language/knd-util.el
index dd8a722c706..abb887347e7 100644
--- a/lisp/language/knd-util.el
+++ b/lisp/language/knd-util.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/korea-util.el b/lisp/language/korea-util.el
index 3a9778bf22b..dc13c9147ff 100644
--- a/lisp/language/korea-util.el
+++ b/lisp/language/korea-util.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/korean.el b/lisp/language/korean.el
index 3cf291eb589..e7f3ae68568 100644
--- a/lisp/language/korean.el
+++ b/lisp/language/korean.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/lao-util.el b/lisp/language/lao-util.el
index cbb2f09a35b..4df49a9ac23 100644
--- a/lisp/language/lao-util.el
+++ b/lisp/language/lao-util.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/lao.el b/lisp/language/lao.el
index e4158f682ad..22991b3d3df 100644
--- a/lisp/language/lao.el
+++ b/lisp/language/lao.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/malayalam.el b/lisp/language/malayalam.el
index bc2a9614714..731a9ae67af 100644
--- a/lisp/language/malayalam.el
+++ b/lisp/language/malayalam.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/misc-lang.el b/lisp/language/misc-lang.el
index 1d90e2d9a0c..c7328eb83a2 100644
--- a/lisp/language/misc-lang.el
+++ b/lisp/language/misc-lang.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/mlm-util.el b/lisp/language/mlm-util.el
index aac0951eaec..c5244279837 100644
--- a/lisp/language/mlm-util.el
+++ b/lisp/language/mlm-util.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/romanian.el b/lisp/language/romanian.el
index 9776fe23464..80e27b3b8f0 100644
--- a/lisp/language/romanian.el
+++ b/lisp/language/romanian.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/slovak.el b/lisp/language/slovak.el
index 06d10731e85..6b7fa1f6653 100644
--- a/lisp/language/slovak.el
+++ b/lisp/language/slovak.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/tamil.el b/lisp/language/tamil.el
index e4a495ca635..08f16e273c8 100644
--- a/lisp/language/tamil.el
+++ b/lisp/language/tamil.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/thai-util.el b/lisp/language/thai-util.el
index 3ce0ef696d2..7696f634211 100644
--- a/lisp/language/thai-util.el
+++ b/lisp/language/thai-util.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/thai-word.el b/lisp/language/thai-word.el
index 3162b504a23..89977dcd208 100644
--- a/lisp/language/thai-word.el
+++ b/lisp/language/thai-word.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; This program is distributed in the hope that it will be useful,
diff --git a/lisp/language/thai.el b/lisp/language/thai.el
index 67d8734c482..98fe8ea77a1 100644
--- a/lisp/language/thai.el
+++ b/lisp/language/thai.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/tibet-util.el b/lisp/language/tibet-util.el
index d79a20a024e..b0c38d40c2d 100644
--- a/lisp/language/tibet-util.el
+++ b/lisp/language/tibet-util.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/tibetan.el b/lisp/language/tibetan.el
index 94dc50bc15d..fb8d02ba3b4 100644
--- a/lisp/language/tibetan.el
+++ b/lisp/language/tibetan.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/tml-util.el b/lisp/language/tml-util.el
index 31e2e97d434..ebc7b1f01f7 100644
--- a/lisp/language/tml-util.el
+++ b/lisp/language/tml-util.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/utf-8-lang.el b/lisp/language/utf-8-lang.el
index 2bd3419ecc8..a4bd6fbf7b0 100644
--- a/lisp/language/utf-8-lang.el
+++ b/lisp/language/utf-8-lang.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/viet-util.el b/lisp/language/viet-util.el
index 2a1cc0fd679..eb89bf11ef2 100644
--- a/lisp/language/viet-util.el
+++ b/lisp/language/viet-util.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/language/vietnamese.el b/lisp/language/vietnamese.el
index 191637fb1a4..f50605429b7 100644
--- a/lisp/language/vietnamese.el
+++ b/lisp/language/vietnamese.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ledit.el b/lisp/ledit.el
index 52ddc2c55a0..5d035f93512 100644
--- a/lisp/ledit.el
+++ b/lisp/ledit.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/loadhist.el b/lisp/loadhist.el
index 84a865573af..70f2ee20646 100644
--- a/lisp/loadhist.el
+++ b/lisp/loadhist.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/loadup.el b/lisp/loadup.el
index 8cadd734cb8..b6464372a41 100644
--- a/lisp/loadup.el
+++ b/lisp/loadup.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/locate.el b/lisp/locate.el
index 58ec48c55c4..95060d36197 100644
--- a/lisp/locate.el
+++ b/lisp/locate.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/log-edit.el b/lisp/log-edit.el
index b59a6a61a9b..7b07b590a4f 100644
--- a/lisp/log-edit.el
+++ b/lisp/log-edit.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/log-view.el b/lisp/log-view.el
index 0f2b8d77e13..7520e13a1f6 100644
--- a/lisp/log-view.el
+++ b/lisp/log-view.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/longlines.el b/lisp/longlines.el
index b75adb4f0d9..fa73ef7057d 100644
--- a/lisp/longlines.el
+++ b/lisp/longlines.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/lpr.el b/lisp/lpr.el
index 9775abc74f9..4df98d6d751 100644
--- a/lisp/lpr.el
+++ b/lisp/lpr.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ls-lisp.el b/lisp/ls-lisp.el
index b4cd485d7a0..a016b8369bf 100644
--- a/lisp/ls-lisp.el
+++ b/lisp/ls-lisp.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/macros.el b/lisp/macros.el
index 66cc4bba28c..23d0a33fde1 100644
--- a/lisp/macros.el
+++ b/lisp/macros.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mail/blessmail.el b/lisp/mail/blessmail.el
index 565392c2840..2530a6cc5a3 100644
--- a/lisp/mail/blessmail.el
+++ b/lisp/mail/blessmail.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mail/emacsbug.el b/lisp/mail/emacsbug.el
index c60d93b26b1..df5445da412 100644
--- a/lisp/mail/emacsbug.el
+++ b/lisp/mail/emacsbug.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mail/footnote.el b/lisp/mail/footnote.el
index 7992438df25..be47032a0c2 100644
--- a/lisp/mail/footnote.el
+++ b/lisp/mail/footnote.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful, but
diff --git a/lisp/mail/mail-extr.el b/lisp/mail/mail-extr.el
index bfa8d290763..209b1deacf8 100644
--- a/lisp/mail/mail-extr.el
+++ b/lisp/mail/mail-extr.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mail/mail-hist.el b/lisp/mail/mail-hist.el
index 9efdc892684..7a1b7a64c54 100644
--- a/lisp/mail/mail-hist.el
+++ b/lisp/mail/mail-hist.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mail/mail-utils.el b/lisp/mail/mail-utils.el
index 2f281168440..08d539b3491 100644
--- a/lisp/mail/mail-utils.el
+++ b/lisp/mail/mail-utils.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mail/mailabbrev.el b/lisp/mail/mailabbrev.el
index b83b3864cb4..b3e2c051e7d 100644
--- a/lisp/mail/mailabbrev.el
+++ b/lisp/mail/mailabbrev.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mail/mailalias.el b/lisp/mail/mailalias.el
index 62296ea0228..0b0982d164d 100644
--- a/lisp/mail/mailalias.el
+++ b/lisp/mail/mailalias.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mail/mailclient.el b/lisp/mail/mailclient.el
index 0b7f595b5e6..5f2e021c68f 100644
--- a/lisp/mail/mailclient.el
+++ b/lisp/mail/mailclient.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mail/mailheader.el b/lisp/mail/mailheader.el
index 2eed90b6972..9b61a24c74f 100644
--- a/lisp/mail/mailheader.el
+++ b/lisp/mail/mailheader.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mail/metamail.el b/lisp/mail/metamail.el
index 22149d79026..b5940cfbdd0 100644
--- a/lisp/mail/metamail.el
+++ b/lisp/mail/metamail.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mail/mspools.el b/lisp/mail/mspools.el
index d299b9af57c..d14be55735f 100644
--- a/lisp/mail/mspools.el
+++ b/lisp/mail/mspools.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mail/reporter.el b/lisp/mail/reporter.el
index cde9a25ec0b..5c6bcb83efd 100644
--- a/lisp/mail/reporter.el
+++ b/lisp/mail/reporter.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mail/rfc2368.el b/lisp/mail/rfc2368.el
index 610c0466be5..16f1758a3fc 100644
--- a/lisp/mail/rfc2368.el
+++ b/lisp/mail/rfc2368.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mail/rfc822.el b/lisp/mail/rfc822.el
index 5afe253b831..09dd95e7e79 100644
--- a/lisp/mail/rfc822.el
+++ b/lisp/mail/rfc822.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mail/rmail-spam-filter.el b/lisp/mail/rmail-spam-filter.el
index d0f4db6f446..fa96ffaab8b 100644
--- a/lisp/mail/rmail-spam-filter.el
+++ b/lisp/mail/rmail-spam-filter.el
@@ -8,7 +8,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el
index 2a2f0355ab2..37a0533acc9 100644
--- a/lisp/mail/rmail.el
+++ b/lisp/mail/rmail.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mail/rmailedit.el b/lisp/mail/rmailedit.el
index a03edb98629..04982aec349 100644
--- a/lisp/mail/rmailedit.el
+++ b/lisp/mail/rmailedit.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mail/rmailkwd.el b/lisp/mail/rmailkwd.el
index 5e8779e2553..c479e35beb7 100644
--- a/lisp/mail/rmailkwd.el
+++ b/lisp/mail/rmailkwd.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mail/rmailmsc.el b/lisp/mail/rmailmsc.el
index dc50f95b921..3b7ccd72d02 100644
--- a/lisp/mail/rmailmsc.el
+++ b/lisp/mail/rmailmsc.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mail/rmailout.el b/lisp/mail/rmailout.el
index 459b51cf504..d85bfc0bfe8 100644
--- a/lisp/mail/rmailout.el
+++ b/lisp/mail/rmailout.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mail/rmailsort.el b/lisp/mail/rmailsort.el
index ffa187fc83a..ba496a31228 100644
--- a/lisp/mail/rmailsort.el
+++ b/lisp/mail/rmailsort.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mail/rmailsum.el b/lisp/mail/rmailsum.el
index 288f3f24e66..85527e59f67 100644
--- a/lisp/mail/rmailsum.el
+++ b/lisp/mail/rmailsum.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mail/sendmail.el b/lisp/mail/sendmail.el
index c0fcdf8ff43..5803661bc6e 100644
--- a/lisp/mail/sendmail.el
+++ b/lisp/mail/sendmail.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mail/smtpmail.el b/lisp/mail/smtpmail.el
index 66c4bdd8df7..176a9cd32fa 100644
--- a/lisp/mail/smtpmail.el
+++ b/lisp/mail/smtpmail.el
@@ -16,7 +16,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mail/supercite.el b/lisp/mail/supercite.el
index a752f4d2980..cf9c9369497 100644
--- a/lisp/mail/supercite.el
+++ b/lisp/mail/supercite.el
@@ -15,7 +15,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mail/uce.el b/lisp/mail/uce.el
index b1d6fb046eb..61afd248332 100644
--- a/lisp/mail/uce.el
+++ b/lisp/mail/uce.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mail/undigest.el b/lisp/mail/undigest.el
index ab4fb8b81ef..5b01f711176 100644
--- a/lisp/mail/undigest.el
+++ b/lisp/mail/undigest.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mail/unrmail.el b/lisp/mail/unrmail.el
index cd0b3444d2c..f1cf85a4ffc 100644
--- a/lisp/mail/unrmail.el
+++ b/lisp/mail/unrmail.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mail/vms-pmail.el b/lisp/mail/vms-pmail.el
index c5a149f1005..2d01e2a612b 100644
--- a/lisp/mail/vms-pmail.el
+++ b/lisp/mail/vms-pmail.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/makefile.w32-in b/lisp/makefile.w32-in
index 55b9f9ed5e2..1da46b7684e 100644
--- a/lisp/makefile.w32-in
+++ b/lisp/makefile.w32-in
@@ -6,7 +6,7 @@
#
# 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)
+# the Free Software Foundation; either version 3, or (at your option)
# any later version.
#
# GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/makesum.el b/lisp/makesum.el
index a2b5c00aa91..d3eaa18008f 100644
--- a/lisp/makesum.el
+++ b/lisp/makesum.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/man.el b/lisp/man.el
index e74f9734e51..56539072439 100644
--- a/lisp/man.el
+++ b/lisp/man.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/master.el b/lisp/master.el
index e2fdbfa559a..caa48d1171f 100644
--- a/lisp/master.el
+++ b/lisp/master.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mb-depth.el b/lisp/mb-depth.el
index 256c7ee6a99..1d125e45d95 100644
--- a/lisp/mb-depth.el
+++ b/lisp/mb-depth.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el
index ddb6e345571..7d9dff8c501 100644
--- a/lisp/menu-bar.el
+++ b/lisp/menu-bar.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mh-e/ChangeLog b/lisp/mh-e/ChangeLog
index 97ccda6e048..254b44f9a03 100644
--- a/lisp/mh-e/ChangeLog
+++ b/lisp/mh-e/ChangeLog
@@ -1,3 +1,7 @@
+2007-07-25 Glenn Morris <rgm@gnu.org>
+
+ * Relicense all FSF files to GPLv3 or later.
+
2007-07-11 Bill Wohler <wohler@newt.com>
* mh-compat.el (mh-display-color-cells): Fix on XEmacs 21.5b28.
@@ -2883,7 +2887,7 @@
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)
+ the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mh-e/ChangeLog.1 b/lisp/mh-e/ChangeLog.1
index e88199649bb..d9083e643cf 100644
--- a/lisp/mh-e/ChangeLog.1
+++ b/lisp/mh-e/ChangeLog.1
@@ -11413,7 +11413,7 @@
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)
+ the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mh-e/mh-acros.el b/lisp/mh-e/mh-acros.el
index 90cc1d20be5..7a94828efbe 100644
--- a/lisp/mh-e/mh-acros.el
+++ b/lisp/mh-e/mh-acros.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mh-e/mh-alias.el b/lisp/mh-e/mh-alias.el
index 99c7b843d80..88ba26f127e 100644
--- a/lisp/mh-e/mh-alias.el
+++ b/lisp/mh-e/mh-alias.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mh-e/mh-buffers.el b/lisp/mh-e/mh-buffers.el
index d7bf79fbb65..486e07fba34 100644
--- a/lisp/mh-e/mh-buffers.el
+++ b/lisp/mh-e/mh-buffers.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mh-e/mh-comp.el b/lisp/mh-e/mh-comp.el
index ce012c2f53f..b74c445238e 100644
--- a/lisp/mh-e/mh-comp.el
+++ b/lisp/mh-e/mh-comp.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mh-e/mh-compat.el b/lisp/mh-e/mh-compat.el
index a1382a8298e..58c52a51a0c 100644
--- a/lisp/mh-e/mh-compat.el
+++ b/lisp/mh-e/mh-compat.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mh-e/mh-e.el b/lisp/mh-e/mh-e.el
index f7990c0fc45..200998da4ca 100644
--- a/lisp/mh-e/mh-e.el
+++ b/lisp/mh-e/mh-e.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mh-e/mh-folder.el b/lisp/mh-e/mh-folder.el
index a4017384966..63d55459cf4 100644
--- a/lisp/mh-e/mh-folder.el
+++ b/lisp/mh-e/mh-folder.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mh-e/mh-funcs.el b/lisp/mh-e/mh-funcs.el
index 8ea203965db..bd62bdb4b17 100644
--- a/lisp/mh-e/mh-funcs.el
+++ b/lisp/mh-e/mh-funcs.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mh-e/mh-gnus.el b/lisp/mh-e/mh-gnus.el
index 452a12479f5..0624346ca05 100644
--- a/lisp/mh-e/mh-gnus.el
+++ b/lisp/mh-e/mh-gnus.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mh-e/mh-identity.el b/lisp/mh-e/mh-identity.el
index 429776410a6..37621ff35ca 100644
--- a/lisp/mh-e/mh-identity.el
+++ b/lisp/mh-e/mh-identity.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mh-e/mh-inc.el b/lisp/mh-e/mh-inc.el
index 49d7b671245..668d7b4cc9c 100644
--- a/lisp/mh-e/mh-inc.el
+++ b/lisp/mh-e/mh-inc.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mh-e/mh-junk.el b/lisp/mh-e/mh-junk.el
index 26b00a158bc..0710d14500e 100644
--- a/lisp/mh-e/mh-junk.el
+++ b/lisp/mh-e/mh-junk.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mh-e/mh-letter.el b/lisp/mh-e/mh-letter.el
index 615736a7771..c70c9d8c7e4 100644
--- a/lisp/mh-e/mh-letter.el
+++ b/lisp/mh-e/mh-letter.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mh-e/mh-limit.el b/lisp/mh-e/mh-limit.el
index 7f219ecac06..7613a135eb2 100644
--- a/lisp/mh-e/mh-limit.el
+++ b/lisp/mh-e/mh-limit.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mh-e/mh-mime.el b/lisp/mh-e/mh-mime.el
index 56cfc6544ce..4b10ad18592 100644
--- a/lisp/mh-e/mh-mime.el
+++ b/lisp/mh-e/mh-mime.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mh-e/mh-print.el b/lisp/mh-e/mh-print.el
index 49c41761df5..7a112b717c1 100644
--- a/lisp/mh-e/mh-print.el
+++ b/lisp/mh-e/mh-print.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mh-e/mh-scan.el b/lisp/mh-e/mh-scan.el
index 13f312420bb..07d33368511 100644
--- a/lisp/mh-e/mh-scan.el
+++ b/lisp/mh-e/mh-scan.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mh-e/mh-search.el b/lisp/mh-e/mh-search.el
index ebd45aef6a6..75f91e23143 100644
--- a/lisp/mh-e/mh-search.el
+++ b/lisp/mh-e/mh-search.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mh-e/mh-seq.el b/lisp/mh-e/mh-seq.el
index 4914dd5753e..2940ab8e232 100644
--- a/lisp/mh-e/mh-seq.el
+++ b/lisp/mh-e/mh-seq.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mh-e/mh-show.el b/lisp/mh-e/mh-show.el
index f30ad60b041..d3b93ca65ab 100644
--- a/lisp/mh-e/mh-show.el
+++ b/lisp/mh-e/mh-show.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mh-e/mh-speed.el b/lisp/mh-e/mh-speed.el
index cdd48475a1f..b9fc81c5b16 100644
--- a/lisp/mh-e/mh-speed.el
+++ b/lisp/mh-e/mh-speed.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mh-e/mh-thread.el b/lisp/mh-e/mh-thread.el
index ecd8f200cb9..c9c28ce5fd0 100644
--- a/lisp/mh-e/mh-thread.el
+++ b/lisp/mh-e/mh-thread.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mh-e/mh-tool-bar.el b/lisp/mh-e/mh-tool-bar.el
index 18442fc045a..13faf1bcafa 100644
--- a/lisp/mh-e/mh-tool-bar.el
+++ b/lisp/mh-e/mh-tool-bar.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mh-e/mh-utils.el b/lisp/mh-e/mh-utils.el
index 84f92680d74..5b618e35b87 100644
--- a/lisp/mh-e/mh-utils.el
+++ b/lisp/mh-e/mh-utils.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mh-e/mh-xface.el b/lisp/mh-e/mh-xface.el
index bb553584d0c..8445cf32ed1 100644
--- a/lisp/mh-e/mh-xface.el
+++ b/lisp/mh-e/mh-xface.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/midnight.el b/lisp/midnight.el
index b20d7eed339..7529cd412cc 100644
--- a/lisp/midnight.el
+++ b/lisp/midnight.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/minibuf-eldef.el b/lisp/minibuf-eldef.el
index 7d6442f6b0d..52bab8f1f27 100644
--- a/lisp/minibuf-eldef.el
+++ b/lisp/minibuf-eldef.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/misc.el b/lisp/misc.el
index a9636a62f16..d3c1a46dfdf 100644
--- a/lisp/misc.el
+++ b/lisp/misc.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mouse-copy.el b/lisp/mouse-copy.el
index 880bdbb9029..5f8a9a235f4 100644
--- a/lisp/mouse-copy.el
+++ b/lisp/mouse-copy.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mouse-drag.el b/lisp/mouse-drag.el
index 0e4857658eb..f1d56eccc66 100644
--- a/lisp/mouse-drag.el
+++ b/lisp/mouse-drag.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mouse-sel.el b/lisp/mouse-sel.el
index a421c8bb10b..2343b0c4cda 100644
--- a/lisp/mouse-sel.el
+++ b/lisp/mouse-sel.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mouse.el b/lisp/mouse.el
index ef46723b54d..cbbaf73fcbb 100644
--- a/lisp/mouse.el
+++ b/lisp/mouse.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/msb.el b/lisp/msb.el
index ab25a339110..8dfe31c99d2 100644
--- a/lisp/msb.el
+++ b/lisp/msb.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/mwheel.el b/lisp/mwheel.el
index 7996554a9ec..b8e407483a5 100644
--- a/lisp/mwheel.el
+++ b/lisp/mwheel.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/net/ange-ftp.el b/lisp/net/ange-ftp.el
index 24a30603bb9..fd7f0682622 100644
--- a/lisp/net/ange-ftp.el
+++ b/lisp/net/ange-ftp.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el
index b3276ef9c40..208e1fc178a 100644
--- a/lisp/net/browse-url.el
+++ b/lisp/net/browse-url.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/net/eudc-bob.el b/lisp/net/eudc-bob.el
index 6f205501a75..f3b9baa13bc 100644
--- a/lisp/net/eudc-bob.el
+++ b/lisp/net/eudc-bob.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/net/eudc-export.el b/lisp/net/eudc-export.el
index 54ae329c5ef..58168778e3e 100644
--- a/lisp/net/eudc-export.el
+++ b/lisp/net/eudc-export.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/net/eudc-hotlist.el b/lisp/net/eudc-hotlist.el
index 2490b135782..0509ac9ab79 100644
--- a/lisp/net/eudc-hotlist.el
+++ b/lisp/net/eudc-hotlist.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/net/eudc-vars.el b/lisp/net/eudc-vars.el
index ad9eddec400..7752c2663c9 100644
--- a/lisp/net/eudc-vars.el
+++ b/lisp/net/eudc-vars.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/net/eudc.el b/lisp/net/eudc.el
index 291bcbf4813..4ee09a26951 100644
--- a/lisp/net/eudc.el
+++ b/lisp/net/eudc.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/net/eudcb-bbdb.el b/lisp/net/eudcb-bbdb.el
index 89f47ff1f87..f84d98aaed8 100644
--- a/lisp/net/eudcb-bbdb.el
+++ b/lisp/net/eudcb-bbdb.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/net/eudcb-ldap.el b/lisp/net/eudcb-ldap.el
index 92c487426ed..c484c590abf 100644
--- a/lisp/net/eudcb-ldap.el
+++ b/lisp/net/eudcb-ldap.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/net/eudcb-mab.el b/lisp/net/eudcb-mab.el
index 5ed151f92e6..bdb021ccae0 100644
--- a/lisp/net/eudcb-mab.el
+++ b/lisp/net/eudcb-mab.el
@@ -10,7 +10,7 @@
;; 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
+;; published by the Free Software Foundation; either version 3, or (at
;; your option) any later version.
;; This program is distributed in the hope that it will be useful, but
diff --git a/lisp/net/eudcb-ph.el b/lisp/net/eudcb-ph.el
index 055e0bf4ad1..373b015b07e 100644
--- a/lisp/net/eudcb-ph.el
+++ b/lisp/net/eudcb-ph.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/net/goto-addr.el b/lisp/net/goto-addr.el
index 775041903ff..6d26b19a598 100644
--- a/lisp/net/goto-addr.el
+++ b/lisp/net/goto-addr.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/net/ldap.el b/lisp/net/ldap.el
index 8544b74051a..ca8f70e8547 100644
--- a/lisp/net/ldap.el
+++ b/lisp/net/ldap.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/net/net-utils.el b/lisp/net/net-utils.el
index 6a1c1bca8c0..91f37e8584f 100644
--- a/lisp/net/net-utils.el
+++ b/lisp/net/net-utils.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/net/netrc.el b/lisp/net/netrc.el
index e6c40ed6d0d..1b52090abf6 100644
--- a/lisp/net/netrc.el
+++ b/lisp/net/netrc.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/net/newsticker.el b/lisp/net/newsticker.el
index 32097f57b9a..eb70a2e2d31 100644
--- a/lisp/net/newsticker.el
+++ b/lisp/net/newsticker.el
@@ -13,10 +13,10 @@
;; ======================================================================
-;; This program is free software; you can redistribute it and/or modify
+;; 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 of the License, or (at
-;; your option) any later version.
+;; the Free Software Foundation; either version 3, 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
@@ -24,8 +24,9 @@
;; 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.
+;; 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.
(defconst newsticker-version "1.10" "Version number of newsticker.el.")
diff --git a/lisp/net/quickurl.el b/lisp/net/quickurl.el
index f3da7b1164f..e8449f57313 100644
--- a/lisp/net/quickurl.el
+++ b/lisp/net/quickurl.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/net/rcirc.el b/lisp/net/rcirc.el
index a72dc2fd303..14fda445e45 100644
--- a/lisp/net/rcirc.el
+++ b/lisp/net/rcirc.el
@@ -10,7 +10,7 @@
;; This file 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; This file is distributed in the hope that it will be useful,
diff --git a/lisp/net/rcompile.el b/lisp/net/rcompile.el
index 9eecb8e4481..52c2a20f5c2 100644
--- a/lisp/net/rcompile.el
+++ b/lisp/net/rcompile.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/net/rlogin.el b/lisp/net/rlogin.el
index 53b46c80c85..0003fc0bcbe 100644
--- a/lisp/net/rlogin.el
+++ b/lisp/net/rlogin.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/net/snmp-mode.el b/lisp/net/snmp-mode.el
index 43b12de9706..bf438638794 100644
--- a/lisp/net/snmp-mode.el
+++ b/lisp/net/snmp-mode.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/net/socks.el b/lisp/net/socks.el
index ee2bc0c1d2d..72f6b03570b 100644
--- a/lisp/net/socks.el
+++ b/lisp/net/socks.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/net/telnet.el b/lisp/net/telnet.el
index 6452c26c114..c7b37050ed2 100644
--- a/lisp/net/telnet.el
+++ b/lisp/net/telnet.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/net/tls.el b/lisp/net/tls.el
index cdbb7bef5a7..2e890a4a476 100644
--- a/lisp/net/tls.el
+++ b/lisp/net/tls.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/net/tramp-cache.el b/lisp/net/tramp-cache.el
index 96c4b3ecb9b..79b0b537837 100644
--- a/lisp/net/tramp-cache.el
+++ b/lisp/net/tramp-cache.el
@@ -1,4 +1,3 @@
-;;; -*- mode: Emacs-Lisp; coding: iso-2022-7bit; -*-
;;; tramp-cache.el --- file information caching for Tramp
;; Copyright (C) 2000, 2005, 2006, 2007 by Free Software Foundation, Inc.
@@ -11,8 +10,8 @@
;; 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 3 of the License, or
-;; (at your option) any later version.
+;; the Free Software Foundation; either version 3, 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
diff --git a/lisp/net/tramp-fish.el b/lisp/net/tramp-fish.el
index 8c650b550e9..f0db302abcb 100644
--- a/lisp/net/tramp-fish.el
+++ b/lisp/net/tramp-fish.el
@@ -1,4 +1,3 @@
-;;; -*- coding: iso-8859-1; -*-
;;; tramp-fish.el --- Tramp access functions for FISH protocol
;; Copyright (C) 2006, 2007 Free Software Foundation, Inc.
@@ -10,8 +9,8 @@
;; 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 3 of the License, or
-;; (at your option) any later version.
+;; the Free Software Foundation; either version 3, 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
diff --git a/lisp/net/tramp-ftp.el b/lisp/net/tramp-ftp.el
index fcdab250ac8..f3d7a3aadf1 100644
--- a/lisp/net/tramp-ftp.el
+++ b/lisp/net/tramp-ftp.el
@@ -1,4 +1,4 @@
-;;; tramp-ftp.el --- Tramp convenience functions for Ange-FTP -*- coding: iso-8859-1; -*-
+;;; tramp-ftp.el --- Tramp convenience functions for Ange-FTP
;; Copyright (C) 2002, 2003, 2004, 2005, 2006,
;; 2007 Free Software Foundation, Inc.
@@ -10,8 +10,8 @@
;; 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 3 of the License, or
-;; (at your option) any later version.
+;; the Free Software Foundation; either version 3, 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
diff --git a/lisp/net/tramp-gw.el b/lisp/net/tramp-gw.el
index 78f8040a909..3ac496d8a09 100644
--- a/lisp/net/tramp-gw.el
+++ b/lisp/net/tramp-gw.el
@@ -1,4 +1,3 @@
-;;; -*- coding: iso-8859-1; -*-
;;; tramp-gw.el --- Tramp utility functions for HTTP tunnels and SOCKS gateways
;; Copyright (C) 2007 Free Software Foundation, Inc.
@@ -10,8 +9,8 @@
;; 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 3 of the License, or
-;; (at your option) any later version.
+;; the Free Software Foundation; either version 3, 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
diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el
index c8ea9932f96..5dbf12955d7 100644
--- a/lisp/net/tramp-smb.el
+++ b/lisp/net/tramp-smb.el
@@ -1,4 +1,4 @@
-;;; tramp-smb.el --- Tramp access functions for SMB servers -*- coding: iso-8859-1; -*-
+;;; tramp-smb.el --- Tramp access functions for SMB servers
;; Copyright (C) 2002, 2003, 2004, 2005, 2006,
;; 2007 Free Software Foundation, Inc.
@@ -10,8 +10,8 @@
;; 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 3 of the License, or
-;; (at your option) any later version.
+;; the Free Software Foundation; either version 3, 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
diff --git a/lisp/net/tramp-uu.el b/lisp/net/tramp-uu.el
index 9973860efa0..c399a0b211d 100644
--- a/lisp/net/tramp-uu.el
+++ b/lisp/net/tramp-uu.el
@@ -1,16 +1,16 @@
-;;; -*- coding: iso-2022-7bit; -*-
+;;; -*- coding: utf-8; -*-
;;; tramp-uu.el --- uuencode in Lisp
;; Copyright (C) 2002, 2003, 2004, 2005, 2006,
;; 2007 Free Software Foundation, Inc.
-;; Author: Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net>
+;; Author: Kai Großjohann <kai.grossjohann@gmx.net>
;; Keywords: comm, terminals
;; This file 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 3 of the License, or
-;; (at your option) any later version.
+;; the Free Software Foundation; either version 3, or (at your option)
+;; any later version.
;; This file is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index aa7456ad29a..5285b87313a 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -1,4 +1,4 @@
-;;; -*- mode: Emacs-Lisp; coding: iso-2022-7bit; -*-
+;;; -*- mode: Emacs-Lisp; coding: utf-8; -*-
;;; tramp.el --- Transparent Remote Access, Multiple Protocol
;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
@@ -6,7 +6,7 @@
;; (copyright statements below in code to be updated with the above notice)
-;; Author: Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net>
+;; Author: Kai Großjohann <kai.grossjohann@gmx.net>
;; Michael Albinus <michael.albinus@gmx.de>
;; Keywords: comm, processes
@@ -14,8 +14,8 @@
;; 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 3 of the License, or
-;; (at your option) any later version.
+;; the Free Software Foundation; either version 3, 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
@@ -2448,6 +2448,7 @@ of."
t
(let ((f (buffer-file-name)))
(with-parsed-tramp-file-name f nil
+ (tramp-flush-file-property v localname)
(let* ((attr (file-attributes f))
(modtime (nth 5 attr))
(mt (visited-file-modtime)))
@@ -3713,7 +3714,7 @@ beginning of local filename are not substituted."
(run-hooks 'tramp-handle-file-local-copy-hook)
tmpfil)))
-(defun tramp-handle-file-remote-p (file &optional identification connected)
+(defun tramp-handle-file-remote-p (filename &optional identification connected)
"Like `file-remote-p' for Tramp files."
(when (tramp-tramp-file-p filename)
(with-parsed-tramp-file-name filename nil
@@ -7358,7 +7359,7 @@ please ensure that the buffers are attached to your email.\n\n")
;; transfer method to use. (Greg Stark)
;; * Remove unneeded parameters from methods.
;; * Invoke rsync once for copying a whole directory hierarchy.
-;; (Francesco Potort,Al(B)
+;; (Francesco Potortì)
;; * Make it work for different encodings, and for different file name
;; encodings, too. (Daniel Pittman)
;; * Clean up unused *tramp/foo* buffers after a while. (Pete Forman)
diff --git a/lisp/net/trampver.el b/lisp/net/trampver.el
index eff6a2a772d..f10f08e1031 100644
--- a/lisp/net/trampver.el
+++ b/lisp/net/trampver.el
@@ -1,18 +1,18 @@
-;;; -*- mode: Emacs-Lisp; coding: iso-8859-1; -*-
+;;; -*- mode: Emacs-Lisp; coding: utf-8; -*-
;;; trampver.el --- Transparent Remote Access, Multiple Protocol
;;; lisp/trampver.el. Generated from trampver.el.in by configure.
;; Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
-;; Author: Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net>
+;; Author: Kai Großjohann <kai.grossjohann@gmx.net>
;; Keywords: comm, processes
;; 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 3 of the License, or
-;; (at your option) any later version.
+;; the Free Software Foundation; either version 3, 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
@@ -30,14 +30,14 @@
;; "autoconf && ./configure" to change them. (X)Emacs version check is defined
;; in macro AC_EMACS_INFO of aclocal.m4; should be changed only there.
-(defconst tramp-version "2.1.10"
+(defconst tramp-version "2.1.11-pre"
"This version of Tramp.")
(defconst tramp-bug-report-address "tramp-devel@gnu.org"
"Email address to send bug reports to.")
;; Check for (X)Emacs version.
-(let ((x (if (or (< emacs-major-version 21) (and (featurep 'xemacs) (< emacs-minor-version 4))) (format "Tramp 2.1.10 is not fit for %s" (when (string-match "^.*$" (emacs-version)) (match-string 0 (emacs-version)))) "ok")))
+(let ((x (if (or (< emacs-major-version 21) (and (featurep 'xemacs) (< emacs-minor-version 4))) (format "Tramp 2.1.11-pre is not fit for %s" (when (string-match "^.*$" (emacs-version)) (match-string 0 (emacs-version)))) "ok")))
(unless (string-match "\\`ok\\'" x) (error x)))
(provide 'trampver)
diff --git a/lisp/net/webjump.el b/lisp/net/webjump.el
index 03ce6305196..fea28579b4d 100644
--- a/lisp/net/webjump.el
+++ b/lisp/net/webjump.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -451,14 +451,12 @@ Please submit bug reports and other feedback to the author, Neil W. Van Dyke
(defun webjump-url-encode (str)
(mapconcat '(lambda (c)
- (cond ((= c 32) "+")
- ((or (and (>= c ?a) (<= c ?z))
- (and (>= c ?A) (<= c ?Z))
- (and (>= c ?0) (<= c ?9)))
- (char-to-string c))
- (t (upcase (format "%%%02x" c)))))
- str
- ""))
+ (let ((s (char-to-string c)))
+ (cond ((string= s " ") "+")
+ ((string-match "[a-zA-Z_.-/]" s) s)
+ (t (upcase (format "%%%02x" c))))))
+ (encode-coding-string str 'utf-8)
+ ""))
(defun webjump-url-fix (url)
(if (webjump-null-or-blank-string-p url)
diff --git a/lisp/newcomment.el b/lisp/newcomment.el
index 55f96d21464..71522cd1285 100644
--- a/lisp/newcomment.el
+++ b/lisp/newcomment.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/novice.el b/lisp/novice.el
index 346877dcdda..bbb7fa6f977 100644
--- a/lisp/novice.el
+++ b/lisp/novice.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/obsolete/awk-mode.el b/lisp/obsolete/awk-mode.el
index 06376f96dc2..7f20ad4b494 100644
--- a/lisp/obsolete/awk-mode.el
+++ b/lisp/obsolete/awk-mode.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/obsolete/bg-mouse.el b/lisp/obsolete/bg-mouse.el
index d0d1024c966..aa4cd8713f4 100644
--- a/lisp/obsolete/bg-mouse.el
+++ b/lisp/obsolete/bg-mouse.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/obsolete/fast-lock.el b/lisp/obsolete/fast-lock.el
index 744b5a53bed..a2405b0edb2 100644
--- a/lisp/obsolete/fast-lock.el
+++ b/lisp/obsolete/fast-lock.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/obsolete/float.el b/lisp/obsolete/float.el
index ff2e33607a0..ec375bacb76 100644
--- a/lisp/obsolete/float.el
+++ b/lisp/obsolete/float.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/obsolete/hilit19.el b/lisp/obsolete/hilit19.el
index 583e16082c8..c29d4fad3dd 100644
--- a/lisp/obsolete/hilit19.el
+++ b/lisp/obsolete/hilit19.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/obsolete/hscroll.el b/lisp/obsolete/hscroll.el
index adb366c7d41..970fca5f698 100644
--- a/lisp/obsolete/hscroll.el
+++ b/lisp/obsolete/hscroll.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/obsolete/iso-acc.el b/lisp/obsolete/iso-acc.el
index 176f5b469f8..729cf0e38a9 100644
--- a/lisp/obsolete/iso-acc.el
+++ b/lisp/obsolete/iso-acc.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/obsolete/iso-insert.el b/lisp/obsolete/iso-insert.el
index 79e7acbbe6e..49fe9f8a82e 100644
--- a/lisp/obsolete/iso-insert.el
+++ b/lisp/obsolete/iso-insert.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/obsolete/iso-swed.el b/lisp/obsolete/iso-swed.el
index 97ecee145c4..d8935c76bdc 100644
--- a/lisp/obsolete/iso-swed.el
+++ b/lisp/obsolete/iso-swed.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/obsolete/keyswap.el b/lisp/obsolete/keyswap.el
index 3b4237fe90b..d3138b604d2 100644
--- a/lisp/obsolete/keyswap.el
+++ b/lisp/obsolete/keyswap.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/obsolete/lazy-lock.el b/lisp/obsolete/lazy-lock.el
index 97893d748a7..e048b4e82ca 100644
--- a/lisp/obsolete/lazy-lock.el
+++ b/lisp/obsolete/lazy-lock.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/obsolete/mlsupport.el b/lisp/obsolete/mlsupport.el
index 9d3bb8aa6ad..d1844cd42ce 100644
--- a/lisp/obsolete/mlsupport.el
+++ b/lisp/obsolete/mlsupport.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/obsolete/ooutline.el b/lisp/obsolete/ooutline.el
index 478f7918acd..9e302e85c71 100644
--- a/lisp/obsolete/ooutline.el
+++ b/lisp/obsolete/ooutline.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/obsolete/options.el b/lisp/obsolete/options.el
index 722f60a53e8..4659315d590 100644
--- a/lisp/obsolete/options.el
+++ b/lisp/obsolete/options.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/obsolete/profile.el b/lisp/obsolete/profile.el
index 999ba706448..249b1e599b2 100644
--- a/lisp/obsolete/profile.el
+++ b/lisp/obsolete/profile.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/obsolete/rnews.el b/lisp/obsolete/rnews.el
index e606e1f9f0a..bca9ea4824a 100644
--- a/lisp/obsolete/rnews.el
+++ b/lisp/obsolete/rnews.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/obsolete/rnewspost.el b/lisp/obsolete/rnewspost.el
index 54cda95f133..604b03f4308 100644
--- a/lisp/obsolete/rnewspost.el
+++ b/lisp/obsolete/rnewspost.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/obsolete/rsz-mini.el b/lisp/obsolete/rsz-mini.el
index acde0287587..8cbed5f451d 100644
--- a/lisp/obsolete/rsz-mini.el
+++ b/lisp/obsolete/rsz-mini.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/obsolete/scribe.el b/lisp/obsolete/scribe.el
index e5d1394b685..03a0ee0734a 100644
--- a/lisp/obsolete/scribe.el
+++ b/lisp/obsolete/scribe.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/obsolete/sun-curs.el b/lisp/obsolete/sun-curs.el
index f0275285690..612102159df 100644
--- a/lisp/obsolete/sun-curs.el
+++ b/lisp/obsolete/sun-curs.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/obsolete/sun-fns.el b/lisp/obsolete/sun-fns.el
index 55d265c5141..2f95d5011c1 100644
--- a/lisp/obsolete/sun-fns.el
+++ b/lisp/obsolete/sun-fns.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/obsolete/swedish.el b/lisp/obsolete/swedish.el
index 06962b09d45..41b349aec5a 100644
--- a/lisp/obsolete/swedish.el
+++ b/lisp/obsolete/swedish.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/obsolete/uncompress.el b/lisp/obsolete/uncompress.el
index 92eb5fae441..5fc00adb49a 100644
--- a/lisp/obsolete/uncompress.el
+++ b/lisp/obsolete/uncompress.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/obsolete/x-apollo.el b/lisp/obsolete/x-apollo.el
index 98ec9aaff35..f06f793dc94 100644
--- a/lisp/obsolete/x-apollo.el
+++ b/lisp/obsolete/x-apollo.el
@@ -7,7 +7,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/obsolete/x-menu.el b/lisp/obsolete/x-menu.el
index 27c313dde97..e500512cce1 100644
--- a/lisp/obsolete/x-menu.el
+++ b/lisp/obsolete/x-menu.el
@@ -7,7 +7,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/outline.el b/lisp/outline.el
index d0c121a12c4..6eabd8f3d02 100644
--- a/lisp/outline.el
+++ b/lisp/outline.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/paren.el b/lisp/paren.el
index 95f718d5683..7deb9172a39 100644
--- a/lisp/paren.el
+++ b/lisp/paren.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/paths.el b/lisp/paths.el
index 2e2ab6584fe..113bf2ec91e 100644
--- a/lisp/paths.el
+++ b/lisp/paths.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/pcmpl-cvs.el b/lisp/pcmpl-cvs.el
index 912cd6caca7..84915a78cff 100644
--- a/lisp/pcmpl-cvs.el
+++ b/lisp/pcmpl-cvs.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/pcmpl-gnu.el b/lisp/pcmpl-gnu.el
index b413ca99231..6431e36f5ad 100644
--- a/lisp/pcmpl-gnu.el
+++ b/lisp/pcmpl-gnu.el
@@ -7,7 +7,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/pcmpl-linux.el b/lisp/pcmpl-linux.el
index ed21d8c337c..c2b2fcb8dae 100644
--- a/lisp/pcmpl-linux.el
+++ b/lisp/pcmpl-linux.el
@@ -7,7 +7,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/pcmpl-rpm.el b/lisp/pcmpl-rpm.el
index b84bc28f194..4fe7f22c46d 100644
--- a/lisp/pcmpl-rpm.el
+++ b/lisp/pcmpl-rpm.el
@@ -7,7 +7,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/pcmpl-unix.el b/lisp/pcmpl-unix.el
index 9cd5de1e4d1..cb1866df2ea 100644
--- a/lisp/pcmpl-unix.el
+++ b/lisp/pcmpl-unix.el
@@ -7,7 +7,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/pcomplete.el b/lisp/pcomplete.el
index 86d930127b5..79b269870b1 100644
--- a/lisp/pcomplete.el
+++ b/lisp/pcomplete.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/pcvs-defs.el b/lisp/pcvs-defs.el
index 2641c1cb959..5798be4b14d 100644
--- a/lisp/pcvs-defs.el
+++ b/lisp/pcvs-defs.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/pcvs-info.el b/lisp/pcvs-info.el
index 880972bff9d..25fe2069909 100644
--- a/lisp/pcvs-info.el
+++ b/lisp/pcvs-info.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/pcvs-parse.el b/lisp/pcvs-parse.el
index d9e2f2411a1..c26a27ed008 100644
--- a/lisp/pcvs-parse.el
+++ b/lisp/pcvs-parse.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/pcvs-util.el b/lisp/pcvs-util.el
index 58c605a19d2..6991f796526 100644
--- a/lisp/pcvs-util.el
+++ b/lisp/pcvs-util.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/pcvs.el b/lisp/pcvs.el
index 12ad6f5e2a0..901110bbfa3 100644
--- a/lisp/pcvs.el
+++ b/lisp/pcvs.el
@@ -19,7 +19,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -392,7 +392,11 @@ from the current buffer."
(with-current-buffer buf
(setq buffer-read-only nil)
(setq default-directory dir)
- (unless nosetup (erase-buffer))
+ (unless nosetup
+ ;; Disable undo before calling erase-buffer since it may generate
+ ;; a very large and unwanted undo record.
+ (buffer-disable-undo)
+ (erase-buffer))
(set (make-local-variable 'cvs-buffer) cvs-buf)
;;(cvs-minor-mode 1)
(let ((lbd list-buffers-directory))
@@ -400,7 +404,8 @@ from the current buffer."
(when lbd (set (make-local-variable 'list-buffers-directory) lbd)))
(cvs-minor-mode 1)
;;(set (make-local-variable 'cvs-buffer) cvs-buf)
- (unless normal
+ (if normal
+ (buffer-enable-undo)
(setq buffer-read-only t)
(buffer-disable-undo))
buf)))
diff --git a/lisp/pgg-def.el b/lisp/pgg-def.el
index 208f10b0a8e..e6c309b648a 100644
--- a/lisp/pgg-def.el
+++ b/lisp/pgg-def.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/pgg-gpg.el b/lisp/pgg-gpg.el
index 014357aa4e6..df98e94e305 100644
--- a/lisp/pgg-gpg.el
+++ b/lisp/pgg-gpg.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/pgg-parse.el b/lisp/pgg-parse.el
index 4262300aeda..11d0c652d34 100644
--- a/lisp/pgg-parse.el
+++ b/lisp/pgg-parse.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/pgg-pgp.el b/lisp/pgg-pgp.el
index 9bc494a5ef7..36f72eff8e1 100644
--- a/lisp/pgg-pgp.el
+++ b/lisp/pgg-pgp.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/pgg-pgp5.el b/lisp/pgg-pgp5.el
index 7525ee3d981..05274d16e36 100644
--- a/lisp/pgg-pgp5.el
+++ b/lisp/pgg-pgp5.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/pgg.el b/lisp/pgg.el
index eabc4f47408..13a5148d5cd 100644
--- a/lisp/pgg.el
+++ b/lisp/pgg.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/play/5x5.el b/lisp/play/5x5.el
index 5cf0c37fb62..bea52cbe3a5 100644
--- a/lisp/play/5x5.el
+++ b/lisp/play/5x5.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/play/animate.el b/lisp/play/animate.el
index 9d180a5f338..78f50aa520a 100644
--- a/lisp/play/animate.el
+++ b/lisp/play/animate.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/play/blackbox.el b/lisp/play/blackbox.el
index d6bbc6be5d6..f21a4458665 100644
--- a/lisp/play/blackbox.el
+++ b/lisp/play/blackbox.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/play/bruce.el b/lisp/play/bruce.el
index 2a1bdf33b3e..69ac85a55ba 100644
--- a/lisp/play/bruce.el
+++ b/lisp/play/bruce.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/play/cookie1.el b/lisp/play/cookie1.el
index 4b795360d39..fbbf23d99eb 100644
--- a/lisp/play/cookie1.el
+++ b/lisp/play/cookie1.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/play/decipher.el b/lisp/play/decipher.el
index 089b4d7699b..6b1644d58b0 100644
--- a/lisp/play/decipher.el
+++ b/lisp/play/decipher.el
@@ -10,7 +10,7 @@
;;
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;;
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/play/dissociate.el b/lisp/play/dissociate.el
index 1c0e89e7c7d..7a067868f54 100644
--- a/lisp/play/dissociate.el
+++ b/lisp/play/dissociate.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/play/doctor.el b/lisp/play/doctor.el
index 4c3cc5b4ce8..557949480ed 100644
--- a/lisp/play/doctor.el
+++ b/lisp/play/doctor.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/play/dunnet.el b/lisp/play/dunnet.el
index 9e7dddc92e2..a1f8c2708d2 100644
--- a/lisp/play/dunnet.el
+++ b/lisp/play/dunnet.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/play/fortune.el b/lisp/play/fortune.el
index 2e635f312da..7e0bdc27068 100644
--- a/lisp/play/fortune.el
+++ b/lisp/play/fortune.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/play/gamegrid.el b/lisp/play/gamegrid.el
index 0c49d81ec06..74158e7bfd3 100644
--- a/lisp/play/gamegrid.el
+++ b/lisp/play/gamegrid.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/play/gametree.el b/lisp/play/gametree.el
index 45fa1afba63..ba35fb63fc6 100644
--- a/lisp/play/gametree.el
+++ b/lisp/play/gametree.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/play/gomoku.el b/lisp/play/gomoku.el
index 8c04f254a0b..bbeab1e1002 100644
--- a/lisp/play/gomoku.el
+++ b/lisp/play/gomoku.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/play/handwrite.el b/lisp/play/handwrite.el
index bef248e24e9..5e6c77e64b9 100644
--- a/lisp/play/handwrite.el
+++ b/lisp/play/handwrite.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/play/landmark.el b/lisp/play/landmark.el
index e8d0b21f47d..1eb8df8d58c 100644
--- a/lisp/play/landmark.el
+++ b/lisp/play/landmark.el
@@ -17,7 +17,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/play/life.el b/lisp/play/life.el
index b908a0f14b2..326e0bf32a9 100644
--- a/lisp/play/life.el
+++ b/lisp/play/life.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/play/morse.el b/lisp/play/morse.el
index 7e53f90775c..62752dafd1b 100644
--- a/lisp/play/morse.el
+++ b/lisp/play/morse.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/play/mpuz.el b/lisp/play/mpuz.el
index 5cb2ed0c9ca..4cd3bd673ff 100644
--- a/lisp/play/mpuz.el
+++ b/lisp/play/mpuz.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/play/pong.el b/lisp/play/pong.el
index 4254a4fded4..a5a54f8b69c 100644
--- a/lisp/play/pong.el
+++ b/lisp/play/pong.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/play/snake.el b/lisp/play/snake.el
index c1c9ddfaaf6..331d79d675f 100644
--- a/lisp/play/snake.el
+++ b/lisp/play/snake.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/play/solitaire.el b/lisp/play/solitaire.el
index 38bc1e4915b..b027db88ad6 100644
--- a/lisp/play/solitaire.el
+++ b/lisp/play/solitaire.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/play/spook.el b/lisp/play/spook.el
index a0ec0280662..9901ce9e2e9 100644
--- a/lisp/play/spook.el
+++ b/lisp/play/spook.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/play/tetris.el b/lisp/play/tetris.el
index 11f6364e609..b81dbeab871 100644
--- a/lisp/play/tetris.el
+++ b/lisp/play/tetris.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/play/yow.el b/lisp/play/yow.el
index 407c96a9976..28fc453577b 100644
--- a/lisp/play/yow.el
+++ b/lisp/play/yow.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/play/zone.el b/lisp/play/zone.el
index 256a316c3cf..71ae01d23d9 100644
--- a/lisp/play/zone.el
+++ b/lisp/play/zone.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/printing.el b/lisp/printing.el
index 4830fd0c5fd..7b45d166aa3 100644
--- a/lisp/printing.el
+++ b/lisp/printing.el
@@ -20,7 +20,7 @@ Please send all bug fixes and enhancements to
;; 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
+;; Software Foundation; either version 3, or (at your option) any later
;; version.
;; GNU Emacs is distributed in the hope that it will be useful, but WITHOUT ANY
diff --git a/lisp/progmodes/ada-mode.el b/lisp/progmodes/ada-mode.el
index 9581fd436b3..c9a69005eaf 100644
--- a/lisp/progmodes/ada-mode.el
+++ b/lisp/progmodes/ada-mode.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/ada-prj.el b/lisp/progmodes/ada-prj.el
index 10a5b670c54..7cff0158f8a 100644
--- a/lisp/progmodes/ada-prj.el
+++ b/lisp/progmodes/ada-prj.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/ada-stmt.el b/lisp/progmodes/ada-stmt.el
index 483a54df13b..a881753a0ab 100644
--- a/lisp/progmodes/ada-stmt.el
+++ b/lisp/progmodes/ada-stmt.el
@@ -3,12 +3,27 @@
;; Copyright (C) 1987, 1993, 1994, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
;; 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
-;; This file is part of GNU Emacs.
-
;; Authors: Daniel Pfeiffer, Markus Heritsch, Rolf Ebert <ebert@waporo.muc.de>
;; Maintainer: Stephen Leake <stephen_leake@stephe-leake.org>
;; Keywords: languages, ada
+;; 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 3, 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.
+
;;; Commentary:
;; This file is now automatically loaded from ada-mode.el, and creates a submenu
;; in Ada/ on the menu bar.
diff --git a/lisp/progmodes/ada-xref.el b/lisp/progmodes/ada-xref.el
index 9c239ee6dbb..e8db3d51c2a 100644
--- a/lisp/progmodes/ada-xref.el
+++ b/lisp/progmodes/ada-xref.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/antlr-mode.el b/lisp/progmodes/antlr-mode.el
index 3b7a2015af5..7fbeeab6eea 100644
--- a/lisp/progmodes/antlr-mode.el
+++ b/lisp/progmodes/antlr-mode.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/asm-mode.el b/lisp/progmodes/asm-mode.el
index 3ca8c671e8c..d38e6170a23 100644
--- a/lisp/progmodes/asm-mode.el
+++ b/lisp/progmodes/asm-mode.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/autoconf.el b/lisp/progmodes/autoconf.el
index 1d08b094351..e01579917f6 100644
--- a/lisp/progmodes/autoconf.el
+++ b/lisp/progmodes/autoconf.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/cc-align.el b/lisp/progmodes/cc-align.el
index f9e44d784f1..40dd3b5831e 100644
--- a/lisp/progmodes/cc-align.el
+++ b/lisp/progmodes/cc-align.el
@@ -18,7 +18,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/cc-awk.el b/lisp/progmodes/cc-awk.el
index b3e0e381135..997e6c44f1a 100644
--- a/lisp/progmodes/cc-awk.el
+++ b/lisp/progmodes/cc-awk.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/cc-bytecomp.el b/lisp/progmodes/cc-bytecomp.el
index b2f793c0b1c..5a69df4e457 100644
--- a/lisp/progmodes/cc-bytecomp.el
+++ b/lisp/progmodes/cc-bytecomp.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/cc-cmds.el b/lisp/progmodes/cc-cmds.el
index 079ebb02622..48fa7d99f5a 100644
--- a/lisp/progmodes/cc-cmds.el
+++ b/lisp/progmodes/cc-cmds.el
@@ -18,7 +18,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/cc-compat.el b/lisp/progmodes/cc-compat.el
index 07433b9630b..81739f5adf1 100644
--- a/lisp/progmodes/cc-compat.el
+++ b/lisp/progmodes/cc-compat.el
@@ -15,7 +15,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/cc-defs.el b/lisp/progmodes/cc-defs.el
index 8c10df649de..e932456fa91 100644
--- a/lisp/progmodes/cc-defs.el
+++ b/lisp/progmodes/cc-defs.el
@@ -18,7 +18,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el
index 717016af7ea..44463a07f15 100644
--- a/lisp/progmodes/cc-engine.el
+++ b/lisp/progmodes/cc-engine.el
@@ -18,7 +18,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/cc-fonts.el b/lisp/progmodes/cc-fonts.el
index 0df09eda481..60bb3cfb977 100644
--- a/lisp/progmodes/cc-fonts.el
+++ b/lisp/progmodes/cc-fonts.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/cc-langs.el b/lisp/progmodes/cc-langs.el
index 906cbfb19a7..c5d9c162520 100644
--- a/lisp/progmodes/cc-langs.el
+++ b/lisp/progmodes/cc-langs.el
@@ -18,7 +18,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -2875,6 +2875,14 @@ way."
(defconst c-lang-variable-inits (cc-eval-when-compile c-lang-variable-inits))
(defconst c-emacs-variable-inits (cc-eval-when-compile c-emacs-variable-inits))
+;; Make the `c-lang-setvar' variables buffer local in the current buffer.
+;; These are typically standard emacs variables such as `comment-start'.
+(defmacro c-make-emacs-variables-local ()
+ `(progn
+ ,@(mapcar (lambda (init)
+ `(make-local-variable ',(car init)))
+ (cdr c-emacs-variable-inits))))
+
(defun c-make-init-lang-vars-fun (mode)
"Create a function that initializes all the language dependent variables
for the given mode.
@@ -2898,6 +2906,7 @@ accomplish that conveniently."
;; that could be in the result from `cl-macroexpand-all'.
(let ((c-buffer-is-cc-mode ',mode)
current-var source-eval)
+ (c-make-emacs-variables-local)
(condition-case err
(if (eq c-version-sym ',c-version-sym)
@@ -2956,6 +2965,7 @@ accomplish that conveniently."
(init (append (cdr c-emacs-variable-inits)
(cdr c-lang-variable-inits)))
current-var)
+ (c-make-emacs-variables-local)
(condition-case err
(while init
diff --git a/lisp/progmodes/cc-menus.el b/lisp/progmodes/cc-menus.el
index 514945c269d..95359689b9f 100644
--- a/lisp/progmodes/cc-menus.el
+++ b/lisp/progmodes/cc-menus.el
@@ -17,7 +17,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/cc-mode.el b/lisp/progmodes/cc-mode.el
index dcbcc618dca..8669a41c2f0 100644
--- a/lisp/progmodes/cc-mode.el
+++ b/lisp/progmodes/cc-mode.el
@@ -17,7 +17,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -154,21 +154,12 @@
(defun c-leave-cc-mode-mode ()
(setq c-buffer-is-cc-mode nil))
-;; Make the `c-lang-setvar' variables buffer local in the current buffer.
-;; These are typically standard emacs variables such as `comment-start'.
-(defmacro c-make-emacs-variables-local ()
- `(progn
- ,@(mapcar (lambda (init)
- `(make-local-variable ',(car init)))
- (cdr c-emacs-variable-inits))))
-
(defun c-init-language-vars-for (mode)
"Initialize the language variables for one of the language modes
directly supported by CC Mode. This can be used instead of the
`c-init-language-vars' macro if the language you want to use is one of
those, rather than a derived language defined through the language
variable system (see \"cc-langs.el\")."
- (c-make-emacs-variables-local)
(cond ((eq mode 'c-mode) (c-init-language-vars c-mode))
((eq mode 'c++-mode) (c-init-language-vars c++-mode))
((eq mode 'objc-mode) (c-init-language-vars objc-mode))
diff --git a/lisp/progmodes/cc-styles.el b/lisp/progmodes/cc-styles.el
index 228269b67bf..c5b9b063812 100644
--- a/lisp/progmodes/cc-styles.el
+++ b/lisp/progmodes/cc-styles.el
@@ -18,7 +18,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/cc-subword.el b/lisp/progmodes/cc-subword.el
index a6a365d316b..68ecd3a0515 100644
--- a/lisp/progmodes/cc-subword.el
+++ b/lisp/progmodes/cc-subword.el
@@ -6,7 +6,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; This program is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/cc-vars.el b/lisp/progmodes/cc-vars.el
index 8d28cba79ad..a80833c0043 100644
--- a/lisp/progmodes/cc-vars.el
+++ b/lisp/progmodes/cc-vars.el
@@ -18,7 +18,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/cfengine.el b/lisp/progmodes/cfengine.el
index 756979b3d78..06f464b29ce 100644
--- a/lisp/progmodes/cfengine.el
+++ b/lisp/progmodes/cfengine.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/cmacexp.el b/lisp/progmodes/cmacexp.el
index 03fb90d992c..4722f0ca4ae 100644
--- a/lisp/progmodes/cmacexp.el
+++ b/lisp/progmodes/cmacexp.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index 0c57e6f55b1..2710066c2cd 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -167,6 +167,10 @@ of[ \t]+\"?\\([a-zA-Z]?:?[^\":\n]+\\)\"?:" 3 2 nil (1))
"^[ \t]*\\[[^] \n]+\\][ \t]*\\([^: \n]+\\):\\([0-9]+\\):\\(?:\\([0-9]+\\):[0-9]+:[0-9]+:\\)?\
\\( warning\\)?" 1 2 3 (4))
+ (maven
+ ;; Maven is a popular build tool for Java. Maven is Free Software.
+ "\\(.*?\\):\\[\\([0-9]+\\),\\([0-9]+\\)\\]" 1 2 3)
+
(bash
"^\\([^: \n\t]+\\): line \\([0-9]+\\):" 1 2)
@@ -1101,8 +1105,7 @@ Returns the compilation buffer created."
(unless (getenv "EMACS")
(list "EMACS=t"))
(list "INSIDE_EMACS=t")
- (copy-sequence process-environment)))
- (start-process (symbol-function 'start-process)))
+ (copy-sequence process-environment))))
(set (make-local-variable 'compilation-arguments)
(list command mode name-function highlight-regexp))
(set (make-local-variable 'revert-buffer-function)
@@ -1123,22 +1126,14 @@ Returns the compilation buffer created."
;; comint uses `start-file-process'.
(get-buffer-process
(with-no-warnings
- (comint-exec outbuf (downcase mode-name)
- shell-file-name nil `("-c" ,command))))
- ;; Redefine temporarily `start-process' in order to
- ;; handle remote compilation.
- (fset 'start-process
- (lambda (name buffer program &rest program-args)
- (apply
- (if (file-remote-p default-directory)
- 'start-file-process
- start-process)
- name buffer program program-args)))
- (unwind-protect
- (start-process-shell-command (downcase mode-name)
- outbuf command)
- ;; Unwindform: Reset original definition of `start-process'.
- (fset 'start-process start-process)))))
+ (comint-exec
+ outbuf (downcase mode-name)
+ (if (file-remote-p default-directory)
+ "/bin/sh"
+ shell-file-name)
+ `("-c" ,command))))
+ (start-file-process-shell-command (downcase mode-name)
+ outbuf command))))
;; Make the buffer's mode line show process state.
(setq mode-line-process '(":%s"))
(set-process-sentinel proc 'compilation-sentinel)
@@ -2055,9 +2050,9 @@ The file-structure looks like this:
;; compilation-error-list) to point-min, but that was only meaningful for
;; the internal uses of compilation-forget-errors: all calls from external
;; packages seem to be followed by a move of compilation-parsing-end to
- ;; something equivalent to point-max. So we speculatively move
+ ;; something equivalent to point-max. So we heuristically move
;; compilation-current-error to point-max (since the external package
- ;; won't know that it should do it). --stef
+ ;; won't know that it should do it). --Stef
(setq compilation-current-error nil)
(let* ((proc (get-buffer-process (current-buffer)))
(mark (if proc (process-mark proc)))
@@ -2068,7 +2063,12 @@ The file-structure looks like this:
;; we need to put ours just before the insertion point rather
;; than at the insertion point. If that's not possible, then
;; don't use a marker. --Stef
- (if (> pos (point-min)) (copy-marker (1- pos)) pos))))
+ (if (> pos (point-min)) (copy-marker (1- pos)) pos)))
+ ;; Again, since this command is used in buffers that contain several
+ ;; compilations, to set the beginning of "this compilation", it's a good
+ ;; place to reset compilation-auto-jump-to-next.
+ (set (make-local-variable 'compilation-auto-jump-to-next)
+ compilation-auto-jump-to-first-error))
;;;###autoload
(add-to-list 'auto-mode-alist '("\\.gcov\\'" . compilation-mode))
diff --git a/lisp/progmodes/cperl-mode.el b/lisp/progmodes/cperl-mode.el
index a07fb5ee44f..d1dc0e875c4 100644
--- a/lisp/progmodes/cperl-mode.el
+++ b/lisp/progmodes/cperl-mode.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/cpp.el b/lisp/progmodes/cpp.el
index 65ed00e6d6e..e85c4752412 100644
--- a/lisp/progmodes/cpp.el
+++ b/lisp/progmodes/cpp.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/cwarn.el b/lisp/progmodes/cwarn.el
index 8f710bf20bc..8ecf4119825 100644
--- a/lisp/progmodes/cwarn.el
+++ b/lisp/progmodes/cwarn.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/dcl-mode.el b/lisp/progmodes/dcl-mode.el
index bdec1bf9ef4..887416f9069 100644
--- a/lisp/progmodes/dcl-mode.el
+++ b/lisp/progmodes/dcl-mode.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/delphi.el b/lisp/progmodes/delphi.el
index 2402f48d7ea..99f03f8a545 100644
--- a/lisp/progmodes/delphi.el
+++ b/lisp/progmodes/delphi.el
@@ -11,7 +11,7 @@
;; 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
+;; Software Foundation; either version 3, or (at your option) any later
;; version.
;; GNU Emacs is distributed in the hope that it will be useful, but WITHOUT ANY
diff --git a/lisp/progmodes/ebnf-abn.el b/lisp/progmodes/ebnf-abn.el
index 48de29808b6..44034bde3d5 100644
--- a/lisp/progmodes/ebnf-abn.el
+++ b/lisp/progmodes/ebnf-abn.el
@@ -6,13 +6,13 @@
;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br>
;; Keywords: wp, ebnf, PostScript
-;; Version: 1.1
+;; Version: 1.2
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -589,6 +589,12 @@ See documentation for variable `ebnf-abn-lex'."
;; close EPS file
((and ebnf-eps-executing (= (following-char) ?\]))
(ebnf-eps-remove-context (ebnf-abn-eps-filename)))
+ ;; EPS header
+ ((and ebnf-eps-executing (= (following-char) ?H))
+ (ebnf-eps-header-comment (ebnf-abn-eps-filename)))
+ ;; EPS footer
+ ((and ebnf-eps-executing (= (following-char) ?F))
+ (ebnf-eps-footer-comment (ebnf-abn-eps-filename)))
;; any other action in comment
(t
(setq ebnf-action (aref ebnf-comment-table (following-char)))
diff --git a/lisp/progmodes/ebnf-bnf.el b/lisp/progmodes/ebnf-bnf.el
index 443e2c23cd5..8f6ecd99d24 100644
--- a/lisp/progmodes/ebnf-bnf.el
+++ b/lisp/progmodes/ebnf-bnf.el
@@ -6,13 +6,13 @@
;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br>
;; Keywords: wp, ebnf, PostScript
-;; Version: 1.9
+;; Version: 1.10
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -537,6 +537,12 @@ See documentation for variable `ebnf-bnf-lex'."
;; close EPS file
((and ebnf-eps-executing (= (following-char) ?\]))
(ebnf-eps-remove-context (ebnf-bnf-eps-filename)))
+ ;; EPS header
+ ((and ebnf-eps-executing (= (following-char) ?H))
+ (ebnf-eps-header-comment (ebnf-bnf-eps-filename)))
+ ;; EPS footer
+ ((and ebnf-eps-executing (= (following-char) ?F))
+ (ebnf-eps-footer-comment (ebnf-bnf-eps-filename)))
;; any other action in comment
(t
(setq ebnf-action (aref ebnf-comment-table (following-char)))
diff --git a/lisp/progmodes/ebnf-dtd.el b/lisp/progmodes/ebnf-dtd.el
index f4c57ea2818..855dd3813b8 100644
--- a/lisp/progmodes/ebnf-dtd.el
+++ b/lisp/progmodes/ebnf-dtd.el
@@ -6,13 +6,13 @@
;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br>
;; Keywords: wp, ebnf, PostScript
-;; Version: 1.0
+;; Version: 1.1
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -1306,6 +1306,12 @@ See documentation for variable `ebnf-dtd-lex'."
;; close EPS file
((and ebnf-eps-executing (= (following-char) ?\]))
(ebnf-eps-remove-context (ebnf-dtd-eps-filename)))
+ ;; EPS header
+ ((and ebnf-eps-executing (= (following-char) ?H))
+ (ebnf-eps-header-comment (ebnf-dtd-eps-filename)))
+ ;; EPS footer
+ ((and ebnf-eps-executing (= (following-char) ?F))
+ (ebnf-eps-footer-comment (ebnf-dtd-eps-filename)))
;; any other action in comment
(t
(setq ebnf-action (aref ebnf-comment-table (following-char))))
diff --git a/lisp/progmodes/ebnf-ebx.el b/lisp/progmodes/ebnf-ebx.el
index d506e9cc54d..90acb3b0b0c 100644
--- a/lisp/progmodes/ebnf-ebx.el
+++ b/lisp/progmodes/ebnf-ebx.el
@@ -6,13 +6,13 @@
;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br>
;; Keywords: wp, ebnf, PostScript
-;; Version: 1.1
+;; Version: 1.2
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -539,6 +539,12 @@ See documentation for variable `ebnf-ebx-lex'."
;; close EPS file
((and ebnf-eps-executing (= (following-char) ?\]))
(ebnf-eps-remove-context (ebnf-ebx-eps-filename)))
+ ;; EPS header
+ ((and ebnf-eps-executing (= (following-char) ?H))
+ (ebnf-eps-header-comment (ebnf-ebx-eps-filename)))
+ ;; EPS footer
+ ((and ebnf-eps-executing (= (following-char) ?F))
+ (ebnf-eps-footer-comment (ebnf-ebx-eps-filename)))
;; any other action in comment
(t
(setq ebnf-action (aref ebnf-comment-table (following-char))))
diff --git a/lisp/progmodes/ebnf-iso.el b/lisp/progmodes/ebnf-iso.el
index 2e666328390..9b670b4dbfe 100644
--- a/lisp/progmodes/ebnf-iso.el
+++ b/lisp/progmodes/ebnf-iso.el
@@ -1,18 +1,18 @@
;;; ebnf-iso.el --- parser for ISO EBNF
;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
-;; Free Software Foundation, Inc.
+;; Free Software Foundation, Inc.
;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br>
;; Keywords: wp, ebnf, PostScript
-;; Version: 1.8
+;; Version: 1.9
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -504,6 +504,12 @@ See documentation for variable `ebnf-iso-lex'."
;; close EPS file
((and ebnf-eps-executing (= (following-char) ?\]))
(ebnf-eps-remove-context (ebnf-iso-eps-filename)))
+ ;; EPS header
+ ((and ebnf-eps-executing (= (following-char) ?H))
+ (ebnf-eps-header-comment (ebnf-iso-eps-filename)))
+ ;; EPS footer
+ ((and ebnf-eps-executing (= (following-char) ?F))
+ (ebnf-eps-footer-comment (ebnf-iso-eps-filename)))
;; any other action in comment
(t
(setq ebnf-action (aref ebnf-comment-table (following-char))))
diff --git a/lisp/progmodes/ebnf-otz.el b/lisp/progmodes/ebnf-otz.el
index bcf8032318c..c4f9fdcd8c1 100644
--- a/lisp/progmodes/ebnf-otz.el
+++ b/lisp/progmodes/ebnf-otz.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/ebnf-yac.el b/lisp/progmodes/ebnf-yac.el
index 5defea14d50..c1b00bdddfc 100644
--- a/lisp/progmodes/ebnf-yac.el
+++ b/lisp/progmodes/ebnf-yac.el
@@ -6,13 +6,13 @@
;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br>
;; Keywords: wp, ebnf, PostScript
-;; Version: 1.3
+;; Version: 1.4
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -459,6 +459,12 @@ See documentation for variable `ebnf-yac-lex'."
;; close EPS file
((and ebnf-eps-executing (= (following-char) ?\]))
(ebnf-eps-remove-context (ebnf-yac-eps-filename)))
+ ;; EPS header
+ ((and ebnf-eps-executing (= (following-char) ?H))
+ (ebnf-eps-header-comment (ebnf-yac-eps-filename)))
+ ;; EPS footer
+ ((and ebnf-eps-executing (= (following-char) ?F))
+ (ebnf-eps-footer-comment (ebnf-yac-eps-filename)))
;; any other action in comment
(t
(setq ebnf-action (aref ebnf-comment-table (following-char))))
diff --git a/lisp/progmodes/ebnf2ps.el b/lisp/progmodes/ebnf2ps.el
index 55f61222796..be25293c643 100644
--- a/lisp/progmodes/ebnf2ps.el
+++ b/lisp/progmodes/ebnf2ps.el
@@ -1,19 +1,19 @@
;;; ebnf2ps.el --- translate an EBNF to a syntactic chart on PostScript
;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
-;; Free Software Foundation, Inc.
+;; Free Software Foundation, Inc.
;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br>
;; Keywords: wp, ebnf, PostScript
-;; Version: 4.3
+;; Version: 4.4
;; X-URL: http://www.emacswiki.org/cgi-bin/wiki/ViniciusJoseLatorre
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -26,8 +26,8 @@
;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
;; Boston, MA 02110-1301, USA.
-(defconst ebnf-version "4.3"
- "ebnf2ps.el, v 4.3 <2006/09/26 vinicius>
+(defconst ebnf-version "4.4"
+ "ebnf2ps.el, v 4.4 <2007/02/12 vinicius>
Vinicius's last change version. When reporting bugs, please also
report the version of Emacs, if any, that ebnf2ps was running with.
@@ -448,6 +448,24 @@ Please send all bug fixes and enhancements to
;; `ebnf-eps-region' execution.
;; It's an error to try to close a not opened EPS file.
;;
+;; ;Hheader generate a header in current EPS file. The header string can
+;; have the following formats:
+;;
+;; %% prints a % character.
+;;
+;; %H prints the `ebnf-eps-header' (which see) value.
+;;
+;; %F prints the `ebnf-eps-footer' (which see) value.
+;;
+;; Any other format is ignored, that is, if, for example, it's
+;; used %s then %s characters are stripped out from the header.
+;; If header is an empty string, no header is generated until a
+;; non-empty header is specified or `ebnf-eps-header' has a
+;; non-empty string value.
+;;
+;; ;Ffooter generate a footer in current EPS file. Similar to ;H action
+;; comment.
+;;
;; So if you have:
;;
;; (setq ebnf-horizontal-orientation nil)
@@ -546,6 +564,16 @@ Please send all bug fixes and enhancements to
;; The production A is generated in both files ebnf--AA.eps and ebnf--BB.eps.
;;
;;
+;; Log Messages
+;; ------------
+;;
+;; The buffer *Ebnf2ps Log* is where the ebnf2ps log messages are inserted.
+;; These messages are intended to help debugging ebnf2ps.
+;;
+;; The log messages are enabled by `ebnf-log' option (which see). The default
+;; value is nil, that is, no log messages are generated.
+;;
+;;
;; Utilities
;; ---------
;;
@@ -723,6 +751,14 @@ Please send all bug fixes and enhancements to
;;
;; `ebnf-eps-prefix' Specify EPS prefix file name.
;;
+;; `ebnf-eps-header-font' Specify EPS header font.
+;;
+;; `ebnf-eps-header' Specify EPS header.
+;;
+;; `ebnf-eps-footer-font' Specify EPS footer font.
+;;
+;; `ebnf-eps-footer' Specify EPS footer.
+;;
;; `ebnf-use-float-format' Non-nil means use `%f' float format.
;;
;; `ebnf-stop-on-error' Non-nil means signal error and stop.
@@ -735,6 +771,8 @@ Please send all bug fixes and enhancements to
;; `ebnf-optimize' Non-nil means optimize syntactic chart
;; of rules.
;;
+;; `ebnf-log' Non-nil means generate log messages.
+;;
;; To set the above options you may:
;;
;; a) insert the code in your ~/.emacs, like:
@@ -787,6 +825,9 @@ Please send all bug fixes and enhancements to
;; To help to handle this situation, ebnf2ps has the following commands to
;; handle styles:
;;
+;; `ebnf-find-style' Return style definition if NAME is already defined;
+;; otherwise, return nil.
+;;
;; `ebnf-insert-style' Insert a new style NAME with inheritance INHERITS and
;; values VALUES.
;;
@@ -1879,6 +1920,126 @@ See `ebnf-eps-buffer' and `ebnf-eps-region' commands."
:group 'ebnf2ps)
+(defcustom ebnf-eps-header-font '(11 Helvetica "Black" "White" bold)
+ "*Specify EPS header font.
+
+See documentation for `ebnf-production-font'.
+
+See `ebnf-eps-buffer' and `ebnf-eps-region' commands."
+ :type '(list :tag "EPS Header Font"
+ (number :tag "Font Size")
+ (symbol :tag "Font Name")
+ (choice :tag "Foreground Color"
+ (string :tag "Name")
+ (other :tag "Default" nil))
+ (choice :tag "Background Color"
+ (string :tag "Name")
+ (other :tag "Default" nil))
+ (repeat :tag "Font Attributes" :inline t
+ (choice (const bold) (const italic)
+ (const underline) (const strikeout)
+ (const overline) (const shadow)
+ (const box) (const outline))))
+ :version "22"
+ :group 'ebnf2ps)
+
+
+(defcustom ebnf-eps-header nil
+ "*Specify EPS header.
+
+The value should be a string, a symbol or nil.
+
+String is inserted unchanged.
+
+For symbol bounded to a function, the function is called and should return a
+string. For symbol bounded to a value, the value should be a string.
+
+If symbol is unbounded, it is silently ignored.
+
+Empty string or nil mean that no header will be generated.
+
+Note that when the header action comment (;H in EBNF syntax) is specified, the
+string in the header action comment is processed and, if it returns a non-empty
+string, it's used to generate the header. The header action comment accepts
+the following formats:
+
+ %% prints a % character.
+
+ %H prints the `ebnf-eps-header' value.
+
+ %F prints the `ebnf-eps-footer' (which see) value.
+
+Any other format is ignored, that is, if, for example, it's used %s then %s
+characters are stripped out from the header. If header action comment is an
+empty string, no header is generated until a non-empty header is specified or
+`ebnf-eps-header' has a non-empty string value."
+ :type '(repeat (choice :menu-tag "EPS Header"
+ :tag "EPS Header"
+ string symbol (const :tag "No Header" nil )))
+ :version "22"
+ :group 'ebnf2ps)
+
+
+(defcustom ebnf-eps-footer-font '(7 Helvetica "Black" "White" bold)
+ "*Specify EPS footer font.
+
+See documentation for `ebnf-production-font'.
+
+See `ebnf-eps-buffer' and `ebnf-eps-region' commands."
+ :type '(list :tag "EPS Footer Font"
+ (number :tag "Font Size")
+ (symbol :tag "Font Name")
+ (choice :tag "Foreground Color"
+ (string :tag "Name")
+ (other :tag "Default" nil))
+ (choice :tag "Background Color"
+ (string :tag "Name")
+ (other :tag "Default" nil))
+ (repeat :tag "Font Attributes" :inline t
+ (choice (const bold) (const italic)
+ (const underline) (const strikeout)
+ (const overline) (const shadow)
+ (const box) (const outline))))
+ :version "22"
+ :group 'ebnf2ps)
+
+
+(defcustom ebnf-eps-footer nil
+ "*Specify EPS footer.
+
+The value should be a string, a symbol or nil.
+
+String is inserted unchanged.
+
+For symbol bounded to a function, the function is called and should return a
+string. For symbol bounded to a value, the value should be a string.
+
+If symbol is unbounded, it is silently ignored.
+
+Empty string or nil mean that no footer will be generated.
+
+Note that when the footer action comment (;F in EBNF syntax) is specified, the
+string in the footer action comment is processed and, if it returns a non-empty
+string, it's used to generate the footer. The footer action comment accepts
+the following formats:
+
+ %% prints a % character.
+
+ %H prints the `ebnf-eps-header' (which see) value.
+
+ %F prints the `ebnf-eps-footer' value.
+
+Any other format is ignored, that is, if, for example, it's used %s then %s
+characters are stripped out from the footer. If footer action comment is an
+empty string, no footer is generated until a non-empty footer is specified or
+`ebnf-eps-footer' has a non-empty string value."
+ :type '(repeat (choice :menu-tag "EPS Footer"
+ :tag "EPS Footer"
+ string symbol (const :tag "No Footer" nil )))
+ :version "22"
+ :group 'ebnf2ps)
+
+
(defcustom ebnf-entry-percentage 0.5 ; middle
"*Specify entry height on alternatives.
@@ -2019,6 +2180,16 @@ The above optimizations are specially useful when `ebnf-syntax' is `yacc'."
:version "20"
:group 'ebnf-optimization)
+
+(defcustom ebnf-log nil
+ "*Non-nil means generate log messages.
+
+The log messages are generated into the buffer *Ebnf2ps Log*.
+These messages are intended to help debugging ebnf2ps."
+ :type 'boolean
+ :version "22"
+ :group 'ebnf2ps)
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; To make this file smaller, some commands go in a separate file.
@@ -2063,6 +2234,7 @@ See also `ebnf-print-buffer'."
(interactive
(list (read-file-name "Directory containing EBNF files (print): "
nil default-directory)))
+ (ebnf-log-header "(ebnf-print-directory %S)" directory)
(ebnf-directory 'ebnf-print-buffer directory))
@@ -2075,6 +2247,7 @@ killed after process termination.
See also `ebnf-print-buffer'."
(interactive "fEBNF file to generate PostScript and print from: ")
+ (ebnf-log-header "(ebnf-print-file %S %S)" file do-not-kill-buffer-when-done)
(ebnf-file 'ebnf-print-buffer file do-not-kill-buffer-when-done))
@@ -2091,6 +2264,7 @@ is nil, send the image to the printer. If FILENAME is a string, save
the PostScript image in a file with that name. If FILENAME is a
number, prompt the user for the name of the file to save in."
(interactive (list (ps-print-preprint current-prefix-arg)))
+ (ebnf-log-header "(ebnf-print-buffer %S)" filename)
(ebnf-print-region (point-min) (point-max) filename))
@@ -2099,6 +2273,7 @@ number, prompt the user for the name of the file to save in."
"Generate and print a PostScript syntactic chart image of the region.
Like `ebnf-print-buffer', but prints just the current region."
(interactive (list (point) (mark) (ps-print-preprint current-prefix-arg)))
+ (ebnf-log-header "(ebnf-print-region %S %S %S)" from to filename)
(run-hooks 'ebnf-hook)
(or (ebnf-spool-region from to)
(ps-do-despool filename)))
@@ -2117,6 +2292,7 @@ See also `ebnf-spool-buffer'."
(interactive
(list (read-file-name "Directory containing EBNF files (spool): "
nil default-directory)))
+ (ebnf-log-header "(ebnf-spool-directory %S)" directory)
(ebnf-directory 'ebnf-spool-buffer directory))
@@ -2129,6 +2305,7 @@ killed after process termination.
See also `ebnf-spool-buffer'."
(interactive "fEBNF file to generate PostScript and spool from: ")
+ (ebnf-log-header "(ebnf-spool-file %S %S)" file do-not-kill-buffer-when-done)
(ebnf-file 'ebnf-spool-buffer file do-not-kill-buffer-when-done))
@@ -2140,6 +2317,7 @@ local buffer to be sent to the printer later.
Use the command `ebnf-despool' to send the spooled images to the printer."
(interactive)
+ (ebnf-log-header "(ebnf-spool-buffer)")
(ebnf-spool-region (point-min) (point-max)))
@@ -2150,6 +2328,7 @@ Like `ebnf-spool-buffer', but spools just the current region.
Use the command `ebnf-despool' to send the spooled images to the printer."
(interactive "r")
+ (ebnf-log-header "(ebnf-spool-region %S)" from to)
(ebnf-generate-region from to 'ebnf-generate))
@@ -2166,6 +2345,7 @@ See also `ebnf-eps-buffer'."
(interactive
(list (read-file-name "Directory containing EBNF files (EPS): "
nil default-directory)))
+ (ebnf-log-header "(ebnf-eps-directory %S)" directory)
(ebnf-directory 'ebnf-eps-buffer directory))
@@ -2178,6 +2358,7 @@ killed after EPS generation.
See also `ebnf-eps-buffer'."
(interactive "fEBNF file to generate EPS file from: ")
+ (ebnf-log-header "(ebnf-eps-file %S %S)" file do-not-kill-buffer-when-done)
(ebnf-file 'ebnf-eps-buffer file do-not-kill-buffer-when-done))
@@ -2200,8 +2381,9 @@ The EPS file name has the following form:
file name used in this case will be \"ebnf--A_B_+_C.eps\".
WARNING: This function does *NOT* ask any confirmation to override existing
- files."
+ files."
(interactive)
+ (ebnf-log-header "(ebnf-eps-buffer)")
(ebnf-eps-region (point-min) (point-max)))
@@ -2224,8 +2406,9 @@ The EPS file name has the following form:
file name used in this case will be \"ebnf--A_B_+_C.eps\".
WARNING: This function does *NOT* ask any confirmation to override existing
- files."
+ files."
(interactive "r")
+ (ebnf-log-header "(ebnf-eps-region %S %S)" from to)
(let ((ebnf-eps-executing t))
(ebnf-generate-region from to 'ebnf-generate-eps)))
@@ -2247,6 +2430,7 @@ See also `ebnf-syntax-buffer'."
(interactive
(list (read-file-name "Directory containing EBNF files (syntax): "
nil default-directory)))
+ (ebnf-log-header "(ebnf-syntax-directory %S)" directory)
(ebnf-directory 'ebnf-syntax-buffer directory))
@@ -2259,6 +2443,7 @@ killed after syntax checking.
See also `ebnf-syntax-buffer'."
(interactive "fEBNF file to check syntax: ")
+ (ebnf-log-header "(ebnf-syntax-file %S %S)" file do-not-kill-buffer-when-done)
(ebnf-file 'ebnf-syntax-buffer file do-not-kill-buffer-when-done))
@@ -2266,13 +2451,15 @@ See also `ebnf-syntax-buffer'."
(defun ebnf-syntax-buffer ()
"Do a syntactic analysis of the current buffer."
(interactive)
+ (ebnf-log-header "(ebnf-syntax-buffer)")
(ebnf-syntax-region (point-min) (point-max)))
;;;###autoload
(defun ebnf-syntax-region (from to)
- "Do a syntactic analysis of region."
+ "Do a syntactic analysis of a region."
(interactive "r")
+ (ebnf-log-header "(ebnf-syntax-region %S %S)" from to)
(ebnf-generate-region from to nil))
@@ -2287,6 +2474,8 @@ See also `ebnf-syntax-buffer'."
"
;;; ebnf2ps.el version %s
+;;; Emacs version %S
+
\(setq ebnf-special-show-delimiter %S
ebnf-special-font %s
ebnf-special-shape %s
@@ -2333,20 +2522,28 @@ See also `ebnf-syntax-buffer'."
ebnf-iso-normalize-p %S
ebnf-file-suffix-regexp %S
ebnf-eps-prefix %S
+ ebnf-eps-header-font %s
+ ebnf-eps-header %s
+ ebnf-eps-footer-font %s
+ ebnf-eps-footer %s
ebnf-entry-percentage %S
ebnf-color-p %S
ebnf-line-width %S
ebnf-line-color %S
+ ebnf-arrow-extra-width %S
+ ebnf-arrow-scale %S
ebnf-debug-ps %S
ebnf-use-float-format %S
ebnf-stop-on-error %S
ebnf-yac-ignore-error-recovery %S
ebnf-ignore-empty-rule %S
- ebnf-optimize %S)
+ ebnf-optimize %S
+ ebnf-log %S)
;;; ebnf2ps.el - end of settings
"
ebnf-version
+ emacs-version
ebnf-special-show-delimiter
(ps-print-quote ebnf-special-font)
(ps-print-quote ebnf-special-shape)
@@ -2393,16 +2590,23 @@ See also `ebnf-syntax-buffer'."
ebnf-iso-normalize-p
ebnf-file-suffix-regexp
ebnf-eps-prefix
+ (ps-print-quote ebnf-eps-header-font)
+ (ps-print-quote ebnf-eps-header)
+ (ps-print-quote ebnf-eps-footer-font)
+ (ps-print-quote ebnf-eps-footer)
ebnf-entry-percentage
ebnf-color-p
ebnf-line-width
ebnf-line-color
+ ebnf-arrow-extra-width
+ ebnf-arrow-scale
ebnf-debug-ps
ebnf-use-float-format
ebnf-stop-on-error
ebnf-yac-ignore-error-recovery
ebnf-ignore-empty-rule
- ebnf-optimize))
+ ebnf-optimize
+ ebnf-log))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -2465,6 +2669,10 @@ See also `ebnf-syntax-buffer'."
ebnf-iso-normalize-p
ebnf-file-suffix-regexp
ebnf-eps-prefix
+ ebnf-eps-header-font
+ ebnf-eps-header
+ ebnf-eps-footer-font
+ ebnf-eps-footer
ebnf-entry-percentage
ebnf-color-p
ebnf-line-width
@@ -2528,6 +2736,10 @@ See also `ebnf-syntax-buffer'."
(ebnf-iso-normalize-p . nil)
(ebnf-file-suffix-regexp . "\.[Bb][Nn][Ff]$")
(ebnf-eps-prefix . "ebnf--")
+ (ebnf-eps-header-font . '(11 Helvetica "Black" "White" bold))
+ (ebnf-eps-header . nil)
+ (ebnf-eps-footer-font . '(7 Helvetica "Black" "White" bold))
+ (ebnf-eps-footer . nil)
(ebnf-entry-percentage . 0.5)
(ebnf-color-p . (or (fboundp 'x-color-values) ; Emacs
(fboundp 'color-instance-rgb-components))) ; XEmacs
@@ -2601,6 +2813,15 @@ Don't use this variable directly. Use functions `ebnf-insert-style',
;;;###autoload
+(defun ebnf-find-style (name)
+ "Return style definition if NAME is already defined; otherwise, return nil.
+
+See `ebnf-style-database' documentation."
+ (interactive "SStyle name: ")
+ (assoc name ebnf-style-database))
+
+
+;;;###autoload
(defun ebnf-insert-style (name inherits &rest values)
"Insert a new style NAME with inheritance INHERITS and values VALUES.
@@ -2735,18 +2956,20 @@ See `ebnf-style-database' documentation."
;; Internal variables
-(defvar ebnf-eps-buffer-name " *EPS*")
-(defvar ebnf-parser-func nil)
-(defvar ebnf-eps-executing nil)
-(defvar ebnf-eps-upper-x 0.0)
+(defvar ebnf-eps-buffer-name " *EPS*")
+(defvar ebnf-parser-func nil)
+(defvar ebnf-eps-executing nil)
+(defvar ebnf-eps-header-comment nil)
+(defvar ebnf-eps-footer-comment nil)
+(defvar ebnf-eps-upper-x 0.0)
(make-variable-buffer-local 'ebnf-eps-upper-x)
-(defvar ebnf-eps-upper-y 0.0)
+(defvar ebnf-eps-upper-y 0.0)
(make-variable-buffer-local 'ebnf-eps-upper-y)
-(defvar ebnf-eps-prod-width 0.0)
+(defvar ebnf-eps-prod-width 0.0)
(make-variable-buffer-local 'ebnf-eps-prod-width)
-(defvar ebnf-eps-max-height 0.0)
+(defvar ebnf-eps-max-height 0.0)
(make-variable-buffer-local 'ebnf-eps-max-height)
-(defvar ebnf-eps-max-width 0.0)
+(defvar ebnf-eps-max-width 0.0)
(make-variable-buffer-local 'ebnf-eps-max-width)
@@ -2756,6 +2979,23 @@ See `ebnf-style-database' documentation."
See section \"Actions in Comments\" in ebnf2ps documentation.")
+(defvar ebnf-eps-file-alist nil
+"Alist associating file name with EPS header and footer.
+
+Each element has the following form:
+
+ (EPS-FILENAME HEADER FOOTER)
+
+EPS-FILENAME is the EPS file name.
+HEADER is the header string or nil.
+FOOTER is the footer string or nil.
+
+It's generated during parsing and used during EPS generation.
+
+See `ebnf-eps-context' and section \"Actions in Comments\" in ebnf2ps
+documentation.")
+
+
(defvar ebnf-eps-production-list nil
"Alist associating production name with EPS file name list.
@@ -2800,41 +3040,43 @@ See documentation for `ebnf-terminal-shape', `ebnf-non-terminal-shape' and
`ebnf-chart-shape'.")
-(defvar ebnf-limit nil)
-(defvar ebnf-action nil)
-(defvar ebnf-action-list nil)
+(defvar ebnf-limit nil)
+(defvar ebnf-action nil)
+(defvar ebnf-action-list nil)
-(defvar ebnf-default-p nil)
+(defvar ebnf-default-p nil)
-(defvar ebnf-font-height-P 0)
-(defvar ebnf-font-height-T 0)
-(defvar ebnf-font-height-NT 0)
-(defvar ebnf-font-height-S 0)
-(defvar ebnf-font-height-E 0)
-(defvar ebnf-font-height-R 0)
-(defvar ebnf-font-width-P 0)
-(defvar ebnf-font-width-T 0)
-(defvar ebnf-font-width-NT 0)
-(defvar ebnf-font-width-S 0)
-(defvar ebnf-font-width-E 0)
-(defvar ebnf-font-width-R 0)
-(defvar ebnf-space-T 0)
-(defvar ebnf-space-NT 0)
-(defvar ebnf-space-S 0)
-(defvar ebnf-space-E 0)
-(defvar ebnf-space-R 0)
+(defvar ebnf-font-height-P 0)
+(defvar ebnf-font-height-T 0)
+(defvar ebnf-font-height-NT 0)
+(defvar ebnf-font-height-S 0)
+(defvar ebnf-font-height-E 0)
+(defvar ebnf-font-height-R 0)
+(defvar ebnf-font-width-P 0)
+(defvar ebnf-font-width-T 0)
+(defvar ebnf-font-width-NT 0)
+(defvar ebnf-font-width-S 0)
+(defvar ebnf-font-width-E 0)
+(defvar ebnf-font-width-R 0)
+(defvar ebnf-space-T 0)
+(defvar ebnf-space-NT 0)
+(defvar ebnf-space-S 0)
+(defvar ebnf-space-E 0)
+(defvar ebnf-space-R 0)
-(defvar ebnf-basic-width 0)
-(defvar ebnf-basic-height 0)
-(defvar ebnf-vertical-space 0)
-(defvar ebnf-horizontal-space 0)
+(defvar ebnf-basic-width-extra 0)
+(defvar ebnf-basic-width 0)
+(defvar ebnf-basic-height 0)
+(defvar ebnf-basic-empty-height 0)
+(defvar ebnf-vertical-space 0)
+(defvar ebnf-horizontal-space 0)
-(defvar ebnf-settings nil)
-(defvar ebnf-fonts-required nil)
+(defvar ebnf-settings nil)
+(defvar ebnf-fonts-required nil)
(defconst ebnf-debug
@@ -3179,8 +3421,8 @@ See documentation for `ebnf-terminal-shape', `ebnf-non-terminal-shape' and
% --- Flow Stuff
-% height prepare_height |- line_height corner_height corner_height
-/prepare_height
+% height prepare-height |- line_height corner_height corner_height
+/prepare-height
{dup 0 gt
{T sub hT}
{T add hT neg}ifelse
@@ -3206,7 +3448,7 @@ See documentation for `ebnf-terminal-shape', `ebnf-non-terminal-shape' and
{0.5 mul dup
1 corner_RA
0 corner_RD}
- {prepare_height
+ {prepare-height
1 corner_RA
exch 0 exch rlineto
0 corner_RD
@@ -3227,7 +3469,7 @@ See documentation for `ebnf-terminal-shape', `ebnf-non-terminal-shape' and
% \\
% -
/LLoop
-{prepare_height
+{prepare-height
3 corner_LA
exch 0 exch rlineto
0 corner_RD
@@ -3252,7 +3494,7 @@ See documentation for `ebnf-terminal-shape', `ebnf-non-terminal-shape' and
{0.5 mul dup
1 corner_LA
0 corner_LD}
- {prepare_height
+ {prepare-height
1 corner_LA
exch 0 exch rlineto
0 corner_LD
@@ -3273,7 +3515,7 @@ See documentation for `ebnf-terminal-shape', `ebnf-non-terminal-shape' and
% /
% -
/RLoop
-{prepare_height
+{prepare-height
1 corner_RA
exch 0 exch rlineto
0 corner_LD
@@ -4064,6 +4306,113 @@ end
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Header & Footer
+
+
+(defun ebnf-eps-header-footer (value)
+ ;; evaluate header/footer value
+ ;; return a string or nil
+ (let ((tmp (if (symbolp value)
+ (cond ((fboundp value) (funcall value))
+ ((boundp value) (symbol-value value))
+ (t nil))
+ value)))
+ (and (stringp tmp) tmp)))
+
+
+(defun ebnf-eps-header ()
+ ;; evaluate header value
+ (ebnf-eps-header-footer ebnf-eps-header))
+
+
+(defun ebnf-eps-footer ()
+ ;; evaluate footer value
+ (ebnf-eps-header-footer ebnf-eps-footer))
+
+
+;; hacked fom `ps-output-string-prim' (ps-print.el)
+(defun ebnf-eps-string (string)
+ (let* ((str (string-as-unibyte string))
+ (len (length str))
+ (index 0)
+ (new "(") ; insert start-string delimiter
+ start special)
+ ;; Find and quote special characters as necessary for PS
+ ;; This skips everything except control chars, non-ASCII chars, (, ) and \.
+ (while (setq start (string-match "[^]-~ -'*-[]" str index))
+ (setq special (aref str start)
+ new (concat new
+ (substring str index start)
+ (if (and (<= 0 special) (<= special 255))
+ (aref ps-string-escape-codes special)
+ ;; insert hexadecimal representation if character
+ ;; code is out of range
+ (format "\\%04X" special)))
+ index (1+ start)))
+ (concat new
+ (and (< index len)
+ (substring str index len))
+ ")"))) ; insert end-string delimiter
+
+
+(defun ebnf-eps-header-footer-comment (str)
+ ;; parse header/footer comment string
+ (let ((len (1- (length str)))
+ (index 0)
+ new start fmt)
+ (while (setq start (string-match "%" str index))
+ (setq fmt (if (< start len) (aref str (1+ start)) ?\?)
+ new (concat new
+ (substring str index start)
+ (cond ((= fmt ?%) "%")
+ ((= fmt ?H) (ebnf-eps-header))
+ ((= fmt ?F) (ebnf-eps-footer))
+ (t nil)
+ ))
+ index (+ start 2)))
+ (ebnf-eps-string (concat new
+ (and (<= index len)
+ (substring str index (1+ len)))))))
+
+
+(defun ebnf-eps-header-footer-p (value)
+ ;; return t if value is non-nil and is not an empty string
+ (not (or (null value)
+ (and (stringp value) (string= value "")))))
+
+
+(defun ebnf-eps-header-comment (str)
+ ;; set header comment if header is on
+ (when (ebnf-eps-header-footer-p ebnf-eps-header)
+ (setq ebnf-eps-header-comment (ebnf-eps-header-footer-comment str))))
+
+
+(defun ebnf-eps-footer-comment (str)
+ ;; set footer comment if footer is on
+ (when (ebnf-eps-header-footer-p ebnf-eps-footer)
+ (setq ebnf-eps-footer-comment (ebnf-eps-header-footer-comment str))))
+
+
+(defun ebnf-eps-header-footer-file (filename)
+ ;; associate header and footer with a filename
+ (let ((filehf (assoc filename ebnf-eps-file-alist))
+ (header (or ebnf-eps-header-comment (ebnf-eps-header)))
+ (footer (or ebnf-eps-footer-comment (ebnf-eps-footer))))
+ (if (null filehf)
+ (setq ebnf-eps-file-alist (cons (list filename header footer)
+ ebnf-eps-file-alist))
+ (setcar (nthcdr 1 filehf) header)
+ (setcar (nthcdr 2 filehf) footer))))
+
+
+(defun ebnf-eps-header-footer-set (filename)
+ ;; set header and footer from a filename
+ (let ((header-footer (assoc filename ebnf-eps-file-alist)))
+ (setq ebnf-eps-header-comment (nth 1 header-footer)
+ ebnf-eps-footer-comment (nth 2 header-footer))))
+
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Formatting
@@ -4513,7 +4862,9 @@ end
(if sep
(let ((ebnf-direction "L"))
(ebnf-node-generation sep))
- (ebnf-empty-alternative (- width ebnf-horizontal-space))))
+ (ebnf-empty-alternative (- width
+ ebnf-horizontal-space
+ ebnf-basic-width-extra))))
(ps-output "EOS\n"))
@@ -4528,7 +4879,7 @@ end
(if node-sep
(- (ebnf-node-height node-sep)
(ebnf-node-entry node-sep))
- 0))))
+ ebnf-basic-empty-height))))
(ps-output (ebnf-format-float entry
(+ (- (ebnf-node-height node-list)
list-entry)
@@ -4540,7 +4891,9 @@ end
(if (ebnf-node-separator zero-or-more)
(let ((ebnf-direction "L"))
(ebnf-node-generation (ebnf-node-separator zero-or-more)))
- (ebnf-empty-alternative (- width ebnf-horizontal-space))))
+ (ebnf-empty-alternative (- width
+ ebnf-horizontal-space
+ ebnf-basic-width-extra))))
(ps-output "EOS\n"))
@@ -4662,7 +5015,9 @@ killed after process termination."
(defun ebnf-eps-filename (str)
(let* ((len (length str))
(stri 0)
- (new (make-string len ?\s)))
+ ;; to keep compatibility with Emacs 20 & 21:
+ ;; DO NOT REPLACE `?\ ' BY `?\s'
+ (new (make-string len ?\ )))
(while (< stri len)
(aset new stri (aref ebnf-map-name (aref str stri)))
(setq stri (1+ stri)))
@@ -4723,6 +5078,7 @@ killed after process termination."
(defun ebnf-parse-and-sort (start)
+ (ebnf-log "(ebnf-parse-and-sort %S)" start)
(ebnf-begin-job)
(let ((tree (funcall ebnf-parser-func start)))
(if ebnf-sort-production
@@ -4861,7 +5217,10 @@ killed after process termination."
ebnf-action nil
ebnf-default-p nil
ebnf-eps-context nil
+ ebnf-eps-file-alist nil
ebnf-eps-production-list nil
+ ebnf-eps-header-comment nil
+ ebnf-eps-footer-comment nil
ebnf-eps-upper-x 0.0
ebnf-eps-upper-y 0.0
ebnf-font-height-P (ebnf-font-height ebnf-production-font)
@@ -4882,10 +5241,14 @@ killed after process termination."
ebnf-space-E (* ebnf-font-height-E 0.5)
ebnf-space-R (* ebnf-font-height-R 0.5))
(let ((basic (+ ebnf-font-height-T ebnf-font-height-NT)))
- (setq ebnf-basic-width (* basic 0.5)
- ebnf-horizontal-space (+ basic basic)
- ebnf-basic-height ebnf-basic-width
- ebnf-vertical-space ebnf-basic-width)
+ (setq ebnf-basic-width (* basic 0.5)
+ ebnf-horizontal-space (+ basic basic)
+ ebnf-basic-empty-height (* ebnf-basic-width 0.5)
+ ebnf-basic-height ebnf-basic-width
+ ebnf-vertical-space ebnf-basic-width
+ ebnf-basic-width-extra (- ebnf-basic-width
+ ebnf-arrow-extra-width
+ 0.1)) ; error factor
;; ensures value is greater than zero
(or (and (numberp ebnf-production-horizontal-space)
(> ebnf-production-horizontal-space 0.0))
@@ -4893,7 +5256,18 @@ killed after process termination."
;; ensures value is greater than zero
(or (and (numberp ebnf-production-vertical-space)
(> ebnf-production-vertical-space 0.0))
- (setq ebnf-production-vertical-space basic))))
+ (setq ebnf-production-vertical-space basic)))
+ (ebnf-log "(ebnf-begin-job)")
+ (ebnf-log " ebnf-arrow-extra-width ............ : %7.3f" ebnf-arrow-extra-width)
+ (ebnf-log " ebnf-arrow-scale .................. : %7.3f" ebnf-arrow-scale)
+ (ebnf-log " ebnf-basic-width-extra ............ : %7.3f" ebnf-basic-width-extra)
+ (ebnf-log " ebnf-basic-width .................. : %7.3f (T)" ebnf-basic-width)
+ (ebnf-log " ebnf-horizontal-space ............. : %7.3f (4T)" ebnf-horizontal-space)
+ (ebnf-log " ebnf-basic-empty-height ........... : %7.3f (hT)" ebnf-basic-empty-height)
+ (ebnf-log " ebnf-basic-height ................. : %7.3f (T)" ebnf-basic-height)
+ (ebnf-log " ebnf-vertical-space ............... : %7.3f (T)" ebnf-vertical-space)
+ (ebnf-log " ebnf-production-horizontal-space .. : %7.3f (2T)" ebnf-production-horizontal-space)
+ (ebnf-log " ebnf-production-vertical-space .... : %7.3f (2T)" ebnf-production-vertical-space))
(defsubst ebnf-shape-value (sym alist)
@@ -4916,6 +5290,7 @@ killed after process termination."
(progn
;; adjust creator comment
(end-of-line)
+ ;; (backward-char)
(insert " & ebnf2ps v" ebnf-version)
;; insert ebnf settings & engine
(goto-char (point-max))
@@ -4928,6 +5303,7 @@ killed after process termination."
(when (buffer-modified-p buffer)
(save-excursion
(set-buffer buffer)
+ (ebnf-eps-header-footer-set filename)
(setq ebnf-eps-upper-x (max ebnf-eps-upper-x ebnf-eps-max-width)
ebnf-eps-upper-y (if (zerop ebnf-eps-upper-y)
ebnf-eps-max-height
@@ -4954,7 +5330,9 @@ killed after process termination."
ebnf-non-terminal-font
ebnf-special-font
ebnf-except-font
- ebnf-repeat-font)))
+ ebnf-repeat-font
+ ebnf-eps-header-font
+ ebnf-eps-footer-font)))
"\n%%+ font ")))
"\n%%Pages: 0\n%%EndComments\n\n%%BeginProlog\n"
ebnf-eps-prologue)
@@ -4980,6 +5358,42 @@ killed after process termination."
(setq ebnf-settings
(concat
"\n\n% === begin EBNF settings\n\n"
+ (format "/Header %s def\n"
+ (or ebnf-eps-header-comment "()"))
+ (format "/Footer %s def\n"
+ (or ebnf-eps-footer-comment "()"))
+ ;; header
+ (format "/ShowHeader %s def\n"
+ (ebnf-boolean
+ (ebnf-eps-header-footer-p ebnf-eps-header)))
+ (format "/fH %s /%s DefFont\n"
+ (ebnf-format-float
+ (ebnf-font-size ebnf-eps-header-font))
+ (ebnf-font-name-select ebnf-eps-header-font))
+ (ebnf-format-color "/ForegroundH %s def %% %s\n"
+ (ebnf-font-foreground ebnf-eps-header-font)
+ "Black")
+ (ebnf-format-color "/BackgroundH %s def %% %s\n"
+ (ebnf-font-background ebnf-eps-header-font)
+ "White")
+ (format "/EffectH %d def\n"
+ (ebnf-font-attributes ebnf-eps-header-font))
+ ;; footer
+ (format "/ShowFooter %s def\n"
+ (ebnf-boolean
+ (ebnf-eps-header-footer-p ebnf-eps-footer)))
+ (format "/fF %s /%s DefFont\n"
+ (ebnf-format-float
+ (ebnf-font-size ebnf-eps-footer-font))
+ (ebnf-font-name-select ebnf-eps-footer-font))
+ (ebnf-format-color "/ForegroundF %s def %% %s\n"
+ (ebnf-font-foreground ebnf-eps-footer-font)
+ "Black")
+ (ebnf-format-color "/BackgroundF %s def %% %s\n"
+ (ebnf-font-background ebnf-eps-footer-font)
+ "White")
+ (format "/EffectF %d def\n"
+ (ebnf-font-attributes ebnf-eps-footer-font))
;; production
(format "/fP %s /%s DefFont\n"
(ebnf-format-float (ebnf-font-size ebnf-production-font))
@@ -5136,6 +5550,7 @@ killed after process termination."
(defun ebnf-dimensions (tree)
+ (ebnf-log "(ebnf-dimensions tree)")
(let ((ebnf-total (length tree))
(ebnf-nprod 0))
(mapcar 'ebnf-production-dimension tree))
@@ -5149,6 +5564,7 @@ killed after process termination."
;; [production width-fun dim-fun entry height width name production action]
(defun ebnf-production-dimension (production)
+ (ebnf-log "(ebnf-production-dimension production)")
(ebnf-message-info "Calculating dimensions")
(ebnf-node-dimension-func (ebnf-node-production production))
(let* ((prod (ebnf-node-production production))
@@ -5162,11 +5578,17 @@ killed after process termination."
(ebnf-node-height production height)
(ebnf-node-width production (+ (ebnf-node-width prod)
ebnf-line-width
- ebnf-horizontal-space))))
+ ebnf-horizontal-space
+ ebnf-basic-width-extra)))
+ (ebnf-log " production name : %S" (ebnf-node-name production))
+ (ebnf-log " production entry : %7.3f" (ebnf-node-entry production))
+ (ebnf-log " production height : %7.3f" (ebnf-node-height production))
+ (ebnf-log " production width : %7.3f" (ebnf-node-width production)))
;; [terminal width-fun dim-fun entry height width name]
(defun ebnf-terminal-dimension (terminal)
+ (ebnf-log "(ebnf-terminal-dimension terminal)")
(ebnf-terminal-dimension1 terminal
ebnf-font-height-T
ebnf-font-width-T
@@ -5175,6 +5597,7 @@ killed after process termination."
;; [non-terminal width-fun dim-fun entry height width name]
(defun ebnf-non-terminal-dimension (non-terminal)
+ (ebnf-log "(ebnf-non-terminal-dimension non-terminal)")
(ebnf-terminal-dimension1 non-terminal
ebnf-font-height-NT
ebnf-font-width-NT
@@ -5183,6 +5606,7 @@ killed after process termination."
;; [special width-fun dim-fun entry height width name]
(defun ebnf-special-dimension (special)
+ (ebnf-log "(ebnf-special-dimension special)")
(ebnf-terminal-dimension1 special
ebnf-font-height-S
ebnf-font-width-S
@@ -5194,9 +5618,16 @@ killed after process termination."
(len (length (ebnf-node-name node))))
(ebnf-node-entry node (* height 0.5))
(ebnf-node-height node height)
- (ebnf-node-width node (+ ebnf-basic-width ebnf-arrow-extra-width space
+ (ebnf-node-width node (+ ebnf-basic-width
+ ebnf-arrow-extra-width
+ space
(* len font-width)
- space ebnf-basic-width))))
+ space
+ ebnf-basic-width)))
+ (ebnf-log " name : %S" (ebnf-node-name node))
+ (ebnf-log " entry : %7.3f" (ebnf-node-entry node))
+ (ebnf-log " height : %7.3f" (ebnf-node-height node))
+ (ebnf-log " width : %7.3f" (ebnf-node-width node)))
(defconst ebnf-null-vector (vector t t t 0.0 0.0 0.0))
@@ -5204,6 +5635,7 @@ killed after process termination."
;; [repeat width-fun dim-fun entry height width times element]
(defun ebnf-repeat-dimension (repeat)
+ (ebnf-log "(ebnf-repeat-dimension repeat)")
(let ((times (ebnf-node-name repeat))
(element (ebnf-node-separator repeat)))
(if element
@@ -5218,11 +5650,15 @@ killed after process termination."
ebnf-arrow-extra-width
ebnf-space-R ebnf-space-R ebnf-space-R
ebnf-horizontal-space
- (* (length times) ebnf-font-width-R)))))
+ (* (length times) ebnf-font-width-R))))
+ (ebnf-log " repeat entry : %7.3f" (ebnf-node-entry repeat))
+ (ebnf-log " repeat height : %7.3f" (ebnf-node-height repeat))
+ (ebnf-log " repeat width : %7.3f" (ebnf-node-width repeat)))
;; [except width-fun dim-fun entry height width element element]
(defun ebnf-except-dimension (except)
+ (ebnf-log "(ebnf-except-dimension except)")
(let ((factor (ebnf-node-list except))
(element (ebnf-node-separator except)))
(ebnf-node-dimension-func factor)
@@ -5241,11 +5677,15 @@ killed after process termination."
ebnf-space-E ebnf-space-E
ebnf-space-E ebnf-space-E
ebnf-font-width-E
- ebnf-horizontal-space))))
+ ebnf-horizontal-space)))
+ (ebnf-log " except entry : %7.3f" (ebnf-node-entry except))
+ (ebnf-log " except height : %7.3f" (ebnf-node-height except))
+ (ebnf-log " except width : %7.3f" (ebnf-node-width except)))
;; [alternative width-fun dim-fun entry height width list]
(defun ebnf-alternative-dimension (alternative)
+ (ebnf-log "(ebnf-alternative-dimension alternative)")
(let ((body (ebnf-node-list alternative))
(lis (ebnf-node-list alternative)))
(while lis
@@ -5270,23 +5710,33 @@ killed after process termination."
(- (ebnf-node-height tail)
(ebnf-node-entry tail))))))
(ebnf-node-height alternative height)
- (ebnf-node-width alternative (+ width ebnf-horizontal-space))
- (ebnf-node-list alternative body))))
+ (ebnf-node-width alternative (+ width
+ ebnf-horizontal-space
+ ebnf-basic-width-extra))
+ (ebnf-node-list alternative body)))
+ (ebnf-log " alternative entry : %7.3f" (ebnf-node-entry alternative))
+ (ebnf-log " alternative height : %7.3f" (ebnf-node-height alternative))
+ (ebnf-log " alternative width : %7.3f" (ebnf-node-width alternative)))
;; [optional width-fun dim-fun entry height width element]
(defun ebnf-optional-dimension (optional)
+ (ebnf-log "(ebnf-optional-dimension optional)")
(let ((body (ebnf-node-list optional)))
(ebnf-node-dimension-func body)
(ebnf-node-entry optional (ebnf-node-entry body))
(ebnf-node-height optional (+ (ebnf-node-height body)
ebnf-vertical-space))
(ebnf-node-width optional (+ (ebnf-node-width body)
- ebnf-horizontal-space))))
+ ebnf-horizontal-space)))
+ (ebnf-log " optional entry : %7.3f" (ebnf-node-entry optional))
+ (ebnf-log " optional height : %7.3f" (ebnf-node-height optional))
+ (ebnf-log " optional width : %7.3f" (ebnf-node-width optional)))
;; [one-or-more width-fun dim-fun entry height width element separator]
(defun ebnf-one-or-more-dimension (or-more)
+ (ebnf-log "(ebnf-one-or-more-dimension or-more)")
(let ((list-part (ebnf-node-list or-more))
(sep-part (ebnf-node-separator or-more)))
(ebnf-node-dimension-func list-part)
@@ -5294,7 +5744,7 @@ killed after process termination."
(ebnf-node-dimension-func sep-part))
(let ((height (+ (if sep-part
(ebnf-node-height sep-part)
- 0.0)
+ ebnf-basic-empty-height)
ebnf-vertical-space
(ebnf-node-height list-part)))
(width (max (if sep-part
@@ -5304,14 +5754,21 @@ killed after process termination."
(when sep-part
(ebnf-adjust-width list-part width)
(ebnf-adjust-width sep-part width))
- (ebnf-node-entry or-more (+ (- height (ebnf-node-height list-part))
+ (ebnf-node-entry or-more (+ (- height
+ (ebnf-node-height list-part))
(ebnf-node-entry list-part)))
(ebnf-node-height or-more height)
- (ebnf-node-width or-more (+ width ebnf-horizontal-space)))))
+ (ebnf-node-width or-more (+ width
+ ebnf-horizontal-space
+ ebnf-basic-width-extra))))
+ (ebnf-log " one-or-more entry : %7.3f" (ebnf-node-entry or-more))
+ (ebnf-log " one-or-more height : %7.3f" (ebnf-node-height or-more))
+ (ebnf-log " one-or-more width : %7.3f" (ebnf-node-width or-more)))
;; [zero-or-more width-fun dim-fun entry height width element separator]
(defun ebnf-zero-or-more-dimension (or-more)
+ (ebnf-log "(ebnf-zero-or-more-dimension or-more)")
(let ((list-part (ebnf-node-list or-more))
(sep-part (ebnf-node-separator or-more)))
(ebnf-node-dimension-func list-part)
@@ -5319,7 +5776,7 @@ killed after process termination."
(ebnf-node-dimension-func sep-part))
(let ((height (+ (if sep-part
(ebnf-node-height sep-part)
- 0.0)
+ ebnf-basic-empty-height)
ebnf-vertical-space
(ebnf-node-height list-part)
ebnf-vertical-space))
@@ -5332,11 +5789,17 @@ killed after process termination."
(ebnf-adjust-width sep-part width))
(ebnf-node-entry or-more height)
(ebnf-node-height or-more height)
- (ebnf-node-width or-more (+ width ebnf-horizontal-space)))))
+ (ebnf-node-width or-more (+ width
+ ebnf-horizontal-space
+ ebnf-basic-width-extra))))
+ (ebnf-log " zero-or-more entry : %7.3f" (ebnf-node-entry or-more))
+ (ebnf-log " zero-or-more height : %7.3f" (ebnf-node-height or-more))
+ (ebnf-log " zero-or-more width : %7.3f" (ebnf-node-width or-more)))
;; [sequence width-fun dim-fun entry height width list]
(defun ebnf-sequence-dimension (sequence)
+ (ebnf-log "(ebnf-sequence-dimension sequence)")
(let ((above 0.0)
(below 0.0)
(width 0.0)
@@ -5352,7 +5815,10 @@ killed after process termination."
width (+ width (ebnf-node-width node))))
(ebnf-node-entry sequence above)
(ebnf-node-height sequence (+ above below))
- (ebnf-node-width sequence width)))
+ (ebnf-node-width sequence width))
+ (ebnf-log " sequence entry : %7.3f" (ebnf-node-entry sequence))
+ (ebnf-log " sequence height : %7.3f" (ebnf-node-height sequence))
+ (ebnf-log " sequence width : %7.3f" (ebnf-node-width sequence)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -5494,7 +5960,8 @@ killed after process termination."
(let ((filename (ebnf-eps-filename name)))
(if (member filename ebnf-eps-context)
(error "Try to open an already opened EPS file: %s" filename)
- (setq ebnf-eps-context (cons filename ebnf-eps-context)))))
+ (setq ebnf-eps-context (cons filename ebnf-eps-context)))
+ (ebnf-eps-header-footer-file filename)))
(defun ebnf-eps-remove-context (name)
@@ -5505,14 +5972,16 @@ killed after process termination."
(defun ebnf-eps-add-production (header)
- (and ebnf-eps-executing
- ebnf-eps-context
- (let ((prod (assoc header ebnf-eps-production-list)))
- (if prod
- (setcdr prod (append ebnf-eps-context (cdr prod)))
- (setq ebnf-eps-production-list
- (cons (cons header (ebnf-dup-list ebnf-eps-context))
- ebnf-eps-production-list))))))
+ (when ebnf-eps-executing
+ (if ebnf-eps-context
+ (let ((prod (assoc header ebnf-eps-production-list)))
+ (if prod
+ (setcdr prod (ebnf-dup-list
+ (append ebnf-eps-context (cdr prod))))
+ (setq ebnf-eps-production-list
+ (cons (cons header (ebnf-dup-list ebnf-eps-context))
+ ebnf-eps-production-list))))
+ (ebnf-eps-header-footer-file (ebnf-eps-filename header)))))
(defun ebnf-dup-list (old)
@@ -5567,7 +6036,9 @@ killed after process termination."
(defun ebnf-trim-right (str)
(let* ((len (1- (length str)))
(index len))
- (while (and (> index 0) (= (aref str index) ?\s))
+ ;; to keep compatibility with Emacs 20 & 21:
+ ;; DO NOT REPLACE `?\ ' BY `?\s'
+ (while (and (> index 0) (= (aref str index) ?\ ))
(setq index (1- index)))
(if (= index len)
str
@@ -5579,12 +6050,12 @@ killed after process termination."
(defun ebnf-make-empty (&optional width)
- (vector 'ebnf-generate-empty
- 'ignore
- 'ignore
- 0.0
- 0.0
- (or width ebnf-horizontal-space)))
+ (vector 'ebnf-generate-empty ; 0 generator
+ 'ignore ; 1 width fun
+ 'ignore ; 2 dimension fun
+ 0.0 ; 3 entry
+ 0.0 ; 4 height
+ (or width ebnf-horizontal-space))) ; 5 width
(defun ebnf-make-terminal (name)
@@ -5606,19 +6077,19 @@ killed after process termination."
(defun ebnf-make-terminal1 (name gen-func dim-func)
- (vector gen-func
- 'ignore
- dim-func
- 0.0
- 0.0
- 0.0
- (let ((len (length name)))
+ (vector gen-func ; 0 generatore
+ 'ignore ; 1 width fun
+ dim-func ; 2 dimension fun
+ 0.0 ; 3 entry
+ 0.0 ; 4 height
+ 0.0 ; 5 width
+ (let ((len (length name))) ; 6 name
(cond ((> len 3) name)
((= len 3) (concat name " "))
((= len 2) (concat " " name " "))
((= len 1) (concat " " name " "))
(t " ")))
- ebnf-default-p))
+ ebnf-default-p)) ; 7 is default?
(defun ebnf-make-one-or-more (list-part &optional sep-part)
@@ -5636,70 +6107,71 @@ killed after process termination."
(defun ebnf-make-or-more1 (gen-func dim-func list-part sep-part)
- (vector gen-func
- 'ebnf-element-width
- dim-func
- 0.0
- 0.0
- 0.0
- (if (listp list-part)
+ (vector gen-func ; 0 generator
+ 'ebnf-element-width ; 1 width fun
+ dim-func ; 2 dimension fun
+ 0.0 ; 3 entry
+ 0.0 ; 4 height
+ 0.0 ; 5 width
+ (if (listp list-part) ; 6 element
(ebnf-make-sequence list-part)
list-part)
- (if (and sep-part (listp sep-part))
+ (if (and sep-part (listp sep-part)) ; 7 separator
(ebnf-make-sequence sep-part)
sep-part)))
(defun ebnf-make-production (name prod action)
- (vector 'ebnf-generate-production
- 'ignore
- 'ebnf-production-dimension
- 0.0
- 0.0
- 0.0
- name
- prod
- action))
+ (vector 'ebnf-generate-production ; 0 generator
+ 'ignore ; 1 width fun
+ 'ebnf-production-dimension ; 2 dimension fun
+ 0.0 ; 3 entry
+ 0.0 ; 4 height
+ 0.0 ; 5 width
+ name ; 6 production name
+ prod ; 7 production body
+ action)) ; 8 production action
(defun ebnf-make-alternative (body)
- (vector 'ebnf-generate-alternative
- 'ebnf-alternative-width
- 'ebnf-alternative-dimension
- 0.0
- 0.0
- 0.0
- body))
+ (vector 'ebnf-generate-alternative ; 0 generator
+ 'ebnf-alternative-width ; 1 width fun
+ 'ebnf-alternative-dimension ; 2 dimension fun
+ 0.0 ; 3 entry
+ 0.0 ; 4 height
+ 0.0 ; 5 width
+ body)) ; 6 alternative list
(defun ebnf-make-optional (body)
- (vector 'ebnf-generate-optional
- 'ebnf-alternative-width
- 'ebnf-optional-dimension
- 0.0
- 0.0
- 0.0
- body))
+ (vector 'ebnf-generate-optional ; 0 generator
+ 'ebnf-alternative-width ; 1 width fun
+ 'ebnf-optional-dimension ; 2 dimension fun
+ 0.0 ; 3 entry
+ 0.0 ; 4 height
+ 0.0 ; 5 width
+ body)) ; 6 optional element
(defun ebnf-make-except (factor exception)
- (vector 'ebnf-generate-except
- 'ignore
- 'ebnf-except-dimension
- 0.0
- 0.0
- 0.0
- factor
- exception))
+ (vector 'ebnf-generate-except ; 0 generator
+ 'ignore ; 1 width fun
+ 'ebnf-except-dimension ; 2 dimension fun
+ 0.0 ; 3 entry
+ 0.0 ; 4 height
+ 0.0 ; 5 width
+ factor ; 6 base element
+ exception)) ; 7 exception element
(defun ebnf-make-repeat (times primary &optional upper)
- (vector 'ebnf-generate-repeat
- 'ignore
- 'ebnf-repeat-dimension
- 0.0
- 0.0
- 0.0
+ (vector 'ebnf-generate-repeat ; 0 generator
+ 'ignore ; 1 width fun
+ 'ebnf-repeat-dimension ; 2 dimension fun
+ 0.0 ; 3 entry
+ 0.0 ; 4 height
+ 0.0 ; 5 width
+ ; 6 times
(cond ((and times upper) ; L * U, L * L
(if (string= times upper)
(if (string= times "")
@@ -5712,27 +6184,27 @@ killed after process termination."
(concat "* " upper))
(t ; *
" * "))
- primary))
+ primary)) ; 7 element
(defun ebnf-make-sequence (seq)
- (vector 'ebnf-generate-sequence
- 'ebnf-sequence-width
- 'ebnf-sequence-dimension
- 0.0
- 0.0
- 0.0
- seq))
+ (vector 'ebnf-generate-sequence ; 0 generator
+ 'ebnf-sequence-width ; 1 width fun
+ 'ebnf-sequence-dimension ; 2 dimension fun
+ 0.0 ; 3 entry
+ 0.0 ; 4 height
+ 0.0 ; 5 width
+ seq)) ; 6 sequence
(defun ebnf-make-dup-sequence (node seq)
- (vector 'ebnf-generate-sequence
- 'ebnf-sequence-width
- 'ebnf-sequence-dimension
- (ebnf-node-entry node)
- (ebnf-node-height node)
- (ebnf-node-width node)
- seq))
+ (vector 'ebnf-generate-sequence ; 0 generator
+ 'ebnf-sequence-width ; 1 width fun
+ 'ebnf-sequence-dimension ; 2 dimension fun
+ (ebnf-node-entry node) ; 3 entry
+ (ebnf-node-height node) ; 4 height
+ (ebnf-node-width node) ; 5 width
+ seq)) ; 6 sequence
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -5819,13 +6291,17 @@ killed after process termination."
(defun ebnf-token-alternative (body sequence)
(if (null body)
(if (cdr sequence)
+ ;; no alternative
sequence
- (cons (car sequence)
+ ;; empty element
+ (cons (car sequence) ; token
(ebnf-make-empty)))
- (cons (car sequence)
+ (cons (car sequence) ; token
(let ((seq (cdr sequence)))
(if (and (= (length body) 1) (null seq))
+ ;; alternative with one element
(car body)
+ ;; a real alternative
(ebnf-make-alternative (nreverse (if seq
(cons seq body)
body))))))))
@@ -5860,6 +6336,28 @@ killed after process termination."
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Log message
+
+
+(defun ebnf-log-header (format-str &rest args)
+ (when ebnf-log
+ (apply
+ 'ebnf-log
+ (concat
+ "\n\n===============================================================\n\n"
+ format-str)
+ args)))
+
+
+(defun ebnf-log (format-str &rest args)
+ (when ebnf-log
+ (save-excursion
+ (set-buffer (get-buffer-create "*Ebnf2ps Log*"))
+ (goto-char (point-max))
+ (insert (apply 'format format-str args) "\n"))))
+
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; To make this file smaller, some commands go in a separate file.
;; But autoload them here to make the separation invisible.
diff --git a/lisp/progmodes/ebrowse.el b/lisp/progmodes/ebrowse.el
index d3e00888889..b9f0986c33e 100644
--- a/lisp/progmodes/ebrowse.el
+++ b/lisp/progmodes/ebrowse.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el
index eecd4682fd1..196c22b4a08 100644
--- a/lisp/progmodes/etags.el
+++ b/lisp/progmodes/etags.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/executable.el b/lisp/progmodes/executable.el
index 932c1f32ec5..3f46b0bbbe3 100644
--- a/lisp/progmodes/executable.el
+++ b/lisp/progmodes/executable.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/f90.el b/lisp/progmodes/f90.el
index 9ee4b515eed..6c704916c65 100644
--- a/lisp/progmodes/f90.el
+++ b/lisp/progmodes/f90.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el
index 7e353247b04..a6407a3ffa6 100644
--- a/lisp/progmodes/flymake.el
+++ b/lisp/progmodes/flymake.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/fortran.el b/lisp/progmodes/fortran.el
index cb843b4ecd8..b9865613765 100644
--- a/lisp/progmodes/fortran.el
+++ b/lisp/progmodes/fortran.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el
index 7bc904f8319..8f6be334465 100644
--- a/lisp/progmodes/gdb-ui.el
+++ b/lisp/progmodes/gdb-ui.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/glasses.el b/lisp/progmodes/glasses.el
index 580d8d9e4bf..c2aa2dbb3ac 100644
--- a/lisp/progmodes/glasses.el
+++ b/lisp/progmodes/glasses.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/grep.el b/lisp/progmodes/grep.el
index fd93015ab2c..bafe42b950f 100644
--- a/lisp/progmodes/grep.el
+++ b/lisp/progmodes/grep.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el
index 97144fec83b..2131aebe2a8 100644
--- a/lisp/progmodes/gud.el
+++ b/lisp/progmodes/gud.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/hideif.el b/lisp/progmodes/hideif.el
index 8096dee59e2..bb791b18c1b 100644
--- a/lisp/progmodes/hideif.el
+++ b/lisp/progmodes/hideif.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/hideshow.el b/lisp/progmodes/hideshow.el
index 7720b441700..bb0a3c634dd 100644
--- a/lisp/progmodes/hideshow.el
+++ b/lisp/progmodes/hideshow.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/icon.el b/lisp/progmodes/icon.el
index 9c47cf96e2b..77a38f6016d 100644
--- a/lisp/progmodes/icon.el
+++ b/lisp/progmodes/icon.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/idlw-complete-structtag.el b/lisp/progmodes/idlw-complete-structtag.el
index 030f4a9f0c4..d005c6de63e 100644
--- a/lisp/progmodes/idlw-complete-structtag.el
+++ b/lisp/progmodes/idlw-complete-structtag.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/idlw-help.el b/lisp/progmodes/idlw-help.el
index 030b785acdf..e7f0fa1677a 100644
--- a/lisp/progmodes/idlw-help.el
+++ b/lisp/progmodes/idlw-help.el
@@ -12,7 +12,7 @@
;; This file 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; This file is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/idlw-shell.el b/lisp/progmodes/idlw-shell.el
index 3b9fb5a896a..f903d490565 100644
--- a/lisp/progmodes/idlw-shell.el
+++ b/lisp/progmodes/idlw-shell.el
@@ -14,7 +14,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/idlw-toolbar.el b/lisp/progmodes/idlw-toolbar.el
index ddf08755544..2d143a3ddaa 100644
--- a/lisp/progmodes/idlw-toolbar.el
+++ b/lisp/progmodes/idlw-toolbar.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/idlwave.el b/lisp/progmodes/idlwave.el
index 4c58919ec1f..1e600d6c456 100644
--- a/lisp/progmodes/idlwave.el
+++ b/lisp/progmodes/idlwave.el
@@ -14,7 +14,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/inf-lisp.el b/lisp/progmodes/inf-lisp.el
index 02d44e55019..57142c0c043 100644
--- a/lisp/progmodes/inf-lisp.el
+++ b/lisp/progmodes/inf-lisp.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/ld-script.el b/lisp/progmodes/ld-script.el
index 01f9ecbc7a3..c69b7a13cb9 100644
--- a/lisp/progmodes/ld-script.el
+++ b/lisp/progmodes/ld-script.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; This program is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/m4-mode.el b/lisp/progmodes/m4-mode.el
index bd31f731693..831d0fd5bb9 100644
--- a/lisp/progmodes/m4-mode.el
+++ b/lisp/progmodes/m4-mode.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/make-mode.el b/lisp/progmodes/make-mode.el
index 6178e7e47cd..d3caaf36fc9 100644
--- a/lisp/progmodes/make-mode.el
+++ b/lisp/progmodes/make-mode.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/mantemp.el b/lisp/progmodes/mantemp.el
index 2084f364d55..63661eeb27d 100644
--- a/lisp/progmodes/mantemp.el
+++ b/lisp/progmodes/mantemp.el
@@ -11,7 +11,7 @@
;; 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
+;; by the Free Software Foundation; either version 3, or (at your
;; option) any later version.
;; GNU Emacs is distributed in the hope that it will be useful, but
diff --git a/lisp/progmodes/meta-mode.el b/lisp/progmodes/meta-mode.el
index 8215befc1de..a2fd9cdab04 100644
--- a/lisp/progmodes/meta-mode.el
+++ b/lisp/progmodes/meta-mode.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/mixal-mode.el b/lisp/progmodes/mixal-mode.el
index 146b228453e..60dcdc625a8 100644
--- a/lisp/progmodes/mixal-mode.el
+++ b/lisp/progmodes/mixal-mode.el
@@ -3,27 +3,29 @@
;; Copyright (C) 2003, 2004, 2005, 2006, 2007
;; 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 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
-
;; Author: Pieter E.J. Pareit <pieter.pareit@gmail.com>
;; Maintainer: Pieter E.J. Pareit <pieter.pareit@gmail.com>
;; Created: 09 Nov 2002
;; Version: 0.1
;; Keywords: Knuth mix mixal asm mixvm "The Art Of Computer Programming"
+;; 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 3, 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.
+
;;; Commentary:
;; Major mode for the mix asm language.
;; The mix asm language is described in "The Art Of Computer Programming".
diff --git a/lisp/progmodes/octave-hlp.el b/lisp/progmodes/octave-hlp.el
index 5c2bd2f34ee..744d4cf13bf 100644
--- a/lisp/progmodes/octave-hlp.el
+++ b/lisp/progmodes/octave-hlp.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/octave-inf.el b/lisp/progmodes/octave-inf.el
index b46510b5ac9..83d99ab8bee 100644
--- a/lisp/progmodes/octave-inf.el
+++ b/lisp/progmodes/octave-inf.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/octave-mod.el b/lisp/progmodes/octave-mod.el
index be56d388330..adc1b44edaa 100644
--- a/lisp/progmodes/octave-mod.el
+++ b/lisp/progmodes/octave-mod.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/pascal.el b/lisp/progmodes/pascal.el
index 3fe57e00c7a..02fdbbbf050 100644
--- a/lisp/progmodes/pascal.el
+++ b/lisp/progmodes/pascal.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/perl-mode.el b/lisp/progmodes/perl-mode.el
index 75920a43aa7..cfef0eedfe4 100644
--- a/lisp/progmodes/perl-mode.el
+++ b/lisp/progmodes/perl-mode.el
@@ -15,7 +15,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/prolog.el b/lisp/progmodes/prolog.el
index cb451791dbe..7cff1bc516e 100644
--- a/lisp/progmodes/prolog.el
+++ b/lisp/progmodes/prolog.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/ps-mode.el b/lisp/progmodes/ps-mode.el
index db4cd2dd339..40eca7c1bd1 100644
--- a/lisp/progmodes/ps-mode.el
+++ b/lisp/progmodes/ps-mode.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index 26fc122631d..c3caa7e397c 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -1359,7 +1359,7 @@ buffer for a list of commands.)"
(path (getenv "PYTHONPATH"))
(process-environment ; to import emacs.py
(cons (concat "PYTHONPATH=" data-directory
- (if path (concat ":" path)))
+ (if path (concat path-separator path)))
process-environment)))
(apply 'make-comint-in-buffer "Python"
(if new (generate-new-buffer "*Python*") "*Python*")
diff --git a/lisp/progmodes/scheme.el b/lisp/progmodes/scheme.el
index a112cee62bb..5bf7cb1e9eb 100644
--- a/lisp/progmodes/scheme.el
+++ b/lisp/progmodes/scheme.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el
index 8a8d23db169..f6ef646069b 100644
--- a/lisp/progmodes/sh-script.el
+++ b/lisp/progmodes/sh-script.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/simula.el b/lisp/progmodes/simula.el
index 89074dc8fe0..db5d6552c84 100644
--- a/lisp/progmodes/simula.el
+++ b/lisp/progmodes/simula.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/sql.el b/lisp/progmodes/sql.el
index a3401dccbcb..1187129bb33 100644
--- a/lisp/progmodes/sql.el
+++ b/lisp/progmodes/sql.el
@@ -14,7 +14,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/tcl.el b/lisp/progmodes/tcl.el
index 0495b683bad..c7576a27114 100644
--- a/lisp/progmodes/tcl.el
+++ b/lisp/progmodes/tcl.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/vera-mode.el b/lisp/progmodes/vera-mode.el
index c70ec7eab6c..9aaee22b9a9 100644
--- a/lisp/progmodes/vera-mode.el
+++ b/lisp/progmodes/vera-mode.el
@@ -19,7 +19,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el
index c549d066b64..a1bd32a313d 100644
--- a/lisp/progmodes/vhdl-mode.el
+++ b/lisp/progmodes/vhdl-mode.el
@@ -19,7 +19,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/which-func.el b/lisp/progmodes/which-func.el
index 5b5c13342ad..2762e8dbd55 100644
--- a/lisp/progmodes/which-func.el
+++ b/lisp/progmodes/which-func.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/progmodes/xscheme.el b/lisp/progmodes/xscheme.el
index d2ec1781a54..0beca9e985e 100644
--- a/lisp/progmodes/xscheme.el
+++ b/lisp/progmodes/xscheme.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ps-bdf.el b/lisp/ps-bdf.el
index 750d724f9f2..097bd18bb1a 100644
--- a/lisp/ps-bdf.el
+++ b/lisp/ps-bdf.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ps-mule.el b/lisp/ps-mule.el
index cfebe26caf1..fcad2c85bdf 100644
--- a/lisp/ps-mule.el
+++ b/lisp/ps-mule.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -46,24 +46,24 @@
;;
;; Valid values for `ps-multibyte-buffer' are:
;;
-;; nil This is the value to use the default settings which
-;; is by default for printing buffer with only ASCII
-;; and Latin characters. The default setting can be
-;; changed by setting the variable
+;; nil This is the value to use the default settings;
+;; by default, this only works to print buffers with
+;; only ASCII and Latin characters. But this default
+;; setting can be changed by setting the variable
;; `ps-mule-font-info-database-default' differently.
;; The initial value of this variable is
;; `ps-mule-font-info-database-latin' (see
;; documentation).
;;
-;; `non-latin-printer' This is the value to use when you have a japanese
+;; `non-latin-printer' This is the value to use when you have a japanese
;; or korean PostScript printer and want to print
;; buffer with ASCII, Latin-1, Japanese (JISX0208 and
;; JISX0201-Kana) and Korean characters. At present,
-;; it was not tested the Korean characters printing.
-;; If you have a korean PostScript printer, please,
-;; test it.
+;; it was not tested with the Korean characters
+;; printing. If you have a korean PostScript printer,
+;; please, test it.
;;
-;; `bdf-font' This is the value to use when you want to print
+;; `bdf-font' This is the value to use when you want to print
;; buffer with BDF fonts. BDF fonts include both latin
;; and non-latin fonts. BDF (Bitmap Distribution
;; Format) is a format used for distributing X's font
@@ -75,7 +75,7 @@
;; `bdf-directory-list' appropriately (see ps-bdf.el
;; for documentation of this variable).
;;
-;; `bdf-font-except-latin' This is like `bdf-font' except that it is used
+;; `bdf-font-except-latin' This is like `bdf-font' except that it uses
;; PostScript default fonts to print ASCII and Latin-1
;; characters. This is convenient when you want or
;; need to use both latin and non-latin characters on
@@ -171,24 +171,24 @@
Valid values are:
- nil This is the value to use the default settings which
- is by default for printing buffer with only ASCII
- and Latin characters. The default setting can be
- changed by setting the variable
+ nil This is the value to use the default settings;
+ by default, this only works to print buffers with
+ only ASCII and Latin characters. But this default
+ setting can be changed by setting the variable
`ps-mule-font-info-database-default' differently.
The initial value of this variable is
`ps-mule-font-info-database-latin' (see
documentation).
- `non-latin-printer' This is the value to use when you have a Japanese
+ `non-latin-printer' This is the value to use when you have a Japanese
or Korean PostScript printer and want to print
buffer with ASCII, Latin-1, Japanese (JISX0208 and
JISX0201-Kana) and Korean characters. At present,
- it was not tested the Korean characters printing.
- If you have a korean PostScript printer, please,
- test it.
+ it was not tested with the Korean characters
+ printing. If you have a korean PostScript printer,
+ please, test it.
- `bdf-font' This is the value to use when you want to print
+ `bdf-font' This is the value to use when you want to print
buffer with BDF fonts. BDF fonts include both latin
and non-latin fonts. BDF (Bitmap Distribution
Format) is a format used for distributing X's font
@@ -200,7 +200,7 @@ Valid values are:
`bdf-directory-list' appropriately (see ps-bdf.el for
documentation of this variable).
- `bdf-font-except-latin' This is like `bdf-font' except that it is used
+ `bdf-font-except-latin' This is like `bdf-font' except that it uses
PostScript default fonts to print ASCII and Latin-1
characters. This is convenient when you want or
need to use both latin and non-latin characters on
@@ -417,22 +417,26 @@ See also `ps-mule-font-info-database-bdf'.")
(defun ps-mule-encode-bit (string delta)
(let* ((dim (charset-dimension (char-charset (string-to-char string))))
- (len (* (length string) dim))
- (str (make-string len 0))
- (i 0)
+ (len (length string))
+ (str (make-string (* len dim) 0))
(j 0))
(if (= dim 1)
- (while (< j len)
- (aset str j
- (+ (nth 1 (split-char (aref string i))) delta))
- (setq i (1+ i)
- j (1+ j)))
- (while (< j len)
+ ;; (apply 'string
+ ;; (mapcar (lambda (c) (+ (nth 1 (split-char c)) delta))
+ ;; string))
+ (dotimes (i len)
+ (aset str i
+ (+ (nth 1 (split-char (aref string i))) delta)))
+ ;; (mapconcat (lambda (c)
+ ;; (let ((split (split-char c)))
+ ;; (string (+ (nth 1 split) delta)
+ ;; (+ (nth 2 split) delta))))
+ ;; string "")
+ (dotimes (i len)
(let ((split (split-char (aref string i))))
(aset str j (+ (nth 1 split) delta))
(aset str (1+ j) (+ (nth 2 split) delta))
- (setq i (1+ i)
- j (+ j 2)))))
+ (setq j (+ j 2)))))
str))
;; Special encoding function for Ethiopic.
@@ -455,31 +459,29 @@ See also `ps-mule-font-info-database-bdf'.")
;; to avoid compilation gripes
(defvar ccl-encode-ethio-unicode nil))
-(if (boundp 'mule-version)
- ;; bound mule-version
- (defun ps-mule-encode-ethiopic (string)
- (ccl-execute-on-string (symbol-value 'ccl-encode-ethio-unicode)
- (make-vector 9 nil)
- string))
- ;; unbound mule-version
- (defun ps-mule-encode-ethiopic (string)
- string))
+(defalias 'ps-mule-encode-ethiopic
+ (if (boundp 'mule-version)
+ ;; Bound mule-version.
+ (lambda (string)
+ (ccl-execute-on-string (symbol-value 'ccl-encode-ethio-unicode)
+ (make-vector 9 nil)
+ string))
+ ;; Unbound mule-version.
+ #'identity))
;; Special encoding for mule-unicode-* characters.
(defun ps-mule-encode-ucs2 (string)
(let* ((len (length string))
(str (make-string (* 2 len) 0))
- (i 0)
(j 0)
ch hi lo)
- (while (< i len)
+ (dotimes (i len)
(setq ch (encode-char (aref string i) 'ucs)
hi (lsh ch -8)
lo (logand ch 255))
(aset str j hi)
(aset str (1+ j) lo)
- (setq i (1+ i)
- j (+ j 2)))
+ (setq j (+ j 2)))
str))
;; A charset which we are now processing.
@@ -518,16 +520,17 @@ element of the list."
(defconst ps-mule-external-libraries
'((builtin nil nil
nil nil nil)
- (bdf ps-bdf nil
- bdf-generate-prologue bdf-generate-font bdf-generate-glyphs)
- (pcf nil nil
- pcf-generate-prologue pcf-generate-font pcf-generate-glyphs)
- (vflib nil nil
- vflib-generate-prologue vflib-generate-font vflib-generate-glyphs))
- "Alist of information of external libraries to support PostScript printing.
+ (bdf ps-bdf nil
+ bdf-generate-prologue bdf-generate-font bdf-generate-glyphs)
+ (pcf nil nil
+ pcf-generate-prologue pcf-generate-font pcf-generate-glyphs)
+ (vflib nil nil
+ vflib-generate-prologue vflib-generate-font vflib-generate-glyphs))
+ "Alist of external libraries information to support PostScript printing.
Each element has the form:
- (FONT-SRC FEATURE INITIALIZED-P PROLOGUE-FUNC FONT-FUNC GLYPHS-FUNC)
+ (FONT-SRC FEATURE INITIALIZED-P
+ PROLOGUE-FUNC FONT-FUNC GLYPHS-FUNC)
FONT-SRC is the font source: builtin, bdf, pcf, or vflib.
@@ -541,8 +544,8 @@ PROLOGUE-FUNC is a function to generate PostScript code which define several
PostScript procedures that will be called by FONT-FUNC and GLYPHS-FUNC. It is
called with no argument, and should return a list of strings.
-FONT-FUNC is a function to generate PostScript code which define a new font. It
-is called with one argument FONT-SPEC, and should return a list of strings.
+FONT-FUNC is a function to generate PostScript code which define a new font.
+It is called with one argument FONT-SPEC, and should return a list of strings.
GLYPHS-FUNC is a function to generate PostScript code which define glyphs of
characters. It is called with three arguments FONT-SPEC, CODE-LIST, and BYTES,
@@ -906,11 +909,8 @@ the sequence."
;; The latter form is used if we much change font for the character.
(defun ps-mule-prepare-font-for-components (components font-type)
- (let ((len (length components))
- (i 0)
- elt)
- (while (< i len)
- (setq elt (aref components i))
+ (dotimes (i (length components))
+ (let ((elt (aref components i)))
(if (consp elt)
;; ELT is a composition rule.
(setq elt (encode-composition-rule elt))
@@ -930,8 +930,7 @@ the sequence."
(if (stringp font)
(setq elt (cons font str) ps-last-font font)
(setq elt str))))
- (aset components i elt)
- (setq i (1+ i))))
+ (aset components i elt)))
components)
(defun ps-mule-plot-components (components tail)
@@ -1363,12 +1362,10 @@ FONTTAG should be a string \"/h0\" or \"/h1\"."
(if (eq (car ps-mule-header-charsets) 'latin-iso8859-1)
;; Latin1 characters can be printed by the standard PostScript
;; font. Converts the other non-ASCII characters to `?'.
- (let ((len (length string))
- (i 0))
- (while (< i len)
+ (let ((len (length string)))
+ (dotimes (i len)
(or (memq (char-charset (aref string i)) '(ascii latin-iso8859-1))
- (aset string i ??))
- (setq i (1+ i)))
+ (aset string i ??)))
(setq string (encode-coding-string string 'iso-latin-1)))
;; We must prepare a font for the first non-ASCII and non-Latin1
;; character in STRING.
@@ -1383,21 +1380,17 @@ FONTTAG should be a string \"/h0\" or \"/h1\"."
;; We don't have a proper font, or we can't print them on
;; header because this kind of charset is not ASCII
;; compatible.
- (let ((len (length string))
- (i 0))
- (while (< i len)
+ (let ((len (length string)))
+ (dotimes (i len)
(or (memq (char-charset (aref string i))
'(ascii latin-iso8859-1))
- (aset string i ??))
- (setq i (1+ i)))
+ (aset string i ??)))
(setq string (encode-coding-string string 'iso-latin-1)))
(let ((charsets (list 'ascii (car ps-mule-header-charsets)))
- (len (length string))
- (i 0))
- (while (< i len)
+ (len (length string)))
+ (dotimes (i len)
(or (memq (char-charset (aref string i)) charsets)
- (aset string i ??))
- (setq i (1+ i))))
+ (aset string i ??))))
(setq string (ps-mule-string-encoding font-spec string nil t))))))
string)
@@ -1446,7 +1439,7 @@ FONTTAG should be a string \"/h0\" or \"/h1\"."
or \\[universal-argument] \\[what-cursor-position] will give information about them.\n"))))
(with-category-table table
- (let (string-list idx)
+ (let (string-list)
(dolist (elt header-footer-list)
(when (stringp elt)
(when (string-match "\\cu+" elt)
@@ -1466,7 +1459,7 @@ or \\[universal-argument] \\[what-cursor-position] will give information about t
;;;###autoload
(defun ps-mule-begin-job (from to)
"Start printing job for multi-byte chars between FROM and TO.
-This checks if all multi-byte characters in the region are printable or not."
+It checks if all multi-byte characters in the region are printable or not."
(setq ps-mule-charset-list nil
ps-mule-header-charsets nil
ps-mule-font-info-database
@@ -1541,14 +1534,12 @@ This checks if all multi-byte characters in the region are printable or not."
(progn
(ps-mule-prologue-generated)
(ps-mule-init-external-library font-spec)
- (let ((font (ps-font-alist 'ps-font-for-text))
- (ps-current-font 0))
- (while font
+ (let ((ps-current-font 0))
+ (dolist (font (ps-font-alist 'ps-font-for-text))
;; Be sure to download a glyph for SPACE in advance.
- (ps-mule-prepare-font (ps-mule-get-font-spec 'ascii (car font))
+ (ps-mule-prepare-font (ps-mule-get-font-spec 'ascii font)
" " 'ascii 'no-setfont)
- (setq font (cdr font)
- ps-current-font (1+ ps-current-font)))))))
+ (setq ps-current-font (1+ ps-current-font)))))))
;; If the header contains non-ASCII and non-Latin1 characters, prepare a font
;; and glyphs for the first occurrence of such characters.
diff --git a/lisp/ps-print.el b/lisp/ps-print.el
index 217583ed4d4..3526c170e1f 100644
--- a/lisp/ps-print.el
+++ b/lisp/ps-print.el
@@ -27,7 +27,7 @@ Please send all bug fixes and enhancements to
;; 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
+;; Software Foundation; either version 3, or (at your option) any later
;; version.
;; GNU Emacs is distributed in the hope that it will be useful, but WITHOUT ANY
@@ -7040,7 +7040,7 @@ If FACE is not a valid face name, use default face."
;;;### (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" "464a9fb9d59f7561a46bcd5ca87d85db")
+;;;;;; "ps-mule" "ps-mule.el" "586d0a4deeb89be9b80cc01def34481c")
;;; Generated autoloads from ps-mule.el
(defvar ps-multibyte-buffer nil "\
@@ -7048,24 +7048,24 @@ If FACE is not a valid face name, use default face."
Valid values are:
- nil This is the value to use the default settings which
- is by default for printing buffer with only ASCII
- and Latin characters. The default setting can be
- changed by setting the variable
+ nil This is the value to use the default settings;
+ by default, this only works to print buffers with
+ only ASCII and Latin characters. But this default
+ setting can be changed by setting the variable
`ps-mule-font-info-database-default' differently.
The initial value of this variable is
`ps-mule-font-info-database-latin' (see
documentation).
- `non-latin-printer' This is the value to use when you have a Japanese
+ `non-latin-printer' This is the value to use when you have a Japanese
or Korean PostScript printer and want to print
buffer with ASCII, Latin-1, Japanese (JISX0208 and
JISX0201-Kana) and Korean characters. At present,
- it was not tested the Korean characters printing.
- If you have a korean PostScript printer, please,
- test it.
+ it was not tested with the Korean characters
+ printing. If you have a korean PostScript printer,
+ please, test it.
- `bdf-font' This is the value to use when you want to print
+ `bdf-font' This is the value to use when you want to print
buffer with BDF fonts. BDF fonts include both latin
and non-latin fonts. BDF (Bitmap Distribution
Format) is a format used for distributing X's font
@@ -7077,7 +7077,7 @@ Valid values are:
`bdf-directory-list' appropriately (see ps-bdf.el for
documentation of this variable).
- `bdf-font-except-latin' This is like `bdf-font' except that it is used
+ `bdf-font-except-latin' This is like `bdf-font' except that it uses
PostScript default fonts to print ASCII and Latin-1
characters. This is convenient when you want or
need to use both latin and non-latin characters on
@@ -7145,7 +7145,7 @@ FONTTAG should be a string \"/h0\" or \"/h1\".
(autoload (quote ps-mule-begin-job) "ps-mule" "\
Start printing job for multi-byte chars between FROM and TO.
-This checks if all multi-byte characters in the region are printable or not.
+It checks if all multi-byte characters in the region are printable or not.
\(fn FROM TO)" nil nil)
diff --git a/lisp/recentf.el b/lisp/recentf.el
index 5c7472f96d3..85f00b2bc5f 100644
--- a/lisp/recentf.el
+++ b/lisp/recentf.el
@@ -11,7 +11,7 @@
;; 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
+;; by the Free Software Foundation; either version 3, or (at your
;; option) any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/rect.el b/lisp/rect.el
index 5910c69bab9..9655c09b80f 100644
--- a/lisp/rect.el
+++ b/lisp/rect.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/register.el b/lisp/register.el
index 8f8b786cb9e..1f0811561c2 100644
--- a/lisp/register.el
+++ b/lisp/register.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/repeat.el b/lisp/repeat.el
index 46099b664d9..ad8c4d818f8 100644
--- a/lisp/repeat.el
+++ b/lisp/repeat.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/replace.el b/lisp/replace.el
index 32c170430b9..5fe8ad43d22 100644
--- a/lisp/replace.el
+++ b/lisp/replace.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/reposition.el b/lisp/reposition.el
index 3fa4445f73c..3a5f24cbe8f 100644
--- a/lisp/reposition.el
+++ b/lisp/reposition.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/resume.el b/lisp/resume.el
index bb92ced271c..d7dfb6ab43e 100644
--- a/lisp/resume.el
+++ b/lisp/resume.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/reveal.el b/lisp/reveal.el
index 098033d9e59..130511d7666 100644
--- a/lisp/reveal.el
+++ b/lisp/reveal.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/rfn-eshadow.el b/lisp/rfn-eshadow.el
index 6798b0f8733..daa66118b38 100644
--- a/lisp/rfn-eshadow.el
+++ b/lisp/rfn-eshadow.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/rot13.el b/lisp/rot13.el
index fbc5eceea24..a536193c4b5 100644
--- a/lisp/rot13.el
+++ b/lisp/rot13.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ruler-mode.el b/lisp/ruler-mode.el
index 13895aea2eb..156625bd41a 100644
--- a/lisp/ruler-mode.el
+++ b/lisp/ruler-mode.el
@@ -13,7 +13,7 @@
;; 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
+;; published by the Free Software Foundation; either version 3, or (at
;; your option) any later version.
;; This program is distributed in the hope that it will be useful, but
diff --git a/lisp/s-region.el b/lisp/s-region.el
index 363f47eaa75..92e992bc611 100644
--- a/lisp/s-region.el
+++ b/lisp/s-region.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/savehist.el b/lisp/savehist.el
index 9343fc2ccb1..0b531b37f2b 100644
--- a/lisp/savehist.el
+++ b/lisp/savehist.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/saveplace.el b/lisp/saveplace.el
index 08e79baaf9e..b6f3a76ff23 100644
--- a/lisp/saveplace.el
+++ b/lisp/saveplace.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/sb-image.el b/lisp/sb-image.el
index d7d435642d8..7f3d0cac7f5 100644
--- a/lisp/sb-image.el
+++ b/lisp/sb-image.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/scroll-all.el b/lisp/scroll-all.el
index b62246e3b3d..7d6a08b2092 100644
--- a/lisp/scroll-all.el
+++ b/lisp/scroll-all.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/scroll-bar.el b/lisp/scroll-bar.el
index 3c2b4df08bd..0a373058f66 100644
--- a/lisp/scroll-bar.el
+++ b/lisp/scroll-bar.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/scroll-lock.el b/lisp/scroll-lock.el
index 5896d6478eb..e5d6fcad868 100644
--- a/lisp/scroll-lock.el
+++ b/lisp/scroll-lock.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/select.el b/lisp/select.el
index d96038bd256..b1fa729a664 100644
--- a/lisp/select.el
+++ b/lisp/select.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/server.el b/lisp/server.el
index 60ba66c88fe..a9907f9d3a3 100644
--- a/lisp/server.el
+++ b/lisp/server.el
@@ -14,7 +14,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/ses.el b/lisp/ses.el
index c729ca4b432..e19b177ef42 100644
--- a/lisp/ses.el
+++ b/lisp/ses.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/shadowfile.el b/lisp/shadowfile.el
index af7356db71f..ee6dcc15b7e 100644
--- a/lisp/shadowfile.el
+++ b/lisp/shadowfile.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/shell.el b/lisp/shell.el
index 7171fbbe0f0..03fbf46df67 100644
--- a/lisp/shell.el
+++ b/lisp/shell.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/simple.el b/lisp/simple.el
index ead5eff5124..854b3713faf 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/skeleton.el b/lisp/skeleton.el
index 9e2dacd2201..33e223e4b2b 100644
--- a/lisp/skeleton.el
+++ b/lisp/skeleton.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/smerge-mode.el b/lisp/smerge-mode.el
index 8e239ab5a26..ef80ef81679 100644
--- a/lisp/smerge-mode.el
+++ b/lisp/smerge-mode.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/sort.el b/lisp/sort.el
index fb96a3ef1c9..eb8de8243fc 100644
--- a/lisp/sort.el
+++ b/lisp/sort.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/soundex.el b/lisp/soundex.el
index 2133f1cf381..6e727172e6a 100644
--- a/lisp/soundex.el
+++ b/lisp/soundex.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/speedbar.el b/lisp/speedbar.el
index 4ecb0ec7dd3..c51d2ef9a80 100644
--- a/lisp/speedbar.el
+++ b/lisp/speedbar.el
@@ -17,7 +17,7 @@ this version is not backward compatible to 0.14 or earlier.")
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/startup.el b/lisp/startup.el
index 7cc6fdc3d01..3ab65eba5d0 100644
--- a/lisp/startup.el
+++ b/lisp/startup.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -1566,8 +1566,7 @@ 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) 2007 Free Software Foundation, Inc."))
+ "\n" emacs-copyright))
;; No mouse menus, so give help using kbd commands.
@@ -1613,9 +1612,8 @@ Activate menubar \\[tmm-menubar]")))
\(`C-' means use the CTRL key. `M-' means use the Meta (or Alt) key.
If you have no Meta key, you may instead type ESC followed by the character.)")
- (insert "\n\n" (emacs-version)
- "
-Copyright (C) 2007 Free Software Foundation, Inc.")
+ (insert "\n\n" (emacs-version)
+ "\n" emacs-copyright)
(if (and (eq (key-binding "\C-h\C-c") 'describe-copying)
(eq (key-binding "\C-h\C-d") 'describe-distribution)
diff --git a/lisp/strokes.el b/lisp/strokes.el
index 5886f3d1810..528ea477363 100644
--- a/lisp/strokes.el
+++ b/lisp/strokes.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/subr.el b/lisp/subr.el
index b57e6cd8cf7..546f7ccbd43 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -2310,6 +2310,15 @@ Wildcards and redirection are handled as usual in the shell.
(start-process name buffer shell-file-name shell-command-switch
(mapconcat 'identity args " ")))))
+(defun start-file-process-shell-command (name buffer &rest args)
+ "Start a program in a subprocess. Return the process object for it.
+Similar to `start-process-shell-command', but calls `start-file-process'."
+ (start-file-process
+ name buffer
+ (if (file-remote-p default-directory) "/bin/sh" shell-file-name)
+ (if (file-remote-p default-directory) "-c" shell-command-switch)
+ (mapconcat 'identity args " ")))
+
(defun call-process-shell-command (command &optional infile buffer display
&rest args)
"Execute the shell command COMMAND synchronously in separate process.
@@ -2341,6 +2350,16 @@ If you quit, the process is killed with SIGINT, or SIGKILL if you quit again."
infile buffer display
shell-command-switch
(mapconcat 'identity (cons command args) " ")))))
+
+(defun process-file-shell-command (command &optional infile buffer display
+ &rest args)
+ "Process files synchronously in a separate process.
+Similar to `call-process-shell-command', but calls `process-file'."
+ (process-file
+ (if (file-remote-p default-directory) "/bin/sh" shell-file-name)
+ infile buffer display
+ (if (file-remote-p default-directory) "-c" shell-command-switch)
+ (mapconcat 'identity (cons command args) " ")))
;;;; Lisp macros to do various things temporarily.
diff --git a/lisp/t-mouse.el b/lisp/t-mouse.el
index c48b56d6200..c97f5afcf9c 100644
--- a/lisp/t-mouse.el
+++ b/lisp/t-mouse.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/tabify.el b/lisp/tabify.el
index d0d65efcf9c..3711b4d56c7 100644
--- a/lisp/tabify.el
+++ b/lisp/tabify.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/talk.el b/lisp/talk.el
index 9197460c295..a46eadc745c 100644
--- a/lisp/talk.el
+++ b/lisp/talk.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/tar-mode.el b/lisp/tar-mode.el
index 3d908eb3191..944694b9b7e 100644
--- a/lisp/tar-mode.el
+++ b/lisp/tar-mode.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/tempo.el b/lisp/tempo.el
index f12c126c349..261dac71818 100644
--- a/lisp/tempo.el
+++ b/lisp/tempo.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/term.el b/lisp/term.el
index 4ec195662ca..c7b5ee249d1 100644
--- a/lisp/term.el
+++ b/lisp/term.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/term/AT386.el b/lisp/term/AT386.el
index 67808089e11..23dfd8e2b11 100644
--- a/lisp/term/AT386.el
+++ b/lisp/term/AT386.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/term/README b/lisp/term/README
index 2f4422981f9..e5fb2da83ad 100644
--- a/lisp/term/README
+++ b/lisp/term/README
@@ -252,7 +252,7 @@ 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)
+the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/term/internal.el b/lisp/term/internal.el
index e9afd6b9462..fb13f48d6ba 100644
--- a/lisp/term/internal.el
+++ b/lisp/term/internal.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/term/iris-ansi.el b/lisp/term/iris-ansi.el
index e45cf1384c9..a941a0399f3 100644
--- a/lisp/term/iris-ansi.el
+++ b/lisp/term/iris-ansi.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/term/mac-win.el b/lisp/term/mac-win.el
index 40ecf11d4e3..c2dcdd9c787 100644
--- a/lisp/term/mac-win.el
+++ b/lisp/term/mac-win.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/term/news.el b/lisp/term/news.el
index e88af7882a7..514f363314d 100644
--- a/lisp/term/news.el
+++ b/lisp/term/news.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/term/pc-win.el b/lisp/term/pc-win.el
index 7a737715cd8..ca85e824caa 100644
--- a/lisp/term/pc-win.el
+++ b/lisp/term/pc-win.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/term/rxvt.el b/lisp/term/rxvt.el
index 366a99819f7..d0411161773 100644
--- a/lisp/term/rxvt.el
+++ b/lisp/term/rxvt.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/term/sun-mouse.el b/lisp/term/sun-mouse.el
index dcc56d503e9..280bfb67081 100644
--- a/lisp/term/sun-mouse.el
+++ b/lisp/term/sun-mouse.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/term/sun.el b/lisp/term/sun.el
index b17b9125d8e..5743272d96a 100644
--- a/lisp/term/sun.el
+++ b/lisp/term/sun.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/term/sup-mouse.el b/lisp/term/sup-mouse.el
index 52528cb8aa9..3d8b6873bc1 100644
--- a/lisp/term/sup-mouse.el
+++ b/lisp/term/sup-mouse.el
@@ -14,7 +14,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/term/tty-colors.el b/lisp/term/tty-colors.el
index 6dcd63eb945..18b07fafc3a 100644
--- a/lisp/term/tty-colors.el
+++ b/lisp/term/tty-colors.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/term/tvi970.el b/lisp/term/tvi970.el
index cb309740155..e127abc51a2 100644
--- a/lisp/term/tvi970.el
+++ b/lisp/term/tvi970.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/term/vt100.el b/lisp/term/vt100.el
index 0c4fcc70768..17627db8923 100644
--- a/lisp/term/vt100.el
+++ b/lisp/term/vt100.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/term/w32-win.el b/lisp/term/w32-win.el
index cd98e490c52..e2b88086eac 100644
--- a/lisp/term/w32-win.el
+++ b/lisp/term/w32-win.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/term/wyse50.el b/lisp/term/wyse50.el
index 79d73504a08..e241224c637 100644
--- a/lisp/term/wyse50.el
+++ b/lisp/term/wyse50.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/term/x-win.el b/lisp/term/x-win.el
index 5e04ef08e47..926356f49a8 100644
--- a/lisp/term/x-win.el
+++ b/lisp/term/x-win.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/term/xterm.el b/lisp/term/xterm.el
index b599069a7b4..22f83f2f96d 100644
--- a/lisp/term/xterm.el
+++ b/lisp/term/xterm.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/terminal.el b/lisp/terminal.el
index cf31afd09a7..7814978dcc1 100644
--- a/lisp/terminal.el
+++ b/lisp/terminal.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/artist.el b/lisp/textmodes/artist.el
index 37c449a75ea..dbb41f13ec0 100644
--- a/lisp/textmodes/artist.el
+++ b/lisp/textmodes/artist.el
@@ -14,7 +14,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/bib-mode.el b/lisp/textmodes/bib-mode.el
index 121137c7025..b457956b9ba 100644
--- a/lisp/textmodes/bib-mode.el
+++ b/lisp/textmodes/bib-mode.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/bibtex-style.el b/lisp/textmodes/bibtex-style.el
index 8afc92968d9..99c2f92cab0 100644
--- a/lisp/textmodes/bibtex-style.el
+++ b/lisp/textmodes/bibtex-style.el
@@ -7,7 +7,7 @@
;; This file 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; This file is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/bibtex.el b/lisp/textmodes/bibtex.el
index 377c90b7bed..6d2d8ae22d9 100644
--- a/lisp/textmodes/bibtex.el
+++ b/lisp/textmodes/bibtex.el
@@ -16,7 +16,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/conf-mode.el b/lisp/textmodes/conf-mode.el
index e5ea2d1fbe9..9eae2f54e5f 100644
--- a/lisp/textmodes/conf-mode.el
+++ b/lisp/textmodes/conf-mode.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el
index 00a438a3e95..b00fc356cce 100644
--- a/lisp/textmodes/css-mode.el
+++ b/lisp/textmodes/css-mode.el
@@ -7,7 +7,7 @@
;; This file 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; This file is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/dns-mode.el b/lisp/textmodes/dns-mode.el
index 6e197578ffc..a5718a29f14 100644
--- a/lisp/textmodes/dns-mode.el
+++ b/lisp/textmodes/dns-mode.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/enriched.el b/lisp/textmodes/enriched.el
index 0e2acc8f74b..244ee44e7e7 100644
--- a/lisp/textmodes/enriched.el
+++ b/lisp/textmodes/enriched.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/fill.el b/lisp/textmodes/fill.el
index 4e45c164ae8..88a4286aad2 100644
--- a/lisp/textmodes/fill.el
+++ b/lisp/textmodes/fill.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el
index e02fec1362f..8b95a159477 100644
--- a/lisp/textmodes/flyspell.el
+++ b/lisp/textmodes/flyspell.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index b274185bf17..047fb141331 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -16,7 +16,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/makeinfo.el b/lisp/textmodes/makeinfo.el
index 4bc27866a72..3c7bb86ae8a 100644
--- a/lisp/textmodes/makeinfo.el
+++ b/lisp/textmodes/makeinfo.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/nroff-mode.el b/lisp/textmodes/nroff-mode.el
index 086f5156f28..45d407b2565 100644
--- a/lisp/textmodes/nroff-mode.el
+++ b/lisp/textmodes/nroff-mode.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/org-publish.el b/lisp/textmodes/org-publish.el
index 1afcee0182b..5a2a146dbaa 100644
--- a/lisp/textmodes/org-publish.el
+++ b/lisp/textmodes/org-publish.el
@@ -8,7 +8,7 @@
;; This file 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; This file is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/org.el b/lisp/textmodes/org.el
index a7eb10dbb4f..35591cba168 100644
--- a/lisp/textmodes/org.el
+++ b/lisp/textmodes/org.el
@@ -11,7 +11,7 @@
;;
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/page-ext.el b/lisp/textmodes/page-ext.el
index 5f98c43c639..7919d89184f 100644
--- a/lisp/textmodes/page-ext.el
+++ b/lisp/textmodes/page-ext.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/page.el b/lisp/textmodes/page.el
index 7b7fb474afc..6f92b798e6a 100644
--- a/lisp/textmodes/page.el
+++ b/lisp/textmodes/page.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/paragraphs.el b/lisp/textmodes/paragraphs.el
index 10e35107b30..201eeebb623 100644
--- a/lisp/textmodes/paragraphs.el
+++ b/lisp/textmodes/paragraphs.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/picture.el b/lisp/textmodes/picture.el
index 73ac80a3f37..981013279cb 100644
--- a/lisp/textmodes/picture.el
+++ b/lisp/textmodes/picture.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/po.el b/lisp/textmodes/po.el
index 7c02a35b367..7d0e988b3ae 100644
--- a/lisp/textmodes/po.el
+++ b/lisp/textmodes/po.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/refbib.el b/lisp/textmodes/refbib.el
index 3ee94c38e34..23a7af2bf85 100644
--- a/lisp/textmodes/refbib.el
+++ b/lisp/textmodes/refbib.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/refer.el b/lisp/textmodes/refer.el
index 394c4964b44..5c3f63b01d2 100644
--- a/lisp/textmodes/refer.el
+++ b/lisp/textmodes/refer.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/refill.el b/lisp/textmodes/refill.el
index b9fe20e7bba..a20a482a1c9 100644
--- a/lisp/textmodes/refill.el
+++ b/lisp/textmodes/refill.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/reftex-auc.el b/lisp/textmodes/reftex-auc.el
index 02840a692e7..e49c408b6e5 100644
--- a/lisp/textmodes/reftex-auc.el
+++ b/lisp/textmodes/reftex-auc.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/reftex-cite.el b/lisp/textmodes/reftex-cite.el
index 3dcd785dd4d..c8a64b8aecc 100644
--- a/lisp/textmodes/reftex-cite.el
+++ b/lisp/textmodes/reftex-cite.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/reftex-dcr.el b/lisp/textmodes/reftex-dcr.el
index 60ed932c534..cfee8b53c0b 100644
--- a/lisp/textmodes/reftex-dcr.el
+++ b/lisp/textmodes/reftex-dcr.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/reftex-global.el b/lisp/textmodes/reftex-global.el
index 9ddfb5a4aca..c551083240c 100644
--- a/lisp/textmodes/reftex-global.el
+++ b/lisp/textmodes/reftex-global.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/reftex-index.el b/lisp/textmodes/reftex-index.el
index ee2c2aefcf5..35714ddb0b2 100644
--- a/lisp/textmodes/reftex-index.el
+++ b/lisp/textmodes/reftex-index.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/reftex-parse.el b/lisp/textmodes/reftex-parse.el
index d18b3e85651..b6b85b8f7d3 100644
--- a/lisp/textmodes/reftex-parse.el
+++ b/lisp/textmodes/reftex-parse.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/reftex-ref.el b/lisp/textmodes/reftex-ref.el
index e95dc16f133..3294c4c22a9 100644
--- a/lisp/textmodes/reftex-ref.el
+++ b/lisp/textmodes/reftex-ref.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/reftex-sel.el b/lisp/textmodes/reftex-sel.el
index 8f1bb3d13a8..4a9ad14510d 100644
--- a/lisp/textmodes/reftex-sel.el
+++ b/lisp/textmodes/reftex-sel.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/reftex-toc.el b/lisp/textmodes/reftex-toc.el
index 8d2287b51cb..4de409de70c 100644
--- a/lisp/textmodes/reftex-toc.el
+++ b/lisp/textmodes/reftex-toc.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/reftex-vars.el b/lisp/textmodes/reftex-vars.el
index bfc5581ccac..61546da3fee 100644
--- a/lisp/textmodes/reftex-vars.el
+++ b/lisp/textmodes/reftex-vars.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/reftex.el b/lisp/textmodes/reftex.el
index 200d271d631..375bd2d2652 100644
--- a/lisp/textmodes/reftex.el
+++ b/lisp/textmodes/reftex.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/sgml-mode.el b/lisp/textmodes/sgml-mode.el
index f7cb44a74cb..6e262ee00d2 100644
--- a/lisp/textmodes/sgml-mode.el
+++ b/lisp/textmodes/sgml-mode.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/spell.el b/lisp/textmodes/spell.el
index 5398779b17e..e8e085df21c 100644
--- a/lisp/textmodes/spell.el
+++ b/lisp/textmodes/spell.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/table.el b/lisp/textmodes/table.el
index 69c3c60f912..eadb9e606c3 100644
--- a/lisp/textmodes/table.el
+++ b/lisp/textmodes/table.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el
index 748680ab8f7..240ebbcb229 100644
--- a/lisp/textmodes/tex-mode.el
+++ b/lisp/textmodes/tex-mode.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/texinfmt.el b/lisp/textmodes/texinfmt.el
index 9f576b09db3..07b7ba6e39d 100644
--- a/lisp/textmodes/texinfmt.el
+++ b/lisp/textmodes/texinfmt.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/texinfo.el b/lisp/textmodes/texinfo.el
index a06ac1bfd52..038345e17bd 100644
--- a/lisp/textmodes/texinfo.el
+++ b/lisp/textmodes/texinfo.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/texnfo-upd.el b/lisp/textmodes/texnfo-upd.el
index 4566bbc4496..f1aa3db6a0a 100644
--- a/lisp/textmodes/texnfo-upd.el
+++ b/lisp/textmodes/texnfo-upd.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/text-mode.el b/lisp/textmodes/text-mode.el
index 8887edf1142..0c715b7e9f7 100644
--- a/lisp/textmodes/text-mode.el
+++ b/lisp/textmodes/text-mode.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/tildify.el b/lisp/textmodes/tildify.el
index 9e282792dd5..4c9c0633751 100644
--- a/lisp/textmodes/tildify.el
+++ b/lisp/textmodes/tildify.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/textmodes/two-column.el b/lisp/textmodes/two-column.el
index cf43aff4795..2568b53fe36 100644
--- a/lisp/textmodes/two-column.el
+++ b/lisp/textmodes/two-column.el
@@ -18,7 +18,7 @@
;; ^gin sub la kondi^coj de la GNU under the terms of the GNU General
;; ^Generala Publika Licenco kiel pub- Public License as published by the
;; likigita far la Liberprogramara Fon- Free Software Foundation; either
-;; da^jo; a^u eldono 2a, a^u (la^u via version 2, or (at your option) any
+;; da^jo; a^u eldono 2a, a^u (la^u via version 3, or (at your option) any
;; elekto) ajna posta eldono. later version.
;; GNU Emacs estas disdonata en la GNU Emacs is distributed in the hope
diff --git a/lisp/textmodes/underline.el b/lisp/textmodes/underline.el
index 7b8f98f8685..07d7084082c 100644
--- a/lisp/textmodes/underline.el
+++ b/lisp/textmodes/underline.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/thingatpt.el b/lisp/thingatpt.el
index 416812dbbf5..ce26344af8c 100644
--- a/lisp/thingatpt.el
+++ b/lisp/thingatpt.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/thumbs.el b/lisp/thumbs.el
index 56f4e45dcb3..9d8b289cbe9 100644
--- a/lisp/thumbs.el
+++ b/lisp/thumbs.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/time-stamp.el b/lisp/time-stamp.el
index 973ff972af0..7316e6db75a 100644
--- a/lisp/time-stamp.el
+++ b/lisp/time-stamp.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/time.el b/lisp/time.el
index 660413369f9..2b6a671c6bd 100644
--- a/lisp/time.el
+++ b/lisp/time.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/timezone.el b/lisp/timezone.el
index 005e1f928d0..69f6131b1b2 100644
--- a/lisp/timezone.el
+++ b/lisp/timezone.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/tmm.el b/lisp/tmm.el
index db2cc0c4c0a..e4436fc68ff 100644
--- a/lisp/tmm.el
+++ b/lisp/tmm.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/tool-bar.el b/lisp/tool-bar.el
index d136facc66a..e3635f47fe7 100644
--- a/lisp/tool-bar.el
+++ b/lisp/tool-bar.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/tooltip.el b/lisp/tooltip.el
index f57758b9b48..a5d0309f125 100644
--- a/lisp/tooltip.el
+++ b/lisp/tooltip.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/tree-widget.el b/lisp/tree-widget.el
index 54bbbc9b1dd..8b429ac3a66 100644
--- a/lisp/tree-widget.el
+++ b/lisp/tree-widget.el
@@ -11,7 +11,7 @@
;; 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
+;; published by the Free Software Foundation; either version 3, or (at
;; your option) any later version.
;; This program is distributed in the hope that it will be useful, but
diff --git a/lisp/tutorial.el b/lisp/tutorial.el
index 6a52d751c5b..df71ea9fb9a 100644
--- a/lisp/tutorial.el
+++ b/lisp/tutorial.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/type-break.el b/lisp/type-break.el
index e065e32df54..59b49f7092c 100644
--- a/lisp/type-break.el
+++ b/lisp/type-break.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/uniquify.el b/lisp/uniquify.el
index c8bbd9256bd..1f5e6409a76 100644
--- a/lisp/uniquify.el
+++ b/lisp/uniquify.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog
index bd0e4b2e4b1..8bf3ca4aead 100644
--- a/lisp/url/ChangeLog
+++ b/lisp/url/ChangeLog
@@ -1,3 +1,7 @@
+2007-07-25 Glenn Morris <rgm@gnu.org>
+
+ * Relicense all FSF files to GPLv3 or later.
+
2007-06-12 Tom Tromey <tromey@redhat.com>
* url.el (url-configuration-directory): Use user-emacs-directory.
@@ -1833,7 +1837,7 @@
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)
+ the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/url/url-about.el b/lisp/url/url-about.el
index 4c16d471e86..5ed16bb2f81 100644
--- a/lisp/url/url-about.el
+++ b/lisp/url/url-about.el
@@ -8,7 +8,7 @@
;;
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;;
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/url/url-auth.el b/lisp/url/url-auth.el
index c786887f1f6..c57a96cc81b 100644
--- a/lisp/url/url-auth.el
+++ b/lisp/url/url-auth.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/url/url-cache.el b/lisp/url/url-cache.el
index f0802602c3f..8fbe01d472a 100644
--- a/lisp/url/url-cache.el
+++ b/lisp/url/url-cache.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/url/url-cid.el b/lisp/url/url-cid.el
index 6e3369f388b..d644a7d359e 100644
--- a/lisp/url/url-cid.el
+++ b/lisp/url/url-cid.el
@@ -8,7 +8,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/url/url-cookie.el b/lisp/url/url-cookie.el
index 44ef8aed779..368c34e32a8 100644
--- a/lisp/url/url-cookie.el
+++ b/lisp/url/url-cookie.el
@@ -9,7 +9,7 @@
;;
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;;
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/url/url-dav.el b/lisp/url/url-dav.el
index 25cdbdfadf8..afae0041b68 100644
--- a/lisp/url/url-dav.el
+++ b/lisp/url/url-dav.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/url/url-dired.el b/lisp/url/url-dired.el
index 404068264af..189628468b7 100644
--- a/lisp/url/url-dired.el
+++ b/lisp/url/url-dired.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/url/url-expand.el b/lisp/url/url-expand.el
index 43e6e18791b..7b3b105d951 100644
--- a/lisp/url/url-expand.el
+++ b/lisp/url/url-expand.el
@@ -8,7 +8,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/url/url-file.el b/lisp/url/url-file.el
index 1ad2e09e976..e899493f1ce 100644
--- a/lisp/url/url-file.el
+++ b/lisp/url/url-file.el
@@ -9,7 +9,7 @@
;;
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;;
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/url/url-ftp.el b/lisp/url/url-ftp.el
index 67a4b091465..8f2570586c7 100644
--- a/lisp/url/url-ftp.el
+++ b/lisp/url/url-ftp.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/url/url-gw.el b/lisp/url/url-gw.el
index b2768212721..998d1f41900 100644
--- a/lisp/url/url-gw.el
+++ b/lisp/url/url-gw.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/url/url-handlers.el b/lisp/url/url-handlers.el
index 91ac355a8c4..d6776c238e0 100644
--- a/lisp/url/url-handlers.el
+++ b/lisp/url/url-handlers.el
@@ -9,7 +9,7 @@
;;
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;;
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/url/url-history.el b/lisp/url/url-history.el
index d595b1a14b0..1ed3c71174e 100644
--- a/lisp/url/url-history.el
+++ b/lisp/url/url-history.el
@@ -9,7 +9,7 @@
;;
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;;
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el
index d9ac81838d4..148449d41cf 100644
--- a/lisp/url/url-http.el
+++ b/lisp/url/url-http.el
@@ -9,7 +9,7 @@
;;
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;;
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/url/url-imap.el b/lisp/url/url-imap.el
index da3fd887e3f..5c5dff31f76 100644
--- a/lisp/url/url-imap.el
+++ b/lisp/url/url-imap.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/url/url-irc.el b/lisp/url/url-irc.el
index b00b897a92c..0cefb375bf3 100644
--- a/lisp/url/url-irc.el
+++ b/lisp/url/url-irc.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/url/url-ldap.el b/lisp/url/url-ldap.el
index b50bd714aa6..50b665a0821 100644
--- a/lisp/url/url-ldap.el
+++ b/lisp/url/url-ldap.el
@@ -8,7 +8,7 @@
;;
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;;
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/url/url-mailto.el b/lisp/url/url-mailto.el
index 6585ba8e458..10d08b9633f 100644
--- a/lisp/url/url-mailto.el
+++ b/lisp/url/url-mailto.el
@@ -9,7 +9,7 @@
;;
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;;
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/url/url-methods.el b/lisp/url/url-methods.el
index f29364f3499..89c36bec737 100644
--- a/lisp/url/url-methods.el
+++ b/lisp/url/url-methods.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;;
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/url/url-misc.el b/lisp/url/url-misc.el
index 11771537ca2..a793cacc5bc 100644
--- a/lisp/url/url-misc.el
+++ b/lisp/url/url-misc.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/url/url-news.el b/lisp/url/url-news.el
index ab3c3ae31ad..48f332fe7a0 100644
--- a/lisp/url/url-news.el
+++ b/lisp/url/url-news.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/url/url-nfs.el b/lisp/url/url-nfs.el
index 4f06f5e5bb3..ed21434cad0 100644
--- a/lisp/url/url-nfs.el
+++ b/lisp/url/url-nfs.el
@@ -9,7 +9,7 @@
;;
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;;
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/url/url-ns.el b/lisp/url/url-ns.el
index c460a423b64..85053b819b9 100644
--- a/lisp/url/url-ns.el
+++ b/lisp/url/url-ns.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/url/url-parse.el b/lisp/url/url-parse.el
index a9a0fb151e9..3dfc7ac86a2 100644
--- a/lisp/url/url-parse.el
+++ b/lisp/url/url-parse.el
@@ -9,7 +9,7 @@
;;
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;;
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/url/url-privacy.el b/lisp/url/url-privacy.el
index 0ea93b1857e..6c29474752b 100644
--- a/lisp/url/url-privacy.el
+++ b/lisp/url/url-privacy.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/url/url-proxy.el b/lisp/url/url-proxy.el
index 76bea8d1435..4984990a3fe 100644
--- a/lisp/url/url-proxy.el
+++ b/lisp/url/url-proxy.el
@@ -8,7 +8,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/url/url-util.el b/lisp/url/url-util.el
index db7aac78bfd..fa971da5d17 100644
--- a/lisp/url/url-util.el
+++ b/lisp/url/url-util.el
@@ -10,7 +10,7 @@
;;
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;;
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/url/url-vars.el b/lisp/url/url-vars.el
index d0bd9a84c05..35e69e7990b 100644
--- a/lisp/url/url-vars.el
+++ b/lisp/url/url-vars.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/url/url.el b/lisp/url/url.el
index 4cdf781e87f..3b292b4452d 100644
--- a/lisp/url/url.el
+++ b/lisp/url/url.el
@@ -10,7 +10,7 @@
;;
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;;
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/url/vc-dav.el b/lisp/url/vc-dav.el
index b19f43a64be..ce0d3275a5f 100644
--- a/lisp/url/vc-dav.el
+++ b/lisp/url/vc-dav.el
@@ -8,7 +8,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/userlock.el b/lisp/userlock.el
index 329d46c2124..17cbc0c3e55 100644
--- a/lisp/userlock.el
+++ b/lisp/userlock.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/vc-arch.el b/lisp/vc-arch.el
index eb55506ed63..9052a7bb82b 100644
--- a/lisp/vc-arch.el
+++ b/lisp/vc-arch.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/vc-bzr.el b/lisp/vc-bzr.el
index dc8004c25a8..6a8f930f00f 100644
--- a/lisp/vc-bzr.el
+++ b/lisp/vc-bzr.el
@@ -4,7 +4,7 @@
;; NOTE: THIS IS A MODIFIED VERSION OF Dave Love's vc-bzr.el,
;; which you can find at: http://www.loveshack.ukfsn.org/emacs/vc-bzr.el
-;; I could not get in touch with Dave Love by email, so
+;; I could not get in touch with Dave Love by email, so
;; I am releasing my changes separately. -- Riccardo
;; Author: Dave Love <fx@gnu.org>, Riccardo Murri <riccardo.murri@gmail.com>
@@ -15,7 +15,7 @@
;; This file 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; This file is distributed in the hope that it will be useful,
diff --git a/lisp/vc-cvs.el b/lisp/vc-cvs.el
index 452d9c16b19..f90f698275e 100644
--- a/lisp/vc-cvs.el
+++ b/lisp/vc-cvs.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/vc-git.el b/lisp/vc-git.el
index de6be9af733..e4a9d26105a 100644
--- a/lisp/vc-git.el
+++ b/lisp/vc-git.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -40,10 +40,10 @@
;; - check if more functions could use vc-git-command instead
;; of start-process.
;; - changelog generation
-;; - working with revisions other than HEAD
;; Implement the rest of the vc interface. See the comment at the
;; beginning of vc.el. The current status is:
+;; ("??" means: "figure out what to do about it")
;;
;; FUNCTION NAME STATUS
;; BACKEND PROPERTIES
@@ -51,72 +51,69 @@
;; STATE-QUERYING FUNCTIONS
;; * registered (file) OK
;; * state (file) OK
-;; - state-heuristic (file) ?? PROBABLY NOT NEEDED
+;; - state-heuristic (file) NOT NEEDED
;; - dir-state (dir) OK
;; * workfile-version (file) OK
-;; - latest-on-branch-p (file) ??
+;; - latest-on-branch-p (file) NOT NEEDED
;; * checkout-model (file) OK
-;; - workfile-unchanged-p (file) MAYBE CAN BE SIMPLIFIED
+;; - workfile-unchanged-p (file) OK
;; - mode-line-string (file) NOT NEEDED
;; - dired-state-info (file) OK
;; STATE-CHANGING FUNCTIONS
;; * create-repo () OK
;; * register (files &optional rev comment) OK
-;; - init-version (file) ??
+;; - init-version (file) NOT NEEDED
;; - responsible-p (file) OK
-;; - could-register (file) NEEDED
-;; - receive-file (file rev) ??
+;; - could-register (file) NOT NEEDED, DEFAULT IS GOOD
+;; - receive-file (file rev) NOT NEEDED
;; - unregister (file) OK
;; * checkin (files rev comment) OK
;; * find-version (file rev buffer) OK
;; * checkout (file &optional editable rev) OK
;; * revert (file &optional contents-done) OK
-;; - rollback (files) ?? PROBABLY NOT NEEDED
-;; - merge (file rev1 rev2) NEEDED
-;; - merge-news (file) NEEDED
+;; - rollback (files) COULD BE SUPPORTED
+;; - merge (file rev1 rev2) It would be possible to merge changes into
+;; a single file, but when committing they
+;; wouldn't be identified as a merge by git,
+;; so it's probably not a good idea.
+;; - merge-news (file) see `merge'
;; - steal-lock (file &optional version) NOT NEEDED
;; HISTORY FUNCTIONS
;; * print-log (files &optional buffer) OK
;; - log-view-mode () OK
;; - show-log-entry (version) NOT NEEDED, DEFAULT IS GOOD
-;; - wash-log (file) ??
-;; - logentry-check () ??
+;; - wash-log (file) COULD BE SUPPORTED
+;; - logentry-check () NOT NEEDED
;; - comment-history (file) ??
-;; - update-changelog (files) ??
-;; * diff (file &optional rev1 rev2 buffer) PORT TO NEW VC INTERFACE
+;; - update-changelog (files) COULD BE SUPPORTED
+;; * diff (file &optional rev1 rev2 buffer) OK
;; - revision-completion-table (file) NEEDED?
;; - diff-tree (dir &optional rev1 rev2) OK
;; - annotate-command (file buf &optional rev) OK
;; - annotate-time () OK
-;; - annotate-current-time () ?? NOT NEEDED
+;; - annotate-current-time () NOT NEEDED
;; - annotate-extract-revision-at-line () OK
;; SNAPSHOT SYSTEM
-;; - create-snapshot (dir name branchp) NEEDED
+;; - create-snapshot (dir name branchp) OK
;; - assign-name (file name) NOT NEEDED
-;; - retrieve-snapshot (dir name update) NEEDED
+;; - retrieve-snapshot (dir name update) OK, needs to update buffers
;; MISCELLANEOUS
-;; - make-version-backups-p (file) ??
-;; - repository-hostname (dirname) ??
-;; - previous-version (file rev) ??
-;; - next-version (file rev) ??
-;; - check-headers () ??
-;; - clear-headers () ??
+;; - make-version-backups-p (file) NOT NEEDED
+;; - repository-hostname (dirname) NOT NEEDED
+;; - previous-version (file rev) OK
+;; - next-version (file rev) OK
+;; - check-headers () COULD BE SUPPORTED
+;; - clear-headers () NOT NEEDED
;; - delete-file (file) OK
;; - rename-file (old new) OK
-;; - find-file-hook () PROBABLY NOT NEEDED
-;; - find-file-not-found-hook () PROBABLY NOT NEEDED
+;; - find-file-hook () NOT NEEDED
+;; - find-file-not-found-hook () NOT NEEDED
(eval-when-compile (require 'cl) (require 'vc))
(defvar git-commits-coding-system 'utf-8
"Default coding system for git commits.")
-;; XXX when this backend is considered sufficiently reliable this
-;; should be moved to vc-hooks.el
-(add-to-list 'vc-handled-backends 'GIT)
-(eval-after-load "vc"
- '(add-to-list 'vc-directory-exclusion-list ".bzr" t))
-
;;; BACKEND PROPERTIES
(defun vc-git-revision-granularity ()
@@ -143,7 +140,7 @@
(let ((str (buffer-string)))
(and (> (length str) (length name))
(string= (substring str 0 (1+ (length name))) (concat name "\0")))))))))
-
+
(defun vc-git-state (file)
"Git-specific version of `vc-state'."
(let ((diff (vc-git--run-command-string file "diff-index" "-z" "HEAD" "--")))
@@ -197,7 +194,7 @@
;; stat info, so if the file has been modified it will always show
;; up as modified in vc-git-state, even if the change has been
;; undone, until git-update-index --refresh is run.
-
+
;; OTOH the vc-git-workfile-unchanged-p implementation checks the
;; actual content, so it will detect the case of a file reverted
;; back to its original state.
@@ -233,7 +230,7 @@
(defun vc-git-unregister (file)
(vc-git-command nil 0 file "rm" "-f" "--cached" "--"))
-
+
(defun vc-git-checkin (files rev comment)
(let ((coding-system-for-write git-commits-coding-system))
@@ -243,15 +240,15 @@
(let ((coding-system-for-read 'binary)
(coding-system-for-write 'binary)
(fullname (substring
- (vc-git--run-command-string
+ (vc-git--run-command-string
file "ls-files" "-z" "--full-name" "--")
0 -1)))
- (vc-git-command
- buffer 0
+ (vc-git-command
+ buffer 0
(concat (if rev rev "HEAD") ":" fullname) "cat-file" "blob")))
(defun vc-git-checkout (file &optional editable rev)
- (vc-git-command nil0 file "checkout" (or rev "HEAD")))
+ (vc-git-command nil 0 file "checkout" (or rev "HEAD")))
(defun vc-git-revert (file &optional contents-done)
"Revert FILE to the version stored in the git repository."
@@ -263,27 +260,28 @@
(defun vc-git-print-log (files &optional buffer)
"Get change log associated with FILES."
- (let ((name (file-relative-name file))
- (coding-system-for-read git-commits-coding-system))
- ;; `log-view-mode' needs to have the file name in order to function
- ;; correctly. "git log" does not print it, so we insert it here by
- ;; hand.
-
+ (let ((coding-system-for-read git-commits-coding-system)
+ ;; Support both the old print-log interface that passes a
+ ;; single file, and the new one that passes a file list.
+ (flist (if (listp files) files (list files))))
;; `vc-do-command' creates the buffer, but we need it before running
;; the command.
(vc-setup-buffer buffer)
;; If the buffer exists from a previous invocation it might be
;; read-only.
(let ((inhibit-read-only t))
- ;; XXX Here loop and call "git rev-list" on each file separately
- ;; to make sure that each file gets a "File:" header before the
- ;; corresponding log. Maybe there is a way to do this with one
- ;; command...
- (dolist (file files)
- (with-current-buffer
- buffer
- (insert "File: " (file-name-nondirectory file) "\n")))
- (vc-git-command buffer 'async name "rev-list" "--pretty" "HEAD" "--"))))
+ ;; XXX `log-view-mode' needs to have something to identify where
+ ;; the log for each individual file starts. It seems that by
+ ;; default git does not output this info. So loop here and call
+ ;; "git rev-list" on each file separately to make sure that each
+ ;; file gets a "File:" header before the corresponding
+ ;; log. Maybe there is a way to do this with one command...
+ (dolist (file flist)
+ (with-current-buffer
+ buffer
+ (insert "File: " (file-name-nondirectory file) "\n"))
+ (vc-git-command buffer 'async (file-relative-name file)
+ "rev-list" "--pretty" "HEAD" "--")))))
(defvar log-view-message-re)
(defvar log-view-file-re)
@@ -311,14 +309,27 @@
("^Date: \\(.+\\)" (1 'change-log-date))
("^summary:[ \t]+\\(.+\\)" (1 'log-view-message))))))
-(defun vc-git-diff (file &optional rev1 rev2 buffer)
- (let ((name (file-relative-name file))
- (buf (or buffer "*vc-diff*")))
+(defun vc-git-diff (files &optional rev1 rev2 buffer)
+ (let ((buf (or buffer "*vc-diff*")))
(if (and rev1 rev2)
- (vc-git-command buf 0 name "diff-tree" "-p" rev1 rev2 "--")
- (vc-git-command buf 0 name "diff-index" "-p" (or rev1 "HEAD") "--"))
- ;; git-diff-index doesn't set exit status like diff does
- (if (vc-git-workfile-unchanged-p file) 0 1)))
+ (vc-git-command buf 1 files "diff-tree" "--exit-code" "-p" rev1 rev2 "--")
+ (vc-git-command buf 1 files "diff-index" "--exit-code" "-p" (or rev1 "HEAD") "--"))))
+
+(defun vc-git-revision-table (file)
+ (let ((table (list "HEAD")))
+ (with-temp-buffer
+ (vc-git-command t nil nil "for-each-ref" "--format=%(refname)")
+ (goto-char (point-min))
+ (while (re-search-forward "^refs/\\(heads\\|tags\\)/\\(.*\\)$" nil t)
+ (push (match-string 2) table)))
+ table))
+
+(defun vc-git-revision-completion-table (file)
+ (lexical-let ((file file)
+ table)
+ (setq table (lazy-completion-table
+ table (lambda () (vc-git-revision-table file))))
+ table))
(defun vc-git-diff-tree (dir &optional rev1 rev2)
(vc-git-diff dir rev1 rev2))
@@ -339,6 +350,22 @@
(and (looking-at "[0-9a-f]+")
(buffer-substring-no-properties (match-beginning 0) (match-end 0)))))
+;;; SNAPSHOT SYSTEM
+
+(defun vc-git-create-snapshot (dir name branchp)
+ (let ((default-directory dir))
+ (and (vc-git-command nil 0 nil "update-index" "--refresh")
+ (if branchp
+ (vc-git-command nil 0 nil "checkout" "-b" name)
+ (vc-git-command nil 0 nil "tag" name)))))
+
+(defun vc-git-retrieve-snapshot (dir name update)
+ (let ((default-directory dir))
+ (vc-git-command nil 0 nil "checkout" name)
+ ;; FIXME: update buffers if `update' is true
+ ))
+
+
;;; MISCELLANEOUS
(defun vc-git-previous-version (file rev)
@@ -398,7 +425,7 @@
(vc-git-command nil 0 (list old new) "mv" "-f" "--"))
-;; Internal commands
+;;; Internal commands
(defun vc-git-root (file)
(vc-find-root file ".git"))
diff --git a/lisp/vc-hg.el b/lisp/vc-hg.el
index b4aa7d3a124..d8a7ec0dd46 100644
--- a/lisp/vc-hg.el
+++ b/lisp/vc-hg.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -76,7 +76,7 @@
;; - comment-history (file) NOT NEEDED
;; - update-changelog (files) NOT NEEDED
;; * diff (files &optional rev1 rev2 buffer) OK
-;; - revision-completion-table (file) OK
+;; - revision-completion-table (file) COMMENTED OUT AS A WORKAROUND FOR A BUG
;; - diff-tree (dir &optional rev1 rev2) TEST IT
;; - annotate-command (file buf &optional rev) OK
;; - annotate-time () OK
@@ -148,7 +148,7 @@
(defun vc-hg-registered (file)
"Return non-nil if FILE is registered with hg."
(when (vc-hg-root file) ; short cut
- (vc-hg-state file))) ; expensive
+ (vc-file-setprop file 'vc-state (vc-hg-state file)))) ; expensive
(defun vc-hg-state (file)
"Hg-specific version of `vc-state'."
diff --git a/lisp/vc-hooks.el b/lisp/vc-hooks.el
index 1029e745cde..a8b6297caa2 100644
--- a/lisp/vc-hooks.el
+++ b/lisp/vc-hooks.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -62,9 +62,9 @@ interpreted as hostnames."
:type 'regexp
:group 'vc)
-(defcustom vc-handled-backends '(RCS CVS SVN SCCS BZR HG Arch MCVS)
- ;; BZR, HG, Arch and MCVS come last because they are per-tree rather
- ;; than per-dir.
+(defcustom vc-handled-backends '(RCS CVS SVN SCCS BZR GIT HG Arch MCVS)
+ ;; BZR, GIT, HG, Arch and MCVS come last because they are per-tree
+ ;; rather than per-dir.
"List of version control backends for which VC will be used.
Entries in this list will be tried in order to determine whether a
file is under that sort of version control.
diff --git a/lisp/vc-mcvs.el b/lisp/vc-mcvs.el
index debdf892183..766daf3c97b 100644
--- a/lisp/vc-mcvs.el
+++ b/lisp/vc-mcvs.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/vc-rcs.el b/lisp/vc-rcs.el
index a4be8064338..dcd3adcd8c9 100644
--- a/lisp/vc-rcs.el
+++ b/lisp/vc-rcs.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/vc-sccs.el b/lisp/vc-sccs.el
index 38f0442b192..2389cb36203 100644
--- a/lisp/vc-sccs.el
+++ b/lisp/vc-sccs.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/vc-svn.el b/lisp/vc-svn.el
index 1539c5c2d5d..ddecb89d77c 100644
--- a/lisp/vc-svn.el
+++ b/lisp/vc-svn.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/vc.el b/lisp/vc.el
index 0bbaf33d78d..5030fb64471 100644
--- a/lisp/vc.el
+++ b/lisp/vc.el
@@ -13,7 +13,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -587,7 +587,7 @@ These are passed to the checkin program by \\[vc-register]."
:version "20.3")
(defcustom vc-directory-exclusion-list '("SCCS" "RCS" "CVS" "MCVS" ".svn"
- ".hg" ".bzr" "{arch}")
+ ".git" ".hg" ".bzr" "{arch}")
"List of directory names to be ignored when walking directory trees."
:type '(repeat string)
:group 'vc)
@@ -2233,8 +2233,13 @@ There is a special command, `*l', to mark all files currently locked."
(set (make-local-variable 'dired-actual-switches)
vc-dired-switches))
(set (make-local-variable 'vc-dired-terse-mode) vc-dired-terse-display)
- (setq mode-name (concat mode-name (symbol-name (vc-responsible-backend
- default-directory))))
+ (let ((backend-name (symbol-name (vc-responsible-backend
+ default-directory))))
+ (setq mode-name (concat mode-name backend-name))
+ ;; Add menu after `vc-dired-mode-map' has `dired-mode-map' as the parent.
+ (let ((vc-dire-menu-map (copy-keymap vc-menu-map)))
+ (define-key-after (lookup-key vc-dired-mode-map [menu-bar]) [vc]
+ (cons backend-name vc-dire-menu-map) 'subdir)))
(setq vc-dired-mode t))
(defun vc-dired-toggle-terse-mode ()
@@ -2284,7 +2289,7 @@ This code, like dired, assumes UNIX -l format."
"Reformat the listing according to version control.
Called by dired after any portion of a vc-dired buffer has been read in."
(message "Getting version information... ")
- (let (subdir filename (buffer-read-only nil))
+ (let (subdir filename (inhibit-read-only t))
(goto-char (point-min))
(while (not (eobp))
(cond
diff --git a/lisp/vcursor.el b/lisp/vcursor.el
index f8812f8723d..b8c93f64ff5 100644
--- a/lisp/vcursor.el
+++ b/lisp/vcursor.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/version.el b/lisp/version.el
index aa543e0d516..7fc93d363dc 100644
--- a/lisp/version.el
+++ b/lisp/version.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/view.el b/lisp/view.el
index 57d264d2b8e..2f541fbf360 100644
--- a/lisp/view.el
+++ b/lisp/view.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/vms-patch.el b/lisp/vms-patch.el
index d848f2246ae..acc76c27171 100644
--- a/lisp/vms-patch.el
+++ b/lisp/vms-patch.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/vmsproc.el b/lisp/vmsproc.el
index 71bb5e01574..e36400476f4 100644
--- a/lisp/vmsproc.el
+++ b/lisp/vmsproc.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/vt-control.el b/lisp/vt-control.el
index 4b78be36f4e..d7a7909c5a7 100644
--- a/lisp/vt-control.el
+++ b/lisp/vt-control.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/vt100-led.el b/lisp/vt100-led.el
index 5d25eb104df..d3ebbfc0afc 100644
--- a/lisp/vt100-led.el
+++ b/lisp/vt100-led.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/w32-fns.el b/lisp/w32-fns.el
index fc5afd76664..f37b4dcb789 100644
--- a/lisp/w32-fns.el
+++ b/lisp/w32-fns.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/w32-vars.el b/lisp/w32-vars.el
index 81d15c9ae1e..5eaac3ac3cb 100644
--- a/lisp/w32-vars.el
+++ b/lisp/w32-vars.el
@@ -9,7 +9,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/wdired.el b/lisp/wdired.el
index 0c97b10ba5c..960d8990983 100644
--- a/lisp/wdired.el
+++ b/lisp/wdired.el
@@ -11,7 +11,7 @@
;; 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
+;; published by the Free Software Foundation; either version 3, or (at
;; your option) any later version.
;; This program is distributed in the hope that it will be useful, but
@@ -175,6 +175,7 @@ program `dired-chmod-program', which must exist."
(define-key map "\C-c\C-c" 'wdired-finish-edit)
(define-key map "\C-c\C-k" 'wdired-abort-changes)
(define-key map "\C-c\C-[" 'wdired-abort-changes)
+ (define-key map "\C-x\C-q" 'wdired-exit)
(define-key map "\C-m" 'ignore)
(define-key map "\C-j" 'ignore)
(define-key map "\C-o" 'ignore)
@@ -423,6 +424,22 @@ non-nil means return old filename."
(set-buffer-modified-p nil)
(setq buffer-undo-list nil))
+(defun wdired-exit ()
+ "Exit wdired and return to dired mode.
+Just return to dired mode if there are no changes. Otherwise,
+ask a yes-or-no question whether to save or cancel changes,
+and proceed depending on the answer."
+ (interactive)
+ (if (buffer-modified-p)
+ (if (y-or-n-p (format "Buffer %s modified; save changes? "
+ (current-buffer)))
+ (wdired-finish-edit)
+ (wdired-abort-changes))
+ (wdired-change-to-dired-mode)
+ (set-buffer-modified-p nil)
+ (setq buffer-undo-list nil)
+ (message "(No changes need to be saved)")))
+
;; Rename a file, searching it in a modified dired buffer, in order
;; to be able to use `dired-do-create-files-regexp' and get its
;; "benefits".
diff --git a/lisp/whitespace.el b/lisp/whitespace.el
index 1c670d77458..c38b6563592 100644
--- a/lisp/whitespace.el
+++ b/lisp/whitespace.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/wid-browse.el b/lisp/wid-browse.el
index 799d9ae760e..ec702f7b45c 100644
--- a/lisp/wid-browse.el
+++ b/lisp/wid-browse.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index f58b1515f7b..c46c041d64d 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/widget.el b/lisp/widget.el
index cfdb92eaa0f..b44d3735bb6 100644
--- a/lisp/widget.el
+++ b/lisp/widget.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/windmove.el b/lisp/windmove.el
index 79e87e0d36c..f462c353694 100644
--- a/lisp/windmove.el
+++ b/lisp/windmove.el
@@ -11,7 +11,7 @@
;;
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;;
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/window.el b/lisp/window.el
index 216e89249c6..f0a30d811ab 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
@@ -57,15 +57,15 @@ BODY remains selected."
;; select-window changes frame-selected-window for whatever
;; frame that window is in.
(save-selected-window-alist
- (mapcar (lambda (frame) (list frame (frame-selected-window frame)))
+ (mapcar (lambda (frame) (cons frame (frame-selected-window frame)))
(frame-list))))
(save-current-buffer
(unwind-protect
(progn ,@body)
(dolist (elt save-selected-window-alist)
(and (frame-live-p (car elt))
- (window-live-p (cadr elt))
- (set-frame-selected-window (car elt) (cadr elt))))
+ (window-live-p (cdr elt))
+ (set-frame-selected-window (car elt) (cdr elt))))
(if (window-live-p save-selected-window-window)
(select-window save-selected-window-window))))))
@@ -396,11 +396,15 @@ subtree is balanced."
(defun bw-adjust-window (window delta horizontal)
"Wrapper around `adjust-window-trailing-edge' with error checking.
Arguments WINDOW, DELTA and HORIZONTAL are passed on to that function."
- (condition-case err
- (adjust-window-trailing-edge window delta horizontal)
- (error
- ;;(message "adjust: %s" (error-message-string err))
- )))
+ ;; `adjust-window-trailing-edge' may fail if delta is too large.
+ (while (>= (abs delta) 1)
+ (condition-case err
+ (progn
+ (adjust-window-trailing-edge window delta horizontal)
+ (setq delta 0))
+ (error
+ ;;(message "adjust: %s" (error-message-string err))
+ (setq delta (/ delta 2))))))
(defun bw-balance-sub (wt w h)
(setq wt (bw-refresh-edges wt))
@@ -423,6 +427,99 @@ Arguments WINDOW, DELTA and HORIZONTAL are passed on to that function."
(dolist (c childs)
(bw-balance-sub c cw ch)))))
+;;; A different solution to balance-windows
+
+(defun window-fixed-size-p (&optional window direction)
+ "Non-nil if WINDOW cannot be resized in DIRECTION.
+DIRECTION can be nil (i.e. any), `height' or `width'."
+ (with-current-buffer (window-buffer window)
+ (let ((fixed (and (boundp 'window-size-fixed) window-size-fixed)))
+ (when fixed
+ (not (and direction
+ (member (cons direction window-size-fixed)
+ '((height . width) (width . height)))))))))
+
+(defvar window-area-factor 1
+ "Factor by which the window area should be over-estimated.
+This is used by `balance-windows-area'.
+Changing this globally has no effect.")
+
+(defun balance-windows-area ()
+ "Make all visible windows the same area (approximately).
+See also `window-area-factor' to change the relative size of specific buffers."
+ (interactive)
+ (let* ((unchanged 0) (carry 0) (round 0)
+ ;; Remove fixed-size windows.
+ (wins (delq nil (mapcar (lambda (win)
+ (if (not (window-fixed-size-p win)) win))
+ (window-list nil 'nomini))))
+ (changelog nil)
+ next)
+ ;; Resizing a window changes the size of surrounding windows in complex
+ ;; ways, so it's difficult to balance them all. The introduction of
+ ;; `adjust-window-trailing-edge' made it a bit easier, but it is still
+ ;; very difficult to do. `balance-window' above takes an off-line
+ ;; approach: get the whole window tree, then balance it, then try to
+ ;; adjust the windows so they fit the result.
+ ;; Here, instead, we take a "local optimization" approach, where we just
+ ;; go through all the windows several times until nothing needs to be
+ ;; changed. The main problem with this approach is that it's difficult
+ ;; to make sure it terminates, so we use some heuristic to try and break
+ ;; off infinite loops.
+ ;; After a round without any change, we allow a second, to give a chance
+ ;; to the carry to propagate a minor imbalance from the end back to
+ ;; the beginning.
+ (while (< unchanged 2)
+ ;; (message "New round")
+ (setq unchanged (1+ unchanged) round (1+ round))
+ (dolist (win wins)
+ (setq next win)
+ (while (progn (setq next (next-window next))
+ (window-fixed-size-p next)))
+ ;; (assert (eq next (or (cadr (member win wins)) (car wins))))
+ (let* ((horiz
+ (< (car (window-edges win)) (car (window-edges next))))
+ (areadiff (/ (- (* (window-height next) (window-width next)
+ (buffer-local-value 'window-area-factor
+ (window-buffer next)))
+ (* (window-height win) (window-width win)
+ (buffer-local-value 'window-area-factor
+ (window-buffer win))))
+ (max (buffer-local-value 'window-area-factor
+ (window-buffer win))
+ (buffer-local-value 'window-area-factor
+ (window-buffer next)))))
+ (edgesize (if horiz
+ (+ (window-height win) (window-height next))
+ (+ (window-width win) (window-width next))))
+ (diff (/ areadiff edgesize)))
+ (when (zerop diff)
+ ;; Maybe diff is actually closer to 1 than to 0.
+ (setq diff (/ (* 3 areadiff) (* 2 edgesize))))
+ (when (and (zerop diff) (not (zerop areadiff)))
+ (setq diff (/ (+ areadiff carry) edgesize))
+ ;; Change things smoothly.
+ (if (or (> diff 1) (< diff -1)) (setq diff (/ diff 2))))
+ (if (zerop diff)
+ ;; Make sure negligible differences don't accumulate to
+ ;; become significant.
+ (setq carry (+ carry areadiff))
+ (bw-adjust-window win diff horiz)
+ ;; (sit-for 0.5)
+ (let ((change (cons win (window-edges win))))
+ ;; If the same change has been seen already for this window,
+ ;; we're most likely in an endless loop, so don't count it as
+ ;; a change.
+ (unless (member change changelog)
+ (push change changelog)
+ (setq unchanged 0 carry 0)))))))
+ ;; We've now basically balanced all the windows.
+ ;; But there may be some minor off-by-one imbalance left over,
+ ;; so let's do some fine tuning.
+ ;; (bw-finetune wins)
+ ;; (message "Done in %d rounds" round)
+ ))
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; I think this should be the default; I think people will prefer it--rms.
diff --git a/lisp/winner.el b/lisp/winner.el
index 033876a5883..bc7503b963c 100644
--- a/lisp/winner.el
+++ b/lisp/winner.el
@@ -12,7 +12,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/woman.el b/lisp/woman.el
index 43ebd8df013..4d50b5d3f2e 100644
--- a/lisp/woman.el
+++ b/lisp/woman.el
@@ -14,7 +14,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/x-dnd.el b/lisp/x-dnd.el
index 004fa1a42ef..f6f3b75dc07 100644
--- a/lisp/x-dnd.el
+++ b/lisp/x-dnd.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/xml.el b/lisp/xml.el
index f7045779ca4..6ea6dd4f56c 100644
--- a/lisp/xml.el
+++ b/lisp/xml.el
@@ -11,7 +11,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
diff --git a/lisp/xt-mouse.el b/lisp/xt-mouse.el
index 5988baf3565..cefce2f62e7 100644
--- a/lisp/xt-mouse.el
+++ b/lisp/xt-mouse.el
@@ -10,7 +10,7 @@
;; 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)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,